Project showcase
Existential Crisis - Arduino Role-Playing Game Simulator

Existential Crisis - Arduino Role-Playing Game Simulator © Apache-2.0

Maze simulation for role-playing adventure using basic elements from Dungeons & Dragons.

  • 3 respects

Components and supplies

About this project

Simulation of role-playing adventure or Multi-User Dungeons (MUDs), similar to NetHack, using basic rules of Dungeons & Dragons with a feel similar to Gauntlet or Diablo.

The pictures and video do not fully capture the brilliant color when seeing it for yourself.

The project makes a visually interesting simulation of a character wandering through a maze, looking for a key and trying to find the door to exit, only to be stuck repeating this for all eternity. Other enemy players try to kill the main character, can pick-up and use items including the key to open the door, resetting the maze. When any character dies, within a matter of time, regenerated with randomly selected base stats; forever stuck looking for potions to stay alive a little longer only to find another key and another door.

This is a new version of an older project:

This simulation covers the basic motivation of fighting to stay alive in an effort to find the key hidden in the current map and then locate the door to exit.

Each player has hit-points, armor class, experience points, and can hold up to three items. Each map contains a key, and a randomly selected number of rewards, or items to help the player. Items available are: a potion of healing, a better weapon or magic.

A 64 RGB LEDs in an 8x8 display is used as the 'viewer' into the World of the simulation, displaying only a quadrant section of the overall map at one time. As the primary player moves around the map, the 'viewer' display moves to the relevant section.

Color Code

  • RED - Opponent Player Characters ( Enemies )
  • GREEN - Main Player Character ( Game Focus )
  • BLUE - Wall
  • WHITE - Door
  • YELLOW - Key


  • Find a key
  • Use a potion
  • Use magic
  • Open door using key
  • Player death

I have also included numbers 1 - 20 for showing the result of a simulated die roll. However, showing the number each time the player rolls is annoying so this animation has been disabled.

How the Simulation Works

On each turn, a player object executes the function WhatAreMyOptions

  • Move ( Direction Available: North, East, South, West ) A proximity-check to opponents is made to determine options. Short-term Memory of locations explored. Coordinates of recent moves are stored in the player object in an effort to reduce looping.
  • Attack: Each player rolls a 20-sided die trying to meet or exceed the Armor Class value of the opponent. Upon a successful hit, the player then rolls a 4-sided die for damage and applies any bonuses. The total damage is subtracted from the opponent's hit points.
  • Check Inventory and Use Item: Randomly determined for simulation purposes.

Video of Existential Crisis prototype

Potential for Expansion using I2C

  • Add additional microcontroller or Raspberry Pi for Neural Network.
  • Add better controls, such as push-buttons, and even sensors.
  • Add a sound-effects module
  • Additional visual displays.

More stuff written by me:



LCD Shield Schematic
900px dfr0009 pin2 kovhqpufmg


Similar projects you might like

Arduino Game By LCD

Project tutorial by Mohammed Magdy

  • 151 respects

Existential Crisis aka ArduinoRPG

Project showcase by Cory Potter

  • 1 comment
  • 7 respects

Arduino Pocket Game Console + A-Maze - Maze Game

Project tutorial by Alojz Jakob

  • 22 respects

Arduino LED Matrix Game of Life

Project showcase by aerodynamics

  • 19 respects

Ninja Dollar - LCD game

Project tutorial by anime

  • 7 respects

Google Chrome Dinosaur Game on 16x2 LCD Shield

Project showcase by brzi

  • 29 respects
Add projectSign up / Login