Gettin’ it done.
I fixed a couple of HUGE issues with server performance this week. Previously once a server hit around 50,000 entities its framerate would drop to around 5fps. Things would get steadily worse until a wipe was inevitable. This would usually happen in the space of a day.
At the moment our servers are all running at a solid 60fps with 200 players and over 150,000 entities. It’s crazy to think that in Garry’s Mod we had a limit of 128 players and 2,048 entities, and I thought we were pushing the limits!
There’s still optimizations to be done – but this is very encouraging. The biggest underlying issue was with how we were doing physics triggers. This has been a long standing problem. The performance gains should translate to some framerate improvements clientside too.
Andre fixed the “everything is black” bug on OSX/Linux. This was caused by our move to Unity beta 18. He fixed it by disabling reflection probes on those platforms. This has a side effect of causing the water to be full white.
The water is also flickering black for some users. This should all get fixed properly in a later Unity beta – so for now please accept our apologies.
Andre has been playing with the fog. He didn’t explain what he’d done in time for this devblog though, so I’m going to make it up base don overheard conversations. Normal fog, our old fog, is a single colour which gets stronger based on the distance from the camera. This new fog is per pixel and takes the environment into consideration. So it’s a different colour depending on where the sun is relative to the pixel you’re looking at.
It’s got horizon clouds now too – which soften the join between the horizon and the land.
This is a hard one to fix. But I fixed a major problem that could be causing it. The way entities were being transmitted wasn’t always reliable, meaning that sometimes the client wouldn’t receive them and would be oblivious of their existence.
This manifested itself mainly in buildings – with missing walls, but it applied to all entities.
I thought this was fixed completely earlier in the week – because this was a big deal bug fix.. but I have heard since that people are still seeing some problems. They’re a lot rarer than they were previously – but they might still exist. Let us know if you see this problem still.
You may have noticed that for the last couple of weeks other players haven’t been holding their weapons properly and haven’t been playing attack animations.
This should all be back to normal now. This was a change that was made in the big weapon refactor that didn’t get plumbed in properly.
The stability system hasn’t been working as it should for a while. You were able to build sky bridges. I gave it a re-working this week.. which has improved performance and reliability. Stuff falls down like it should now.
The underlying logic has changed. So some things are more stable, and some things are less stable. This is the kind of thing that is hard to test until it’s out in the wild, so please forgive any weirdness and assume it will be fixed in time.
Triangle foundations can now have supports placed upon them.
Triangle floors can be joined to each other.. meaning you no longer need to place walls to be able to complete your roundhouse roof.
Animals really don’t want you to eat them. They now move closer to their real life speeds, weave back forth to avoid being hit, and try to flee out of view. However, animals can’t maintain top speed for long. Dedicated hunters can catch their prey after the beast has become exhausted.
Animals now develop a pecking order. High ranked animals are given right of way while hunting and feeding. Equally ranked animals will duel each other to establish dominance.
You might feel like animals are too fast. Our feeling on this is that killing a deer should feel like a big achievement – as I’m sure it does in real life. It should take effort and cunning. We’ll sort out the problems this causes in other ways (adding lootspawns, tweaking craft recipes, etc).
I added congestion detection to the network system. This detects when your connection is overwhelmed and stops trying to send packets. This means that if you’re lagging out you will find yourself frozen until your connection recovers.
The upside of this is that servers can detect when your connection isn’t congested and send you more shit. This basically removes the slow “receiving entities” counter when joining a server if your connection is decent.
Helk has been playing with the weapon recoil system. And by playing with it, I mean creating it. Your weapon now pleasingly jumps up and around when firing, just like in a real first person shooter.
Melee Accuracy Fixed
Helk looked into the melee accuracy. It turned out to be something that we’d fixed, but it regressed after the weapon refactor.
When you shoot a bullet, it traces a ray, like a line, along the path of the bullet, because the bullet is small it can fit through holes and stuff. A melee attack is different. It’s big.
The problem was that the melee attacks were using a ray trace, instead of a sphere trace. Which meant that hit hit something you had to be really accurate. Now it’s a sphere trace again – so you should find it a lot easier to actually hit stuff again.
We’ve been seeing a few EAC timeout kicks on our servers over the last few days. The EAC guys are telling me they’re seeing an increasing number of SteamAPI errors. So next week we’re doing some stuff that should stop that being a problem.
The good news is that it’s still doing its job. Another ban wave today.
Vince the pince has made steady progress with stone walls this week.
I know I say this almost every week. But man, this was a great week for us. Finally getting the servers performing well is a huge step forward and means we can stop worrying about its performance for a while and move onto other gameplay stuff. That’s what I managed to do this week, I started work on the lootspawn/blueprint system. I’m hoping that will go in the game at some point next week.. but it’s going to be tricky for a few days because no-one will have blueprints – so expect us to be throwing out a lot of updates to fix my oversights.
Next week. More bug fixing, more performance testing, and hopefully start to see big gameplay advancements.