30 July 2015, 4PM
We had a breakthrough with server performance over the weekend. Server performance had turned really terrible over the last couple of months. Many servers were running at under 5fps. This meant that players on the server were teleporting about so gameplay wasn't smooth at all.
We found a couple of performance problems with our usage of rigidbodys, IsInvoking (which is slower than it could be), and moving the player in each received tick. All this lead to a snowball effect where once the framerate dipped the server couldn't recover.
We went through all this stuff and applied a few performance fixes and am happy to say we're not seeing any issues anymore. Some of our servers with 200 players connected that were previously running at 4fps are now running at over 500fps. You would not believe how much of a weight off our minds getting this shit sorted is.
Stone Compound Walls
This heavy duty wall is pretty hard to break through - but is easily scaled using a ladder. This is most useful for funnelling attackers, to make it more likely that they'll attack via the front of your base instead of coming from all directions. The pieces snap together allowing you to build a wall all around your house.
Wooden Compound Walls
This is like the stone wall but it's made out of wood - and has a nasty surprise for anyone trying to jump over.
You might think what's the point in analytics. Isn't it for websites or something? Well, kinda. Now and then there's questions we ask ourselves that we don't have the answer to. Or more likely there's assumptions we make that turn out to be wrong.
For example, which items are the most crafted? What is the most common cause of death? How many people play in DX9 mode vs DX11 mode? Up until this week we didn't have the answers to these pretty basic questions.
This allows us to make smarter more informed decisions, rather than working from our gut or from angry reddit rants. I'll post some stats next week.
This week I worked on the workshop SDK. This lets people design their own skins with the hope that they'll be included in the game. We're looking at the same model as CS:GO.
Right now it's just t-shirts and pants, but people have been doing some really imaginative stuff.
Obviously we're not going to put any old shit in the game. What goes in is up to you, or more accurately, kind of up to you but ultimately up to us. So vote shit up and if it's not a terrible meme, someone else's IP and fits Rust's style, it'll go in.
The SDK is available on Steam under the tools section. You need to download Unity. There's a rough guide here on how to get started, but I'm holding off writing some real comprehensive docs until it's settled a bit more.
I worked on a bunch of stuff that sadly will not make it into this patch because it’s not ready yet, but here’s what made it in:
So reducing the spear range that much last week ended up being a kind of stupid way to fix the problem. I’ve increased the range again, but made the attack radius very small, so you really have to aim at exactly what you want to hit; there’s very little grace area. Also the spear attack charge time and it’s repeat delay has been increased. Hopefully with these changes the spear will be nerfed, but not useless.
Something I saw happening a lot--especially during raids--was the constant wound/revive train that would make battles go on seemingly forever. This was kind of an unintended issue with the system. To combat this issue I’ve changed it so that being wounded again within 60 seconds of getting up results in death.
You used to be able to pull out a weapon and start attacking with it immediately, and some people would stack 6 spears in their belt and toss them all rapid fire style, or use it to shoot a bunch of different weapons instead of reloading. I put a stop to this by only allowing the weapon to be used after it has been fully deployed.
Oil/HQ Metal Balance
- HQ Metal is less common in general.
- HQ Metal is more common in the tundra and arctic biomes.
- HQ metal has a very small chance of spawning in the temperate biome.
- Oil is much less common in general.
- Oil is much more common in the Arid/desert biome.
- You can find HQM in rad towns (not much).
- You can find HQM in barrels (not much).
- This means some of your existing quarries and pumpjacks will give nothing anymore, sorry!
I’ve disabled radiation by default this week. The reason being is that it’s so horribly unbalanced and broken that the only thing it’s adding to the player experience is annoyance. Enjoy it while it lasts, I’ve got some ideas I’ve been working on which will make radiation behave like the hazard it’s supposed to.
- Lowered small refinery drop rate.
- Lowered crossbow drop rate.
- Explosives fall off their parent when it is destroyed instead of vanishing.
There are some things that suck in Rust. I know. And I’m working on them. I introduced the HQM mechanic, and it has an effect on smaller groups of players. I think this is wildly overstated with most complaints, but I’m still taking some steps to mitigate this. Also the blueprint system is absolute garbage and so are radtowns. You shouldn’t have to jump through these bizarre hoops of running naked into radiation zones 9000 times to finally find a remotely decent blueprint. I know all this and I’m working to solve these problems. I did some work on these issues this week, but the changes just weren’t ready for the patch. Hopefully next week.
Let me start by saying that this won’t be live until next week. Procgen10 will focus on world generation fixes and monument gameplay improvements. This week I prepared some code to allow monuments to have interactive elements, brought back icebergs to the arctic biome, improved the icesheet spawn rules and moved certain decor that was part of the static decor system to the dynamic one, which should reduce the load that has to be handled by Unity’s terrain tree system. I also did some physics optimizations to the road and river meshes, which should especially help with particle collisions like rain and snow.
People like to get into rocks and build inside of them. This should finally be fixed once and for all now. If you get wind of any way to still do this after today’s update, please let us now.
I found a bug this week that led to the building batching refreshing all the time rather than just when it had to. This wasn’t really a huge performance problem since it uses a load balancing system to distribute its work across multiple frames, so the impact on every individual frame was minimal and should generally have been below 0.1ms. Nonetheless, there was work being done that didn’t have to be done, which also made the LOD grid refresh much slower than usual when a lot of buildings were around.
Aside from some tweaks and fixes this week, this was actually part of last week’s update but I didn’t really write anything about it and people appear to be confused as to whether or not the changes will stick around.
For months building blocks have been using some very strict placement rules that wouldn’t allow you to place them partially inside of terrain or rocks and generally made building inside caves or at terrain slopes a pain. I removed most of those checks since their original purpose is now fulfilled by the new placement checks we implemented, which are much less preventative. We’re not planning to revert this - personally I’d like to go even further and get to a point where every placement that looks like it should work to someone who’s playing the game for the first time actually works.
I fixed some more stuff with player movement this week. There should be less of that annoying limbo state between falling and standing and you’ll no longer be able to bug to the side of certain colliders and have the movement system count it as grounded. I think it’s pretty solid now and I can finally start with the new step detection as soon as I find the time.
- Fixed that crate respawning could stop when it threw an exception on the server.
- Fixed foundation step terrain check being off.
- Fixed weapon deploy corruption that could make the current viewmodel invisible.
- Fixed depth testing and sorting of the torch world model material.
- Added leather resource type.
- Made the interaction point stay at the center of the screen when looking around.
- Added sphere and capsule deploy volume checks (used by furnace and campfire).
- Added support for multiple deploy volumes on a single object to better approximate its shape.
- Fixed that the server would not apply monument and radtown randomizations.
- Fixed material of the small bridge (which btw only exists on rivers now).
- Added command history to F1 console (navigate with up and down arrows).
- Fixed possible overflows of the F1 console text buffer.
- Fixed construction plan using the wrong body weights.
- Fixed a bunch of warnings all over the code base.
- Fixed test cave on CraggyIsland.
- Added exploit test rocks to CraggyIsland.
Finish up procgen10, then get back to what I wrote about in the “Next Week” section of last week’s devblog.
I added the hacksaw melee weapon this week.
I also replaced the placeholder animations for when the player is constructing buildings. The new animations have the player holding a blueprint.
I finished the recover from wounded animation.
I modified the spear attack animations so there’s more of a windup (as per Helk’s request).
I also fixed a few issues with the player aiming where his back would bend in an unnatural way when he looked straight up. Next week I’ll be working improving any player animations I think look janky.
The past couple of weeks have been devoted to making female versions of all the male clothing items that don’t fit properly. This is mostly grunt work that’s very time consuming and requires a lot of copying and pasting, tweaking models, checking things off on lists, etc. I still have about another day and a half until my part of the female clothing is finished, so this stuff probably won’t go live until at least next week.
Next week I should be moving on to some of the heavy armor that Paul designed from Devblog 68. There’s some exciting stuff in those concepts!
Yet more vehicles from me this week. Trying to make these look a little more armored and useful for offensive purposes, or just to humiliate your prisoners.
Next week I want start working on some saddles for horses. I’ve been seeing a lot of threads begging for rideable horses so I thought that would be a good thing to work on.
I finished up some refactoring of the ambience system and did a bit of work on the sound system as well. There’s not a lot of immediately visible in game benefits to this, but we’re set up to easily do some things I’ve had my eyes… er.. ears set on for a while now.
I’ve also done a set of player footsteps for metal surfaces, a polish pass on rock, some other general tweaks and clean-up to existing sounds, and have started working on sounds for the new melee weapons.
Next week I’m going to be focusing on finishing up the new melee weapon sounds, and if those all get finished I’ve got some things I want to experiment with in the ambience system, like adjusting the frequency that certain sounds happen at based on the time of day, weather, or in game events (think things like more birds at dawn, birds getting quiet when guns are fired nearby, less birds when it’s raining really hard, etc).
This week I have some blog-able stuff to show off. Last week we decided it would be a better idea for you guys to discover the things associated with the icons instead of me showing them all off here. This means if I’m absent from the weekly blog post there’s a good chance I’ve been slaving away deep in the icon mines.
Now for the things I can show off: Flamethrowers. Been working on these and trying to find a low tech solution to make them work. The favourite design so far is based loosely on a water pistol with a pump to build up pressure and something simple like a candle or torch on the end.
I’ve also started working on some ideas for the beds I mentioned a blog or two back. They’re not quite like the beds from Legacy, and are more along the lines of a tier up from a sleeping bag. The general idea would be that these beds would be harder to destroy, possibly have some kind of recovery or health benefit, and have some extra storage without taking up extra space in your base.
Next week I’m working on some more detailed views of the flamethrower, tweaking it to make sure it’ll work in first-person, and also trying out a few more bed ideas.
As you guys and gals know, we’re revisiting the female character model; changing things here and there slightly to fit more closely with how we imagined her to be. A bit more top heavy, i.e. broader shoulders and few slight variations in other places.
This is what the new female revision looks like. I’ll be further tweaking this throughout this week, hoping to get something ready for implementation soon.
So we have Workshop items that you guys can get all cozy and creative with. I took some time to make some hat items for you all to play around with soon when they’re implemented.
I also made a boonie hat too, which is still a work in progress. Nevertheless here’s a pic of it with a military camo texture.
I fixed an issue with one of the character's alternative normal maps making the eyes look funky. They’re less funky now.
Next week I’ll be focusing more on the female character, and trying to get that to a stage of implementation. Hopefully I will do.
Smaller tasks this week. After a while doing bigger things, I replaced our ugly temporary pumpkin art with something a little bit nicer. I made the new compound walls that Garry is implementing this week. I also worked on finishing the sphere tank structure, did some fixes around large deployable collisions such as the quarry and pumpjack. It’s a week made of small tasks and I can’t wait to get back onto bigger things.
Next week I will have a different survey crater finished for displaying oil reserves found on terrain, and I know I mention this for weeks now, but I think I’ll finally start on the large refinery deployable.
Did some more ideas this week for heavy armor, something with more scope for player painting. It has bigger AND simpler plated areas that can be painted with custom designs
Next week I'll look at doing some straight up bad-ass type military/SWAT gear that will likely be rare drops only obtainable from certain things. Also ammo belts and a quiver are on the menu too.
Instead of pushing forward with what I’m calling “Biome Prop Blending” or “BPB”, I spent this week making collision meshes and LODs. It’s less sexy but respectable work. Andre and I have agreed on a way to spawn plant life on props, so I will be getting some test asset ready in the next couple of days.
newAdded stone external wall newAdded wood external wall newAdded utf8 mode to rcon (send message id 5 to turn it on) newAdded workshop newDeployDelay added to weapons newAdded leather resource type newAdded sphere and capsule deploy volume checks (used by furnace and campfire) newAdded support for multiple deploy volumes on a single object to better approximate its shape newAdded command history to F1 console (navigate with up and down arrows) newAdded exploit test rocks to CraggyIsland fixedFixed player headbox fixedFixed player holdtype not updating fixedFixed player inventory not always being networked to other players properly fixedFixed player eyes sticking out when dead fixedFixed dragging clothes onto item in inventory making item dissapear fixedFixed closing console executing command fixedFixed exploits that would allow people to enter rocks and build inside of them fixedFixed various minor issues with player movement fixedFixed that crate respawning could stop when it threw an exception on the server fixedFixed foundation step terrain check being off fixedFixed weapon deploy corruption that could make the current viewmodel invisible fixedFixed depth testing and sorting of the torch world model material fixedFixed that the server would not apply monument and radtown randomizations fixedFixed material of the small bridge (which btw only exists on rivers now) fixedFixed possible overflows of the F1 console text buffer fixedFixed construction plan using the wrong body weights fixedFixed a bunch of warnings all over the code base fixedFixed test cave on CraggyIsland updatedMuch needed server performance improvements updatedCan't voice chat when dead or sleeping updatedAlways get at least one seed from corn/pumpkin updatedMetal footstep sounds updatedMisc sound cleanup and polish updatedSpear range increased updatedSpear attack radius decreased significantly updatedSpear attack repeat delay increased updatedServerside melee check maxdistance reduced updatedOil/HQMetal less common updatedOil more common in desert updatedHQMetal more common in Artic/tundra updatedBeing downed twice in 60 second results in death instead of another wounding phase updatedStuck explosives fall off their parent when destroyed updatedRadiation off by default updatedHQMetal drops in loot containers and barrels updatedImproved performance of building batching updatedMade the interaction point stay at the center of the screen when looking around
If you want to follow this project you can sign up to the mailing list.
We'll only update you about this project, we won't spam you about other stuff or sell your email address.