Lots of world changes: Water Wells monuments are in, Military Tunnels get a refresh, the terrain gets rockier. This patch wipes the maps. Next week when we leave Early Access blueprints + maps will be wiped.
Tutorial Task List
I added about 60 achievements, and I've fleshed out the tutorial task list. It's now only missing one or two more slightly difficult achievements before I can polish it off. When it's done there will be about 15 tutorial steps to go through which provides new players with a reasonable sense of how to play the game. The tutorial list we will have looks like this:
- Getting Started
- Tools & Weapons
- Sleeping Bags
- Building a Base
- Securing a Base
- Claiming an area
- Metal Weapons
- *Exploring Pt 1
- *Projectile Weapons
- *Exploring Pt 2
- *Indicates incomplete
I still need to display the tutorial titles, and add a bit more functionality to the incomplete ones, but they're basically a series of steps you need to go through and when combined with the contextual game tips should prove helpful for new players. Exciting for all you veterans, eh?
Game Tip Convar
Don't you hate being told how to harvest a tree when you have 4000 hours in game? Now you can just go into the options menu and disable game tips. Or you can change the convar gametip.showgametips to "false".
The awesome Water Well monuments by Vince are finally in game. I've created a working well you will find at each of them, and to use it simply approach the handle bars and press your 'use' key. This will pump water which you can retrieve from the barrel beside it. Each pump will cost about 5 calories and wlll yield 50 water. These values are subject to change. You'll find them inside temperate forests and in the arid biome.
Military Tunnels Refresh
A couple of years ago, when most of the monuments got expanded, I was mainly working alone on all these spaces, and sometimes the direction for some of these spaces was unclear. Would the Military Tunnels stay a focused PVP area, or would it end up being PVE experience? So I ended up keeping the level design inside our tunnels bare bones: the tunnels were left almost empty, with the barebone loot experience in just to be functional.
Now we're deploying the Scientists in the tunnels (if they are not already spawning yet, they will be soon), so it called for a proper support from level design in order to make the combat and traversal experience inside more diverse and combat friendly.
While there's certainly more details and unique visuals that could be made to make the tunnels even better, I believe this refresh is going to improve going there by a lot already.
We continued investigating the memory leak I mentioned last week and identified a problem with EAC that caused certain memory from the page file (namely texture data that's required to be kept in memory by Unity even after it has been uploaded to VRAM) to be continuously loaded into physical RAM. While this wasn't technically a memory leak, it still meant the game required more physical RAM than strictly necessary, which could definitely affect performance on machines with low memory. This has been fixed and we've confirmed that the game now requires significantly less physical RAM.
Network Interpolation & Extrapolation
I've rewritten network entity position interpolation. The main purpose of this was to reduce the entity delay between client and server. Since this phenomenon is extremely pronounced on the test sedan I'll use it to demonstrate the difference.
This is how things have been looking on the client and server when driving the car at full speed. The first car is the position the server sees and the ghost is the position the client sees. Note that this test has been done with server and client running on the same machine, which means any ping will be added on top of that. This is called interpolation delay and is present in all multiplayer games to some degree.
Here's the same thing after my improvements. Note that the delay has been drastically reduced. This has been made possible by better velocity estimation and the addition of movement extrapolation and applies to all moving entities in the game.
You may have encountered situations where it felt like someone was killing you around corners. While this can be down to lag, even on good connections there's another factor called peeker's advantage that comes into play. This refers to the delay between what you see on your screen, what your opponent sees on their screen and what the server sees. Generally speaking the server should always take priority over the clients, but even then there's still the one way ping from the server to your client during which someone in motion can fire at you.
To reduce this as far as possible we had to make sure that both the delay between incoming and outgoing packets on the server and the interpolation delay on the client are as low as possible. So after I addressed the interpolation delay I rewrote some code to ensure packets that contain position updates for players leave the server immediately after they've been received. Those two measures combined can reduce the peeker's advantage by tens or in some cases even hundreds of milliseconds.
You know how players and monuments could spawn on tiny islands off coast with no way to the mainland that didn't involve an exhausting swim through the ocean? This can no longer happen. Both players and monuments now only spawn in locations that have a walkable path to the main island.
Pillar Building Block
We've removed the pillar building block since it was rarely ever used and came with significant disadvantages in terms of upkeep. We realize that some people preferred pillars for aesthetic reasons, and we have some conditional models for wall frames planned for the near future to address those concerns.
I also ensured that wall frames now provide the same stability as walls and doorways to make bases easier to plan. This also makes wall frames a great option to add additional stability to your builds.
Cliffs & Hills
People have been aching for more verticality in our procedural maps, and this week I finally took the first steps to deliver just that. Procedural maps now have a lot more cliffs and hills, particularly in the temperate and arctic biomes, and the hilltops have been visually redesigned with additional clusters of massive rocks. There's still a lot to be done, but I didn't want to leave early access without at least starting the process of making the landscape more interesting again.
Hair Rendering Tweaks
I've been working with Matt on a second pass for hair shaders. Our objective is to improve the areas where hair intersects the skin and make it more seamless and appealing by adding hair information to the actual skin surface. These changes will help improve the results when playing the game in lowest quality modes, which is currently problematic, and will look even more amazing when TSSAA is enabled.
Shadow Culling Tweaks
A long overdue and annoying bug is being mitigated this week: disappearing shadows when culling is enabled. Unfortunately, due to some limitations we can't perform culling on shadows using the light sources as reference. We need to rely on the regular first-person camera perspective to cull objects and their shadows. We had a simple distance test to figure out when to hide shadows or not. In this fix we're extending that range based on the object's height and altitude. It's not a full proof solution but should help quite a bit.
While Damian is working on mesh versions of our new and improved custom trees, I've been working on support tools and runtime for an imposter system. Imposter is another name for billboard. Imposters are usually associated with more advanced billboarding or volumetric techniques, although the underlying concept is the same: to bake mesh data into much simpler representations and be able to draw a lot more of them more efficiently.
These images represent raw baked texture data from our imposter baker and are applied to a simple planar mesh at runtime:
We already use a built-in billboard system for our current trees but, unfortunately, it's somewhat limited and inflexible.
I’m still working on the new trees. I have added snow biome variants for all of them, and spent some time looking into the technical side of things. The trees are now finished and fully functional, however we had to delay adding them to the build. We are currently looking into developing new tools for generating billboards, and when those are ready the new trees will be going live. We will be looking into increasing both the rendering distance and density, and we hope to have them in the game next week.
This week the Scientists learned to open doors and break down barricades. This required updating our Navmesh system a little, since animals shouldn't be able to do these things. Rather than walk randomly about the Military Tunnels, the Scientists will now walk between patrol points. This allow us to move the NPCs into positions that are more interesting for gameplay, and fewer of them will get stuck in corners due to poor RNG.
With the big update to Military Tunnels this week, all the AI hints for cover, patrolling and spawns had to be updated, and the AI will now take transparent walls, like fences, into account when generating the Navigation meshes.
The Scientists are still not enabled by default. They can be enabled on servers by setting squadmanager.squad_disable to "false" in server start-up scripts.
I've finished up making the last couple of viewmodel clothing models. There are a few small artefacts I want to fix up: the seams on the Hazmat Suits are pretty visible for example, (which I think is fixable) as well as smoothing out some of the skinning. I also want to take a quick pass on some of the materials, potentially using some detail normal maps to try and increase the detail a little more (a detail normal map adds small detail such as the weave of cloth over the entire model, giving the illusion the model is more detailed than it is). Unfortunately, the inner arm is a nice place to try and hide UV seams, so detail maps could have the unwanted effect of making the seams more obvious, but we'll see.
Sound Mix and Polish
I really want to have every sound that's currently in game and the overall mix finalized before we leave early access, so this week I've been working on that. I've gone over just under 1500 sounds so far, which means I'm a little under half way done, but I've started with older sounds that definitely need more love. I expect the second half of this will be faster.
I'm primarily double checking volumes on individual sounds to make sure everything's as standardized as possible, but I've been doing quite a bit of EQ tweaks to remove little resonances or smooth bass levels out, and I've been fixing up tons of little super granular problems like a single rock click in a gravel footstep that's too loud as well. It's tedious, and my hand hurts, but the results will be worth it.
When I finish going over individual sounds I'll be in a good spot to do a final mix pass over the entire game at a higher level, which would include things like balancing gunshot levels vs footstep levels or cutting some high end out of the ambience to make more room for more important sounds. I'd like to try to make our mix more dynamic as well and look in to doing things like dropping ambience levels when you're in a gun fight to make things feel a little more tense.
I originally wanted to model the Chainsaw to include a detailed cutting chain, so I made one built up of segments that looked like this and it would have been awesome to have that level of detail. But it's just not feasible. We can't always get what we want, eh? The triangle count just for that chain alone was 21,000 triangles. That's a no-no. So after some talking with Matt, Alex and Goosey, and some tests I opted to go for a much nicer solution that is cheap and effective. Here's a video, and some gifs below.
Instead of a load of segments for the chain, it's one continuous mesh. The teeth are using an alpha on the same UV, which is being offset in one direction, which simulates the animation. This has saved a tonne of triangles which is always good and it also means that Alex doesn't have to create a super complex rig for it. Now that I've got this out of the way I can just focus on the UVing and texturing, which I've already made a start on.
We had some sad news this week. Goosey "Minh Le" Fish will be leaving us to conquer the East again in March. We thank him for his hard work and wish him luck in the future. There's not many people around that can model, rig, animate, program, create particle and sound effects. There's even fewer people that can do all that stuff within a matter of hours. He will leave a hole in the team.
We're expecting that we'll probably have to take on two or three people to fill Goosey's large, empty hole, so if you think you can create, rig and animate a weapon model in less than a month please read more here.
- Mini Water Well Monuments
- Added hilltop rocks
- New network interpolation and extrapolation
- AI no longer ghost through fences and other transparent walls
- AI no longer ghost through barricades
- Fixed an ice lake exploit that allowed people build near trucks
- Fixed Hapis floating barrels at Site A
- Fixed spawning in the ocean on Savas
- Military Tunnels Level Design Refresh
- Added recycler to Savas KOTH
- Ak47 admire animation
- Double shotgun admire animation
- Eoka admire animation
- Mp5 admire animation
- Water bucket admire animation
- Rock admire animation
- Players no longer spawn on islands
- Maps have significantly more cliffs and hills
- Rivers have a nicer color
- EAC SDK update
- Monuments no longer spawn on islands
- Reduced player tick delay (peeker's advantage)
- Removed wood cost from double sheet metal doors
- Hapis old caves now have lighting
- Hapis updated with new water well monuments
- Updated Savas KOTH loot table with newly introduced items
- Removed pillar building block
- Added 10 tutorials
- Added functional water wells