Goals:
Our main goal when working on this project was to create a fun 'party' game that was easy to access for a multitude of people, as long as a VR headset and some mobile phones were available. This goal eventually turned into our game, which we have chosen to call Gnome Hunt, a game in which an exterminator is hired to rid a garden of gremlins disguised as garden gnomes. Because we chose the theme of garden gnomes, we also wanted to make sure we took inspiration from their origin - nordic folklore. Garden gnomes are often described as mischievous creatures in folklore, and that is the basis for how we chose to design the gnomes and gremlins. Lastly, as required in the course, we wanted to make sure we implemented both advanced interaction and advanced graphics.
Motivations:
Our biggest motivation for choosing to create this game was that it allowed us to explore, learn, and implement virtual reality and multiplayer networking, as well as all of the other fun aspects that come with designing a video game. Because the garden also hosts actual garden gnomes, whose intentions are good and should remain in the garden at the end of the mission, we also wanted to test the memory of the participants. We also wanted to make sure we created something that was both suitable and accessible for most people, regardless of their physical capabilities. Lastly, we just really enjoy the concept of garden gnomes and find them to be very fun.
Advanced Interaction:
We chose to utilize the virtual reality headset Meta Quest 2 because it is a mid-tier headset that is quite common, it can be used both plugged in and wireless, and it was steadily available to request from VIC Studio at KTH where the project was created. None of us had ever worked with virtual reality before, so it was also a good learning opportunity for all of us. Because we wanted to create a 'party' game where multiple people could join, and we wanted a game that would be accessible in a different way than just VR, we implemented phones as controllers. The reason we chose phones is because most people carry one around, which makes it both easy to use and easy to access. At the start, we had the idea to utilize the phone's built-in gyroscope to control the movement of the gnomes, but we settled for a joystick in the end. This is because using a gyroscope can be difficult for people who do not have full control of their arms and hands, and thus a joystick was the more accessible alternative.
Advanced Graphics:
We wanted to create a cozy party game, inspired by Nordic folklore, and because of this, we had to make some early decisions on the art style of the game. We settled for a stylized design, as we felt this suited the purpose of the game the best. This set the tone for all the assets that were created for the game, to ensure we had a coherent look across the entirety of the world. We wanted to make the world immersive, so the VR player could feel like a part of the world. Because of this, we settled on applying a wind effect to all vegetation, so that the world felt more alive. This was made using shaders that were applied to the materials of the leaves.
To gain greater control over the project’s visual style, we used a customized version of the Universal Render Pipeline (URP), enabling advanced rendering techniques for high-quality visuals. This customization allowed us to implement a dynamic fog system, enhancing depth and immersion, and carefully configure lighting settings to enrich the game’s atmosphere. By tailoring URP, we could fine-tune elements like shadows, ambient occlusion, and post-processing effects, bringing a polished, cohesive feel to the world and immersing players more fully in the game’s environment.
I focused mainly on getting the networking aspect to work in the start. I then worked on the in game loop, meaning the game timer and detecting how many gnomes are left, as well as who won the round. I also did the gnome timer which is the transformation into gremlins when the gnomes stands still for too long. I also made the username system so you can see which gnome you control.
I mainly focused on the VR-player's experience, where I worked on the controllers and actions. One example of such an action is shooting the gun, which destroys the gnomes, and also activates the penalty system if shooting the wrong gnome. In short, I made the VR-player able to "do stuff".
I was involved in many areas of the game but mostly regarding networking, gameplay programming, UI, and general bug fixing. I also created a soundtrack for the game and handled the audio programming.
I worked with the Unity Universal Render Pipeline creating shaders and configuring the lighting system, atmosphere, post processing and performance settings. I also worked on parts of the UI functionality and game logic.
My main focus was the overall assets of the game. I created and animated both the gnomes and the gremlings using Blender. I also created a majority of the assets you can find in the game, such as the vegetation and the house, also in Blender. For some parts of the vegetation, such as the trees and the grass, I also created a shader to achieve visual movement in the wind using Unity's Universal Rendering Pipeline.
Challenges:
In the beginning of the project, we identified some challenges we expected to encounter during our work. The first was making a multiplayer game that was playable with different views/perspectives, on different platforms and different controllers. This challenge held true, as most of our big struggles related to making the game run on both VR and on a big screen, as well as the multiplayer aspect of using phones. Another challenge was our lack of previous experience in the areas the game would require, so there was a lot for us to learn and implement. This also held true but was mostly an enjoyable and insightful process that has led all of us to acquire new skills that can be used in future work. Lastly, we identified the challenge of finding and/or designing assets and graphical objects. We learned that the Unity Asset Store is a great resource for quality assets, both free ones and ones that cost money. Because we settled early on our desired art style, creating the assets was not that difficult as there is a lot of inspiration out there and Nordic folklore is a very familiar topic for us. This means that the challenge was not as great as we had first figured.
Obstacles:
One of the biggest obstacles we met was utilizing Unity Version Control and syncing our project across all of our devices. Initially, we had a tough time setting it up, and during our work, we encountered a lot of merging errors and things that would disappear between changesets. In hindsight, it would probably have been better to work using GitHub, but we lacked the time to make a switch and therefore continued using Version Control. However, once all the major merging issues were solved, our experience ran a lot more smoothly towards the end.
Another big obstacle was implementing multiplayer networking. We had many issues that hindered our progress significantly and left us with a lot of work to finish in the last week, as our multiplayer was still riddled with bugs that needed fixing.
There are of course a lot of obstacles that appear when you work with VR, for instance, cybersickness. This meant we had to take extra precautions to ensure that the VR player had a pleasant experience that did not leave them with motion sickness or other unpleasant effects. However, a VR controller comes with its own set of pre-defined controls that we had to alter. We noticed that the snapping of the camera increased cybersickness, and certain tools such as the teleport or climbing options were not relevant to our project. These were not easy to remove and caused us some trouble to fix.
Lastly, the more we worked on our project and added new things, it required more and more computational power. Build times took longer and longer the further along we came, which meant we had periods of time where nothing could be done aside from waiting for the build to finish. This was somewhat mitigated by us utilizing a function in unity where builds are shared over the cloud but we still had the problem of long build times throughout the project.
Gameplay-wise, we drew significant inspiration from the game Prophunt and a previous project from our course, Peak Panic. Prophunt originated from games like Counter-Strike: Source and Garry's Mod, where players are divided into seekers and hiders. In this asymmetric setup, hiders disguise themselves as props within the map, while hunters work to distinguish them from real objects, creating a fun, competitive party game.
Peak Panic was a project developed last year in our course (DH2413) at KTH. In that game, players controlled a skier descending a mountain using their phones. When it was demoed, we were inspired by how it made participation easy and accessible for more players by allowing them to join the game via their phones.
Feel free to contact one of us using the following emails to get more information on the project
Sebastian Hällman {shallma@kth.se}
Lucas Kerslow {kerslow@kth.se}
Mille Kåge {millek@kth.se}
Emil Währme {wahrme@kth.se}
Lucas Åkesson {malake@kth.se}