- Document design
- Audio format constants should be in constants.h
- More comments
- Update readme
- New GIF
- Display score for next level
- See if game loop can be tightened up
- Assert events don't overlap
- Clean up globals
- Fix keyboard input so pressing two direction keys at the same time works
- Switch instruction text based on whether keyboard or controller was last used
- Start in fullscreen
- Full controller support (toggle fullscreen and quit)
- Windows audio cleanup
- Linux audio cleanup
- Hide mouse cursor
- Linux: Use XCreateWindow instead of XCreateSimpleWindow?
- Linux: What does SubstructureNotifyMask | SubstructureRedirectMask do?
- Debug versus release builds (e.g. disable debug logging, turn on optimizations)
- Shoot to skip title sequence
- In intro sequence, get rid of delay between showing HUD and showing "level 1"
- Check the minimum version of OpenGL required
- Display fullscreen toggle controls
- More error checks, asserts, fault tolerance
- Can the pixels be kept blocky at smaller scales?
- Invincibility period after dying
- Shaders as external files
- Sprite rendering
- Audio engine
- Controller support
- Keyboard support
- Player ship
- Fire bullets
- Enemy ships
- Multiple enemy ship types
- Enemy bullets
- Enemy bullet sound
- Bullets kill enemies
- Bullets kill player
- Enemies explode
- Player explodes
- Explosion sound
- Crashes kill enemy and player
- Stars passing
- Multiple levels
- Lives
- Game over screen
- Text Rendering
- Title screen
- Keep score
- Scale using
a framebufferthe viewport - Get rid of copying into render list
- Instanced draws
- Errors checks in BMP/WAV file parsing
- Get rid of win32 error messages in the renderer
- Fullscreen
- Loop music
- Area outside game area in different color
- Large enemies take more hits
- Hit sound
- Hit animation
- Enemies can fire from offscreen
- Collision boxes
- Clean up controls (e.g. rapid fire while moving)
- BMP for sprites, remove stb_image dep
- Bug in fadeout: title display and title fade can be triggered at the same time
- Linux support
- Rendering
- Audio
- High-resolution timer
- Keyboard input
- Gamepad input
- Full screen
- Replace MIXIN_STRUCT with something that doesn't require MS extensions
- Fix timing of whiteout
- BUG: Player bullet sometimes appears when transitioning levels.