Devblog 110

Water purification, farmable hemp, new clothing, decay fixes, and lots more.

12 May 2016
Water Purifier

A new form of hydration is here! This deployable will generate clean, fresh water from salt water. Just place it over a campfire, load the tank up with salt water, and give it a bit of time. Soon enough you’ll have clean water to drink. I think this is an important addition which will make living away from lakes and streams a lot more viable.

Hydration Tweaks

I’m going to have to go through and make water-loss far more aggressive soon, but for now I've limited the maximum amount of water you can keep in your body from drinking to 250 instead of 500. This should make it so you have to drink more frequently and can’t just load up at a river and forget about it for four hours.

Silencer Tweaks

I’ve made a first pass at adjusting the silencer due to public outcry. It has 2.5x the durability, and only lowers damage done by 25% instead of 30%, I’ll revisit this in the future if it still sucks, and probably reduce the cost.

Roadmap Update

I’ve been on a bit of a roll with the metabolism and water improvements and haven’t taken the time to give some love to prerelease. With Garry out of the picture for a while this is now my responsiblity and I guess it was sort of wrong of me to neglect it. Because of that we’re way behind on the roadmap at this point, but on Monday I’m going to merge everything into prerelease and get the ball rolling again on the XP system. We really need to get this sucker merged into main as it will solve a lot of the early game problems that are currently in Rust.

Halterneck/Skirt

The feminine hide clothing is in. They don’t do anything the existing hide clothes don't already do, but if you want to cover yourself up with something a bit more feminine now you can.

Decay Reboot

Decay hasn’t really been doing its job. The main reason for this was that the timer reset whenever the server restarted, which for many community servers with semi-daily restarts meant nothing would ever decay; even official servers would often decay the higher building tiers slower than the wipe period. This is now fixed. While I was at it I also optimized the memory usage of the decay system. This allows us to add it to many more entities if required. I’m hoping this change will help with long-term client and server performance and allow servers with high player populations to stretch out the wipe periods further. I’m sure the decay rates will need some tweaking, but I didn’t want to guess numbers given that decay was barely working at all until now. We’ll figure it out after observing the servers for a while.

Viewmodel Spasms

This has been around for what feels like an eternity. Whenever you switched weapons the viewmodel flickered up in the incorrect pose for one frame, which made the game feel like it was written by a high school student for his first programming project. It is now finally fixed.

Repair Fixes

The repair system allowed you to repair every building tier with just wood, which was really unbalanced and could fuck over people who weren’t aware of that fact and used their high quality metal to repair their base. This is now fixed and repairing objects now requires the same resource types that were used to build them.

Plant Fixes

I came across a number of bugs in the farming system. The biggest issue was that plants could get stuck in the invisible seed state forever if their happiness was hovering around zero. This leaked plant entities on the server, which is never a good thing. On the client side plant skins now use prefab pooling for better performance and the planting and harvesting particle effects are rotated correctly.

Farmable Hemp

This should be an interesting change to make the farming system a bit more relevant. Wild hemp now gives 10 cloth and 1 hemp seed. The hemp seed can be used to plant hemp, which gives another 10 cloth when harvested. This not only adds another gameplay layer, but it also means we can check whether or not people are actually planting their hemp seeds and decide whether or not the amount of wild hemp in the world is too high or too low. This is just the first of a number of planned additions to the farming system, let’s see how it plays out. Rustafied took a nice shot.

Cave Fixes

Lots of things were broken in caves: World models, ragdolls, debris, rockets, deployables and turrets. Those are all fixed and working correctly now, so go out and enjoy your caves for the dark holes that they are.

Anti-Hack

We saw an uptick in the damage done by hackers recently due to some standing exploits in the game code. We kicked off the week by fixing a remote looting hack (“noclip”) that went viral last week.

Furthermore we improved the server side fly hack detection. This fixes a number of ways people were getting over perimeter walls or onto buildings. We also made the automatic anti-hack kicking a bit more aggressive.

Lastly we spent some time investigating projectile hacks, the most notorious one being a way to make projectiles instantly hit their target with no projectile flight. We came up with a way to detect and prevent this on the server, which will be enabled by default on all servers.

Depth Precision Improvement

After a couple of unexpected challenges, I finally managed to roll out a working solution to drastically reduce z-fighting across the board and the results are phenomenal.

I ended up switching to the popular reverse-z technique instead of pure logarithmic depth for performance.

We can only see it in certain situations because most of the problems occur further away and fog hides them. Now we can safely push fog further without worrying about these issues. One area where artifacts are very visible, and completely eliminated, is on the shore around shallow water where ocean and terrain intersect.

In some cases it will be very obvious. For example, when using a very wide screen resolution:

This feature is disabled by default for the next couple of days to ensure that we convert all the necessary materials to take advantage of it. Feel free to give it a spin by using the "graphics.revz 1" command. Please mind any issues with it, we'll have them sorted out by the weekend.

