The goal of the Ng Java Roguelike Engine is to make it easy for anyone to create their own Roguelike game. The project consists of three components: the Core, the Variant Manager, and the prototype ‘SimpleGame’. Ng is open source software licensed under the GNU GPL. Also included but not being supported is a non-Ng Java Angband project that I nearly completed in 2000-2001.
The core serves as a bedrock of APIs and functionality that are applicable across all or most Roguelike games. Central to this component is the concept of event broadcasters with loosely coupled listeners that control game logic, and the ability to easily distribute games in multiple languages. Many utility classes solving common problems are also provided. Check out the currently available Core services.
Apart from being implemented in Java, if there is one thing that sets this project apart from other Roguelike efforts, it is the focus on easy management of the many resources that provide the guts of a good Roguelike game. The Variant Manager is a graphical application that allows for complete configuration of a new variant -- either from scratch or based on an existing game. Races, classes, commands, foreign language support, items, and monsters are all configurable visually, and new categories of resources can even be created, configured, and populated! Check out some screenshots.
For people more interested in playing games than
in frameworks for creating games, I’m writing a prototype game called SimpleGame.
This reference implementation is helping to flesh out necessary features
for the Core and Variant Manager components, and provide a more extensive body
of work for developers to base their own games on. This screenshot is what it looked like on
Take the plunge and write an Ng-Powered Game! My name is Thomas Seufert; now that we are no longer strangers, just send me an e-mail.
SimpleGame – by Thomas Seufert (Alpha)
SlayerQuest – by Paul SanClemente (Planning)
Let me know what you think! My name is Thomas Seufert and my e-mail address is email@example.com