- Present game on the screen
- ability to change the resolution and palette
- sprite-sheet loader
- more options: full screen, specifying tps and scale
- Game loop
- Implement Graphics API
- drawing sprites and pixels with camera and clipping support
- add the ability to directly access pixels on the screen and sprite-sheet
- palette transparency
- palette swapping
- printing text on the screen
- system font
- custom font
- additional features: escape characters, offsets
- drawing shapes
- rectangles, lines, circles
- fill patterns
- stretching sprites
- Audio
- playing sound effects
- updating sound effects and music when the game is run
- SFX notes effects
- SFX modifiers
- ADSR (envelopes)
- playing music
- map API
- math API
- Cos, Sin, Atan2
- Min, Max, Mid for integers
- Mid for float64
- Game controller support: gamepad and keyboard
- Mouse support
- Add mouse wheel support
- Full keyboard support
- Storing game state like savegames, hall of fame and user preferences
- Menu screen
- controller mapping editor
- keyboard mapping editor
- Development tools
- controlling the game
- pausing, resuming
- add a programmatic way to stop the game
- taking screenshots
- screen inspector
- presenting pixel coords and color
- zoom-in, zoom-out
- drawing on the screen using Pi functions
- Set, shapes
- Spr
- scripting/REPL - write Go code live when the game is running
- palette inspector
- display, draw palette
- sprite-sheet editor
- map editor
- sound editor
- music editor
- controlling the game
- Documentation
- Go docs
- More detailed Go docs
- Tutorials
- Support for different platforms
- Windows, Linux, macOS
- Web browsers (WASM)
- Android, IOS, Switch
- Examples
- simple programs for beginners
- interactive programs describing how functions work
- simple working game