Lots of balance tweaks this update: external walls and masks are no longer OP, while the Code Lock takes a buff in damage dealt. There’s the first look at the flamethrower in-game, though you’ll have to wait a little bit longer to get your fingers burnt.
More music this week! This one’s most of the way there, but needs a little bit more work still. The brass part needs some love, and the drums could be a bit more tense in the later parts (which would be the more intense parts when this is dynamically arranged in game).
Code Lock Brute Force Exploit
Some brute force codelock guessing scripts have made their way around the cheating community and there’s been quite a bit of noise made about it. We looked into it and found several exploitable problems, so these holes are now sealed. You can no longer do anything with locks while dead, and every time you guess wrong you will take a bunch more damage: first time is five, then 10, then 15, etc. If you stop trying for a while the damage will reduce back to five. This should make it virtually impossible to brute force guess a combination in a remotely reasonable amount of time. If it’s not enough we’ll adjust the values, but I think we’re good for now. Sorry about that everyone!
Metal Facemask Nerf
Well… this was enlightening. I guess when we adjusted the skeleton damage multipliers we forgot to take some armor into account. I’ve lowered the bullet protection value of the Metal Facemask by about 20% to bring it in line with the chestplate. This should mitigate the “taking six headshots without dying” issues with armor until we add per-attire health values in the near future.
External Walls & Gates Balance
I took a look at the health and armor values of the external gates and walls and to my surprise they were completely out of whack. They had no building shell protection and their health seemed to be artificially inflated with temporary numbers to compensate for that. It should not take eight C4 and 16 rockets to destroy these things. Their entire purpose was to be able to build a compound without having to place foundations and walls. To that end, I’ve drastically reduced their health and added building shell protection to them. What this means is you won’t be able to pick through them as effectively, but Stone will also take only three C4, and wood will take 1.2 C4. I think these are far more appropriate values, but I’ll listen for feedback and adjust as we go. I’ve also slightly inflated the cost of wood gates.
Skin Material Tweaks
I’ve brought myself in line with the main branch ready to start merging the new player models into the game. This means I’ve been able to use Diogo’s new skin shader on the updated model. Results are looking nice so far, and I’ll be working with Diogo to further tweak it.
Conditional Models 2.0
I’m finally done with the last part of the new building conditional model system. It was a lot more fucking around than expected, mostly due to performance and memory usage concerns, but conditional models now run on the server as well and performance on both the client and server seems to be good. I won’t throw it into this week’s patch due to the lack of testing, but you can expect it next week so I’ll post more details on everything it does in it in the next devblog.
Decay has been pretty annoying for a while. The decay points that should be used to disable it on internal foundations didn’t work reliably and checking them was pretty slow on the server side. This is now fixed, so foundations will decay slower when there are other foundations attached to them. This uses the same entity socket linking backend I implemented for the new stability and conditional model systems – it feels good to get some good use for a wide range of building related stuff from it.
So far I’m getting things done at a good pace on dungeons. This week I finished the art for:
- Brick/Plaster walls set
- Concrete slabs set (used on the ground)
- Rubble piles set (junk, concrete, bricks, coal piles or various sizes)
- ‘Glue’/Dirt Accumulation textures (used where walls meet the ground)
I plan to release all this new content on the next wipe cycle now as it makes more sense due to the long list of changes to the dungeons themselves.
Powerplant layout has changed, and it’s now more compartmentalised. Before you could pretty much see from one side to the other; now several pockets open/reveal to you as you progress through. I’m planning to give the same treatment to the other dungeons. There’s a technical reason behind this as well: when we will have occlusion culling volumes, we’ll cull a lot of shit that’s not visible, for the best.
Something that’s been bothering me for a while is that we’ve always had to cull all objects pretty early since the performance overhead for any object, no matter how low poly, was pretty significant. Thanks to the batching improvements we rolled out a few weeks ago this overhead was eliminated almost entirely, so I got rid of the super early culling of barricades and you can once again use them to hide from far-distance observers.
I rigged and animated the flamethrower, and created sounds and special FX for it. Hopefully Helk can have this in game by next week.
I re-enabled prefab pooling this week. If you remember I added this several months ago, but we ran into issues with the sound system and had to disable it. I sat together with Alex R to fix these issues since bringing this back will be a huge contributor towards keeping the frame rate more consistent.
I updated all deployables to use the newer version of our object placement system which features a number of quality of life improvements over the old system. While I was at it I also fixed a number of potential exploits with object deployment. Aside from that the biggest advantage from a player’s perspective is that deployable placement guides no longer immediately turn red when they are too close to another object but instead remain at the last valid placement position that has been found, which makes the alignment of boxes much easier. This also means we can soon get rid of a bunch of ancient code, and the best code to maintain is no code at all.
Automatic Violation Kicking
I enabled automatic kicking when high anti hack violations have been detected by a server. We have tested this on our servers for a while and as far as we’re aware there aren’t any unresolved false positives with it at this point, so it should be smooth sailing. Server owners can of course still configure this behaviour with the anti hack convars.
Melee Concrete/Rock Impact Sounds
We’ve gone through a handful of different versions of these now, but since they’re one of the sounds you hear most often, I think it’s worth really spending time getting them to feel right, and I’m a lot happier with where they’re at now.
I’ve been recording a bunch of other things that will end up in game over the next few weeks too (physics/pickup/place sounds for items, better/more varied footsteps, more birds, etc).
Was all over the place this week in regards to graphics. Fixed and optimized a lot of shaders, fixing bugs, and making changes based on player feedback we’re getting from multiple sources. Just a bit of much needed performance and aesthetics polish before I get back to new features and bigger tasks.
Tyre Structures (Concept)
Continuing on with more ideas for stuff players can place in the world, I tried coming up with a few different uses for tyres. I know some of these would function similarly to a few of the items we already have, but I don’t think it hurts to have more visual variety. For some reason I got pretty tired after doing these.
Reactive Target (Concept)
The self resetting target design I had from last week was probably a bit over-designed, so I came up with some simpler variations. Instead of the target coming back up on its own we want players to have to reset it themselves, after doing these we settled on the version all the way to the right.
Reactive Target (Model)
I loved the idea of the reactive target concept by Howie, and the idea of having to manually set it up. After settling on the far right version, we made it. Take a spin of it here!
There was a little bit of a problem with traps spawning quite commonly in barrels and in radtowns, and this meant new players would just randomly deploy them leaving the world littered with useless traps. That only meant frustrating random deaths for other players. This has been fixed by only allowing the blueprint for traps to drop instead of a deployable version. If you want to use the traps you’ll have to spend the resources to craft them now.
New rock/concrete melee impact sounds Enabled server violation score kicking by default Re-enabled prefab pooling (performance) Made pool.prefabs and pool.assets console commands take an optional filter argument Fixed invisible external wall gate doors in the distance Tweaked external wall gate LOD ranges Fixed invisible barricades in the distance Converted all deployables to the planner system (quality of life) Fixed decay points on interior foundations being buggy and unreliable Improved server side building decay performance Fixed various deployable placement exploits on walls and rocks Allowed tree.quality and mesh.quality convars to be > 100 Made mesh and tree qualities > 100 push back billboard and cull distances Wall frame inserts do the same construction layer checks as walls Removed hand snapping into view on hatchet vm attack & hit anims Fixed some shader bugs in large monuments Fixed low resolution terrain rocks Fixed runtime shader errors causing invisible objects on Linux Fixed culling not working properly on some objects Fixed helicopter windows and rotors now fade into fog properly Fixed horse hair to not fading into fog properly Improved and optimized rainfall shader Improved anti-aliasing Tweaked important textures to work with trilinear filtering and anisotropic Increased resolution on some props with extremely low resolution textures Improved skin shader Brought back and improved shore wetness Metal facemask protection levels lowered to that of chestplate Codelock does higher shock damage for wrong codes External wall health balance Removed traps deployables from common loot table (bp only) Added skins Fixed DDOS amplification exploit in steam query Updated weapon mod icons Added "ent who" command for admins (echos entity creator) Fixed calling some RPCs when dead Added command "clear" to clear the console Added command "copy" to copy the console to clipboard Updated EAC Updated to Unity 5.3.2p3