Our current goal is to get Soda to a state where it can be used to create real 2D games, probably retro-style arcade games that rely entirely on sprites, as quickly as possible. The High Priority features below will get us there. The subsequent Medium and Low priority features are ones we want to have, but are less urgent.
Note that all APIs should mimic Mini Micro wherever possible.
basic sprite supportbasic sound supportkey.pressedmouse.x, mouse.y, mouse.buttonjoystick/gamepad support, including key.axis and buttonsmake file.loadImage return an actualImage
objectImage.getImage (so you can carve up a sprite sheet)full support for Sprite.tint including alphaSound.loop, Sound.stop, Sound.stopAllbasic screen handling: fullscreen mode, window size, window.backColor- manual builds for Mac, Windows, Linux (PC), and Raspberry Pi
- Display class, display(n), Display.install
Bounds class, with its connections to SpriteImage.pixel, Image.setPixel- SolidColor display
- Text display (done?)
- PixelDisplay (in progress)
- TileDisplay
- import
- sound synthesis (Sound.init, Sound.mix, etc.)
- clear/simple build system for Windows and RPi
- Linux (especially RPi) builds that work without X11
- allow control-C to break a running program and drop you into the REPL
- font class, with loading from truetype and bitmap font files (or maybe just support BmfFont?)
http
class- loading a script from a URL
- build for the web (see this thread, this write-up, and this useful series).
- real-time networking