Moving forward on my progress over the summer, I continued with grey-boxing my game level in Unity using the ProBuilder plugin. ProBuilder is very useful for fast prototyping, using 3D modeling tools that are intuitive and simple to create game design levels. The advantage of using such a plugin within Unity is that you can quickly map out a level design and it is ready to be playtested right away. Once I was happy with the overall design, I moved on to exporting my level as a playable VR demo for my Oculus Quest 2 headset.
Learning how to create my very first VR app was quite a challenge, however also a very exciting process at the same time. It took a lot of trial and error attempts to get a playable build running and viewable on the headset. I used a combination of resources from Unity Learn, YouTube tutorials, and reading the official Oculus documentation on developing with Unity to guide my process. The biggest issue was making sure Unity was correctly installed with the proper Android SDK build tools and finding an install version of Unity that was compatible with the tutorials I was following. What I learned was that Unity updates VERY frequently, and therefore it is important to pay attention to which version of Unity you’re using.
Once I had finally gotten a playable demo viewable on the headset, it was very fulfilling and satisfying to see my level in virtual reality for the first time. From doing a playtest and seeing the app for myself, I was able to notice what needed revising right away. Although there were many things that needed to be fixed, I was very proud of myself for achieving this step. Playtesting allowed me to observe changes I needed to make such as realizing that the doors were too narrow, the overall environment felt too small, and that the player camera eye-level felt too ‘tall’ and was poking through the ceiling in my grandmother’s house. I also noticed that there was a slight sensation of ‘floating’ as the player was moving with the locomotion settings I had entered within Unity.
After taking notes on what needed to be fixed, I went back and edited the level within Unity again to account for the changes. I scaled up the entire environment and added an additional level to the Toronto living space to make the Shanghai street feel less awkward when the player exits the Toronto portion of the level.
I also imported some free nature low-poly assets from the Unity asset store to help add feeling to the environment and to help me visualize more of what needed to be adjusted in the level design. Creating a separate window for the ‘Game’ view helped immensely with seeing getting a quick sense of the player’s view.
When the new revisions were complete, I re-imported all of my assets into the Unity file with my VR setup and proper packages installed and created a new playtest. Again, it was a series of trial and error from here onwards, figuring out things that needed to be tweaked, and adjusting level elements to make sure that the environment was at the scale that I wanted the player to experience my level at. I also experimented with adding placeholder assets to surround the buildings in the level, such as adding low-poly mountains to give a sense of ‘landscape’ and depth to the environment. All of these free assets from the Unity store are currently placeholders. I will eventually swap these out for my own 3D modeled assets created using Blender.
During this stage, I also learned how to add more lighting to the scene by adding two spotlights to illuminate light coming in through the windows of my Toronto lived space and the front windows of my grandmother’s house in Shanghai.
Things that I took away from this experience:
+ Having the correct Unity install and packages is very important!
+ Playtesting is a crucial step in making sure that the environment objects are to the correct scale according to the player’s view
+ Adjusting the locomotion to ‘teleportation’ mode instead of ‘continuous’ mode to reduce the feeling of motion sickness
+ Adding basic VR interactions to the level such as grabbable objects
Now that I am happy with my level’s prototype, I will begin swapping out the grey box level with 3D models made in Blender, using the prototype as a guide for all of my modeling.
Links to other project documentation posts:
+ 06.30.21 — First Blog Post: Learning Unity and greyboxing
+ Google Slides Progress Documentation
— MDes Thesis, IAMD Program at OCAD University
Primary Advisor: Emma Westecott
Secondary Advisor: Immony Men