The first thing I did this week was go back to my first level as I realised it was still missing some pizzazz. The first thing I did was throw away the default Unity skybox I had been using that had been turned to black to imitate night. After some searching I found a procedural cubemap website for space skyboxes which was perfect for what I needed. After some tinkering I created a sky that was perfect for what I needed. I think the purple in it really helps to bring an air of mystique and wonder to it, instead of being a boring starry night.
I then started looking into pixel quantization and making my game look more pixelated in order to emulate the 480p look of PS2 games. I ended up going with a technique that uses render textures on the camera within Unity. Essentially what its doing is rendering the scene at full scale (1080p), shrinking it down to the size you want (for me 640x380), and then scaling it back up to fit the screen. Since the resolution I chose is 16:9 no stretching occurs and it displasys at 480p. Perfect! It's extremely simple to set up and looks great. I followed this tutorial:
The only two drawbacks to this technique is that, one, its essentially rendering every frame twice. The other is that it seems to display the output over whatever UI is on that canvas. However in order to fix this you can merely just set up a new canvas for UI and set it to overlay.
Once this was done the game looked great but I noticed that when playing the second level all the rocks seemed to just turn into an orange blob. It looked retro but not in the correct way. I decided to go back and look at PS2 games, trying to understand what looked off. I then realised I had been doing lighting all wrong. When creating my textures my research had led me to understand that early Playstation games only really utilised the base colour map as that was all they could compute en mass. This led me to just make the Unity materials Unlit - meaning that no lighting effected them at all. This is what led to all the objects looking bright and nice, but also extremely flat as no shadows were being cast at all. I had forgot to include a staple of PS2 games that give it that iconic visual style: Vertex Lighting. This is when light is only calculated on the vertices (corners) of models. It is computationally cheap and allows for decent shadows and lighting changes.
Current day lighting versus Vertex Lighting
And so I went through every material and changed it to be Vertex Lit. This drastically improved the visuals and upped the nostalgia factor of my game. Here you can see the large improvements in atmosphere:
Before
After
I also compounded the new look to be far more effective by adding Fog to the game. You can see with the rocks the further back they go, the more hazy and orange they get. For the city I chose a hazy gray. This helps greatly with recreating the PS2 look and giving the world more tangibility.
Once this was done I also added an edge render to the main player. This makes the player pop with an outline, making them come straight off the page of a comic book. I think this stylistic choice helps to emulate the retro anime vibe and give my project personality.
The final culmination of all these techniques makes the game look far more polished, rich, and alive:
It's coming together :).
Comments