I looked for a project that would maximize the benefits of StereoKit. A mind map seemed an excellent fit due to StereoKit's ability to load assets at runtime, but I wanted to extend the scope and usefulness of mind maps to make them also be useful for training and entertainment. This would require complex configuration and test out StereoKit's dynamic approach to user interfaces.
What it does
Create linked node structures all around you to represent your idea. Use the inbuilt 3d shapes or images for the node and customise the colours or load your own. Nodes are added to locations, which are connected by portals. This allows you to arrange and optimise your idea and is an ideal way of using the space around you in VR / AR. Locations can also have their own background music.
Complex interactions can be included by adding buttons to nodes. You can hide and reveal nodes, change their colour, description and shapes and change a players health and score as they play through interactive scenarios. While in play mode, you can pick up configured nodes, carry them in your inventory and use them to interact with other nodes.
How we built it
I made extensive use of StereoKit's online documentation, demos and GitHub source code to understand how some of the features works. I love the hand menu and extended it to make accidental activation less likely while guiding the user in it's use. You now have to align two circles in 3d before you grip and trigger the menu.
Challenges we ran into
The keyboard input was a little restricting due to the lack of ability to control cursor keys. I didn't start the project until the 29th November so time was my biggest issue, but StereoKit helped me produce a very feature rich application in that time. I also struggled to fit all the functionality into the video.
Accomplishments that we're proud of
- The concept of extending mind maps for training and entertainment.
- Creating a feature rich project in a week.
- Making use of so many of StereoKit's features.
- The extensions to the hand menu.
What we learned
I feel that I have a good grasp on the capabilities of StereoKit together with it's design philosophies of hands-first and non-persistent user interfaces.
The game was created and tested using the Oculus Rift and I use a physical keyboard for input.
What's next for Idea Engine
- Add customisable lighting for each location using spherical harmonics.
- Investigate using wit.ai for speech to text.
- Allow user to record sound effects using their mic.
- Let user configure sound effects as part of the interaction events.
- Add multiplayer support.
- Increase features for interactive training / adventure games.
- Release on PC VR and mobile VR, taking advantage of OpenXR.
Sometimes the application has an intermittent crash in the SK main loop, but with nothing in the stack trace. It only happens some times and restarting resolves the issue.