Files
major_tom/TODO.md
Thomas 94dbe83cfe Refine asteroids: faster, sparser, with horizontal drift
Increase base fall speed (120→200), acceleration (200→350), and respawn
delay (3→6s). Add random horizontal drift (±60 px/s) so asteroids fall
at angles. Widen initial stagger (0-3→0-8s). Reduce moon level from 24
asteroids to 8, spread evenly across the level.
2026-03-01 11:04:00 +00:00

1.4 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

Implemented: base speed 120→200, accel 200→350, respawn 3→6s, stagger 0-3→0-8s, random horizontal drift (±60 px/s), moon level reduced from 24 to 8 asteroids.