This is documentation for a game heavily inspired by both James Bruton's mixed reality giant Lego gun and the Master of Shapes mobile room scale plugin. The game mechanics are designed around a shooting gallery setup. Room scale tracked devices paired with a mobile app built in Unreal Engine can shoot at targets that occupy the same space in the physical and virtual world.
Pinned game is a puzzle shooter composed of:
Mobile device tracking with Vive Controllers
Sixteen servos controlled by the Adafruit Servo Shield
Unreal Engine mobile app with sixteen targets
Physical target display of the same sixteen targets
The final game build was pushed Saturday afternoon in time for the evening party. I was able to finish the countdown timer and debug the game reset system. Unfortunately there wasnt enough time for scores so I recorded some manually.
The grip buttons on the Vive Controller are not easy to use, the large top button would have been easier to change ammo colors.
Figuring out the game.
Pinned Game High Scores (and low) out of 16 targets
I didn't get everyone's name down but here are a handful:
Achievement 0 points
Too Many notes
I got lucky and had some helpful attendees explain the game to others! It was difficult to explain but really rewarding when the game finally clicked and players had that 'ahah' moment.
The targets dim and angle backward when hit.
One handed, surprisingly the bootlooping Nexus 6P survived the whole night.
Searching for targets.
Lighthouse center top, and one off to the right.
A small line formed, too bad I didn't have the second controller ready yet.
The Vive Tracker is an accessory that quickly allows prototyping a tracked object in VR. This was my first choice for controller tracking, but poor support in Unreal Engine, and the price of multiple trackers has forced me to look at alternatives.
The Vive Tracker:
The Vive Controller:
In theory the Vive Tracker would allow tracking without a headset attached. SteamVR has two options that look promising, a setting 'requireHmd' or a null driver option that fakes an attached headset. The first problem is that Unreal Engine does not honor setting requireHmd to false. Second, the Tracker firmware must be updated to mimic a controller so that Unreal Engine correctly recognizes the button input. The third problem is that the null driver is only meant for development causing severe lag each time I've attempted to use it.
This leaves the Vive Controller. I have access to at least four controllers which means I can leave one charging and also have spares. Additionally there are some 3D models available to augment the Controller. Combining these allowed me to attach a smartphone to the Controller. Another benefit of the Vive Controller is I won't need the bluetooth game controller, which is one less piece to worry about.
I might have to update some of the net code because all trigger input will be on the server rather than the client.
I've included the FMOD plugin that imports FMOD Studio projects into Unreal Engine. From what I've read this will let me create dynamic audio events for game sequences. For the soundtrack I'm going to customize and mix in this: https://soundcloud.com/benhog/revisions15
I'll update the rest of the sound effects as well. FMOD has way more than I need but it's free for small games, so why not?
UPDATE on the cheap servos. One has already died which I expected would happen during use, but these have been sitting mostly idle so I'm not sure what happened. I've got three extras left...
During the first test the protective plastic was left on and caused the acrylic to bubble. This was a spare piece of light guide acrylic which I ended up not liking as much as the standard clear cast acrylic.
For the second try the protective paper was removed and the job rerun.
The finished piece looked great so the next step was a full 18" x 24" sheet.
I was able to fit nine pins, with one defect, I'm left with the eight needed for a single sheet. An extra sheet is on order to complete the sixteen total targets.