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.hto include your new maps - Update 
include/assets/sprites.hto 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
 
