top of page

Roguelike

About
  • Individual Project in Personal Engine

  • 8 Week Development Time

High Concept

 A highly data-driven Rogue-like.

Notable Features
  • Data-driven Design

  • Tag System

  • Iterative Map Generation

Data-driven Design

The crux of this project was making as many things as possible controlled through XML. Characters, items, maps, game constants, tile types, loot tables, and map features are all created in XML documents. 

Tag System

I implemented a tag system to allow for easy designer control of a variety of simple descriptors. Each tag is effectively a named boolean value and any set of tags can be checked against a comma delimited string. In Roguelike, they are used both for damage types with weaknesses, resistances, and immunities and exceptions to tile solidity (so a flying character can pass over any solid tile marked with flying as an exception). Tag negation or checking that a tag is not present is done by preceding the tag with a "!".

Iterative Map Generation

Map generation in Roguelike is done in steps by map generators that pick up where the last one left off. Each map in an adventure, a series of maps, specifies a map definition that it uses for the tile generation process. Each definition specifies a series of generators, each with their own type and parameters. It supports Perlin Noise, Cellular Automata, RoomsAndPaths, and FromFile generators.

bottom of page