I’ll cut to the chase; we’re back on track and burning through the roadmap with some big plans in place. We’ve mainly been focused on getting our last fat boi feature, Goals, into production. You see, we’ve implemented a very complex and unique process or assembly line, if it pleases your vernacular, wherein I design shit and then Mike makes it do shit. We’re about to make it do shit. And by we, I mean Mike, as stated literal seconds ago. Anyways jokes aside, it’s kind of a big deal because as I compulsively can’t stop mentioning this makes STL feature complete (for now). Then we get to focus more on backend things, balance, optimization, and the bucket of polish that is desperately needed.
We’re well aware that words like “optimization” or “balance” or “perflipisklup” don’t mean shit to most of you, or most people in general because they’re vague and/or technical. That’s why today we’re bringing in an expert (guess who) to explain exactly what we’re doing on the backend. I don’t want to steal his (it’s Mike, obviously) thunder but let me preface this next part with yes, it involves resolving desync issues, and yes, it involves actual offline progress. I’ll let Mike take it from here:
Your weirdly absent step dad here. Yes I am still out getting cigarettes (jk I quit over a year ago who’s the dumb one now). Hopefully you guys have been ok with Dan watching you while I’m stuck in the digital salt mines since I left him $20 to order you a pizza.
Anyways, let’s dive right into our current technical hurdles. As most of you know the biggest issue we have is with travel progress issues and desyncs of your wallets. This stems from the travel/miles system literally being the oldest system we developed that’s still in use. At the time that we added that functionality as our first step towards cloud saves, STL didn’t even have SUPER in the name. We didn’t have any plans for a social system, gifting, crafting, or really any of the awesome features we have now. Fun fact, we were still planning on launching this game on Kongregate! As the other parts of the game have grown up around it, that old bit of code has been struggling — and quite frankly has been a large pain point for some time. While we have fixed most of the desync issues for wallets and travel on the server side, the client still has issues occasionally. Our next big move (after goals) is to rework the travel system to be more modernized and better integrated into our other game systems.
What this means is that rather than trusting the browser to add up all of the miles you pass and send them in bulk, we’ll start sending that data over the websocket connection in real-time. This presents a few big technical challenges, but also a paradigm shift in how your progress will be tracked by our servers. Once we switch over, we’ll know exactly when you stopped playing, where you stopped, and if you were at the truck stop when the client closed. This opens the door for us to implement actual offline progress. We’re talking miles here, people. Crates. Not having to keep the tab open all day and feeling confident that you are still progressing while you sleep. Now obviously we’ll have to limit offline progress a bit, and we don’t have the full details there just yet, but just know that it is coming.
Along with this are some significant upgrades to our backend, including some hot and sweaty distributed websocket action. Currently all of our players connect to a single socket server. This is a bad idea for a number of reasons, but it’s been ok while in beta. As we get closer to a proper launch (Early Access HNNNG) we’ll need to merge our socket servers with our worker nodes so that we have the ability to scale moving forward. That work is already in progress and should be completed soon. This will enable us to run the game for less of our precious dollars while also enabling us to handle more concurrent users at a faster speed (anyone remember our chat slowdowns from December? Yeah neither do I what are we even talking about).
All in all, we’re looking to remove our final source of desyncs, get the game loading quicker, and improve the performance of our systems across the board. It’s a great move all around, but one that will take a bit of time. Once goals is released, I’ll be digging into the tech debt we just went over and then we’re ready to start adding content, polishing, and preparing for that Golden Master. Dan assured me that wasn’t a euphemism and it’s a legit industry term (I’m still not 100% convinced).
I do have a bit of bad news, though. After we go through this process, the fancy “Game Saved!” thumbs up will be removed. I know, I’m crying too.
All kidding aside, thanks for sticking with us! We’re still on track for our planned release and making progress every day. Dan, back to you.
Thanks Mike. We spent almost 2 hours talking through the roadmap and priorities, and this is where we landed. TL;DR we get Goals in, then while Mike burns through the backend I play with polish, balance, and idk maybe even some rewards for Badge Points 😉
That’s it for now, kids. Better get back to it.