A bunch of balancing and fixes, the harbour is coming together, and more.
I found out why our Revolver sucked as much as it did. It had a slow rate of fire, which meant that pulling the trigger rapidly felt really unresponsive and delayed. I changed it to match the fire rate of the Semi Auto Pistol, and I tweaked the recoil effects to make it much easier to use. I also lowered its cost, and allowed it to accept silencers! I did, however add a few minor penalties: it now has a larger aim-cone and quicker damage falloff, so it is really only supposed to be used close-to-mid range. Either way it should be an easier to use and a more viable weapon in general.
Some big changes to hydration this week. Firstly, you’re not going to get nearly as much water from simply eating food. This was a problem because people would just spammed wolf meat and never had to consider water. You’ll still get some from beans or pumpkins, but everything else has been substantially nerfed. This means you need to actually seek out water in the world. I’ve made some changes to help with this
- Bota Bag holds nearly twice as much water and costs less cloth
- Water Purifier runs twice as fast as it used to and is cheaper.
- You can no longer drink from salt water sources, it’ll show you a warning instead.
- Drinking from streams and lakes is a lot more intuitive and obvious
Thanks to Alex Webster, we’ve added an actual working viewmodel for the water bottle. This means you can keep the ones you find in the world and refill them (with right click) the same as you would the Bota Bag. The model is somewhat temporary and disgusting looking so we could keep it opaque. One day we’ll have the best looking water bottle in all of the games industry.
Some cheeky people discovered putting certain items in a certain order in the Recycler would yield more output resources than it was supposed to. In addition there was a bug where multiple items in the Recycler would subsequently yield less and less as the recycling process went on. Both of these bugs are now fixed and there should be no more item loss when using it.
Repairing items that require components is currently supposed to ignore the component cost of the item. This worked, except if you actually did have the components required it would take them anyway. This is now fixed. Soon, I’ll be adjusting the repair calculation to cost the constituent ingredients of the components instead, but for now enjoy the free ride.
Item Cost Reduction
- Codelock no longer requires 400 wood.
- Crossbow requires far fewer components.
- Bota bag is cheaper.
- Water purifier is cheaper.
- Revolver is cheaper.
I put a quick fix in place last week to prevent junkpiles from despawning when players were nearby, so we could prevent this. Unfortunately there was a minor oversight in the implementation that did not take sleepers into account. This meant if a junkpile spawned half inside a base and the barrel was inaccessible, it would never disappear and eat up a population slot for the junkpiles. It now ignores sleepers in the nearby player check so that eventually the junkpile will despawn and move somewhere else. Obviously I’d like to make some modifications, so they do not spawn right outside/half inside player bases (and not so close to each other) but not this week.
I’ve also implemented a fix for the dreaded empty barrel/crate problem. This should now be impossible.
Lastly, I’ve modified it so regular barrels no longer drop crude, but instead drop either 3x as much wood as they used to (100-150) or 10-15 metal fragments.
Flashlights will no longer cast a weird artifact from your other weapon attachments. Big whoop.
I’ve substantially increased the durability of salvaged tools. I know this isn’t a huge change right now as they are free to repair, but when I actually fix that you’ll thank me.
The only two-handed weapon that does not require any components got a substantial buff this week. It has the largest attack radius in the game. This means its swinging motion covers a greater area of attack, making it much much easier to hit targets (or much more difficult to miss, as it were).
Water Catcher Buff
Water Catchers now collect 5-10x as much water as they used to. You’ll mainly notice them fill up at night from fog. Eventually we’ll add rain back in and sort it out that way, but at least now there is a reason to craft them!
Furnaces had their lights disabled as they needed to cast a shadow to prevent them bleeding through bases and looking like crap. Unfortunately shadows are super expensive so we disabled them some time ago. I recently took another look at it and came up with a low cost solution that actually looks even better with no extra performance hit. Enjoy!
Reduced Stuttering Near Bases
André Straubmeier Diogo Teixeira
This issue has been bothering us for a couple of weeks now. Most of us weren’t even able to replicate it in order to properly address it, so we were mostly dependent on educated guessing and testers to sort out the problem. Thanks to all your input and some tests of our own, we were able to finally identify a pattern that would lead us to a solution (for the most part).
After the pattern was found, we tested a couple of different theories that could explain why those circumstances were leading to that cause. We finally tracked it down to a texture bandwidth bottleneck that was affecting a few sets of hardware/drivers more than others. The problem might not be entirely solved, however, it’s a huge improvement from last week and gameplay should now be smooth again for most players, if not smoother.
Raid Tower Fixes
Everybody has seen them – raid towers built with deployables, usually shelves and storage boxes, to circumvent building stability. I fixed all of those raid tower exploits we are aware of, so this should now finally be a thing of the past.
Faster Prefab Pooling
After fixing the last set of issues with our new low overhead prefab pooling, I enabled it for everybody with this update. As a reminder, this system works around some internal memory allocations Unity does whenever you reactivate a game object. This helps reduce stuttering when objects are loading in and fixes the last systematic flaw in our entity streaming system. From here on all that’s left to optimize with regards to entity streaming are some entity-specific scripts that take more time than they have to. Those optimizations will take some time, but at least we got the big problems covered now and I can focus on something else for a while.
I’ve tracked down and fixed two small co-routine related client-side memory leaks. This both improves performance and reduces overall memory usage of the client.
I spent some time profiling this week, wrote down any CPU side scripts that seem like they can be optimized and either optimized them myself or notified the people who wrote them. This should help improve performance on machines that tend to be CPU bound.
I made the projectile anti-hack system significantly less forgiving in order to block hacks that used explosive ammunition to destroy base cupboards with only a few shots.
Harbour Art Update
Vincent Mayeur Damian Lazarski
It’s been three weeks since we started to work the art up on the harbour, so far most of the large new structures are complete. We’re going to move into medium and small scale assets from now on.
Clothing World Models
Helk asked me to take a look at making some world models for the clothing items in the game. I’d hoped to create them from the existing models, to share textures and retain the possibility of displaying the clothing skin even on the world model. Unfortunately this didn’t work out. The models looked awful, were needlessly high poly and were going to be a nightmare to lod, so I set about creating them from scratch. You can see the results below – much more manageable, low poly models.
Beretta M92 Pistol
I completed the high poly model and textures for the Beretta M92 pistol.
Player Animation Tweaks
Helk mentioned that the third-person animations for when the player was holding a pistol looked a bit off, so I made them look a bit more purposeful and combat ready.
Bullet Flyby Changes
I’ve made some tweaks to bullet flybys this week that improve the way they’re played. Previously we just did a distance check to see if a bullet was within a certain distance of you, and if it was and it hadn’t played a flyby sound yet, we’d play one. This worked pretty well, but felt kind of funny when a bullet that’s flying right towards you plays a flyby 10m in front of you.
Since bullets move fairly quickly, it’s rare for them to update when they’re perfectly beside you, so now we’re doing a little extra check to find the exact spot the bullet would pass you, and we play the sound there. We’re only playing the sound once the bullet passes you now, so bullets that fly towards you and hit an object, you, or the ground before they pass won’t play flybys anymore.
Rifle bullet flybys sound stronger than pistol bullets now.
Sound Occlusion Tweaks
I did a few little fixes for some sound occlusion related issues this week. When you crouch, eating/drinking sounds didn’t move down with your head, so crouching underneath a staircase and eating would cause occlusion to kick in. I also repositioned the fire loop on campfires a little bit.
I’ve been recording this week too. I’m working on gear movement sounds to lay over footsteps for non-naked players at the moment.
Getting good metal movement sounds for the road sign armor has been the toughest part of this so far. The closest I’ve gotten to what I’m looking for was using some pieces of metal from a filing cabinet that I destroyed with a sledgehammer a while back. Performing the sounds in a way that makes it obvious there’s metal on the player without making it sound like someone is stomping around in a suit of plate mail is tricky. I’ve gotten pretty close using my hands, but I think tomorrow I’m going to try punching some holes in the metal sheets and actually stringing them around myself.
I also spent a little bit of time experimenting with different mic techniques/positions for recording footsteps, and doing test recordings with all the shoes I own (I also may have tried a few of my girlfriend’s shoes but don’t tell her). This footstep stuff is prep work for the whole different sounds for different footwear thing.
Inventory UI Sounds
I’m also almost finished with a bunch of new inventory UI sounds. These are mostly built from the recordings I did for the deployable placement stuff I did recently, but I have recorded new sounds for a couple things like seeds and bean cans.
Weapon Deploy Sound Fixes
A few weapons had third person reload sounds added to their deploy animations accidentally, so I’ve removed those this week too. You don’t have to worry about anyone hearing you whip your P250 out anymore.
I’ve been doing icons! Top row are the low quality and high quality bags you can craft or buy in the steam marketplace, and a box. These could potentially have different looks and icons on them in the future to distinguish different skin sets down the line if needed.
Bottom row are component pieces to replace the temp art. Nothing crazy, but just making sure they look easily readable when you see them looting stuff. The tech trash one will probably appear a little different as it didn’t read so well in the inventory, so I might re visit that with some tweaks later.
Improved bullet flyby playback Fixed occlusion weirdness on a few sounds Fixed a few weapons playing 3rd person reload sounds on deploy Tiny bit of misc sound polish Reduced stuttering near bases Added Water Bottle viewmodel Removed ability to menu-drink from bota bag/water bottle Revolver refire rate increased Revolver aimcone increased Revolver damage decreased very slightly Combat log includes timestamp Fixed some issues with pool.mode set to 2 Set pool.mode to 2 by default Shelves can no longer be placed on deployables Pumpkins can no longer be stacked Made projectile anti hack stricter Fixed rendering layers on some trees Fixed client side socket handles sometimes not being destroyed Fixed a small client side coroutine memory leak Added pooling support to client side lock entities Optimized player model and name tag scripts Made debug.ambientvolumes dev-only (potential exploit)