Mix Tweaks

I played for a bit on Thursday and Friday with a notepad next to me to test the new mix tweaks out in the wild. It was apparent pretty quickly that the ambience was a bit too loud and footsteps were a bit too heavy, so I fixed that along with a handful of other things I wasn’t happy with yet.

Fish Trap Sounds

I’ve added some new sounds for the fish trap for when it’s caught a fish. It was kind of tricky to find the right thing to record to get the leathery wet flapping element I was looking for, but I ended up getting the right sound out of a banana peel (and getting bits of banana all over the place). I layered those flapping sounds with some water splashes to get the final sound. I also recorded myself sawing at and cutting some meat, which will be used for fish gutting next week.

Physics Sounds

I started working on impact sounds for in world physics objects this week. I’ve been working on the implementation side of this mainly so far, tuning which sounds play when so we don’t get huge bonks when you lightly toss something on the ground.

I’ve started recording and putting some of the sounds together too. I’ve actually been able to use a lot of the recordings I did for our item UI sounds for these, but have had to record harder impacts with a lot of the objects since the item UI recording sessions were just picking up and setting things down.

I’m focusing on impact sounds first but I’d also like to add the ability to fade in a short loop if while an item is sliding across the ground.

Music

I’m digging back into music this week too. I spent some time writing more material (not quite ready to show that off yet, but next week!) and spent a bit of time experimenting with bringing separate music layers in and out instead of just switching between short clips so that we can react to intensity changes a bit more quickly.

Player Preview States

Some more animation ideas for state changes this week:

Player Animations Optimizations

This week I went over all of the third-person player animations and improved them to look more natural when walking/running. I also finished up the optimizations on the way the player animation system works.

I ran benchmarks comparing the old animation system vs the new one (on a scene with about 100 player models visible): there’s a noticeable improvement in the amount of memory the animations use and also the performance. When lots of players are on screen at once, the framerate should be much better than before.

Wood Armor Rework

I tried a different approach to some of the current armor this week. These are wood, where it would be sort of more of an armored vest, with sections that allow for more articulation and not bendy wood. This should allow it so fit better around other clothing items without all that crazy clipping and hovering sections. Being able to wear it over a thin underlayer like a t-shirt seems to make sense, but you couldn't wear it over something like a thick winter jacket.

Washed-up Food rations

Another idea I worked on this week is some kind of loot that could be found washed up or floating in the sea: a food supply/ration box that players could used to give them a few provisions to help them along slightly in the early game. I'll do another pass at these to tweak them slightly so you can more easily see them from a distance if they're floating in the water, but these design are pretty close.

110 May 12 2016
  • new

    Added hemp seeds and hemp farming

  • new

    Added anti hack kick counter to admin status command

  • new

    Added another layer of fly hack protection

  • new

    Added server side projectile speed verification

  • new

    Added halterneck and skirt

  • new

    Added water purifier

  • fixed

    Fixed viewmodels spazzing out for one frame when deployed

  • fixed

    Fixed roof side conditional models occasionally missing on the client

  • fixed

    Fixed entity pool warning when certain pine trees were destroyed

  • fixed

    Fixed plant entity leak when their happiness was stuck around zero

  • fixed

    Fixed planting and harvesting particle effect rotations

  • fixed

    Fixed possible server side NaN / infinity positions of physics entities

  • fixed

    Fixed world models, ragdolls and debris ignoring cave triggers

  • fixed

    Fixed server projectiles like rockets ignoring cave triggers

  • fixed

    Fixed floating deployables in caves

  • fixed

    Fixed turret line of sight check in caves

  • fixed

    Fixed patrol helicopter and turret not seeing and firing through fences

  • fixed

    Fixed seam in river transition to ocean caused by fog

  • updated

    Optimized and improved 3rd person player animations

  • updated

    More sound mix tweaks

  • updated

    New fish caught sounds for traps

  • updated

    Decay states save and load on server restart

  • updated

    Decay uses less server memory

  • updated

    Building block decay timer correctly resets when fully repaired

  • updated

    Client load balancer pauses other work while network packets have to be processed

  • updated

    Repairing now requires all types of resources an object costs (instead of just one)

  • updated

    Plant skins use prefab pooling for performance

  • updated

    Plant server convars actually do what they claim to do

  • updated

    Wild corn and pumpkins always spawn next to rivers

  • updated

    Reduced driftwood decor object density

  • updated

    Dialed back tint randomization of wild hemp

  • updated

    Tightened valid cupboard placement angle

  • updated

    Powerline cables now cast shadows

  • updated

    Powerline cables are now affected by fog

  • updated

    Silencer durability increased

  • updated

    Silencer damage reduction slightly reduced

  • updated

    Can no longer codelock fish traps

Mailing List

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.