Ruin0x11 / OpenNefia

(Archived) Moddable engine reimplementation of the Japanese roguelike Elona.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.

About

(Archived) Moddable engine reimplementation of the Japanese roguelike Elona.

License:MIT License


Languages

Language:Lua 99.0%Language:Emacs Lisp 0.5%Language:TypeScript 0.3%Language:Python 0.1%Language:GLSL 0.0%Language:Batchfile 0.0%Language:Shell 0.0%