Mobile Dungeon Crawler

bartron on 1/1/2021

I had never created a mobile game before, so I wanted to do something that was fairly simple and concrete. I chose to make a tile based dungeon crawler, similar to the D&D board games, but simpler. I developed this using Monogame 3.6 and is supposed by Android 5.0 and up.

I used this project to learn and practice more modern dev practices such as Dependency Injection (through interfaces and constructor injection), separating layers into multiple projects/assemblies, unit testing (and mock objects) and learning how to develop & deploy on android. All of these were new and I learned a ton. After doing this project, there's some things I'd do differently next time, such as completely moving all rendering and input handling down into the logic layer, and changing how I handled chaining of events (exploration events after exploring, or level ups after enemy encounters), but I'll apply those lessons to the next project.

The game and engine supports:

  • Screen resolution independent rendering, and supports both screen styles: portrait and landscape
  • Isolated storage game saving and loading
  • Basic UI Toolkit (control abstraction: button, labels, dialogs & complex controls)
  • Minimap
  • Pathfinding
  • Enemy AI (will find the shortest path to player, and get as close as possible. Attack if able)
  • Multiple terrain types and tiles
  • Random events based on the type of terrain