We have a huge devblog this week: the first look at our upcoming facial expressions (grr, whoops, and serial killer*), water usage is expanded, and you can share benchmarks now from in-game. There's balancing, clothing, deployables, puking, and loads more.
Further to the aforementioned changes, I’ve gone through and made some changes to the metabolism, specifically that you will lose a lot more calories by running through the world and using tools. You’ll also use up a lot more water from prolonged high activity levels and from being in the heat. If your hydration level drops too low you won’t be able to sprint anymore until you take a sip of fresh water and beat the heat. I’ve also halved the amount of calories/hydration a player can store on their body. These numbers might be off and may need some rebalancing, but you shouldn’t have too much trouble finding a source of fresh water as you can now drink directly from the world by looking down on any body of water and pressing E (avoid the sea, though).
So if we update Unity, we don't need to ask around on reddit if performance is better or worse, we already know if there's any change.
Share Your Benchmarks
You can get involved too: just open the game, open the console and type in benchmark. It'll run a bunch of tests then open a webpage with your results. You can share the URL with your friends or with us to see what kind of performance you're getting. Here's my work PC. If you keep your results together you'll be able to compare your results across versions, and flag up any performance changes with us.
The game's performance has been totally shitty recently, and has gotten worse. This system was important for us to add-- not only because it tracks positive changes--but it should also allow us to identify and rollback changes that make stuff worse.
The results of the tests are shown in milliseconds, where lower is almost always better. We'll add more benchmarks over time: when we want to prove something to be slow, when we want to see if an optimization has worked, etc. Here's a quick explanation of the current tests.
Player Model
Render and animate hundreds of player models. This speed tests our animation code, rig and mesh skinning.
PlayerModelRebuild
When a player model is shown for the first time, or when a player changes clothes, we have to rebuild the model. This could be a potentially slow process, especially when a bunch of sleepers spawn in, so we want to keep an eye on the performance of this.
Procmap.Gen
How long it takes to generate the procedural map? This is the huge majority of loadtimes on Rust right now. We want to improve this, we don't want it to get worse. This is also very hardware specific in terms of times, ranging from 30 seconds to 3 minutes.
ProcMap.Normal
Render the procedural map with grass and decor, but no trees. It's surprising to me how slow this is, because we previously assumed that bad frame-rates were down to the buildings. If it's slow even without buildings, then we have problems.
ProcMap.noGrass
Lots of people complain that the grass is the cause of performance issues. This test is to prove that right or wrong once and for all.
ProcMap.NoDecor
Decor is things like bushes, flowers, driftwood. This test is similar to the grass test, we want to see how much these things affect performance, and whether they should be enabled or not.
ProcMap.Rain
Does the rain lower frame rate? It has historically, is that still the case? This test seems to suggest that having rain on improves the frame rate... which might be because of fog.
SkinnedMeshCollider
This test shoots a bunch of invisible bullets at a bunch of player models to test the speed of the hitbox generation. This is a potentially slow operation, and the same code is used for a bunch of different things that can potentially be called every frame.