Skip to content

tifasoftware/LuminaEngine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

75 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Lumina Engine

⚠️ 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.


Features

  • SDL2 based rendering
  • Tile map system with custom LMAP format
  • Texture management
  • PSP controller input
  • Platform abstraction layer for future ports

Planned Features

  • WAD style asset packaging
  • Lua 5.4 scripting
  • Entity and NPC system
  • Dialogue system
  • Battle system
  • Save/load system

Platform Support

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

Dependencies

  • PSPDEV toolchain
  • SDL2 (bundled with PSPDEV)
  • SDL2_image (bundled with PSPDEV)
  • Lua 5.4 (bundled with PSPDEV)

Building

PSP

mkdir build && cd build
psp-cmake ..
make

The build will output EBOOT.PBP for PSP and copy assets to the build directory automatically.


Map Format

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.lmap

Contributing

Contributions are welcome! If you'd like to help:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/my-feature)
  3. Commit your changes (git commit -m "add my feature")
  4. Push to the branch (git push origin feature/my-feature)
  5. Open a Pull Request

Please keep PSP hardware constraints in mind — 32MB RAM, 480x272 resolution.

Credits

Test Character Sprite created using https://www.avatarsinpixels.com/

About

2D RPG Engine for the Playstation Portable

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors