Yooka-Laylee dev explains its approach to the 64-bit Tonic
Playtonic posted a Q&A on its website that attempts to answer some of the questions fans have about the upcoming 64-Bit Tonic in Yooka-Laylee. Technical director Jens Restermeier spoke about what was used as a reference material/inspiration, why there won’t be an option to turn the CRT filter on and off, and more.
Here’s the full rundown:
What did you use as reference material/inspiration for the 64-bit Tonic?
When we decided we were going to implement the 64-bit Tonic, we knew we wanted to create something reminiscent of “the good old days”. Naturally, we looked back at Nintendo 64 games that we had both played and worked on.
We had to consider the technical side too, so we looked at what was possible with the hardware in that era, and tried to simulate that with our existing game assets. Many features that are common nowadays were either not available, or were limited by the memory available and rendering performance.
Wouldn’t it have been more authentic to rebuild every asset in the game with a low-poly mesh, re-do all rigs, reduce the number of joints in models and reanimate every character, produce all new textures from scratch and delete every 3rd rock?”
While we would have loved to completely rebuild Yooka-Laylee using low poly assets, it would have been a gargantuan task that would have required a full studio effort for a long time. We’d have had to create entirely new assets, and with their implementation would come a whole host of design and code considerations.
Can you explain the core elements that bring together the 64-bit Tonic?
Most of the backgrounds use the Unity “Standard” shader, so I wrote a stripped-down version of that, with limited shading and a simulated “pre-rendered” appearance. Some objects are rendered with a special effect shader, such as animated and scrolling textures, so they required a special variation. To simulate the limited texture memory on early 3D platforms I chose to override the MIP level when reading textures, so they look like they are stored at a much lower resolution.
In addition to that I switched off shadows (curse you point-light loving artists!), changed the fog settings to capture that authentic N64 ‘atmospheric experience’ and applied a CRT post effect. Oh, and we capped the frame-rate. It sounds bizarre, but looking ‘old’ and having a higher frame rate looked weird. We settled on 20fps in the end. There was a lot of internal debate: some wanted to go lower than this, but QA Lee isn’t that deserving of such punishment… most days.
Was the CRT filter always a part of the plan?
Yes, that was always the plan. Many people used CRT TVs when playing on their N64s and the screen blurred out the blocky pixels that come from using a lower resolution. A lot of graphics at that time were designed around that effect, so we decided that a CRT filter would be required for an authentic experience.
We’re aware that some people have requested the ability to turn the CRT filter on and off, however this wouldn’t be a simple thing to implement as it requires additional art (UI), design and test work. We also feel it significantly reduces the quality of the rest of the 64-bit Tonic, so we’ve opted out of doing so.
Is there something you wanted to do which didn’t work out or had to be changed?
I originally wanted to use the “Replacement Shader” feature in Unity, but found that it was far too slow, so instead I replaced all shaders on all required materials when the player switches into 64-Bit mode. This was significantly more work to program, but making things speedier was worth it.
What were the biggest challenges you faced?
The biggest challenge was writing 64-bit approximations of the various special effect shaders, and making sure that various scripted changes still worked correctly. Circumnavigating individual platform bugs/glitches, performance on console and avoiding projectiles thrown at me by Lee are worthy mentions too.
What aspect of the 64-bit Tonic makes you particularly proud?
We are using a layered shader for a lot of the terrain, which blends smoothly between different ground materials. The 64-bit version of that shader just picks the material with the highest weight, which gives a surprisingly effective low-poly look on things like paths or grass patches.