Bring It Down v0.1

Concept selection

At the beginning. The most daunting task is selecting the right project to work on. In my case, I wanted to have a simple enough project that I could make significant progress in a few days of dedicated work but still expect to learn many new skills in the process. After going down all the game concepts I found interesting and doing some back of the envelope estimation, I came down with two to three generic concepts that would fit the timeline. Saying no to the more complex and rewarding concepts so that I could have a chance at completing the task was difficult. Simple mechanics, low content variety requirements and high replayability were key. In the end, the choice of a physics based puzzle game was an obvious one; once all the information was on the table.

Setting up the project

Having set up a few VR projects in Unity already, it was straightforward to set the core packages and configuration options so that it could build and deploy to the Oculus Quest. A lot of it is boilerplate:

  • Set up a new 3D project in Unity
  • Switch to build on Android
  • Import the Oculus framework package
  • Set the project settings to comply with Oculus Quest requirements (minimum Android API target, rendering pipeline support, options in the Android Manifesto, etc)
  • Test build to verify
  • Set up initial version control (git+sourcetree)

Fast prototyping with the Assets Store

After the boilerplate was done, I set up a simple scene with the Oculus-provided player controller prefab. I imported some low poly guns from the Assets Store and set up a simple "projectile" sphere. Then, after some rigging and instantiation scripting, I was shooting projectiles and had the basics of a First Person Shooter down.

Next, I set up some basic platforms and some cube-enemies to shoot down. After another trip to the Assets Store, I had some metallic crate materials to skin the platforms and give them more personality. With a bit more scripting, the platforms were reacting to collisions with projectiles and the Rigid Body physics were doing their part, simulating the effects of the projectile collision, bringing down the structures. There were some bugs with the collisions but those were quickly resolved once I figured out I needed to set the platform objects to have "Continuous" collision detection and the projectiles to have "Continuous Dynamic" collision detection.

Getting the core mechanics down

With all of that done, the remaining tasks required me adding some scripts to detect when the enemy-cubes hit the floor and destroy them. I also added a trigger for a win condition when there are no more enemy-cubes left. Putting that all together, I had a working level with a very basic but skinned structure and a few enemy-cubes to target.