Critical Reflection
Now that we have reached the end of our Final Major Projects, looking back on the development cycle I can identify several enjoyable areas of working on this video game, and some areas which I struggled with. Positive aspects were working with Unreal Engine once again, as the interface, blueprints, materials and lighting were quite familiar to me since working previously in UE4. For the most part I enjoyed setting up the gameplay mechanics, like discovering hidden keys and remotely opening doors, yet there were several areas which were quite a challenge, mostly due to the nature of tutorials online which used several different versions of Unreal Engine, so certain things had to be adapted.
One especially frustrating issue I was experiencing was with Ray-Tracing and heavy noise through translucent materials, I held off from upgrading my UE5 version to maintain compatibility with the University computers, but in the end I was forced to upgrade due to the noise, which was heavily reduced in newer versions of the editor. This did mean that I would have to bring my laptop to university if I wanted to work on the project, but it was worth it. Another issue was my limited knowledge of Blueprints, which made adapting tutorials made for UE4 a fairly difficult affair, as many of the mechanics I wanted to feature, such as the InspectableItem system, had to be implemented in an imperfect way. The mechanics work fine for the gameplay, and progression of the level, just slight things were not working as they were intended, such as putting the object back in the players hands after inspecting it, and few others.
The project was almost changed entirely, as the daunting amount of modelling, texturing, layout, and mechanics was becoming apparent with the large open space of the Museum. The newer idea was to experience a walk through a section of Dante’s Divine Comedy, with a crosshatched shader, as in the illustrations of the book. A small amount of work took place on it, but after a few days I reverted back to the Black Museum concept, which I’m glad I did.
This project taught me a lot about Unreal Engine on top of what I knew previously, and the modelling and texturing process is almost second nature at this point. Although the hard surface models remained fairly simple, I wanted to get most of the details through texturing and high-poly bakes. I did use some downloaded assets, which is something I did not really want to do, but modelling the car asset was a project in itself, so I chose to use a premade model available on the Internet, with my own textures however.
Now at the finishing line, the video game is now at a stage which is completely playable, and I achieved around 95% of what I set out to do for this project.
Development Process
For my final project, I wanted to create a video game in the genre of a “walking simulator”. This would involves inspecting and interacting with unique objects, and generally to appreciate the environment.
I wanted the environment to be based upon the Black Mirror episode titled “The Black Museum”. The episode has some striking visuals and environmental narrative, which I will attempt to recreate for this project.
References & Moodboard

Final Gameplay Trailer
Playtests
Here is where I added Controller Support, some textures, and a toggle crouch mechanic. I also created a game mechanic which locks the player into the museum by way of a disappearing door, and their objective is to discover a hidden door and key in order to escape.
Progression
Monday 27th November
At this point, I had all the assets textured, the gameplay was working, and all that was left to do was package the game. In doing so, I was met with several errors causing the build to stop. These included: invalid names, unused levels, and the worst offender was the ‘unknown cook error.’ This required some extensive research to solve, and eventually I discovered the option to ‘Build only selected levels’ in the project settings under ‘Packaging’, and I input the single level I had been working on into the field. After doing this, the build commenced, and I was able to play the game outside of the editor.




This 3D model is one I had created quite some time ago, and I decided to reuse it with new textures, as the texture’s I had created for it long ago were far less detailed as I had limited knowledge at the time. The model works quite well for the scene despite requiring some fixes.





Using Anchor Points and Normal stamp layers in Substance Painter, in combination with the stamped text and micro-height layers gave me a very good result for the textures of the book.






The Hangman asset was creating quite a few issues that I had to overcome to reach the texturing stage. As the model was created in ZBrush, and also the UV layout was created in ZBrush, I made a certain mistake when setting up the UV’s. When using the UVMaster plugin, instead of using a clone of the model to create the UV’s, I used the original mesh, something which ZBrush advises not to do for this very reason.
After running the plugin and flattening the UV’s, the geometry completely broke, and I was left with completely degraded faces, unable to be imported into Unreal. Getting back from this stage was quite a frustrating affair, and the undo button would not fix the issue, again as warned by ZBrush. I was able to overcome this however, after bringing the model into Maya and working on removing the broken geometry, as well as fixing several problematic areas. The model was then able to import into Unreal, and I could also finally start texturing. This one error caused a fairly extensive amount of repair so I’ll be absolutely sure to use the correct workflow in the future.





Monday 20th November
For this weeks progression, I added the ceiling textures, bath-frame textures, reception wall models and textures, and metal detector textures. I also made various tweaks to several areas of the game.









I created 4 trailer-style videos which begin as the player comes into contact with a TriggerBox. One for the cinema scene, and three for the main showroom.


For this weeks progression, I added sound effects to all game mechanic related actions, including different footstep sounds depending on material, gates slamming sounds, royalty free museum ambience, and some others. I added an attenuation system so the music from the videos gets louder or quieter the further the player is from the screens. I also posed a figure in ZBrush, lowered the geometry, and applied a hologram style material to the model.
I also added a pause menu which shows the controls of the game, both Keyboard/Mouse and Controller layouts are shown. I ran into an issue here on Controller only, where if the player presses the Pause button again, rather than the (A) button, the UI will print another screen, rather than removing the one already there. This meant the player cannot remove the UI if they press the Start button, although this can be fixed with mouse input to remove the Widget. After many, many efforts to stop this from happening, this was slightly out of my capabilities to solve and I could not find a solution online, so instead I placed a warning message advising players not to use the Start button to unpause..









