
GAME ENGINE:
Unreal Engine 4
PLATFORM:
PC (Virtual Reality) - Oculus Rift, Valve Index and HTC Vive
CODING LANGUAGE:
C++ - Coded in Visual Studio
Blueprints - Visual Scripting Language in Unreal Engine 4
GAME CONCEPT:
Set in a dystopian future where one company, Arch has grown to be the largest company in the solar system. Like everyone else, the Player is forced to work in one of the many sorting centres on the planet Mars. However, the company holds a dark secret which the player can either expose or continue to hide.
The player takes control of employee #54267, who every day has to sort out the packages and meeting the daily quota. However, the player will have the choice to help bring down the Arch and it’s leader by doing things for the terrorist group ‘Union’. There will be two endings for the game, one good and one bad.
GAME PRODUCTION:
Thank you for your Service was completely developed by me, as a solo developer for my Final Year Project. As this game is much more complex than previous games that I have developed, each stage will be broken down into different stages. For more detail on how I made the game see my production diary below which shows each stage of development.
PROBLEMS AND SOLUTIONS
Throughout the development of Thank you for your Service, I faced many technical problems that had to be overcome. Here I will list the problems that I had, and how I found solutions.
Problem 1:
One of the earliest problems I had was to get the game working properly on Valve's new VR headset, the Index. This was a major problem because this was the main headset that my university used, which was where I was going to be final testing for my game. This was a major problem that had to be fixed.
From the beginning of development of this project, the game was mainly built on the Oculus Rift, as I own the headset myself and have the most experience developing on it (please see Trenchcoats). So, to get this game working on the Index, I had to lots of research in how to develop for the Index. After this research, I found that for it to work properly, I had to install a custom plugin into my version of Unreal called 'SteamVR Input for Unreal'. Once I installed this, it allowed me to access the input functions on the Index Knuckles. After some tweaking around, I managed to get my game working properly on the Index.
Problem 2:
The next problem that will be discussed is with the gameplay flow. So, in the game when you pick up a package, the player gets a list of requirements that they have to meet for the package to be sorted correctly. These requirements include a destination, which chute to throw down and what box it should be in. This box requirement was actually made up of two parts, a box type and size. When I played the game, I found this very easy to understand and I always got it correct. However, when I gave the game to people who have not played it before, they would get the box type correct but would never get the correct size. After seeing this, I decided that I should remove the size requirement because it made way too complex for the player and would ruin the gameplay flow.
Overall, I actually redesigned the whole system that I created for the boxes because the original way I designed was too cumbersome as it was designed around using a one class. This meant that doing simple things such as setting the correct model was made more complex because I had to check which box type had be chosen, set the correct name, etc. So in the end, I made three separate classes for each box type which made the whole process much easier because I didn't have to loads of code for very simple tasks, such as setting the name which had to be originally done with a function. Now I just set it in the constructor.
Problem 3:
Like with my previous game Trenchcoats, one of the major problems I was going to have to deal was with motion sickness, or VR sickness. This is a major problem for many VR games because it takes people out of the experience and breaks their immersion as they can't play it. To fix this, I designed the game so that game takes place around you in either a standing up or sitting down position. Overall, I think this was a good idea because it made development much easier, which was great as I am developing this game by myself and it eliminates motion sickness. Later on down the line, I might implement some movement into the game but I will probably design it the same way how I did it in Trenchcoats which was with teleporting the player around the level, as it doesn't cause as much motion sickness.