A retro-style RPG game engine for e-paper displays (EPD) with procedural content generation.
EPD-RPG is a project that provides a C++ game engine designed for e-paper displays, specifically targeting the Waveshare 1.54" V2 black and white e-paper display (200x200 pixels).
- Procedural Content Generation: The game generates content procedurally over time, using a combination of existing maps, situations, and narratives.
- Educational Resource: This project serves as a learning resource for developers and creators interested in e-paper displays, embedded systems programming, and game development. The code is extensively documented to facilitate learning.
- ESP32 development board
- Waveshare 1.54" V2 black and white e-paper display (200x200 pixels)
- Connecting wires
E-Paper Pin | ESP32 Pin |
---|---|
CS | 15 |
DC | 27 |
RST | 26 |
BUSY | 25 |
SCK | 13 |
MOSI | 14 |
The EPD-RPG engine is built using:
- VSCode as the development environment
- PlatformIO for project management and building
- GxEPD2 library for e-paper display control
- Adafruit GFX library for graphics rendering
Key features:
- Tilemap rendering system
- Text display system with automatic wrapping
- UI components
- Game state management
- Procedural content generation
- Low power consumption for long battery life
- Clone this repository:
git clone https://github.com/halftheopposite/EPD-RPG.git cd EPD-RPG
- Open the project in PlatformIO (VSCode with PlatformIO extension recommended)
- Connect your ESP32 to your computer
- Build and upload the project:
pio run -t upload
Note: I've also created a tilemap editor to export maps into bytes array. Check it out here.
- Create your maps as C++ arrays in header files
- Place the files in the
include/assets/
directory - Update
include/assets/maps.h
to include your new maps - Update
include/assets/sprites.h
to include the sprites used in your maps
This project is licensed under the MIT License - see the LICENSE file for details.
- GxEPD2 Library by Jean-Marc Zingg
- Adafruit GFX Library
- Waveshare for their e-paper display modules