Pressure Cooker: Candy Sorter
(XR Concepting >)
In the second week of the semester we started working on our own projects for the pressure cooker. I started out with a different concept that eventually evolved into what I presented on Friday. This happened naturally by getting feedback and brainstorming. My first idea was based on Wario Ware minigame: link. I thought it would be fun to see animals walking around and then having the player answer questions about them. After talking with a teacher he told me that it would be too much to animate animals for this small prototype and suggested replacing the animals with something like a candyshop where you answer questions about the types of candy you see in the store. This sounded fun and cute to make, but I was still worried that the randomization would be too much. I did start working on a candy store scene because I liked that part a lot.
After setting up Unity to work with my Oculus headset via OpenXR, I did not have a lot of time left because it took a while to have everything working correctly. I used tutorials like this one: link to learn how this works and also to learn how you program things like grabbing objects. I redefined my concept and it became a sorting game with a pivoting board where you slam the board to sort the candies in boxes:
The above is the prototype I tested on Friday. I have a separate post for that: link.
After the testing I took feedback and also changed some things to solve bugs. I added a menu where you can choose the old version (with the pivoting board) and a new version with a static table where you grab the treats and throw them into the boxes. This new version also has a garbage bin where you can throw things that don’t fit in the boxes. I also added music.
How did I make my game (XR Development >)
For this project I used OpenXR because this works the best with Oculus Quest 2 and at the beginning of the pressure cooker I still had the idea that I wanted to program hand tracking for the Quest if I had some time left (I did not). To work with OpenXR I installed it via the package manager and the first thing I added was a VR Rig. This defines where the player is in the area. The VR Rig also contains the VR Camera and the hands of the player. For the menu I also added rays which you can use to choose a button to press. The hands also have a script which can spawn either a controller model or a hands model and the hands can be animated based on the buttons you press.
Spawning treats
The code for the spawning is also really simple. I’ve used a coroutine for this that executes every X seconds (this is adjustable via the inspector as well as which treats to spawn).
The treats all have a rigidbody and a mesh collider (and in the pivoting version this is the same for the board so you can push it with your virtual hands). The treats also have a XR Grab Interactable which makes them able to be grabbed and thrown by the player (so you can throw them in the boxed).
UI and Canvas
For the main menu I learned about UI (also for the text above the boxed). I learned that you have to assign the VR camera to the canvas instead of the normal camera and that you can make it a static object by changing it to world space instead of screen space.
Animations
For the animations for the hands I learned something new from the VR videos on YouTube I mentioned earlier. It is using a blend tree to blend between animations like not pressing the trigger completely results in only curling fingers instead of a fist.
What did I learn?
I learned a lot from this pressure cooker: I learned how to set up a VR game (for Oculus) and how things like a canvas work differently in VR versus a normal game. I also learned a new type of animation where things flow over into eachother so that you can have in between stages of the animation where for example your hand is going to make a fist but not completely. I also learned about grabable objects and raycasting for pointing in VR.
If I develop this game further I definitely want to make it with a score system and fix the pivoting board to be less buggy.
Testing Pressure Cooker
After we finished our prototypes we started testing with clasmates on Friday. I prepared some questions and explained the game before someone started playing. The best thing I saw during testing my game was that everyone was having a lot of fun. These are the questions I prepared:
1. What do you think about manipulating the board with your hands?
2. What do you think about your position in the environment?
3. Did you experience framerate issues?
4. What did you think about the speed with which the treats fall?
5. Is it clear what you have to do?
a. Are the signs in the game clear?
6. Is it fun?
7. Any other feedback?
Everyone that played answered these questions and I used this (and my own notes) as a guideline for making my prototype better.
After the testing we filled in a Miro board with insights which you can see here:
This made us think more about what happened during testing and what we discovered.
Here are some pictures of people testing my game:
Assets for the pressure cooker
For my own project I used the Unity Asset Store to pick out some assets to use. I picked assets that were cute and low poly because I liked the style and I wanted to have the game run well. I changed the colors of some of the other parts of my scene to fit in more with the cupcakes and other things I imported so that it was more cohesive.
Unity Development
At the start of the pressure cooker we had a class in setting up Unity to work with SteamVR. Because I study Game Development my job was to help non-developers with the tutorial and telling them more about Unity.
From this class I learned how to set up Unity with SteamVR and make a simple bowling game.
Story Telling
We learned about story telling in games/experiences and how there are different types and ways to tell a story in VR. For this we watched a video that explained all this and then we chose one of the concepts of week one in a group and made a story about it. We chose for the water pollution concept and thought of a story about a turtle that discovers pollution and tries to stop it with a friend. From this exercise I learned how different story types can be used and how powerful a story can be for an experience and how to involve a player better in the experience.
Testing white boxing prototype
On the last day of the first week we tested one of the prototypes we made in Styly. We got feedback from the class which we can use if we want to develop the prototype further into a real VR game. We wrote the feedback in a PowerPoint which you can see further on the page.
I really liked the fact that you can test your environment easily before you’re too invested into a whole Unity project.
White Boxing
After learning about brown boxing we learned about white boxing, which is a step further. You make your prototype with an application and then you can test the prototype in VR or in AR-view on your phone. We used Styly for this. You can import assets and place them in a world. Our concept took place in a living room so I tried to envision a living room with decorations but also with the objects we needed: for instance a pc so you can check spam e-mails and a phone for spam-calls.
Blender
On Wednesday of the first week we got a tutorial with Blender. It was really fun and I made a beginning of a house with a door and doorpost. I learned how to manipulate shapes and how to do UV mapping. I have done UV mapping once before for another project but it was nice to refresh that knowledge. UV mapping is where you tell the model how the texture should be applied on the model.
Brown Boxing
After we defined our concepts with the groups (see link) we had to make our concept with brown boxing to test it with other people. Brown boxing means making the idea of your concept clear with cardboard and other easy materials. We got some good feedback from the testing, for instance: we had to make the spam-quiz simulation more clear and how you can walk should also be more clear.
Ideation and Brainstorming 2
On the second day of the semester we continued with making concepts. This time we had to form groups and pick a problem to make a VR application about. Our group picked the dangers of scamming, because there are a lot of people who do not know how to recognize a scam which makes them very vulnerable. We then answered questions to define our concept which we wrote in a document:
Ideation and Brainstorming
During this first exercise we had to form groups to make concepts. We got a few cards with do’s and dont’s. With the first group we did a type of brain storming where we had to write some ideas and then pass our paper to the next group member, who then iterated on the ideas. With the second group we all had ten minutes to write as many ideas as possible.
I preferred the first method, because the ideas got more complete and the ideas were more of a mix from everyone’s mind instead of only one person per idea.
Concept 1 Concept 2