As you may have heard, due to Update 26 failing its final load tests, it has not been released to the live game, but remains on the PTS until further notice whilst we address the problems that were discovered on the build.
Before we begin – I’d quickly like to touch upon load testing! Load testing is running simulated game clients at scale on an RC deployment (we talked a bit about those on our last podcast if you recall) to see if there are any performance or stability issues with the build. In Kirk’s words “basically faking a lot of people in the game at once” to see if it triggers issues. If builds don’t pass load tests, they can not be released into the live environment lest the bork up the entire world.
Wanna know more about load testing and how QA had to rework it for the social features next week? Comment below!
Server Wipes and You!
It’s that season again. The wipe season is approaching and we sometimes get questions asking “why do you wipe the servers?” “Is it a personal vendetta against your players?” That answer is – no, and our feelings have nothing to do with wipes. I’m re-posting this lovely Tech Tuesday post from Murillo (original post HERE) to clarify why it is more efficient to do certain things the way we do.
I’m Murillo and I’m one of the game programmers on the Worlds Adrift team.
Ah, world wipes. Aside from the wipe hype, they’re not fun. You don’t enjoy losing your progress, we don’t enjoy taking it away from you. So, why do we do it?
It boils down to productivity. Let me try to put this into a (very bad) analogy: imagine a mechanic changing the oil on a car. He could work on it while the car is running on a motorway, but that would make things much more difficult on several different levels. The mechanic have to come up with different methods of changing oil that allowed the car to keep running while he did it, spend resources on putting together infrastructure to support his new methods, and after all that extra work still have a lot of extra mental energy dedicated to the extra complexity of the task. All of that would be much more trivial if the car was parked in his garage.
When we’re developing new features for Worlds Adrift, keeping the existing world is like changing oil on a moving car, and it makes things much simpler if we park the car instead. Not having to worry about making sure the old engine you found on alpha 3 works with the new engine feature we are developing allows us to work much more efficiently. Some features are kinda simple to deal with, some are very complex, and some even require nothing be done, but the main problems here are:
- A) They are costly for development (both time and money) even when you don’t have to do anything, and
- B) The reiterations add up.
I’ll unpack both: first, if you are working on a new feature and aren’t doing a world wipe, you always have to keep in the back of your mind the question of whether or not you need to do work to make sure it integrates well with the existing world. Imagine trying to solve two different maths problems in your head at once and you should get the idea. This makes features take longer to develop, without being any better for it (likely worse, if anything). And all of this is without considering the work of actually migrating the existing data to make sure it conforms with the new requirements of the feature, testing that it works properly, and cleaning up the scaffolding necessary for doing it; it isn’t an exaggeration to say it could double or triple the time and cost of a new feature.
Secondly, this is going on for every programmer in the project, which makes the project as a whole a lot more expensive and slow. The slowness directly affects players and is easy to see the benefits of avoiding, but even though the extra costs don’t directly affect you at the time, it does mean that at some point we may have to sacrifice features because we can’t afford to have them developed, which neither we nor you want.
We’re very thankful for all of you who are supporting the game during its development, and appreciate that you would like to keep the progress you’ve already made, but we feel you would appreciate the game moving forward even more! Wipes aren’t a constant thing, as some have speculated recently. Obviously, we aim to stop doing wipes entirely as soon as possible, but until then we have to balance out whether it’s more valuable to keep player progress in or make sure the features we are currently working on move at a faster pace.
Hope that explains wipe logic from a development perspective a little better, and do hit us up if you have more questions.
As always, see you in the skies!