Note
Development has moved to https://github.com/OpenNefia/OpenNefia.git. This repository is for an older prototype of OpenNefia that is no longer supported. The source code in this repository will be used as a reference for the final version of OpenNefia.
OpenNefia
OpenNefia is an open-source engine reimplementation of the Japanese roguelike RPG Elona using Lua and the LΓVE game engine.
It is not a variant of Elona, but a ground-up rewrite intended to vastly expand the support for modding in the game, allowing for game features that would have been impractical or impossible with the vanilla codebase.
It is also an experiment to see if a game can be written in an extensible manner, using a mod system and an extensive API.
Note that it is currently alpha-quality and massive breakage will occur when attempting to play through the game normally. Nearly everything is still a work-in-progress. If you would like a stable experience, then please play vanilla Elona or a variant like oomSEST instead.
See the wiki for more information and a work-in-progress modding tutorial.
Features
- Intended goal of being feature-compatible with Elona 1.22 (though still a work in progress).
- Ability to modify the flow of game logic using event hooks.
- Architecture based on APIs - mods can reuse pieces of functionality exposed by other mods.
- Quality-of-life features for developers like code hotloading and an in-game Lua REPL. Build things like new game UIs or features in an interactive manner.
- Supports Windows, macOS, and Linux.
Running
If you're using Windows, install LΓVE from the official website. (Make sure it's the 64-bit version.)
If you're using a Unix-like platform, ensure the love
binary, wget
and unzip
are on your PATH
.
Then, run OpenNefia.bat
(Windows) or OpenNefia
(Unix).
Contributing
OpenNefia uses the Gitflow workflow. Please branch off of develop
when developing new features or porting things. master
will be reserved for stable releases and hotfixes only once the engine becomes stable enough to use.
See CONTRIBUTING.md for more details.
See docs/ARCHITECTURE.md for a high-level overview of the codebase.
Credits
See CREDITS.md for third-party code information.