Project showcase
Existential Crisis aka ArduinoRPG

Existential Crisis aka ArduinoRPG © Apache-2.0

visual sim of character wandering through a maze to find a key, find exit door stuck repeating for eternity

  • 2,909 views
  • 1 comment
  • 8 respects

Components and supplies

Necessary tools and machines

09507 01
Soldering iron (generic)

Apps and online services

About this project


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.  Additionally, there are "enemies" trying to kill the character, but the bright side is that when the character dies, within a matter of time, he is regenerated forever stuck looking for potions to stay alive a little longer only to find another key and another door.


Sorry there is no background music :-)



In my youth, we had arcades and bowling alleys to play games slightly better than the Atari home gaming system. The VIC-20 home computer system was the predecessor to the Commodore-64. Growing-up during a time before wireless phones and graphics better than the Atari, I really enjoyed the text-based adventure games. To this day, I can recall images in my mind of what I imagined while reading the descriptions of the environments I got to explore. Using only Arduino Uno, I want something like a text-based adventure or Multi-User Dungeons (MUDs), or Zork, using basic rules of Dungeons & Dragons with a feel similar to Gauntlet or Diablo.

This simulation covers the basic motivation of finding 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.  The MAX7219 8X8 Red Dot LED Matrix is used as a 'viewer' into the world of the simulation, displaying a section of overall map at a time.  Each dot represents either a wall, if solid or a player when blinking. As the player moves around the map, the display moves to the relevant section.

I have included several mini animations, a series of icons shown on the 8x8 display, for finding a key, using a potion, using magic, opening the door, and 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.

Solder on a header to the LCD with buttons Shield

The hardware I used for this project is an Arduino Uno with the LCD with buttons Shield.  I soldered a female header in the upper right-hand corner of the LCD shield PCB so that I could plug in the MAX7219 8X8 Red Dot LED Matrix.  The code is set to use these pins.  The working prototype makes basic decisions and has a ‘short-term’ memory.  The MAX7219 8X8 Red Dot LED Matrix displays portions of the 16x16 map at a time, acting as a ‘viewer’.  The simulation can be played through the LCD Shield, which when combined with the code for the simulation, maxed out the program space on the microcontroller.  My plans for incorporating a neural network will have to be programmed on a separate Arduino unit. I have programmed the transmit and receive of the Player objects using I2C to communicate between the microcontrollers.

Compile and Upload the Source Code

Source Codehttps://github.com/bitsandbots/ArduinoRPG

If you are making this project then I will assume that you know how to compile a sketch and upload it to the Arduino Uno. You will need to have the LiquidCrystal.h library and the LedControl library in order to compile the source available at the link above.


Using the buttons on the LCD Shield


The code for controlling the player's actions using the LCD buttons shield works but you will have to slow down the timing of turns by pressing the DOWN button until the simulation has slowed down enough. The UP button increases the speed. Selections can be made by pressing the RIGHT button to toggle and the SELECT button to choose. I would appreciate any feedback you have as to how we can better control the player and keep the simulation going at a reasonable rate.



Code

ArduinoRPG
Complete source-code except LedControl and LiquidCrystal libraries.

Custom parts and enclosures

LCD Shield Schematic
LCD Shield Schematic
900px dfr0009 pin2
LCD Shield footprint
LCD Shield footprint
3(6)

Schematics

LCD Shield Schematic
LCD Shield Schematic
900px dfr0009 pin2

Comments

Similar projects you might like

Existential Crisis - Arduino Role-Playing Game Simulator

Project showcase by Cory Potter

  • 1,016 views
  • 0 comments
  • 4 respects

The hydroMazing Smart Garden System

Project tutorial by Cory Potter

  • 33,082 views
  • 14 comments
  • 138 respects

Control your Human-Like Robot from Anywhere you Are!

Project showcase by Team assemblypro

  • 3,483 views
  • 1 comment
  • 16 respects

MannyBot365

Project showcase by 3 developers

  • 3,192 views
  • 2 comments
  • 29 respects

Personal Home Assistant

Project tutorial by 3 developers

  • 5,210 views
  • 0 comments
  • 29 respects

Arduino and AC Devices - Automatic Lights

Project tutorial by Ahmed Hamdy

  • 26,780 views
  • 9 comments
  • 59 respects
Add projectSign up / Login