Overload (Puzzle Challenge)
Overload is a puzzle type game where the goal is to complete all of the tasks before the reactor overloads.
You will have a set time to complete the tasks and if you do the wrong thing you are penalised by losing time from the countdown clock.
You have an AI helper who guides you in the right direction in order to save the reactor.
What went Right
The Scene was perfect for this game
Circumstance: I found a testing scene for a force field asset which was exactly what I needed.
Cause: Looking for assets for inspiration and to save time led me to come across a perfect fusion reactor looking scene.
Recommendation: Having a look around for what assets are available early in the project can save you lots of time and make the project look very professional and high quality for not much extra effort and minimal time use. I recommend searching the asset store for the exact item and if you dong find any results search for similar terms. I found this force field asset whilst searching for space ship interiors.
I found the force field asset here
Using the Oculus Rift VR headset
Circumstance: I found that working with the Oculus Rift headset was a good experience and it worked very well with unity. By using unity’s play mode I was seamlessly able to test my game in VR with hand tracking.
Cause: Oculus Integration Package, past VR experience with Gear VR headset, the technology has developed over time.
Recommendation: Everything worked smoothly and with ease except for the Oculus avatar shader which I have mentioned later in the post mortem. Everything including hand, finger, fist head controls all worked straight away, I just needed to add a a rigidbody to the fingers so that we could interact with the world. The Oculus samples included a working example of this with their package.
Event Triggers and listeners
Circumstance: I used C# events and that worked well for broadcasting events out to other scripts which where listening and waiting for the triggers.
Cause: Experimenting with new techniques, improving efficiency, reducing reliability.
Recommendation: I recommend using events in the future, be careful that C# events need to have on enable and on disable scripting, otherwise you will have memory leaks.
I found this video useful in helping to explain the concept and for example code.
What went Wrong
Oculus Avatar shaders
Circumstance: For some reason the Oculus avatar’s shader wasn’t working (pink texture displayed)
Cause: Forums suggest that it may be a bug with the current version of unity I am using (2017.2)
Recommendation: I used a 3rd party set of hands to replace the Oculus avatar. These hands came with their own material and that bypassed my problem
Testing away from home
Circumstance: I do most of my work from home where I have a rift set up, but when I do work in class I don’t have any way to test the hand movements .
Cause: Limited hardware availability
Recommendation: A solution if I had the time to develop it would be to use a mouse to replicate the hands positions. This would be achievable by attaching a small sphere and rigid body to the mouse cursor, then having the mouse move in a normal XY but then use the scroll wheel to move in the Z.