top of page

Unit 3 Final Major Project

Introduction

Unit three is our final major project. For this assignment we have been tasked to create a virtual reality experience in a game engine of our choice. The purpose of this assignment is to develop our academic discipline skills by taking on a project that is relevant to our field of study.

Pre-production

For this assignment, we have been tasked to create an interactable virtual reality experience in a game engine of our choice. Our idea for this idea was to create a virtual reality puzzle room with an 80’s style spy film theme; like old James Bond films.

Heres one of the videos that sparked the idea.

The premise of the game was that you were an (unnamed) spy tasked with infiltrating the base of the notorious villain Sir Reginald Roland, an evil supervillain who is an ex military officer that runs an evil organisation hellbent on taking over the world. The goal of the puzzle room is to stop Sir Reginald Roland from launching nuclear missiles at all of the world’s top leaders. (We were originally going to expand upon this idea further but we never got around to it because of time constraints).

The game starts with the player character descending underground in an elevator, listening in on conversations between the villain and some unnamed henchmen. He hasn’t immediately realise the spy has already infiltrated his base of operations yet, so he isn’t holding back the information about his plan. When the elevator doors open and the player character enters the foyer, an alarm is tripped alerting him to your presence. Once he realises you are there, he starts talking to you personally through the speakers and starts taunting you and gloating about how unstoppable his plan for world domination is and how soon he’ll rule the world and there was nothing you could do about it. He arrogantly claims that the base is completely impenetrable and that you’ll never be able to reach the missile controls in time to stop the missiles. At the end of the monologue, a time limit starts counting down. The tone of this game is supposed to be comedic but dramatic.

The game would be split up into four separate rooms; the foyer, which is the first room that you enter, the library, the office and the missile control room. The goal of the game is to complete several rooms containing an assortment of puzzles to retrieve key cards that need to be placed into the control panel in the control room, so that you can input a password and press the big red button to stop the missile, and the other missiles by implication, from firing. If you failed the mission, a cutscene would play showing the missile launching into the sky. The villain would then gloat about his victory to you over a game over screen.

Production

The original plan for this project was to develop it in Unity 5 but there was some technical difficulties between the Oculus Rift software and the Unity software that prevented us from using VR support in the Unity game engine, so we used Unreal Engine 4 for our project instead. The both of us hadn’t used Unreal Engine 4 in a while so we were both rusty with the software, but we were still able to produce a decent demo of our game.

Peter’s development

Peter had two main roles for this project; 3d modeller and texture artist. Before we started production on this game, we had to plan out the layout of each room and catalogue all of the assets that we needed to create for this project. Peter and Sammy split the responsibility of modelling in half.

Peter’s first task for this project was to model many of the props and assets that would be used in the level. Peter worked on making the most necessary assets Sammy needed first and went from there. Peter modelled the building structure, the office desk, the reception desk, the office bookshelf (which Sammy reworked for the library), the keycard readers, the puzzle panel lock, missile, knife, books, and the globe of the Earth in the foyer. The modelling itself was pretty easy to do and quite fun since most objects were very simple to make and Peter was able to make and complete multiple objects per day.

Once all of the assets were modelled, Peter then cleaned up the topology of the objects so that they were easier to UV Unwrap. Peter unwrapped the models in Blender 3D and then applied basic materials to different parts of the mesh in preparation for Substance Painter where suitable textures were made. The objects were then exported as .FBX so that they can be opened in Substance Painter. Most objects were quick and easy to texture as they had very simple textures. The materials in the default texture selection in Substance Painter were good enough for the job for the most part and we only had to source a few other materials online like the marble texture for the floors. For most objects, it only took a few tweaks to the material layers to adjust them to how we needed them, such as the wood smart material for the bookshelf. Some materials needed a bit more extra work such as the golden plaques which used the gold armour smart material and required an extra layer to indent the letters using the font tool.

Peter textured the reception desk, most of the main building, the bookshelf for the office and the library, the keycards, the keycard readers, the puzzle panel lock, missile, knife, books, the globe of the Earth in the foyer, the library desk and table. Ultimately some of the assets that were modelled and textured did not get used in the final game because we ran out of time.

