Each directory here is a small, complete AGK game that demonstrates one
technique and is tested on every profile. Each also has a TECHNIQUE.md
covering:
- what the technique is and when it pays off
- the exact recipe
- the gotchas
- measured frame cost
Agents: copy the pattern from here rather than from memory. It's known to work.
| technique | what it shows | status |
|---|---|---|
| bobs | Blitter objects: masked, double-buffered, background restore, no trails | ✅ tested, 18/18 |
| scrolling | Tile-map scrolling, 3 screens wide, camera follows the player; pixel-exact at odd offsets (ACE tilebuffer). Found and fixed an ACE fast-RAM bug | ✅ tested, 12/12 |
| copper | Sky gradient (58 colours on 4-colour screen), HUD palette split, moving raster bar; raw vs block mode (2–3% vs ~90% of a frame). Found and fixed an ACE line-255 bug | ✅ tested, 12/12 |
| sprites | The art pipeline: text art → animated hardware sprite, PNG sheet → animated BOB; rules enforced, previews | ✅ tested, 12/12 |
| multiplex | Vertical sprite multiplexing: 24 bullets from 6 sprite channels, chained in the hardware's data stream; the channel dealing is portable C with host tests. No blitter, no bitplanes | ✅ tested, 18/18 |
| copper → sprite tricks | Horizontal sprite reuse (R-Type 2 style repeating backgrounds), sprite HUD, sprite parallax layer. See codetapper's breakdowns; examples/voidrunner's starfield is one |
planned |
| hotpath | A hot loop in 68000 asm (GCC inline asm), with the C version kept, run against it every 100 frames and compared by the blitter; both timed. 1.6x over careful C; a tearing bug found by the cross-profile tests | ✅ tested, 15/15 |
| loading | Levels as packed files on the floppy (disk/, an LZ packer in the build, a 40-line unpacker in the runtime), loaded through AmigaDOS when needed: 40 KB pictures packed to 7-18 KB, the executable holds no level. Why not a trackloader |
✅ tested, 12/12 |
Run one: agk test techniques/<name>. Measure one: every technique reports
AGK perf lines. See runtime/include/agk/perf.h.