The History of Rust Racers
Some of you who's been around since the mod days probably already knows most of this but for the new fans of the game let's take a walk down the history of Rust Racers.
2015 - The Beginning
Back in late 2015 I was working on the NeuroMicro mod for Garry's Mod and as I started to get a bit burned out working on that project I decided to give car physics another attempt. Mad Max had just been released and I wanted something like that but in multiplayer. My sandbox of choice for prototyping game ideas was Garry's Mod since Lua lets you do anything you can imagine with little effort. Considering how janky the default Source Engine vehicles were and how unfun they are to drive I decided that I wanted to build a completely new framework for doing all kinds of wheeled vehicles that could be customized and tuned without having to edit random text files from Source.
Rigging vehicles in Source is a pain in the ass and very time consuming compared to the amount of fun actually driving them.
The solution: a physics based framework in the true spirit of Garry's Mod. Cars were built from props and pieces and you could just attach any amount of junk to a vehicle.
The models were provided by Killstr3aks
2016 - The Mod
After roughly three months of work we launched https://rustracers.xyz/ most likely the first "Gamemode as a Service" for Gmod. (Note the website hasn't been maintained for 5+ years so the SSL cert is expired at times)
Since the Gamemode for Rust Racers required access to our database Aftokinito ended up building a server orchestration system for deploying Source Dedicated Servers on demand as players queued up to play on the website. An early version of GameLift you could say.
We created a lobby system that allowed players invite their friends and team up before starting a match and using the steam browser protocol we could send players into a match directly from the website.
2 minutes from lobby to game, it wasn't fast, but it worked!
Fun fact: The last ranked match in Rust Racers the Mod was played in February 2018 by these gentlemen, roughly two years after we stopped maintaining the site & mod.
2017 - Unity Rust Racers
While I was busy with IRL stuff & working at a casino game studio in Stockholm, Aftokinito decided to try and take the mod to the next level and build a standalone game from it.
We talked a lot about doing this because of the feedback and response we got from the community, Clearly we had some resemblance of a fun game concept on our hands.
As with any technology you don't develop on your own, you end up with pitfalls and things that might not fit your vision or requirements.
The problem with Unity was their Entity Component System and Network Library Unet. It was not built for this type of game. In fact it was so bad that Aftokinito ended up developing DuneNet, a replacement library for Unet just to handle the multiplayer functionality.
Since this was a project with about $0 budget finishing it was far away and while progress was being made it proved too much for one person to handle.
Afto and I aren't particularly good at 3D Art which further complicated things.
2018 - Intermission
This was the year where virtually nothing happened on Rust Racers, I had just started Nethash to ride the crypto wave and we were all about building cool High Performance Computing data centers designed to turn coal into virtual funbux.
By the end of the year I had hired Aftokinito as the CTO of the company to handle all the things I personally hate dealing with, which coincidentally, he loves working on.
Around the same time the Boden Municipality started investing heavily in building up a game development cluster in the region and we saw tons of opportunities relating to game dev arise so by the end of the year going back to game development became more and more alluring compared to babysitting GPU clusters.
2019 - Rust Racers Standalone, Attempt #2
Between 2015 and 2018 I spent most of my waking hours working with WebGL and HTML5 due to my job and I became somewhat proficient in that technology, one weekend I decided to create a 2D Top Down version of Rust Racers just for the fun of it and see how hard it would be to get the core mechanics in place.
It took me about one weekend to get to this point.
It wasn't pretty but it inspired us to kinda see how fast we could finish it and maybe get it out on mobile for the fun of it and maybe make a couple of bucks as well.
After a few months we kinda realised that this would work better as a full fledged game and had more potential if we put some effort into polishing the game.
Three months later it looked like this:
Once we started actually integrating Steam and various other services it dawned on us that HTML5 and WebGL is a horrible technology when trying to package it into a desktop app we could publish on Steam. (Beware, this whole post is just a clusterfuck of realisations, hindsight is 20/20)
While certainly doable the sheer amount of issues that came about made us take the bold decision to scrap this version of the game and build a game engine that could handle all our requirements and do things our way. The scope was still 2D Top Down at this point.
And thus DecayEngine was born.
DecayEngine took a lot of inspiration from both Source Engine and Unity but tried to improve on the areas where we saw problems and it got to a point where it was almost usable, what was missing was the editor & interface that would let you quickly setup entity hierarchis and preview things before building the game.
Early rendering capabilities of DecayEngine
Sometime in mid 2019 we managed to secure additional funding for the game to expand the team and that's how Arvid came into the picture. Originally hired to do the 2D art for the game it turned out that he was actually pretty good at doing 3D too and suddenly we wanted to make the game Atleast 2.5D with a mix of 3D and 2D assets. Because we could.
The more work that went into the art of the game the more we realised that we could actually build something bigger and better.
Along came Hector, our 2nd 3D artist here to help us get more things done faster.
Early blockout of GrindCanyon.
2020 - The rise of the feature creep
As the scope grew we slowly realised (yes, yes I know we are dense as fuck) that while the original intent of DecayEngine would serve us well, as we got more and more hungry for a bigger and better game our personal shortcomings as developers started to become more and more obvious, now with a full fledged 3D game we needed shaders, lighting and a whole bunch of systems that weren't as complicated in the 2D version. And someone had to develop them.
We were spending all our time making an engine instead of making a game.
We had already tried making the game in Unity, it didn't make sense to keep reinventing the wheel over and over. Systems were getting deprecated left & right and half of the cool features are stuck in Experimental limbo. Most importantly, none of us actually enjoyed working in Unity after having spent over a decade in Source Engine. CryEngine & Lumberyard didn't offer the level of documentation required to get going in a timely manner and quite frankly the technology felt somewhat outdated. Source 2 was out of reach for a bunch of nobodies with nothing to show for...
...so we began porting all our current work to Unreal Engine 4. While certainly not as scalable as DecayEngine, which was designed to run it's server software on Amazons custom ARM64 Boards offloading physics and math to the SIMD for maximum performance, it did come with all the systems we needed to actually make the game like we envisioned it. The scope had already changed and with the game no longer being a small 2D game we might as well go for the bleeding edge of engine tech.
Just one small problem: none of us had ever worked in Unreal Engine before so we now had to speedrun learning an entire new technology stack and for the first few months we were just plowing through the documentation and looked at examples trying to find similarities between the engines we did have experience with.
It was a lot easier than we anticipated.
Early version of GrindCanyon running in Unreal Engine
2021 - The quest for the first Alpha
We're making crazy progress on the game and it's becoming so much bigger and better than we ever dreamed of, for the first time in the long history of this game it feels like we have something under way that we can be proud of and show the world.
We still have a lot of work to do but for once we are actually making real progress towards the end goal: Shipping Rust Racers as a standalone game.
Player Garage v2
While we still don't have a set date for the first alpha we are making our way there in a steady pace.
This is an ongoing journey of learning by doing, making mistakes and learning from them. Ultimately we could have done things differently from the start but doing things this way helped us grow as a team, a company and most importantly as humans. Would I do anything different if I could go back in time? Probably not.