Lerping, Performance, Skins
A lot of people ask me what lerping is. A lot more people ask me why the player movements are all spazzy. Well that’s what lerp is. So, for example, player’s positions are sent to you from the server say 10 times seconds. Without any lerp it would look like this.
To get it looking smooth we’d have to send the positions 60 times a second, or whatever your framerate is. And that ain’t happening. So we interpolate linearly between the positions we receive from the server. Previously we were using a shitty 10 minute lerp which obviously didn’t work right. So this week I made the real deal.
This is the same kind of system that any normal network-based game in 2014 has. It keeps a record of positions from the server, records and orders them by time received, then moves the entity along those points based on a time in the past that is based on ping and the time between the updates to get shit as smooth as possible. All the entities in the game use this – so players move a lot smoother now and airdrop planes glide smoothly across the sky. As it should always have been.
Vince has really been killing the building models. To the point where you probably don’t want to update any of your walls to stone yet – just because they look like shit by comparison. We now have nice wooden stilt foundations and real stairs.
Some massive performance increases both serverside and clientside.
The server has been suffering for a long time with drop-outs and struggled a lot once the server had a ton of buildings. I spent a few days this week working with Aaron and his community to make things more stable. I think we’ve achieved that. We’re now seeing 100 people on our Amsterdam server with 45,000 entities. That includes 120 chickens, 65 wolves, 60 stags, 58 bears and 51 boars all running around like crazy idiots. A lot of my time was spent adding profiling points and time warnings to things, so if things do start getting laggy again we’re in a good position to be able to know what’s going on.
A lot of the server time was being spent processing the building stability. We had a crazy recursion bug that could lock the server up for 10 minutes if the conditions were right. This was also causing loads to take a long time to load, and causing it to take a long time to shut the server down. This is all fixed – but the stability system hasn’t been tested with these new settings so I fear we might see some more instability. However early reports are saying that the system is more stable – which is the right side of the line imo.
The framerate on the client was getting really insanely terrible. On my supercomputer I was getting 20fps in some places. That’s not right. I eventually pinned it down to every weapon entity that has ever existed soawning in the sky 10,000 meters above the player’s heads. This would have been fine but some of them were the torch model, so were spewing particles and light, causing our issues. Once this was resolved the framerate was instantly a million times better. I’ve had a lot of favourable feedback on the servers too – so I’m hoping it has made the game run well for everyone.
Melee Screen Swinging
A few people comment that the melee attack screen swinging makes them sick. We’ve been toning it down a lot, and I’m hearing that it’s better but it’s till a problem. The intention is to add a variable to turn this stuff off on the new options screen but for right now we’re trying to get it to a comfortable level and figure out what exactly it is that makes people sick, so we can avoid it.
We have three effects that are sometimes in play. A ScreenBounce – which is like what you’d experience in a game when there’s an earthquake, or when shooting a gun. We have ScreenFOV – which bounces the FOV of the screen. And we have ScreenRotate – which alters the pitch roll and yaw of the screen. My feeling is that ScreenBounce probably isn’t the issue because most games have something like this. ScreenFOV seems the most likely because it’s unusual and changing the FOV changes a lot about the scene. ScreenRotate is the most obvious effect – and is a pretty good candidate too.
So we’re going to tone this stuff down and tweak the different effects. Please provide feedback, and please be more descriptive than saying it makes you feel sick – tell us which weapon, if it’s a melee weapon does the swing make you feel sick or just the impact, or both?
- The ore resources have been fixed, they weren’t giving out enough resources, and were sometimes giving out the wrong resources. I should really tell you that these ore nodes are considered temporary right now, in the same way that that we out-grew log piles. The intention is to make gatherable rocks/ores grow (spawn) on the existing rocks in the world.
- The large wooden box capacity was fixed.
- Servers now automatically save when the quit command is called, or when auto-updating.
- The cupboard exploit, where you’d place your guide and then back out of its influence has been fixed.
- A MissingMethodException error was spamming in the console, causing a bad framerate, so we re-made the console.
- Fixed bullet effects showing up in places on an object you weren’t shooting.
- Fixed sleeping bag respawn sometimes not being offered.
- Death messages on the server now show why a player died (hunger etc).
- Fixed active item staying active, even when dropped or deleted.
- Fixed the object tooltips not updating until you looked away and back again.
- Sped up tooltip effects.
- Locks can now be deployed as usual again.
- Locks show a ghost-guide when they can be placed.
- Fixed water refracting objects that are in front of the water.
- Fixed server running unconnected player’s network queue.
- Fixed server errors when a cargo plane is launched
- Fixed some sound volumes/distances
- Server log now shows reason for client disconnect (time out, disconnecting, quitting)
- Fixed bushes being hittable by melee and bullets
- Loading screen now shows connection progress
- Placing walls on a foundation or floor faces them outwards by default (the right way)
- Added server.compression – off by default as it can be a CPU hog
- Made animals more sensitive to some damage types
- Some melee weapons distribute multiple damage types
- Fixed torch not having a damage type
Meg and Howie have been cranking out the concept art. These pieces are great because they really describe where we want to push Rust.
I’m really happy with the progress we made this week. Things have really shaped up, the game feels great, runs great.. and most of the time it looks great. I started doing some work on radtowns and blueprints and got pretty much done – but had to put it on the backburner as performance issues took priority.
We’ve been asked a lot if we’re going to discount in the Steam Sales. We’re not, sorry. But we did add a 4 pack option (which people were also asking us for), it’s basically 4 for the price of 3 – so it’s kind of a sale except it always costs that much.
It’s Christmas and New Year. I’m a nerd so I’m gonna still be doing as much work as Sarah and Alex will allow me to.. but obviously no-one else is obliged to so don’t expect anything significant until in January.
Here’s a video that tickled my funny bone.