The object that took the longest to texture was the safe. It was tedious work putting on each individual letter one by one and when Peter almost finished it the first time, Substance Painter crashed and all of the work done on it was lost, so Peter had to do it all again. It crashed because it was autosaving to a folder that was already full. Peter would then have to redo it for a third time as it was unreadable in game compared to Substance Painter and was even harder to read in VR.

As Peter had not used Unreal Engine 4 in years, he was so rusty that he could only give limited help. Sammy did all of the work necessary in Unreal Engine 4 to get the game to a functional standard.

Sammy’s development

For this project Sammy’s role was to design the puzzles, model some assets, arrange the assets and program the puzzles using Unreal Engine 4 and animate the assets accompanying the puzzles. Before the project could go into production, we had to develop the concepts for the layout of the room, the objective of the game and the puzzles required to be completed for each room. The most fleshed out room in the game is the library. Sammy designed several complete puzzle ideas for this room, how they functioned and how they interacted with the other puzzles in the room. Due to unforeseen time constraints brought about because of technical limitations, we had a lot less time to complete our project. Because of this, we made the library our main focus for this project.

As there were so many assets that we needed to make in such a short amount of time, the responsibility of the modelling of the assets were split. Sammy modelled a table globe meant for the library which ultimately went unused in the final project, the library desk which was an asset that was taken from a previous project and then modified to fit the room, the table, the safe with individual buttons which were all supposed to be animated when pressed but do not in the final piece, the stairs and other minor tweaks to the final building design, the computer monitors, keyboards and mouse which were taken from a previous project, the keycard, and a box with a steampunk style lock on the front that never got used because the puzzle was scrapped.

Sammy handled all of the in engine work in Unreal Engine 4 such as the programming, lighting, collisions, physics and animations. The first thing Sammy did in Unreal 4 was to import the building into a project with VR support and texture it. This gave the player a starting area to teleport around in. Sammy modified the bounding box for the teleportation area so that the player can only go to the designated places. Once the play area had been imported, all of the assets were imported into the project and then placed into the scene, fully textured, according to the room layout. Once everything had been inserted into the scene, Sammy animated the globe in the foyer using the Level Sequencer.

Unreal has a unique method of programming called blueprints which is a visual scripting tool that uses nodes instead of writing line by line. There were three major scripts programmed for the library for the demo of our project; the keyboard on the safe, the scanner in the centre of the room and the script to pick up objects. The easiest of these scripts was the pick up object function as there was already a premade script in the project. Each object that used this script was tweaked slightly to fit their purpose. For example, the scripts for the coloured books contain unique tags such as RED, GREEN, BLUE etc. to work in tandem with the scanner script so that the scanner can function properly. The scanner also had a pretty simple script however it caused a problem where the scanner unwantedly interacts with the player’s hands and Sammy wasn’t able to find a solution for it.

The most complicated script for this project is for the keyboard on the safe. Sammy modified a Youtube tutorial for a number keypad to help program the safe keyboard. Each key on the keyboard was assigned a unique tag. Using a line trace activated by a button and originating from the centre of the player’s hand, the blueprint gets the component tag of the key the line trace hits, stores it and then compares it against an array to find the correct letter that should be displayed on the screen. The Enter key is excluded from this array and has its own function that changes based upon whether five or less keys have been entered or if six keys have been entered. If five or less keys have been entered, the Enter key acts as a clear key, clearing the text on screen so that the player can start again. If six keys have been entered, the Enter acts as a check button and the code is checked to determine if it is right or not. If the code is right, the screen lights up green and an animation where the safe opens plays. If the code is wrong, the screen temporarily lights up red and the text clears to allow the player another attempt.

Evaluation

Our idea for this project was to create a 15-30 minute VR puzzle room game consisting of four rooms. Each room would have multiple puzzles that connected with other puzzles in the other rooms. But this proved to be a too ambitious goal for our skill level and for the amount of time we had to accomplish this and because of technical issues we had even less time to complete this than originally anticipated. So we narrowed our focus down to a single room and making at least one puzzle fully functional for our demo. We chose the library for this as it had the most complete design out of all four of the rooms.