Monday 13th November

I added several features to the












Here is where I added some interactive UI Widget Screens, which on activation gives the player a short paragraph giving details on the given model. Details such as the episode name which the model features in, and a brief explanation of the models use in the episode. I used the image of a prominent logo in the Black Mirror universe as circling and pulsing animated UI elements.



















For the theatre room, I created a montage of Black Mirror scenes which have a feature in the level. Utilizing the level blueprint, I chose to activate the start of the video when the player enters the theatre and hits a TriggerBox, rather than have it play continously on a loop.

Here is where I created a custom Glass Material to encapsulate the Bee Drone, as in the episode. I was having serious issues with noise, particularly in areas with translucent materials, and the effect was especially pronounced when looking through multiple layers of glass. As this is an issue that had plagued me since establishing the showroom lighting, I attempted several methods, many of which to no avail. The main methods of troubleshooting were disabling Ray-Tracing and Path Tracing entirely, upgrading the project to a newer version of UE5 (this worked to some degree, but maintaining versions between the University and Home PC was important), attempt at denoise, and various other tweaks I attempted to alleviate the noise. I also created an iridescent glass material to appear as if ray tracing was enabled, but this still didn’t quite match the quality offered by ray-traced lighting.
The method which finally worked (mostly) was removing the glass panels from the imported model, and replacing them with standard cubes in Unreal’s Editor. I then attached the Glass Material to the cubes, and this worked perfectly. Once doing this the noise was cut down by a significant amount, and I could still utilize ray-traced lighting instead of falling back on Rastered lighting, which appeared far, far better on translucent materials and shaders.
In the end, I updated the project to the latest Unreal version, as I had seen multiple posts online quoting version 5.0-5.1 having particular issues with translucent materials and Ray-Traced lighting. It was for this reason that I abandoned working in version 5.0.3 and updated to v. 5.3.2. This improved many aspects of the editor, the framerate was far smoother, the noise was decreased heavily, and I could follow the most recent tutorials online when it came to creating the blueprints. That being said, I was becoming much more familiar with creating blueprints in Unreal, and was able to adapt several tutorials from UE4 using knowledge I had gained through setting up mechanics, both in this project and one’s I had worked on previously with UE4.











Monday 30th October














I added two downloaded assets to speed up the process, as modelling generally simple assets was not something I wanted to waste too much time with, so I downloaded a Prison Bed Frame created by Kuuti from CGTrader.com. I created the mattress and baked the high poly details, and then created the textures for both the bed frame and the mattress, discarding the authors textures in the process. I also used another downloaded asset, a prison toilet created by Askance, from CGTrader.com. Both these assets were free for non-commercial use. I also created textures for the toilet asset.
At this point, the level is now an ‘escape room’ type of video game, where the player must discover a hidden key to unlock the door in order to leave the Museum. I created several blueprints to implement this design, including the unlockable door and key BP, a UI indicating the player has the key, and a random array to change the spawn location of the key with each playthrough.
I also began adding assets which I had previously created to speed up filling the scene. These include the Deer Skull, Bow, and Hatchet models. I ended up modelling another Tomahawk axe, as the one I already had did not fit the scene very well.







Layout



During the summer holidays, I began work on this project by sculpting the landscape in Unreal Engine. I also began modelling large assets to start filling the scene.




The museum has a large showcase hall, with several interesting assets from the series.


Texturing



Here is where I wanted to have the gold trim appear behind the posters. This was very difficult to achieve in Substance Painter because I could not line the shapes up with the posters correctly, so instead I used a basic shape decal in Unreal Engine and positioned it just between the wall and the poster. This achieved exactly what I wanted it to. I also changed the golden trim several times until I found something I was happy with.










Modelling Assets
Ashley Too Robotic Doll Asset



Quilted Door Asset



For the door to the cinema, I wanted to create a vintage-style panel. To achieve this, I found a free ‘quilted’ pattern, and edited the image to have a high contrast between black and white. I then took the image into ZBrush, applied the image as a texture to a low poly plane, subdivided until I had enough geometry, and I used the texture as an alpha to bring out the pattern. I then baked the high poly mesh in Substance Painter, and began texturing the asset.
I revisited this asset in order to cover the whole panel with the quilted pattern, as I thought it looked far better this way.
Wall of Faces Asset



Radio Tower Asset



Cinema Chairs


Museum Signs



DNA ‘Cloner’ Asset


Sensation Simulator Asset



Player & Interactable Object Blueprints
I created several blueprints for the game, as the project originated from a Blank template. I created the basic movement, jumping, and sprinting nodes and bound them to their respective keys. I also created a FlashLight blueprint, which toggles a flashlight held by the player. I also followed several tutorials on setting up a system which allows the player to pick up certain objects, and inspect them, and I implemented this system into the game. I created certain game-feel blueprints, including a fade-in effect when starting the game, and a fade-out when the game ends, accompanied by an interface widget which shows the message “Thanks for Playing!”.



I also created a head-bobbing effect to make the movement more realistic.
