Happy November All!
If your November has been anything like mine, the weather has thus far been warm and great!
2022 is fast coming to a close, and communication has been silent for quite a while. I’m here to let you know that we’re alive, and of course still working on this amazing project!
“…Is it just me, or is this taking a while?”
Great question, strawman in my head! It’s not just you. It turns out making online games is hard! It so happened we went down one of the harder roads when we decided to implement rollback netcode into Town of Trials. It significantly complicates development, but still seems like the right approach for this style of game.
Attention this year has been devoted to optimizing the game’s core systems to establish a baseline level of performance for all the things we are trying to achieve. It turns out that full client prediction of the game state is quite CPU-heavy. Rollback netcode is typically deployed in fighting games, where 2 to 4 players are interacting with limited amounts of physics objects. Add more players, interactable game pieces, introduce some latency… and boom, you end up with compounded CPU costs. As the Steam Deck is a device we wish to support at full 60FPS, it was critical to reign in our CPU usage.
Keyword is “was”! Through aggressive optimization, we’ve mostly solved the netcode performance problems! Before, on the Steam Deck, we were unable to maintain a stable 45FPS with the full game state and 2 players. Now we can support 8 at a stable 60FPS. This is a dramatic improvement and reinforces how worthwhile this was to tackle.
Given the struggle getting to this point, the original goal of support for up to 16 players will have to be revisited in the future. Town of Trials may still ultimately support it (many PCs can handle it fine), but I think a max of 8 is plenty of chaos for now!
“I thought development would be farther along by now!”
That’s fair. We remain a small collection of hobbyists with varying work schedules and commitment levels. Development progresses as our busy lives permit. The prototype trailer from last year was more of a tech demo than a reasonably functioning piece of software. I do fear that that preview might have communicated a level of completeness that just wasn’t there yet. What we showed included functional split-screen with sort-of functioning netcode duct-taped on. It was plagued with many glitches and problems.
About that netcode you saw: Town of Trials was originally built using Photon’s Bolt as the networking engine. Around May of last year, the rug was pulled out from under us as we became aware of Photon’s intention to sunset Bolt and replace it with a new networking engine called Fusion. We were forced to make a difficult decision of whether or not to switch from Bolt to Fusion. Development on Town of Trials wasn’t so far that we couldn’t switch, and Fusion offered many improvements and features compared to Bolt. It ended up making sense to go ahead with the switch.
This didn’t come without a great cost, however. It meant rewriting large parts of Town of Trials. While painful, the switch ended up being a great opportunity to rebuild client/server network topology with rollback into the game from the ground level. We have since found Fusion to be much more capable and easier to use than Bolt (albeit not without its own share of pain points).
“Why don’t you crowdfund already?”
Asking you to exchange money for a promise is asking you to take a big risk. Whether or not any crowdfunded project is completed, there’s certainly no guarantee it will meet your expectations or be of sufficient quality to merit the price. It’s not atypical these days for developers to put massive upfront time and financial investment to make sure the end product will be good. We are investing lots on our end so that you can feel more comfortable when we make that big ask for you to take a chance on us 😉
“When will Town of Trials be finished?”
I’m sure you’ve heard some of these clichés before… “Soon™!”… “When it’s done!”. It’s difficult as indies to accurately pin how long the development cycle will take — I’ve certainly up to now not been too good at estimating timelines. I decided to pull public-facing roadmaps from the site earlier this year because they proved to no longer be realistic.
For the patience, excitement and encouragement this community has graciously given us, the most important priority is to reward you with something special that was worth the wait. We persist on bringing this dream to life, even if it might take a bit longer than we hoped!