New roofs, better terrain, and a peek at the new Legacy-inspired island. Apologies, but the update has been moved to next week for further testing. See the note at the bottom of the post.
First of all, another round of fixes for the road, bridge and river placement. Same deal as last month – don’t expect it to be perfect, but expect to see a lot less weird shit going on. Paths are now wider and use a different texture to make them a bit more noticeable. Bridges are less clunky and modify the terrain around them to make everything fit a bit better. Rivers are only placed if they exceed a certain length, meaning you’ll no longer see river sources right next to lakes, and various cases where the river mesh could overlap either itself or other meshes have been fixed. I also increased the tessellation of the river meshes in order to get a nicer and more natural water flow and their color now looks less neon.
Radtown and monument position finding has improved a great deal. The way it used to work was that they guessed a position that might make sense, checked the surrounding terrain, and either accept or reject that position for placement. This led to a lot of possible placement options being discarded, and some maps missing the bigger rad towns because they failed to find a suitable spot, even though there might have been one. The terrain anchoring system now looks for the perfect placement altitude in every attempt, which means it guarantees that no potential fits are missed. It might still fail to find suitable spots on smaller maps, but that’s somewhat by design. In addition to that all, dynamic decor adjustments are now modular so that artists can easily tweak a lot of decor parameters in a way that makes sense to them. This won’t affect anything immediately, but it means we’ll have an easier time moving things from concept scenes to the real deal.
Landscape-wise, this month brought some nice improvements to the base landmass shape and water body shape. I also added more details to plains and improved the shapes of both mountains and hills. In more exciting news, I bothered Petur to send me a first prototype of a prefab mountain and implemented a system that places that mountain on the procedural terrain. This means that artists are now able to design landscape features by hand, which are then smoothly fitted into the procedural world. Generally speaking, this process yields a higher visual quality than purely procedurally generated worlds since things like hydraulic erosion can be simulated on a mountain, which can take a couple of minutes to calculate and is therefore too slow to do when loading the level. All of this is barely more than a proof of concept to test the functionality, but expect to see mountains that look as bad-ass as those in the upcoming custom map in the near to middle future.
I also decided to run a proper ocean vs. lake analysis when generating bodies of waters. This means no more lighthouses in lakes and all players are guaranteed to properly spawn at the coastline. It also means that from now on we can separate whether or not you’re swimming in salt-water and whether or not the water you’re trying to drink will save you or kill you. If the functionality to drink water is implemented, that is.
On the asset side of things I added proper cliffs, micro cliffs, and overhangs to the procedural map. Cliffs are placed wherever the terrain falls off very steeply. Micro cliffs are added to fields and hillsides that fall off slightly, and overhangs can mostly be observed on beaches. During that process I added the improved rock assets Petur and Bill have created a few weeks ago. I also increased the number of rock clusters and improved the way they are placed and added Diogo’s new terrain blending. Grass and décor vegetation can now grow on top of some of the rocks, and a new material parameter system allows us to tweak shader properties on every individual rock. Say goodbye to the three static rock colors and instead enjoy smooth colour transitions based on the biome the rock is in. There’s also consistently high texture resolutions no matter how big we scale the rocks.
Talking of textures, Diogo and I also replaced the old terrain colour map with a set of 4 colours per texture–one for each biome–allowing us to get a lot more out of the terrain textures while preserving much nicer texture transitions. During this I updated the procedural map to the new colour and texture palette Petur has been working on for the Legacy level, so expect a vastly different look & feel on the entire terrain. Petur and Dan also did a new set of decor clutter assets that have now been added to forests, grasslands and beaches.
Forests got a lot bigger and, in combination with the new decor clutter and rocks, look quite a bit nicer than before. That being said, the trees themselves still need another pass, which will hopefully happen in the near future. Other resource changes include the addition of trees to roadsides and crystals in the snow biome. Crystals drop ores for now, but there are vague plans for a new resource type.
We can do nice galleries on the site, now. So there’s nothing stopping us from dumping a whole load of beautiful screenshots. Look.
Crash logs now get uploaded to us on startup. This is a piece of the puzzle we’ve been missing. We currently capture all in-game exceptions, but not actual hard crashes. We do now – they’re not being parsed yet, but once we get a parser set up we’ll have a bunch of useful crash statistics that will enable us to target resources.
Remember how you used to enter the game and it’d stutter and load when you’d look around, and when you first fired a gun? Well that’s fixed now because we preload the shaders. Something we should have been doing six months ago, but we’re idiots.
We’ve been missing a decal system for a long time. It’s something that any self respecting modern game engine has support for because they’re useful in a variety of situation. Needless to say, Unity doesn’t have any real support for it, so everyone has to hack around trying to make it work. And this is what I’ve had to do.
They’re using Unity’s projectors, and they perform like shit, so we’re limiting how many are visible at one time using a custom culling thing we had to write because Unity has no support for culling projectors based on the current camera.
Besides that, there’s a few issues with them that we’ll work out over time. Like they won’t rotate around with a door for instance. They’ll get better over time – I just wanted to make sure we had a system in place so it’ll be all set up once Unity or Diogo makes us a way to decal shit properly.
Better Profiling/Performance Reporting
The one huge thing the Legacy version has over the current version is performance. Our performance is shit, and it has been for a long time. So I decided that we’re looking at the wrong stuff.
I’ve been measuring performance by frame-rate. It’s what a lot of idiots like me do. It isn’t useful. We need to look at how much time is spent rendering, how much time is spent culling, how much time is spent animating, how much time is spent processing physics, and how much time is spent on game logic.
So our analytics have gone from measuring one thing…
…to measuring seventeen.
What this means is that if we see in our graphs that last week the average framerate dropped by 10%, we don’t just think “fuck”, but we also can think “oh average physics went up by 5ms, that must have been when we added x, lets tone that down”.
You can now see how much ammo is in your weapons, right on the icon. Big woop.
- Hide blueprints when looting.
- Can drop items by dragging them outside of the inventory.
I’ve been creating gibs and sound FX for different types of walls breaking (wood/stone/metal). Some videos showing the progress so far:
I’ve also been working on in-place rotation by showing the player shuffle his feet when he turns (instead of the current David Blaine shit). Here’s what I’ve got so far, and I’m working on smoothing out the jitteryness.
I’ve also been spending too much time using the new giphy command in our Slack channel… damn you Bill for destroying my work rate!
I did a first pass at adding ambient sound to André’s beautiful rivers.
I’ve also been working on adding rustling sounds to bushes. All the sounds are made and the code to support it is written, so all I need to do is add the triggers to the rest of the bushes.
Player injury sounds, jumping/landing sounds, and animal sounds are next up on my list.
I finished the low-poly model of the repair bench you saw last week, and did a texture pass. I also did a quick LOD.
Currently working on gibs.
My work on standardizing all the clothing in the game continued. This includes finishing the first usable version of the new clothing shader, making sure that all the pants and boots in the game work with everything else without clipping weirdly, and writing documentation about how these standards actually work so other artists and I can make stuff more easily. I’m really interested in seeing where this goes when/if we start doing user-generated content.
In addition to making sure things don’t clip through each other weirdly, I’ve also been fixing a bunch of materials:
I’ve been sculpting more heads.
Then I came into an issue with seams again, so I decided to take a short break to stop my mind-melting, and I made something that we talked about a while ago.
Perhaps we could use these to bash some skulls in? Or ponder on whether to be or not to be? Stick on a pole as a warning to others? Start a secret society? I’ll need to work on the LODs for it, so what you’re seeing at the moment is the view model and I’ll be going back to head models pronto.
I worked on enhancing our rooftop blocks, and giving them LODs as well as destroyable states. It was a long due change to the game, enabling you to build continuous rooftops without the need of the additional half block. The increased gradient of the roof also gives you a feel of increased interior space. You cannot walk or use that new space under the ceilings yet because of our current limitations regarding collisions. Next week, I’ll be starting to work on the barricades, which should make their entry back in the game soon.
I played a bunch of Rust last weekend and started fixing a whole bunch of annoying little issues which got in the way of adding some big features. Here’s the short list:
- You no longer constantly bleed out when wounded, so revival is actually an option.
- Sleepers cannot be wounded, they just die.
- Furnaces now give some comfort.
- Sleepers add half comfort to campfires relative to awake players.
- Dead bodies no longer add comfort.
- Fixed tool cupboard being placed next to a wall stopping you being able to place a foundation next to it.
- Snap Traps always wound instead of kill.
- Tracers look quite a bit better.
- Bone knife craft time was increased from 0 seconds to 60.
- Implemented Dan C’s repair bench model and gibs.
- Implemented Dan C’s new radtown loot crates.
- Fixed some clothing not showing blood impacts.
Here’s a small glimpse of what’s going on with the upcoming Legacy-inspired map.
Apologies to everyone who thought we’d manage to release this patch this week and wrecked their servers in anticipation of a wipe. We didn’t manage it. Well, we kind of did, but it hasn’t been on the dev branch long enough to make it live for everyone, there’s a lot of testing to be done.
If you want to help us test you can switch to the dev branch in Steam and try it right now.
So we expect this patch to be released some time next week – and are most likely to roll it to next Thursday. Sorry again guys.