In December 2014, we decided to upgrade Road Redemption's game engine from Unity 4 to Unity 5, assuming it would be a rocky road, and it certainly has been. But we're nearing the light at the end of the tunnel (the tunnel is at the end of the rocky road, naturally). We should have a major update out in the next 2 weeks.
Why did we upgrade to Unity 5.0, if it was such a clusterfrack?
Performance, for one thing. Unity 4 used a very old version of Physx for its physics calculations. It didn't make use of multi-threading for physics, meaning all physics calculations happened on a single CPU core. This is the main reason Road Redemption had much better performance on Intel CPUs than on AMD CPU's. Intel chips are much better at single-threaded processes.
Unity 5.0 uses a much newer version of Physx that takes advantage of multiple cores, meaning physics calculations are much faster for everyone.
As you may know, Road Redemption is one of the most physics-intensive Unity games in existence. All cars, bikes, ragdolls, etc, that you see are physics objects. We set out to make races that were filled to the brim with cars and riders, and we weren't willing to compromise.
Yes we have plenty of optimizations in our code to reduce the physics load (cars and ragdolls that are offscreen essentially shut down and their physics are "estimated" by much simpler code, for example), but when you have 20 bikes weaving through a sea of bouncing vehicles, there's no getting around the need for raw physics performance.
So PC, Mac and Linux (coming soon) versions will see big physics improvements, and for consoles, the increased physics performance was basically a necessity. One of the reasons that consoles are so cheap, compared to PC's, is they tend to skimp in the CPU department (Who needs complicated AI and physics when your game can look pretty instead, right?) So in order to get this thing to run on PS4 and Xbox One, upgrading to to Unity 5.0 was the only option.
Another reason for the Unity 5 upgrade is graphics. I'm not an art expert, but the game looks a lot better now. With Unity 4, we used multiple different "shaders" for different types of objects. The terrain had a shader, the bikes had a different shader, the riders had a different shader, etc. The problem was that they all responded to light a little bit differently. We could tweak them all so they'd look good together for a certain lighting condition, but the moment we tried to change to sunset, or nighttime, it started to look very strange. Our band-aid was to actually swap out certain textures when we changed lighting conditions, but even that still looked pretty bad.
Unity 5 does a lot of nice graphics stuff that I'm not totally knowledgeable on, but one thing in particular that it has is "one shader to rule them all" called the "standard shader". This one shader can mimic skin, glass, metal, wood, etc. So now every object in the game uses this same shader, and when we tweak the lighting, they all respond in the same way.
Basically the game looks better than it ever could on Unity 4.
So what went wrong?
The main thing that's caused so much headaches is that Unity 5's fancy multi-core physics engine does a lot of things differently from Unity 4. Basically anything with wheels needs to be completely rethought.
So we spent weeks getting bikes and cars back to where they were previously. The new version of Physx was never made with motorcycles in mind, meaning we came across strange Physx bugs that no one had ever thought to test for. Here's an example:
Also, to make use of Unity 5's magnificent "standard shader", our art team had to tweak every 3d model in the game. So that wasn't exactly a quick process.
So where are we at?
We're currently about 2 weeks away from a brand new build. In addition to the performance and graphical upgrades, expect to see new environments, enhanced versions of old environments (way more shortcuts), new weapons (stun baton!), improved AI, a better system for dealing with newly-acquired weapons, better stability, and more.
One thing I want to thank you guys for is all of the feedback we've received. Kickstarter (and Early Access, to an extent) has completely changed game development. When I hear things like "we want you to tell us what you want to see in our game" I tend to roll my eyes, but it's no exaggeration to say that Road Redemption has been almost completely shaped by your feedback.
I've worked for gaming studios big and small, and, in general playtesters are brought in somewhat late in the process, and the groups tend to be fewer than a dozen people. Since we developers are usually in the room with them, their experience can't help but be unduly influenced by us looking over their shoulders. We didn't really know how people would respond to the game once it was out in the world (teams tend to know if their game is great or sucks, but the inbetween area is harder to predict). Basically we'd just cross our fingers and hope that people liked it.
Being able to get the feedback from thousands of people, many of it brutally, maliciously honest has been incredibly valuable. Had we just let Road Redemption cook in our studio for a couple years and then released the final product, the game would be entirely different (worse) than what it is now. We'd end up going to the comments sections of the negative web reviews and writing stuff like "you people just don't understand!"
So having you guys helping mold the game into what it is (and what it will be) has been immeasurably valuable. All of your feedback has made a better Road Rash successor for the thousands (millions hopefully) of people who will eventually commit their time to playing Road Redemption. Just wanted to say thanks.