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.
1.5 KiB
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