Hello, I've just kinda bumped one of my projects to 1.0ish version so let me share it:
SAF: Minimal abstract interface for simple games
https://codeberg.org/drummyfish/SAF
SAF (SmallAbstractFish) wants to provide you with a distilled joy of simple nostalgic game programming with as little friction and frustration as possible (no complicated APIs, no bloat, no legal conditions, ...), while also supporting creation of ethical games that can run even on very simple devices, games that people can easily study, share and improve without frustration or fear, games that will survive forever, games that are here for you and not any corporation's profit. SAF follows and promotes the philosophy of peace, social anarchy, free software and mainly of "less is more", which is related to technology minimalism, suckless, Unix and KISS philosophies. SAF is taking a step back to the times at which technology was still sane, so that we can step forward in a new, better direction.
It's all CC0, public domain of course! No conditions, just take it, use it, improve it, sell it, ...
Basically it's a tiny engine, a library, you can also see it as a fantasy console or as a "tiny suckless SDL". I made it because I often want to create a very simple game but am forced to make myself dependent on some huge bloated engine or a specific library (e.g. every open console has its own library which makes porting painful). Now I can simply make a game without any friction, it only depends on a single file (SAF.h) and I can immediately run the game on Linux, Windows, in browser, on Pokitto, or on my phone. It also substitutes an emulator for platforms that don't have it (many open consoles lack it). It's extremely low demanding on hardware, one of my friends even ported it to a calculator.
It is purposefully a very simple virtual device:
- 64x64 display, 256 colors, 25 FPS
- arrow buttons + A, B, C
- 4 sound effects
- 32 bytes of persistent memory for saves
That's basically it. You simply include saf.h and write a game, all basic function are available to you: shape drawing, image drawing, text drawing, sin/cos/sqrt functions etc. Main loop, CLI argument parsing and stuff like that is automatically handled, you don't care about it. Once you write the game you can simply compile it on given platform as you would compile any other program for that platform.
Now for testing I've written two small games for SAF:
- MicroTD (https://drummyfish.itch.io/microtd) (port of my Arduboy game), PLAY IN BROWSER
- Minigames (simple games for testing the engine) PLAY IN BROWSER
I'll be very glad if you write a game and share it. When there's enough games I'll probably create a website for downloading and playing them.
I also have some additional ideas like a comfy web IDE or optional extensions for things like multiplayer or music. We'll see about these in the future. You'll find more info about everything in the readme.
Thanks for your attention, tell me what you think