Again this week, you find us in ‘tutorial’, ‘polish’ and ‘MP integration’ mode on the IWBUMS build 41 public beta – the next patch for which will come once the revamped tutorial is complete, tested and works with gamepads. (So, maybe next week – but more likely the week after.)
Once the tutorial is done and out we’ll then look to polishing a few of the remaining combat issues and eccentricities, while the MP Strike Force continue to hammer away.
So, a few things of interest that’ll also be in the 41.38 patch before we give the Strike Force the mic…
As mentioned before, we’ve got a big memory optimization in this patch that’s come with a side opportunity of being able to get some extra vehicle detail in – namely blood on cars.
Please note that the above is WIP, the blood colour is a little too.. splatterhousey gore, and the version we have currently is a bit darker.
We will also be expanding our character appearances a little, with some more curly-looking hair and other hair style varieties.
(Please note the following are WIP and will be Mashified by Mash.)
In the world of MP there have been big strides made this week which we’re extremely happy to see! However, as ever, there are still challenges to overcome.
Today we’ll share a little diary of how work has gone over the past seven days or so, and hopefully it will be an insight into the progress and difficulties faced in building a quality multiplayer experience when you don’t have prebuilt fancy replication systems, as with popular game engines, all ready to use out the box.
Yuri and Andrei have been hard at work on smooth predictive moment of zombies across the network via prediction and interpolating the coordinates and rotation of zombies.
Client prediction allows the characters to move in a much smoother way, as well as for the characters to not lag behind their true position on the server when viewed on clients – which is one of the biggest issues in existing Build 40 PZ multiplayer.
The problem with prediction, however, is that while it’s much much more accurate in situations where a character is moving in a straight line, it can easily go wrong if the zombie or player makes a sudden turn.
In this situation, the prediction on the client will assume the zed/survivor kept going straight ahead – up until the point that the actual message is received. So the zed will have ended up even further from its position than it would if it had been lagging behind.
On top of this, clearly, the higher the latency between a server and client, the more extreme these issues could be.
So then, let’s share a few videos showing the step-by-step improvement of all this over the past week or so on our MP branch.
Andrei and Yuri’s first stab at getting the system in as a proof of concept worked well in terms of predicting zombies future positions – but was still very rough in terms of the smoothness of zombie travel.
After this, they explored using interpolation using splines to predict the zombie movement on clients using quadratics which improved things a bit.
However, you will have noticed a problem emerging that’s shown in the video above, where a player is running around the zombies at a close range. Since player position is instrumental to where zombies will be aiming at, the lagged information to be used for interpolation is getting delayed information twice.
Here, the client player’s position (that the zombies are using to target on the server) is changing with a latency delay. As such, the targeted position the zombies should be walking towards is changing extremely rapidly and is out of date on the client, and thus the predictions of where zombies should be headed is wildly wrong. This means they need to walk to the correct position to correct themselves a lot faster than is natural for zombies to move.
As such, as an experiment Andrei and Yuri tied zed animation speed to zed movement speed to avoid foot sliding for the correction movement
So here we have some smooth zombie movement, which is fantastic, but also with some movement that looks unnaturally fast if predicted movement is proved incorrect from their actual server position.
As another experiment, Yuri decoupled zombie animation speed from travel speed when interpolating for the video below – which looks more natural, but inevitably does suffer from some foot sliding.
So where do we go next? Well, the MP Strike Force have some ideas on how to improve this further, including leveraging zombie AI algorithms in the prediction to help cover up the prediction mistakes – and we be experimenting further in the week ahead.
In cases such as this, also, intend to get Animator Martin create some fresh anims of forward staggers and wider strides to paper the cracks a little.
It’s important to note also, that what’s seen above is how zombies will behave when their position is calculated purely on the server.
We have a trick up our sleeves that we will be soon be playing, which is part of our war on our perennial MP enemy – the ‘lag bite’. This trick, however, should also improve how chasing zombies appear on your client machine.
By giving light ownership of zombies to the clients they are most relevant to (light ownership meaning some authority to call the shots, but with the server acting as a gatekeeper to stop cheating) if you are being chased by a zombie, then your client will assume all control of telling those zombies where you are stood at that moment and how they should move.
This will be double checked by the server, but it means that if a zombie is chasing you, then there will be ZERO latency just as in single player. Lag bites should be a thing of the past.
Other players observing you being chased by a zombie may well still have prediction hiccups, as your position is still delayed in reaching their client zombies for use in prediction. But if the zombie is not chasing them, then its less of a big deal if the zed positions aren’t entirely accurate to the millimetre, or if their movement speed is a little off kilter.
And clearly, in cases where zombies are in idle states, wandering, or heading directly to an inanimate sound they heard – or you standing ready with a baseball bat – all this work means that clients should be able to also predict 100% accurately.
So, all in all, we’re working hard to make sure that zombies are a ton better than they currently are in terms of PZ multiplayer – which week by week we hope to share with you until public tests begin.
Mash is still on patrol making the world increasingly more varied, one chair doily sprite at a time…
This week’s cheeky cigarette break from Erin Azakaela Redfire. A changelist of all IWBUMS patches since the 41 beta was released can be found here. A general list of stuff added to PZ, and vids of features being worked on, is kept here – so you don’t have to plough through endless dev blogs for info. The Centralized Block of Italicised Text would like to direct your attention to the PZ Wiki should you feel like editing or amending something, and the PZ Mailing List that can send blogs like this and patch notes direct to your mailbox. We also live on Twitter right here! Our Discord is open for chat and hijinks too!