Skip to content

Latest commit

 

History

History
25 lines (21 loc) · 2.26 KB

README.md

File metadata and controls

25 lines (21 loc) · 2.26 KB

Techniques

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.