⚠️ Early prototype — expect breaking changes and missing features.
A 2D RPG game engine for the PlayStation Portable, built with C++ and SDL2. Designed with portability in mind for future platforms.
- SDL2 based rendering
- Tile map system with custom LMAP format
- Texture management
- PSP controller input
- Platform abstraction layer for future ports
- WAD style asset packaging
- Lua 5.4 scripting
- Entity and NPC system
- Dialogue system
- Battle system
- Save/load system
| Platform | Status |
|---|---|
| PSP | ✅ Primary target |
| Windows / Mac / Linux | 🔜 Planned (Definitely Feasible) |
| NDS | ❔ Feasibility will be researched |
| 3DS | ❔ Likely Feasible (More powerful than PSP, and has SDL2 and maybe Lua) |
| Wii | ❔ Feasibility will be researched |
| PS3 | ❔ Feasibility will be researched |
| PS Vita | ❔ Feasibility will be researched |
- PSPDEV toolchain
- SDL2 (bundled with PSPDEV)
- SDL2_image (bundled with PSPDEV)
- Lua 5.4 (bundled with PSPDEV)
mkdir build && cd build
psp-cmake ..
makeThe build will output EBOOT.PBP for PSP and copy assets to the build directory automatically.
LuminaEngine currently uses a custom binary map format (.lmap). The LMAP format is under heavy development and is prone to radical changes so it is recommended to recompile your maps every time Lumina Engine gets updated.
To create a map, you must export to the CSV format with Tiled utilizing a texture tile atlas as your tileset.
Then you write a Lumina Atlas Definition for that PNG atlas or a LAD, for short.
Example: tileatlas.lad
!ATLAS
mapatlas.png
NONE
NONE
NORTH
SOUTH
EAST
WEST
NEO
NWO
SEO
SWO
SWI
SEI
NWI
NEI
mkdir tool_build && cd tool_build
cmake ..
make
./lmap_compile CSVFILE.csv TILEATLAS.lad MAP.lmapContributions are welcome! If you'd like to help:
- Fork the repository
- Create a feature branch (
git checkout -b feature/my-feature) - Commit your changes (
git commit -m "add my feature") - Push to the branch (
git push origin feature/my-feature) - Open a Pull Request
Please keep PSP hardware constraints in mind — 32MB RAM, 480x272 resolution.
Test Character Sprite created using https://www.avatarsinpixels.com/