Shadow Quest

Shadow Quest is a basic Diablo-inspired RPG created as an in-class project in my second year of university.

The subject was Object-Oriented Software Development, and the project was to create a game from some specific requirements, including the learning and use of the Slick game library. The requirements were very straightforward however, and we were encouraged to implement our own extensions to the game if we were comfortable to do so.

My extensions were an exploration of the world of classic action RPG systems and procedural generation, borrowing heavily from Diablo II. I added an inventory with slots for a weapon and various types of armour, accessories and storage, and character stats such as experience, level, strength, defence and so on. From there I could add magic items that modified the player’s stats, and made monsters drop random magic items depending on their level.

Just as interestingly for me however was the addition of procedurally generated dungeons (well, one dungeon with 5 floors) using cellular automata. This involved not only understanding how cellular automata operate, but also digging into the documentation of the Tiled map editor‘s file format and generating the correct output to be loaded by the game. At the time I wasn’t terribly well-versed in string encoding and compression, so this took quite some effort, but I was quite proud of the result.

I discovered the source code a couple of years later, so I figured I might as well open source it on Bitbucket. Despite the code quality not being my finest work, it put me in the running for the class award for Best Game Extension, though there was some truly astounding competition (large, hand-crafted worlds, animations, weather, magic, mounts, etc. – and that was just the winner).

Feel free to play it in your browser, or by downloading the Web Start.