The thing about game development is there’s a MASSIVE ton of work even for something small.
For example, imagine the player opening a door. The amount of work involved could be
Concept art for the door
3D modeling the door
Unwrapping/Texturing the door
Animating the door to open/close
Importing the door into the game and ensureing it fits and is scaled correctly
Programming functionality for the player to be able to grab the door handle
Programming functionality for the player to be able to move the door back and forth realistically
Audio for when the door knob turns
Audio for when the door opens
Audio for when the door closes
Particle effects to be created and played once the player has successfully opened the door
That’s just for a door… We have a whole game to create in VR.. We need to find as many optimal ways possible to make the game better.
Small changes, big rewards
Sometimes you’re able to find things that with just one small change, it makes a huge difference. For example, we’re using the Unity Standard Asset Toon Shader. Initially we were just using the default UtilToonGradient (which is just a gradient on the toon shaded object that goes from white to black) It didn’t look bad, but it wasn’t quite right, everything was a little too dark. After completing what was set out for the day, I had a few moments to work on whatever I wanted. So quickly taking 3 seconds and making a new gradient that just went from white to light grey made a huge difference to the game visuals.
Even something as small as adding a simple particle effect to something suddenly brings so much more life to the game. Once you get enough of these little changes into the game, everything starts to really come together and that polish you’re expecting slowly gets closer and closer with not as much effort as everything else.
Below is an example where we were initially just showing a stack of money disappearing when the tip amount goes down.
But I had already made a “make it rain” particle effect that took 30 seconds to modify in order to create a particle effect that makes sense being played when the tip amount goes down
The food cannon is a game mechanic we added where once a day (a day being 6 minutes of real time) you have to go on lunch break. During this break we have implemented various minigames for the player to experience to break up the gameplay a bit. As you can see below, there’s a cannon shooting hotdogs at you. Your goal is to grab them and eat as many as you can in order to increase your tip modifier.
The model of the food cannon was based off of those elementary/high school TV carts that your teacher would roll in whenever there was a video to be watched. Every kid looked forward to that moment. When the giant 500lbs 25″ TV rolled through the door and the teacher would play one of those really old educational VHS tapes.
While designing the progression system, we had to think about how exactly we were going to make each level of an item upgrade feel. There had to be more than just a visual upgrade. Each upgrade should feel more efficient, more fun, as well as look prettier.
This is where the flamethrower comes in. The flamethrower is one of the upgrade levels of the oven. We thought it should feel more efficient than taking the time to put the batter into the oven. It should feel a lot more fun considering guns feel pretty awesome in VR. Last but not least, it should look badass cause it’s a freaking flamethrower.
I find it handy sometimes to draw what I want to model before I 3D model it. Whenever I’m creating an art asset, I NEED to look at references. It helps with visualizing what I want the final version of my model to look like. It also helps me find ideas that I really like and want to include in my model.
So this version of the flamethrower made it all the way into game before I realized one major flaw….If the player uses the trigger button to pick up the object, and they’re holding that trigger button to keep that object in their hand…How are they going to “shoot” the gun… Both of us HATE when VR games use the Vive’s grip buttons to pick up items, so it was back to the drawing board to design a better functioning flamethrower.
The solution was easy, I just needed to add a push button on the flamethrower (and any other gun type object we design) to replace the pulling of a trigger. It was a really silly oversight.. But sometimes I guess I imagine so hard in the back of my head exactly how something will/should look that I forget to question how it’s going to work exactly.
So this is what the flamethrower looks like today so far. The texture/materials aren’t final at all. Nothing is ever really final until we ship.. This design should hopefully feel intuitive enough to the player that they press on the pad on the Vive controller instead of pulling the trigger in order to shoot. But that’s something we should be able to figure out with some quick play testing.
Below are some gifs of our core gameplay mechanics working for the first time. Since these are the first times a lot of them have evolved since they were taken. What I find interesting about mechanics working the for the first time is that something may work exactly how it’s supposed to technically, but you can tell that it doesn’t feel at all how you thought it would.
Something as simple as putting cake batter into a pan and moving that pan has a lot of moving parts and mechanics that you need to tweak in order to feel just right. Everything also has to fit well with each other too. You should be able to establish a flow that feels good to the player. That’s just a couple of mechanics though, we’ve got a whole game to build..
The dispenser is what we use to dispenser both batter and icing for the player. In this gif the player has chosen to dispense some chocolate batter into the cake pan. We initially had the cake batter not parented to the cake pan like it is in the gif. This caused the player to have to slowly balance it as they were carrying it into the oven. We found this to be really annoying as the physics didn’t work how they would in real life. It felt annoying and frustrating when the batter would fall out. Also batter usually isn’t a solid enough object to just fall out without being poured out..
The oven is what is used to bake the cakes, obviously. There’s a single button that open/close the oven door. The oven would turn on automatically as soon as the oven door shut. If the player left the cake in too long, it would burn and become unusable. The first model of the oven that was done was HUGE due to the fact that we thought we wanted to start off by baking at least 4 cakes at a time.
This is the dispenser dispensing icing for the first time into the icing cup. In this gif you can see the icing appearing on the spatula and with a single touch covering the entire cake in icing.
Getting frosting working was a little more tricky than the other mechanics. Kyle did the programming for it and I believe what we’re doing is a raycast from the tip of the frosting bag down to the frosting ring. There’s 20 pieces of frosting that can be “activated” once the raycast hits the collider. As you can see in the gif, it’s too precise and can be really annoying for the player. This is why you test your mechanics early. You need to find out early if something isn’t working how you thought it would, and what you can do to improve it.
Using the scooping cup, players are able to scoop up toppings and pour them onto their cake.
The upgrade menu is the menu that the user can use to upgrade items in their bakery. We needed to design a menu that was easy to navigate, the least amount of effort for the player, and something simple and not over-complicated. We would have to think about how many items we can show at a time. Would we have to have a paging feature? How small is too small?
The idea for this first sketch was to put all of the upgrade menu items on the counter top. This would allow the player to easily touch and interact with the menu without ever fearing that they would have to reach too far. Once the player had gone through some menus, they would eventually see the 3D objects of what they wanted to upgrade. Basically like a hologram on top of a table. After pitching this idea to Kyle, he gave me feedback suggesting that putting anything where you have to look down can be potentially a poor experience for the user. This would be due to the fact then when you look downwards in VR it can feel like the headset is going to fall off. Another reason was because when you look downwards in the headset, sometimes you are able to see outside light coming in and it makes the experience a lot less immersive. So it was back to the drawing board.
This time it would be the same idea, but on our order board. I quickly made an animation that would bring the order board closer to the player. I also ended up scaling it smaller to ensure the edges were all reachable by the player without having to stretch. The background of the order board would also have to change to something transparent as it felt very intrusive to the player. Having it more transparent would also allow the player to see things they were upgrading (such as the wallpaper) more clearly.
There was still one issue we were having with the upgrade menu layout. Everything felt too small and too far apart. I was afraid that if the elements weren’t far enough apart, then players could accidentally press the wrong buttons. Kyle sent over a solution to all the issues we were having troubles with though, and we haven’t looked back since.
Initially when Kyle showed me his concept I thought to myself “..that’s a lot of iconography… that’s going to take awhile due to how many things we have to include…” BUT THEN I REMEMBERED HOW AWESOME UNITY IS!! So I just took 3D models and slapped a flat unlit white material on it and BAM, looks like an icon with 0 effort.
This menu system was built in a single day though, so throughout some more dev time it’ll probably change more (for the better) and we’ll ensure that the readability and interactions are exactly how we (as players) want them.