Roguelike Iterative Test-Driven Development in Java

From RogueBasin
Jump to navigation Jump to search

This is the introduction and index page for a work-in-progress series of articles applying the Iterative and Test-Driven development models to a Roguelike game. Each article explores one step of the development process accompanied by a concrete example: a Java Roguelike project.


Iterative development is a technique used in software development whereby the requirements, design, implementation, testing and analysis activities are repeated multiple times throughout the development life cycle. Typically at the end of each iteration a stable, usable product will be produced. This is a natural fit for the Roguelike development scene as since most Roguelike games are under continuous development.

Test-Driven Development is an implementation methodology that aims to ensure the correct and repeatably demonstrable implementation of requirements. With this methodology the design is first implemented at the interface level with no concrete implementation. Then the functional requirements are translated into unit tests, all of which should fail. Then concrete implementations of the interfaces are created and tested until all test cases pass.

The intention of this series is to demonstrate the process, discuss design and implementation techniques that help apply these methods to the Roguelike problem space and finally to produce a working example project. The source code for this project will be published in a Google Code SVN repository. Revision tags for each article will be available so readers may follow along.


The articles in this series follow the patterns laid out in How to Write a Roguelike in 15 Steps, an article that I frequently use as an iterative development guideline when working on Roguelikes. Each article will be annotated with the HWR15 step(s) it corresponds to.

Roguelike Iterative Test-Driven Development in Java, Part 1 - Initiation, HWR15 1

Roguelike Iterative Test-Driven Development in Java, Part 2 - Architecture HWR15 2

Roguelike Iterative Test-Driven Development in Java, Part 2a - Hello World HWR15 2.5

Roguelike Iterative Test-Driven Development in Java, Part 3 - Fundamentals HWR15 3

About the Author

I am Norman B. Lancaster. I go by qbradq on the interwebs. I am a software engineer by day and a hobbyist game developer by night. I have extensive experience with C, C++, shell, several Basic dialects and assembly instruction sets on embedded, legacy, workstation and server platforms. As for modern technologies I am experienced with C# and JavaScript. My weak areas are software development methodology and Java, hence this exercise to gain experience.