Astrogue: A Roguelike Using Procedural Content Generation for Levels and Plots in a Computer Game
Examensarbete för kandidatexamen
Datateknik 300 hp (civilingenjör)
The aim of this thesis is to explain the process of creating a computer game in the roguelike genre, where procedural content generation is key. The case study game discussed here is called Astrogue, a simple tile-based 2D game with procedurally generated levels and plots. Astrogue is written in Java and uses the library Lightweight Java Game Library for graphics and input. Even when creating a simple 2D game, there is a need for good code architecture. For this, we have chosen to use a design pattern called entity-componentsystem, a pattern that favours composition over inheritance. Besides smart code architecture, other interesting programming problems had to be solved. Systems for controlling game logic have been implemented, including for example an algorithm for shadowcasting and a simple enemy AI. For both level and plot generation, different algorithms and approaches were studied and evaluated, but only some were used. Two different level generating algorithms have been implemented. One creates classical roguelike dungeons, with multiple rooms connected using Delaunay triangulation and Kruskal’s algorithm. The other one creates cavelike levels using cellular automata. An algorithm for generating names from lists of old ones, using Markov chains, is part of the game. Finally, the game generates a plot by creating characters and letting them interact in an AI simulation.
Data- och informationsvetenskap , Computer and Information Science