Invasion 101: Perception is essentially "Where's Waldo?" for mobile VR. It was developed by a team of three developers consisting of two artists and a programmer(myself). We made this as part of the Oculus Mobile VR Game Jam. The Game Jam durations was one month with a milestone due every week to show progress and push along development.
There are playable maps, multiple difficulties, and a highscore table. The objective of the game is to find a specific object from the clue that's given. In the game maps there's a UI board that shows time, score, and the clue for the object. The clues are the primary color of the object, the first letter of the name of the object, and a number representing an amount in a group of objects.
Starting the game shows a "How to Play" menu with a description of the clues and gameplay. The game is played only with the touchpad on the side of the GearVR and your head to look around the map. To select an object you simply look at it and tap the touchpad. Correctly matching objects earns you points, while incorrect ones gets you nothing.
What Went Right
Playable Prototype since Day 1
Since the game had no locomotion, the main chunk of work I had to make was the class for items so the game knows the characteristics of the item. Prior to actually working on the game I had already known exactly what was needed to create the class so by the end of the first day of development, I had a playable demo with the core mechanics. You could select objects, gain score, and had a timer that ended the game when it ran out.
I had been initially worried about creating a complex and/or really great looking game since the Game Jam was about making a VR game on a mobile platform. Making a game for VR on a phone can make any great idea difficult to do without killing the phone or a terrible experience for the player. So I had told the artists to focus on textures and have lower poly models to ensure a silky smooth 60+ FPS game.
The game was also entirely done on one Unity scene. I had set up different "Scenes" within that scene by enabling and disabling objects. By loading all of the objects at once in the beginning, I didn't need to deal with loading screens and memory build up.
During the early playtesting periods it was obvious that this game needed a crosshair. Doing a crosshair in VR is actually challenging at first. You can't simply slap it in the middle of the screen like in non-VR games, you can't see it unless you move it away from the player. You also can't just have it floating x amount of distance from the player. Not only would it visibly clip through objects in the world, everyone has a different Interpupilary Distance(IPD) which could cause the crosshair to not be usable for some people.
To solve this problem you would need to have the crosshair tied to the center of the cameras and have it move to the point that the player is looking at while keeping a visible scale, essentially like a laser pointer. Initially this wasn't an easy task, but after looking around the community I found someone who had made a tutorial for a VR crosshair. eVRydayVR had made a Unity tutorial for making a VR crosshair which helped a great amount.
Easy Build Iterations and Playtesting
This was actually my first time at mobile development, so I wasn't sure how to go about building and testing the game. I had followed a presentation by Mark Schoennagel about setting up Unity with the Samsung GearVR for development. What it came down to was just plugging in my Note 4 USB charger into my computer, hitting the Build/Run button, then plugging my Note 4 into the GearVR. It'll automatically start the game you just built, as well as install the APK onto your phone to play whenever you want.
What Went Wrong
For mobile VR you have a choice of using a gamepad, the touchpad, or a combination of the two for input. Since we didn't have a gamepad to use our only option was the touchpad, which presented a roadblock for us in the original ideas we wanted to go with. We weren't entirely sure about how to create a fun VR game with just a touchpad, which I think held us back in creating a fun idea.
Rebuilding the Project
For about half of the Game Jam I was building the game in Unity 5, which does work with the GearVR but has some bugs. I didn't experience these bugs until we imported the actual art for the game. The main bug that was present was texture bleeding. Essentially moving your head left or right would make random textures from one object to be mapped onto a different object. This was something I couldn't figure out until I remembered Oculus warning us about some minor bugs using Unity 5. So I rebuilt the project in an older Unity version and it fixed the problem. This could've been avoided if I had experienced the bug earlier on, or even just heeded Oculus' warning.
One of our artists had a vacation planned out of country for a week long before the game jam, which happened to occur during the last week or so of the jam. So while he had completed his work before he left, some stuff needed to be fixed while he was gone and he wasn't able to do it until he got back on the last day of the jam. This wasn't too much of a problem, but it did add a little extra stress on that last day crunch. We also had sporratic meetings during the jam due to time constraints, we still got the work done for the milestones but I feel we could've had a stronger project with better communication.
Now that the Jam is over and the finalists have been selected, we're looking forward to doing another project. Not only are we all motivated and inspired to work on something new, we've added another artist to our growing team. This has been a learning experience not only for us, but for every developer in the Jam. We'd like to thank Oculus and Samsung for bringing this Game Jam to life, creating hundreds of games and experiences for a platform that not too long ago didn't exist.
For more information on our upcoming projects, follow @kdd9000 on Twitter.