Shotgun traps, optimisations, and more.
18 May 2017
We want to rework decay to make it more intuitive and much more efficient at solving the problems it’s meant to solve. The first step for this was to optimize the decay computation on the server to lay the foundation for more complex decay behaviour in the future. Once this was done I enabled decay on all twig building blocks such that all parts that are left over from raids decay quickly within two hours, eliminating the need for the base owner to manually clean them up.
Last wipe I had difficulty placing my flame turret in my airlock, so I changed it so you can make it hug the wall a little easier. Big whoop!
Floor spikes have been quite useless for a while, especially so after re-enabling twig raiding. I changed them so they now block foundation placement the same way barricades do. They’re still quite easy to destroy with metal tools, but can offer some protection for smaller bases and can be useful to block hiding spots around your base entrance. If they turn out to still be useless after this change we can adjust their health as needed with the next wiping update.
I moved over nearly all of the remaining Unity invokes to our optimized invoke handler. This generally eliminates overhead and makes our code more robust as I explained when I first added the system to the game. Nothing too exciting, but progress nonetheless.
To prevent the abuse of the extended pickup mechanic on window bars and embrasures for unintended use cases I added a penalty when picking up those building pieces. They now lose half of their health whenever they’re picked up, and need to be repaired with the hammer after placing them again.
I’ve added a new trap straight out of Concept Limbooo. This shotgun trap detects motion in front of it, and when it does it starts blasting homemade shells every second until it runs dry. You can place them on walls, ceilings, floors, etc. I’m excited to see how people use this for base defense moving forward. I’d eventually like to have actual pressure pads and stuff, but this should do for now. It’s worth noting that it is only triggered by people who are not authorized on your Tool Cupboard, similar to the flame turret. Enjoy!
I continued work on the rocket factory building. I focused on finishing the ground mesh and did a dressing pass on the ground level. In addition, I have created a scaffolding around the rocket, polished the interior geometry, added damage to the walkways and began to playtest the layout. My next step for this area is to finalize all the paths throughout the levels, finish the jumping puzzles and add ladder access to open up different levels of the building.
I made a bunch of recordings for the water jug this week and have done most of the editing to get the final sounds ready to go in game. Should be finished next week!
Floor grills have been rarely used since they offered little advantage over the normal building floors. To give them a purpose you can now build them closely above the large furnace as they allow for the needed air ventilation and therefore fulfill a specific purpose in the game.
This week I finished off the LODs, gibs and prefabs for the revised dropbox that you saw last week. I also created the gibs for the single-shot gun trap, readying it for implementation. Then I moved onto a new asset: the Scrap Pile that Paul concepted. This is what you’ll now see when you break a barrel:
Continuing with player anim feedback ideas. I went back to the player preview animations I concepted a while back. They now all have the required transitions to/from each state, as well as Unity animator states ready for implementation if/when it's desired.
This week I went on to test and fix a bunch of integration issues introduced by the new physical-based shading. It's pretty much ready to deploy, but I decided to postpone it until after today's patch, so we can get a week's worth of player testing on Staging.
Below is a video showing off the new skin shader on the viewmodel hands. Please mind that some of the textures were tweaked by me and are still pending on a proper contribution from a real artist. Same goes for the player/worldmodel skins. Regardless, you'll be able to give it a spin tonight on Staging.
I also started building a new hair shader that I plan to unveil next week.
You know what sound I really hate? The salvaged icepick. Holy crap! I started working on polishing up the impact sounds for it this week. I took a piece of pipe from a speaker stand I’m not using and recorded some impacts with it. I ended up doing one set on concrete and another set on some packed down dirt.
The packed dirt kept the metal from ringing out really nicely without adding too much of its own character to the impact. I was careful not to strike at an angle and kick a bunch of dirt up, so there’s not really any debris sound, and it layers really nicely with our existing grass/sand/cloth/etc impacts.
A while back I did soft material impact variations for most of our melee weapons by editing the existing impacts, but the quality improvement from using separate recordings was pretty massive, so I’m having a go at re-recording other melee impacts in the same way.
I continued work on music this week, mostly working on polishing all of this stuff up now. I’ve got the remake of the classic theme set up in game, and although there are a few tweaks to make on the audio side still, it’s sounding pretty good so far. I’m particularly happy with how much smoother intensity changes feel with this one.
I was able to build the song up from much smaller audio clips because of the new playback system, so we’ll be able to save bit of disk space and memory too. The bassline, for example, is built up from 5 different 1 bar long clips now. In the previous system we would have needed 6 different clips and they’d all have to be 8 bars long, which would have been about 10x more audio data.
I’ve also started working on another song that I’m pretty hyped about so far and have spent a little more time fine tuning our other existing songs, particularly looking for spots where I can swap longer clips out for a handful of properly arranged shorter clips.
I’m getting pretty close to having this stuff wrapped up, but I think I want to sneak another new song or two in before I push it out. I’ll have previews of those up soon.
When AI was merged into main from pre-release it introduced a pretty big bug. We were checking out the dump files from a server and the 2nd highest entity count was invariably the planner entity. This is what is used when you go to deploy anything. How could this be? Well, it turned out that this bug has been in the game forever, but AI uncovered it for us. AI would eat food and seeds - seeds used the planner entity to figure out how they could be deployed. When the AI ate the seed, it just deleted the item which didn't properly clean up after itself, letting an entity leak each time. This also happened anytime two stackable, equippable items were merged in the world (e.g.: throwing bandages on each other), but as this happened so infrequently, we could not detect the bug. This is all fixed now.
Tl;dr entity counts on large servers should drop by about ~50,000, and you’ll see some memory usage reductions (after a wipe).
Added Shotgun Trap
Fixed distant see-through walls when using TSSAA or MB
Fixed AI “look rotation viewing vector is zero” error
Fixed Planner leak (50k entities saved on large servers)
Fixed some older item skins not working
Optimized building decay processing on the server
Decay now applies to all twig building blocks
Moved most remaining invokes to the optimized invoke handler
Can place floor grills and floor frames above large furnace
Floor spikes block foundation placement similar to barricades
Window bars and embrasures now store item condition
Window bars and embrasures lose half their health when picked up
Flame turrets can be placed closer to walls (viability in airlocks)
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.