Files
major_tom/TODO.md
Thomas 49ed2d6f7b Add spatial audio, spacecraft entity, and level intro sequence
Distance-based sound effects with stereo panning for explosions, impacts,
and pickups. Spacecraft entity with full state machine (fly-in, land, take
off, fly-out), engine/synth sound loops, thruster particles, and PNG
spritesheet. Moon level intro defers player spawn until ship lands.

Also untrack build/ objects that were committed by mistake.
2026-03-01 11:00:51 +00:00

1.5 KiB

TODO

Distance-based sound effects

Implemented: audio_set_listener(), audio_play_sound_at() with linear attenuation and stereo panning. Used by enemy death, asteroid impact, and powerup pickup.

Spacecraft art and entity

Implemented: spacecraft PNG spritesheet (5 frames, 80x48 each), full entity with state machine (FLYING_IN → LANDING → LANDED → TAKEOFF → FLYING_OUT → DONE), engine/synth sounds, thruster particles, level intro sequence with deferred player spawn.

Large map support (5000x5000)

Audit the engine for anything that breaks or becomes slow at very large map sizes. Key areas to check:

  • Tile layer allocation (uint16_t * for 25M tiles)
  • Tilemap rendering culling (already viewport-clipped, verify correctness)
  • Physics / collision queries (should only check nearby tiles)
  • Entity updates (currently iterates full pool regardless of distance)
  • Camera bounds and coordinate overflow (float precision at large coords)
  • Level file parsing (row lines could exceed fgets buffer at 5000+ columns)

Spacecraft at level exit

Ship landing at exit zone when player approaches — player enters, ship takes off, triggers level transition. The intro/start sequence is done; this is the exit counterpart.

Asteroid refinement

  • Reduce asteroid count significantly — occasional hazard, not a barrage
  • Add slight horizontal drift so they fall at an angle rather than straight down
  • Increase fall speed for more impact
  • Stagger spawns more widely across the level