My retro text-based adventure game titled "Miserere Mei"

written in Java

Download source code



History of the game

The idea of a program called „Miserere Mei - The Precarious Trails to the Library of Preachers” grew out of an interesting thought experiment: is it possible to use modern tools to create a type of game, namely a text-based adventure game, once popular in the early days of computing that's enhanced with some of the features of video games published in the new millennium? "Miserere Mei" is an adventure game written in Java that I developed between September 2020 and late October 2020. 

I developed the software as a thesis project fo the software developer NQR course organized by OKTÁV PLC.

The game is set in the postapocalyptic world of the 2050's, in the Land of Desolation. The player controls a mercenary called Cantus Planus who gets a task from an old priest, Gregorio. According to the brief the soldier has to escort five youngsters: Altus, Tenor, Bassus and the Superia sisters to the Library of Preachers so that the librarians can record for posterity the music living in them and through them.  

We follow their mission through a wild desert full of dangers, while Falsetto, the evil and ruthless warlord, learns about their task and wants to foil their plan. So the goal of the player is to lead the main characters safely to the Library of Preachers. 

The game also build on the player taking risks: they can take the easier route if they want to, but they also have the choice to take greater risks and reap grater rewards.

The game's stlye is influenced by the tradition of classic flipbooks and text-based adventure games of the early 90's. This means that there is a safe route and that the player has to engage in fights and the player's choices have a cruical role in the gameplay.

The game can be completed in about half an hour if the player takes the appropriate route, however, the planned side quests and secondary locations have not been added yet.  

The software is currently on version 0.8.  

About the development tools

The software was written in Java and made entirely in Apache NetBeans IDE, version 12.1 with version 15 of the Java SE Development Kit (JDK).I chose this programming language because of its platform-independence and widespread use, as well as because one of my goals as a software developer is to write programs in this language. 

Writing the software required the installation of NetBeans' own Java compiler too ("The nb-javac Java editing support library [2.0]”). 

For developing the user interface of the game engine I used the "Abstract Window Toolkit" (java.awt) and the library for reading and writing files (java.io) from the Java component libraries. 

For sound support I used the "javax.sound" library, while for logos and pictures I used the "javax.swing" component collection. 

I created the map of the in-game world using the paid-for version of "Inkarnate" (https://inkarnate.com/).The map was made in two different levels of detail: one, less detailed version for the player and a programmer's version on which all the battles, save points, user paths and crossroads requiring the player to make a decision were indicated. 

The UML class diagrams in the development documentation were made with ObjectAid UML Explorer, version 1.2.4. and the UML activity diagrams were made with the online version of Creately (www.creately.com). 

At the end of the development process the software was exported as a JAR file.

Implemented functions

  • Saving and loading game-states. 

  • Picking up objects and inventory management. 

  • Battle system.

  •  Automatic rescaling of the program window (only for 4:3 aspect ratios.) 

  • Sounds and music.

The source code and documentation of the software can be downloaded from my GitHub page.