Jack-o'-lanterns, a reworked options menu, better building colliders, the first step towards painting the inside of your base, further adventures in optimisation, and more.
15 October 2015
I haven't got much done this week, because I spent the first part of it throwing up and shitting a lot. But I did get a few things done.
The options are now available in the main menu. The F2 menu is gone. This is a shame because tweaking settings while being able to see what they're doing was useful, so I'll probably bring the F2 menu back in some way.
There were a few problems with only having the F2 menu. You might want to change the volume controls before joining a game for example. There's a bunch of options in the F2 menu that have nothing to do with graphics, like the sound settings, gib count etc. These make sense to have in the main menu. Plus there's a worry that people don't know about the F2 menu, so they're playing with a bunch of settings enabled and getting shitty performance because they don't know how to tweak.
But the biggest reason is that eventually we want to get rid of the Unity resolution picker pop-up at the start of the game, so we'll have to have an options menu anyway. This will be a good place to change the resolution and change controls.
The menu is still in a bit of turmoil right now, so don't judge it too hard, I was going for functionality rather than aesthetics.
I've been thinking about performance and doing a few tests. I added something to last week's patch that let us query everyone on a server's performance stats, so we can see what performance is like for them. The issue with that I guess is that the people who get 6fps probably aren't playing because of it, so we can't query them.
It's useful though, because we can verify stuff like that the memory leak still exists. We updated to Unity 5.2.1p3 this week and the leak still seems to exist. Unity have been fixing a few memory leaks in the UI system--which seems like it could possibly be the cause--so we're hopeful that it will be fixed in the next Unity patch.
Anyway. I've been looking at the impact that shadows have on performance. We're going to look at a few tricks to make the rendering of them faster. I've added a new option to the options menu that lets you select shadow distance and cascade count. If you're getting shit framerate in the higher graphics modes, changing the cascade count to none will give you much better performance.
Here's a poll about performance.
Building Collider Overhaul, Part 2
The new building colliders have been on dev since earlier this week and I’ve been working together with Vince on updating all of the building collider meshes to new, more accurate ones. Because this is such a fundamental change, the new colliders caused a couple of regressions that had to be addressed, which took up more of my week than I would have liked. It was all stuff that needed to be done sooner or later though, so I feel good to be done with it.
Prefab Preprocessing Warmup
I finished up the prewarming step for prefab preprocessing, which will get rid of some remaining framerate spikes when an object is encountered for the first time. It’s now enabled by default and can be disabled via the “prefabwarmup” convar.
Most of my week went into fixing bugs that have been reported reported via the new bug reporting tool.
- Fixed mining quarry / pump jack sounds not turning off properly
- Fixed mining quarry / pump jack sound pitch modifiers not being applied
- Fixed radiation overlay never stopping its most recent sound
- Fixed barricade / spikes / compound wall damage trigger effects
- Fixed barricade placement on terrain being a pain in the ass
- Fixed lantern sound errors
- Fixed lantern spawning in the lit state
- Fixed various sound issues when using prefab pooling
- Fixed various sound issues related to voice limiting
- Fixed grass hovering slightly above ground
- Fixed forest grass texture stretching
- Fixed supply signal effect instantiation errors
- Fixed sound template serialization errors
- Fixed various inaccurate building deploy volumes
- Fixed building part rotation exploits
- Fixed foundation cupboard exploits
- Fixed server side batched colliders not refreshing after building part rotation
- Fixed client not updating building block grades / protection properties locally
- Fixed various building stability weirdnesses
- Fixed furnace light shadows not fading out
- Fixed potential NREs in server RPCs
- Fixed trees being impossible to gather from if not standing at their base
- Fixed certain situations that could spawn incorrect decals / particles
- Enabled server side collider batching by default
- Switched server side line of sight / distance checks to the entity API
- Added mesh batching to pumpjack and quarry
- Added diagnostics to server spawn handler report
- Added socket mod names to the socket placement fail messages
- Added test radiation zone to CraggyIsland
Garry and I have been tossing around ideas that could speed up shadow casting on pretty much everything, so I might investigate some of those next week. My ideas for building and stability 2.0 are also starting to come together, so I’m hoping to dive into that soon.
I was on vacation this weekend and shut my computer off before I left, and when I returned Monday it wouldn't boot. Turns out my SSD was in the process of dying. I recovered some of my data but spent the week getting my computer back in its feet and didn't have enough time to finish the sentry and merge it into main. As per our new policy regarding stability there's no way I'm putting it in game with just a couple hours of testing, so unfortunately it'll have to wait until next patch :(
I've been spending some time on the native part of the code looking for memory and stability issues. Recently I've also found some robust tools to help us track down memory leaks, not only in our codebase, but in Unity as well. I might have more news about this next week. Fingers crossed.
Two important visual fixes into this one. First up, rivers were still using the old shader on the Steam build. So that's fixed:
I introduced some artifacts in water local reflections caused by back reflection while attempting to remove some other artifacts, caused by failed tracing (white dots). While this can't be avoided 100%, it can still be drastically reduced:
Pushed a quick fix for the flickering clouds some people were having and fixed a performance problem affecting River-less maps.
Finish memory tracking analysis, fix whatever is necessary - if applicable - then get back to pending tasks.
Halloween is coming soon, and I saw a few mentions from players saying they’d like to have some seasonal items to decorate their homes with. So I took some time on Monday this week to convert our normal pumpkins into Jack-o'-lanterns. The lantern will burn the minimum amount of wood for fuel, and drops as a common item from barrels right now, and will remain common until Halloween is over, then it'll be very rare. The reason I decided to have it drop from barrels and not from your plants is to avoid having players farming tons of pumpkins and thus having point lights by the thousands on screen at the same time.
I've also reworked our basic building blocks collisions to stick closer to the skin of what you see, allowing much more precise cover/shooting around them. You can also walk under your twig and wood foundation blocks with ease now. This and other upcoming changes into the building system should improve the way we build our bases, visually and also from a stability point of view. At the moment the building blocks allow all sorts of glitchy bases that we don't support, and we will be working towards fixing that. For those who are waiting for Dungeons greybox levels to be released that means it’ll come later, as it needs to be synched with a wipe cycle.
Aside of these two things, I have reworked our quarry, pumpjack LODs, so you should now be able to stand on the moving parts while it functions.
I also made some interior building blocks to support building skins, some basic wallpaper and carpet floor textures. The idea is to empower you guys into making your base interior look the way you want it to be. This is just the first pass on this. It shouldn’t be that hard to implement, as we split interior and exterior parts of our walls. What I did here is really just to facilitate Garry’s work for when we get this done.
I’m gonna say the gates skin and the military dungeons greybox based on what Howie has come up with.
This week I started to work on the M249. Initially, I was going to take the current M249 model that is attached to the helicopter, but upon closer inspection I noticed it lacks the detail required for a view model. I decided to create a new M249 model and this is the progress I have so far with the high poly version.
I also modified the deploy animations for a bunch of the firearms. Previously, there was an issue where if the player immediately went into iron sight before the deploy animations was completed, it would look really shitty. I fixed that up, so it’s much smoother now.
Continue working on the M249 model.
I worked up another idea for a hub room for the military tunnels this week. I’m trying to make this area a little more interesting for PVP. I also want players to feel little lost when navigating these tunnels, so I have a few large drainage/sewer pipes leading to it, but players will have to find another access point to actually explore: the pipes are so high up it will mean certain death for anyone who tries to jump down.
I’ll probably take a little break from these military tunnels, but I want to come back and do some smaller rooms/hubs. The epic hub rooms are sweet, but I think there needs to be a balance with some less expansive spaces. I also want to do some more work on cars and other forms of transportation which is probably what I’ll have for next week.
I’ve finished up on the holo sight texture, here is what it looks like so far.
I’ve also finished up on the LODs on both the holo sight and the AK47, and I’m in the process of getting them ready for implementing in game. You can take a look at both the AK and the holo sight here.
Next week I really want to take a look at either working on some more weapon attachments, or Paul's new weapon that he concepted last week. But I’m thinking attachments are more important.
It seems I alternate between states of “yay!” and “boo!” for these updates. Thankfully, this week is a “yay!” After having crap luck over the past couple of weeks with everything from hardware and software issues to being sick, I finally have a bunch of stuff working that’s almost ready for action. So yay! Here's some generic clothing.
Next week I should have some more clothing pieces done, but I’ve also been toying around with some ideas for things like makeshift tents, inflatable rafts, and various other items that fit within my specific skill set. Even if they don’t make it into the game, they should be some worthwhile explorations to drive more useful ideas.
More work on the player character this week. I went into a bit more detail on the face and I'm kinda happy with how it's looking.
I've made some small changes to the proportions of the body and I'm in a position to move onto the next step. You should be able to view the mesh in 3D using the marmoset viewer below!
I'm going to create the game-ready version of the mesh earlier than usual, and project the detail I’ve got onto a high resolution version of the in-game mesh. This will allow me to use a system of layers in Zbrush to add detail which makes the mesh much easier to work with and means wrinkle maps and stuff are easy to make. It will also mean variations should be really simple to create as they'll have the UVs and low poly geometry already set up. I'm hoping to have the in-game mesh done and be working on the detailing by next week.
This week was pretty straight forward. I spent a good bit of time working on the turret sounds. These aren’t quite done yet, but I might have time to finish them up tomorrow (I’m not sure if Helk is done with the turret yet though).
I spent a tiny bit of time working on a lowpass filter in the Unity Native Audio Plugin SDK as well (for better underwater sound filtering), but this has mostly been me doing research while my ears need a rest. The Native Plugin SDK seems cool, but there doesn’t seem to be any way to apply a DSP effect written with the SDK to a single AudioSouce, which is a bummer. We could still implement these effects with Audio Filters, but it sucks a bit that Unity’s custom DSP capabilities are fragmented like this.
I got a bunch of other random stuff done this week too:
- New construction sounds.
- Sounds play when you upgrade building parts.
- Salvage icepick deploy sound taps won’t play if you put the weapon away before the deploy animation finishes + the taps sound less ridiculous.
- Grass impact sounds for melee weapons.
- Cloth impact sounds for melee weapons.
- The rock weapon impact sound doesn’t sound so much like a landslide anymore.
- More polish on the large wood gate sounds + bullet ricochets.
- First pass at sounds for the survey charge.
- Consistency/polish pass over the super distant gunshots.
Next week I’d like to spend some time doing some more general polish and smaller one-off sounds (active item breaking, researching items, fire damage, etc). I’d also like to try out an alternate approach to handling ambience that I’ve had in my head for a little while.
I was getting bored of creating endless decal, so I spent some time making new explosion effects for the C4 and Grenades.
Got all the Blunt/Slash/Stab decals done, so if you want to run around hitting dirt with your bone club you will get some feedback.
Did a bunch of footprint decals for the animals and players. They ain't hooked up yet but hopefully that will happen in the next couple of weeks.
Animal Impact Effects
After culling most of the impacts a couple of weeks ago I spent some time making the remaining ones for Sand/Snow better as they look very dark/weird.
- I would like to look at building destruction, construction and collapse effects.
- Take a 2nd pass on the rocket effects.
- C4, Grenades and Rocket explosions should have impact decals so get those done. They probably won’t be surface dependant to start with as they are going to be big so the chances of them being applied across terrains is more likely and that would look weird.
- I talked to Diogo about a new water particle shader this week. If he makes any progress I might get to do some experiments on water effects like splashes, waterfalls etc. Hopefully this will be the beginning of me being able to start looking at underwater effects too as currently swimming underwater looks and feels pretty shitty.
I had a chance to work up some new stuff for rust this week, alongside working on another project: there's talk about some kind of weapon to bridge the gap between the bolt-action and higher powered SMG/rifles, so I thought working up some ideas for a semi-auto rifle, similar to an M14/M1 Garand, would be cool. I made them look sorta clunky and more DIYish, similar to the crafted smg.
I've also started working on early silhouette ideas for an NPC drone that will have some role to play in the future around higher loot locations. With the possibility maybe for these to be repaired and used by players to fly about and scout/spy on bases from the air, these are gonna be based somewhat on the real drones you can buy today with either quad or tri rotors and probably slightly more armored up and military looking with cameras on (I won't say where their image feed is going too just yet :p).
I'll carry on with the drone concepts, taking them into 3/4 views and working out their designs further from there. I'll also starting early idea sketches for a scientist NPC that will have a role to play in future.
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.