This project is a collection of fairly crappy tiny games for the ESP32-C3 0.42in OLED module.
The display is treated as a 70x40 game area (within the panel's 72x40 pixels),
and all games are designed around a single button input on GPIO9 (BOOT).
It's all been vibe coded - so quality is questionable!
You can pick up one of these cheap modules here.
Tapin menu: move to next gameLong pressin menu, then release: launch selected game- In game start screen:
tapto begin - In game over screen:
tapto restart,long pressto return to menu
Breakout- one-button paddle direction switchingMicro Racer- tap to lane switchDefender Mini- tap to switch altitude band, auto-fireJump Run- tap to jump over obstaclesHeli Cave- hold to rise, release to fall
Gamebase class provides:- button event handling (
pressed,released,click,longPress) - shared game state machine (
Start,Running,End) - common lifecycle hooks for concrete games
- button event handling (
- Each game lives in its own
*.hand*.cppand implements only running logic/drawing. esp32-c3-games/esp32-c3-games.inohandles display init, menu, and game switching.
Use Arduino IDE, or arduino-cli:
arduino-cli compile --fqbn esp32:esp32:esp32c3 esp32-c3-games
arduino-cli upload --fqbn esp32:esp32:esp32c3 --port /dev/cu.usbmodem1101 esp32-c3-gamesGitHub Actions builds the sketch on push/PR with:
arduino-cli compile --fqbn esp32:esp32:esp32c3 esp32-c3-games