Defender is a one level demo game that shows the SteamVR capability for use in Unity development. In Defender, you play as a hero that goes to the village to beat the bandits, save the hostage and diffuse the bomb to save the village. The level has two objectives: defeat all the bandits and diffuse the bomb, by throwing the bomb to the sea. The game is tested on the Oculus Rift platform but it can be played on HTC Vive due to SteamVR cross-platform capability.
FEATURES IN THE GAME
The level is built on a village environment, consisting of five bandits in total, a hostage and a bomb located at the center of the village. The player can teleport (the type of locomotion added on purpose to avoid health-related problems for the user), and the hands to punch. The player can also grab objects (in this case only bomb can be grabbed) and throw them. Additionally, the player can utter specific keywords in the game (speech recognition feature).
I wanted to emphasize the immersion a player can have inside a VR game. The primary reason for doing an unarmed boxing type game is to make the player use both hands. The whole level planning is made based on the Unity Assets that I downloaded. The Unity village assets had a scene with a whole village set up. It set up a perfect area to show what was needed to show on a whole level. Also it saved me time to plan and build the whole level from scratch. Here is the sketch of the whole level and where the elements will be placed inside the game.
Due to access of Unity Village environment, much of the time has been saved for avoiding building the level from scratch. Next I have added bandit characters and placed them based on the sketched map. The character models and their separate animated actions are made and imported from Mixamo.com from Adobe. Much of the time has been spent on programming the whole game. Each day a specific functionality is tackled.
During the development some considerations are taken:
- Movement has to be done through teleportation to avoid motion sickness.
- Player height is taken into consideration.
- The game is timed, so the player has to finish defusing the bomb before the bomb blast and the player fails.
- Game performance optimizations are left out, the primary objective was to show the functionality works.
- Make full use of standard game development techniques used in Unity development.
Testing and difficulties
The room where I made the game is pretty small and I had to test in a space that is not optimized for a VR environment. Also, my system runs on i5 and GTX950 which is not recommended for use in VR game. The whole game is made based on SteamVR SDK which is very much optimized for HTC Vive, but the game is tested on Oculus Rift. Even though the development is finished, there are some inconsistencies and bugs, that needs to be made. The user can fall from the terrain, frame rate issues, improper collision detection, response time are some of the issues that needs to be tackled in the future.
Here is the final experience of the game.
WHERE TO GO FROM HERE
This is just a start. Although it is just a demo, it has been a huge learning experience. I can use some of the elements in future when I make different games. I can reuse the same code (to save a lot of time), in multiple projects. Right now, my main concern is to polish this game and make it play-worthy for everyone. Also, I can explore adding more features in this game and also use it in future projects. Another challenge would be to use Oculus SDK to make full use of the Oculus Avatar system and VR touch features.