Even though we are disappointed that we couldn’t flesh out more of the project, we are ultimately still happy with what we had accomplished. Despite the fact that we were unable to bring to fruition all of our concept ideas for this game, we were still able to make reality a small portion of what we had envisioned. We were able to make one fully functional puzzle in the library which demonstrates what the full game would have been like. We were able to build the entire structure of the building in Unreal as well as multiple assets for each room and we were able to make it to a competent standard. The library is the most complete and the player playing the game wouldn’t realize the room is missing stuff as most of the assets for this room have been implemented, fully textured, into the game. To add life to the game, the globe in the foyer has been animated so that it rotates clockwise forever this helps fill out the room and adds to the room’s ominous atmosphere. The safe has also been animated to open when the player inputs the right code into the keyboard so that there is some visual feedback to show that they have solved the puzzle correctly.

While we are happy with what were able to accomplish in the time allotted to us, there are still some things that we wished we could’ve brought to completion. Outside of the library, the other rooms are completely empty and lack the assets necessary to bring character and purpose to each room. The foyer has some assets but still lacks things like the monitors, keyboards and mouse on the circular table, the bust of the villain and the puzzles the player would have to solve to complete the room. The office room and the control room don’t have anything in them to indicate their purpose. Aslo the one working puzzle we have functioning right now still has a couple of bugs that need to be fixed. The scanner collides with the player’s hands changing what the text on the screen displays. This is unwanted. Lastly, the physics for the books and the other objects that can be picked up feel weightless and can be placed through other objects causing collision issues.

To improve this project, we would fix the issues with the scanner so that it ignores any objects other than the books and we would create scripts to prevent the player’s head from going through walls and objects. We would improve the physics of the interactable objects so that they have more weight to them and improve their collision with objects when picked up. We would also expand upon the puzzles and ideas already existing in the game so that the player has more to do to complete the game. We would also have liked to add dialogue to imply a story to the puzzle game.

There were many problems that we had to overcome to complete this project. The first and biggest issue we had to face was the technical difficulties between the Oculus Rift software and the Unity software that prevented the use of the Oculus VR technology from being used in the Unity engine. This meant that we couldn’t properly troubleshoot any programming problems because we couldn’t see how the scripts interacted with the VR player. Unreal4 has a unique method of coding called blueprints. The blueprint visual scripting system uses a node based user interface to create gameplay elements in the Unreal editor. This is different to the traditional line by line coding used in Unity 5 so it took some time to get used to. Substance Painter uses its own unique rendering system to render textures. This means that the textures look different between Substance Painter and Unreal. So sometimes, textures have to be tweaked a little to look better in the Unreal engine. After finding out about the bevel tool in Blender 3D, Sammy overdid the bevelling on the objects which required them to be remodelled later to fix them. The bevelling made it difficult to UV Unwrap the objects adequately and caused some minor graphical issues.

This project has allowed us to refine our understanding of and skills in Blender 3D Substance Painter and Unreal 4, programs that are useful for creating models, painting textures and building games in. We have also improved our skills in design work and concept art which better allows us to bring our ideas into reality. Our improved skills in these programs means that we will be able to achieve even better results in future projects.

References/Inspirations

WLHQ: Hero Complex (feat. Weebl) https://www.youtube.com/watch?v=bXVq9Dd0qHA

The Simpsons - Hammock District (Hank Scorpio) https://youtu.be/H2faqjasFWw?t=32

Keypad blueprint tutorial https://www.youtube.com/watch?v=9GHY17PtOBQ&list=PLuvy-5pt4MIJZ92UQzFsVwZ6SYJFY-Rqc&index=12&t=0s


Featured Posts
Check back soon
Once posts are published, you’ll see them here.
Recent Posts
Search By Tags
No tags yet.
Follow Us
  • Facebook Classic
  • Twitter Classic
  • Google Classic

Thanks! Message sent.

bottom of page