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.
34 lines
1.5 KiB
Markdown
34 lines
1.5 KiB
Markdown
# 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
|