Mighty Heroes is my latest project combining physical toys with virtual 3D worlds. It’s based on a ragtag team of heroes trying to save each universe their portal takes them too, save a new hero and have them join the gang.
How it Works
Short video below:
Using an Arduino Uno, an RFID chip & antenna, plus RFID fobs, I created a character swapping system similar to Disney Infinity’s NFC based toy system. I picked up the Arduino and breadboard at my local Radioshack and after I couldn’t find any RFID chipset and antenna locally, I ordered a set from seeedstudio.com which took over a month to arrive because they are based in China and there stuff spends a week in customs.
I hooked up one wire from the RFID to the Arduino’s 5v power supply plus another wire to ground. The RFID transmission occurs digitally over pin 5. I also added an LED light that I connected directly to the Arduino that flashes whenever a character signal is detected. I found a clear box that would fit all the elements together at The Container Store, cut out a small hole for the USB, then made a makeshift cardboard breadboard holder (I can’t wait for my New Matter 3D printer to arrive as I will print a better fitting Arduino holder!), not the fanciest but it holds everything together and it’s cool to see the parts and the led turn on inside the swapbox.
I then launched Unity and wrote a C# script with system.IO libraries oddly enough I had to change frameworks to .net 2.0 (this framework contains the serial port libraries and references that communicate with com and serial ports. I’m not sure why Unity’s .net 2.0 subset doesn’t include it automatically, but either way I changed it in the player settings and was able to pass in inputs to Unity).
The Hero toys I put together in Photoshop using a paper doll template I found online at macula.tv, cut them up and glued them together. This was the fun arts and crafts part! More characters to come shortly.
I purchased some regular rfid fobs on Amazon for a few bucks and taped them to the bottom of their base. I experimented with melting the blue plastic off by submerging them in acetone, though the chip inside came out fine, the whole process was really messy. So taping them to the bottom of the figure works, it looks a little janky but is perfectly functional.
I was able to read the fob’s pre-installed unique ID number by writing a small Arduino sketch that displays the RFID’s unique ID number. I then store this number inside a new sketch that controls the fob comparison that will either find a match and send that unique ID number to Unity to load the corresponding character, or will return 0 for a no match.
The Basic Gameplay and Levels
The player starts off with Julia the archer. She then must travel to each world through the portals at the end of each transept. The first transept on the left of the main hall is ZombieTown. As the player progresses new characters are found and introduced into the player’s swappable character list. This assortment of Heroes allows the player to play each level multiple times with different characters that each in their own way provide a unique way to play the level.
The Main Temple
The first area is the character temple where the player can swap in different characters and visit each world with whichever character they choose.
In ZombieTown the player has to rescue the sheriff trapped in a room on the other side of the map, a map filled with zombies. Once the player rescues the sheriff, the player can now play as the sheriff and enter the Prison to help Will the Wizard escape so that they can secure crystals all over Wizard Hill.
The Prison is a large level with many enemies and the player sneak by convicts undetected, find Wade the Wizard then escape again undetected, scale the walls back to a portal to the Temple.
Once the wizard has been saved from the prison, the player can now swap in the wizard and enter Wizard Hill. In this level the player has to fight several wizards, find the crystals that will help him return to the temple and destroy the evil Wynton the Wizard.
This is still an ongoing project and the next thing to do is add better/faster animations, a smarter AI for the enemies, currently they just chase the player and apply damage only on collision. Then add a weapon system that can interchangeable between the different characters.
More to come shortly!
Thanks for reading!