Table Of Contents:

attachment:7873ff8a-2705-46ca-ab8a-b28a7f38e430:ADA600_JakeKnott_Dissertation_LearningFromNostalgia.pdf

This project is a direct continuation of my dissertation project, therefore reading it is crucial to understanding the context, research and practice behind my final project.

My dissertation focused on justifying and exploring nostalgia and retro design in video games and was intended to assist in the production of this final project. There are two sections that focus on academic sources, Justifying Nostalgia and Implementing Retro, and the rest largely covers my own creative practice. I divided this into three aspects: Modelling and texturing, visual style in the form of an Unreal Engine demo project, and the game project GDD. As I will be continuing to use these techniques in this project, I am going to journal the sources and how they informed the methodology I covered throughout my dissertation.

Long before I began research for my dissertation, I came across a video of a project called Legend 64 that showcased an N64 style Japanese Castle scene. The aesthetic of this scene is straight out of my own brain and its existence is almost frustrating as I would love to (and am) creating a very similar aesthetic myself. But in reality, it matches my interests largely because it takes inspiration from The Legend of Zelda and Studio Ghibli’s Spirited Away, and on the surface ‘Japanese architecture in retro 3D style’ isn't that unique of an idea even if it is one of if not the only fleshed out example.

https://www.youtube.com/watch?v=udHL7if7Xk4&t=1s

Fortunately, they are using Unreal Engine and have recorded the development in a YouTube dev log. This is immensely useful to me, even if I need to be careful not to let this project’s unique choices influence my own. The one video I have used specifically as a guide for my dissertation work was this where he covers character model texturing. He uses ‘old school’ atlas texturing where one texture is divided into many smaller squares that are each used and reused to texture the entire character in an efficient and performant manner. This is seen in almost all character texturing on the PS1 and N64 and I would find many more sources that give similar examples; but this served as the first to inform me of it.

https://www.youtube.com/watch?v=rnBmHHae664&list=PLNxryDDUF2l4KIgOMcAUMigVuo6b2loT8&index=6

Another video I found prior to research for my dissertation was this by Garbaj on YouTube. This video informed me of the lighting techniques that distinguish retro 3D games. Therefore, I knew going into my dissertation that I would need to delve into these aspects in order to create models that were convincingly retro.

https://www.youtube.com/watch?v=ESXAxtdEkzY&list=PLNxryDDUF2l4KIgOMcAUMigVuo6b2loT8&index=3

Once I started trying implement techniques and stylistic aspects into my project, I quickly started to realise Unreal Engine was not the ideal tool for this style. This is reflected in the content available online (partly a lack thereof) that struggles to work around Unreal’s natural tendency for ultimate realism. The majority of tutorials you will find at first will reduce resolution with a post processing effect. This felt a bit unnecessary and counterproductive and I was ultimately not satisfied with this method.

Marcis on YouTube outlines this perfectly by picking out various mistakes online tutorials make in emulating retro graphics, and explains the correct techniques in this video. When achieving low resolution, he recommends changing the screen percentage to avoid artefacts and actually make use of the performance benefits. Unfortunately, he doesn’t go into detail about how to implement this and I have had to figure that out myself. This can be changed either in a configuration text file in the project folder, as a command in engine, or as a function in blueprints. However, I have been running into recurring issues with all of these adjustments. I also need to make sure whatever setting I use works universally, as 25% of the screen may be different depending on the monitor or other settings. There are user settings to manually change the resolution to specific numbers, but these either produce a blurry screen, or don't work at all.

Another error that I’ve since fixed that is emblematic my problems is the difficulty to disable nanite. If You would think that disabling nanite in settings would disable nanite, right? Wrong. Instead I get the error: Nanite is enabled but cannot render, because the project has nanite disabled in an ini. I have no idea why it thinks nanite is enabled. To prevent this, I had to enter the command r.nanite=0 every time I opened the project, before I figured out I could add that as a custom command in the defaultengine.ini file.

https://www.youtube.com/watch?v=ArSDg0rRArA&list=PLNxryDDUF2l4KIgOMcAUMigVuo6b2loT8&index=2