Hey folks! My li'l game engine for Playdate, Noble Engine, is now ready to be poked around at.
I have it in a private GitHub repo for now, so reply or DM me your GitHub username and I'll grant you access (until the Playdate SDK is public, or we get word that it's cool to post code in places). EDIT: Now public, see links below:
Features:
- Complete scene lifecycle manager.
- Scene transition API and animation library.
- Settings/SaveGame API, supporting up to 1000 save slots and automatic updating of on disk files when you inevitably muck around with your data structure.
- New input methods for onHold, and per-scene inputHandler logic.
- Robust documented code, explaining methods and architecture (WIP).
- Full project template, with example scenes and launcher assets, to help beginners get started with Playdate development.
- Two new fonts! Including my super tiny Japanese font.
- Random goodies like a unified text drawing method for normal/aligned/localized text, and one-line methods for showing/hiding the crank indicator and the FPS counter.
Gotchas:
- I have no idea how this performs under stress. I stayed away from the Graphics API for the most part, so I'd like to think there isn't a lot of overhead, but we'll see!
- My text system doesn't support bold/italic variants yet. On the do-to list.
- I have a funny way of using the sprite drawBackground callback, in that I provide it as a arbitrary code block to the user rather than a function with specific arguments as the docs recommend. It works fine, but I'll need a sanity check on that in case I'm doing something silly.
- I want to have a API for scenes to manage the items in the system menu in a consistent, expected way (like having "quit to main menu" where the user expects it), but I haven't worked out the design of that yet.
This thing has actually gotten a bit further along than I expected, so I'm eager for people to take a crack at it.