Project Name : Dungeon Crawler Board


Project Description :

The Interactive Dungeon Crawler is an electronic game board that visualizes and simulates the dungeon crawler experience commonly seen in role-playing games such as Dungeons and Dragons. The board will feature a 16-by-16 hex-based 2D map, a 4-by-4 keypad, a 2.2 inch LCD, a USB port, and a power cord. The 2D map will serve as the playing area of the board, using LEDs to represent obstacles, characters, and chests, as well as possible movements, combat, and vision. The board will use 16 WS2812B LED strips, each connected to its own GPIO pin. The LEDs will be controlled using DMA and PWM. Underneath each hex on the board will be a Hall Effect sensor to detect character position and movement. The sensors will be connected via 16 I2C I/O expanders: one for each of the rows. The character tokens will have magnets attached to interact with the sensors. The 4-by-4 keypad will be used to input dice rolls and select actions. The keypad will be connected using a GPIO matrix. The LCD will display character information and status, as well as prompts for the players and DM to respond to in order to facilitate gameplay. Character information and status will include health, gold, and enemies killed. The prompts will show available actions and ask for dice rolls. The USB will be used to port over initial map and character information from a computer. A separate application will be used to customize maps, place characters, and input character information. The microcontroller will parse the information from the USB and load the information onto the game board's map, as well as provide the starting stats for all characters to be used in the gameplay code. The gameplay will be turn-based and will use object-oriented class systems to define hexes, players, and monsters. Pathing algorithms will be used to simulate possible character movements, actual movements, and field of view. The fighting will consist of melee combat, where players and monsters must be adjacent in order to engage. Gameplay ends when all enemies have been eliminated and all chests have been looted, or all players have been eliminated. The board will be powered via an outlet.

The first stretch goal is to provide pre-loaded maps and characters to play if a computer is not available for player and map customization. The map number will correspond to the number of players. The information will be stored on an SD card. The LCD will show the list of maps and the keypad will be used to select one.
The second goal is to include more classes, more combat types such as ranged combat, and healing.
The third goal is to add more items to chests, including different weapons, armor, and possible traps.
The fourth goal is for the map to have dynamic obstacles such as doors requiring keys (provided in chests or on monsters).
The fifth goal will have the map expand to multiple levels, which will require interacting with trap doors and ladders to access.

Project Specific Design Requirements (PSDRs):

  1. PSDR #1 (Software): An ability to simulate a turn-based combat game involving pathing algorithms and object-oriented class systems.
  2. PSDR #2 (Software): An ability to customize maps and characters on a computer via a Unity-based application.
  3. PSDR #3 (Hardware): An ability to control rows of LED strips with DMA and PWM on microcontroller GPIO pins.
  4. PSDR #4 (Hardware): An ability to control an array of Hall Effect sensors with I2C I/O expanders on a microcontroller.
  5. PSDR #5 (Hardware): An ability to port information from a computer to a microcontroller via USB OTG.

  6. Extra PSDR #1: An ability to store multiple preloaded maps on an SD card using SPI.
  7. Extra PSDR #2: An ability to simulate ranged combat using line of sight algorithms, expanding the object-oriented class systems.