Devblog 57

Explode some fine art: we added rocket launchers and paintable signs!

23 April 2015

Rocket Launcher

Buckle up™! It’s here. Long range ordnance delivery system that packs a punch! Be warned: each shot is very expensive, and it’s very hard to use. I can hear the cries of the rock-dwelling people already. Minh did an awesome job with the animations, and I spent most of last night implementing the code for it and doing the particle effects. It’s satisfying as hell to fire and I hope you all enjoy it. The guys at Rustafied certainly did.

The Rest

  • Bandages and syringes automatically revive players.
  • Waterpipe takes handmade shells for now.
  • Barricades are more susceptible to explosive damage.
  • Barricades can be destroyed by melee but also reflect damage (GL/HF).
  • Typing in chat when it’s off will no longer lock up your movement.

Memory Leak

We discovered a memory leak last week. It was a bug in Unity, we made a repro and reported it; they confirmed and are fixing it. No time-scale though.

The memory leak was in their UI.Canvas system. If you have a canvas that is rendered exclusively by a camera, but then the camera is disabled, each frame will leak memory. We were doing this in the sign system. The camera was disabled because we rendered it manually to a texture, which was used to draw to the screen. So we decided to take the plunge and get rid of the way signs were being rendered.

Sign Painting

Signs were previously rendered by entering text which was rendered to a texture and then drawn above the sign. This worked, but we were hitting a bunch of problems with the memory leak above and Unity erroring out because it ran out of UV space with all the different sized fonts and unicode characters. One of the things we wanted to do for a long time was add painting. We couldn't justify the time spent before because of all the other shit we had to fix, but because this delivered a memory leak fix too it justified itself.

There's not much to say about how it works in the game. It works how you would expect it to:


We decided to give you a limited palette rather than having a bunch of RGB sliders. You should probably enjoy this while it lasts, because our future plan is to make it so you draw with stuff from your inventory (charcoal, blood, mud, inks and dyes).

I spent extra care when implementing this system because I expect it to be used in a bunch of other places in the future.

The Rest

  • Decay is scaled by how landlocked the building block is.
  • Fixed some blueprints being usable in belt bar.
  • Fixed solid bushes.
  • Fixed not failing to connect properly when server full.
  • Improved performance when shooting.
  • Fixed sign skybridges.
  • Window bars collider is accurate.
  • Fixed building placement effects not showing.
  • Ragdolls react to bullet/hit.
  • Fixed building blocks sometimes not snapping together.
  • Fixed it being difficult to add a floor to the top of a wall.
  • Dev/Admin can hold F6 to see colliders.
  • Dev/Admin can press F5 to see info on what they're looking at.
  • Added giveall for admins.
  • Added giveto for admins.

I finished the rocket launcher view model animations and sound effects.


I also finished all of the 3rd person animations for the rocket launcher, as well as created the worldmodel and LODs for the rocket launcher.


I fixed an exploit where the player would tap crouch repeatedly while running and not make any footstep sounds.

I’ve been steadily working on the second cloth head-wrap model and textures.

In addition, I’ve also been doing a lot more work behind the scenes to fix broken materials, adding back some missing models and textures, and just generally doing a lot of tidying up.

Started making Paul's SMG from his concept which can be seen here. It’s been quite fun making this so far and this is where I’m at...

And a few laggy rotations.


Sorry for the janky recording. Still a few bits to do including the iron sights, barrel. Then of course the LODs.

Working on lots of little things this week. I did a round of idea sketches for a craftable landmine, trying to find a look that fits the junky but functional look, while also having some kind of indicator to where the mine is sticking out the ground so keen-eyed players can avoid them. I also worked up some more concepts for different RPG ammo types (these are really fun). I imagine Helk's got some crazy ammo types in mind, so I worked on making sure each rocket ammo has a pretty distinct look for players to differentiate them easily.

Lastly, I've begun work on ideas for a research table. This could be a tricky one, as I feel it should be instantly recognisable as some kind of research area, but keeping the type of equipment used on it relatively realistic to what you might be able to get your hand on in a post-apocalyptic world.

This week I added player injury sounds and some sound and effects to make being in the wounded state feel a bit more intense.

I’ve also done a bit more optimization to the sound system and fixed the bug where some sounds cut off early when the object that’s playing them gets destroyed.

I did a bit of field recording on Monday too. I got some great leaf rustling, footsteps, wood/rocks bashing together and things like that, but these haven’t worked their way in to the game yet.

Next week, I’m going to be updating the sound system to give myself a bit more control over how many sounds of a given type (gunshots, footsteps, etc) can play simultaneously. This is going to include the ability to limit the number of sounds emitted by individual objects in the game as well.

There’s a limit to the number of sounds we can play at once in Unity, so more control over this is always good and will become more necessary as we add more sound to the game. I’m also hoping this will help alleviate the lag some people experience when shooting a bit, but no promises. We definitely don’t need to be playing the long reverb tails for every gunshot when an AK is shooting at full auto.

I’m planning on working on more animals sounds next week as well. I’ll make sure to take more video if I do any of them with my mouth!

I quickly knocked up some modular chain-link fence pieces for Petur to use on a custom radtown he's making. I’m hoping to help with a new building for this radtown next week, after the water catchers are done. The water catchers are very WIP, and the wood is black because I’m using already made wood pieces by Vince.

Been away on holiday for a few days, but I've now retreated from the sun and returned to the Facepunch art dungeon. I have continued work on the crossbow, completing the brief for #1. I've created the icons for the rocket launcher and its ammo, too.

This week I worked on automated resource buildings for players to build. I’ve been working on an automated quarry and a water well. Here’s the latest iteration for the quarry, and some different designs for the well. We liked the design for B for the well, so I tried another variation for that.

I've been working on our new stair blocks since last Friday. There are two new shapes available: an L-shaped and a U-shaped block.

Unlike Legacy, we've decided that we won't let the new stair blocks be stacked - at least not for the moment. We've found that it complicates things. By trying to make stairs go up really steeply in a small area we realised we were just compensating for the lack of ladders, so decided we should probably just add ladders instead of trying to force another solution.

The railings art is done and waiting to be implemented. You will be able to place left and right side railings for your stairs where you want them to be, leaving you total control. Railings won't only be there for improving visuals, as the more you upgrade them, the more cover they will offer. Other than these, work has resumed for me on the new keypad, and it should be ready end of this week on the art side of things.

While Andre is working on giving me the ability to spawn the final missing element--forests--I've been using the extra time to add some more details to the custom map. And by 'some' I mean thousands.

Now, this is something that would easily take months and months to to perfect, as there is an absolute boatload of ground to cover, but our plan is to crank this out for play-testing as soon as we get this final system from Andre.

The ETA is still this month, so... expect it before the next wipe.

I’ve been knee-deep into water simulation and rendering these past few days, attempting a worthwhile makeover of our current water. The new system is based on high-end stuff, but scales really well. It’s a popular and robust technique used everywhere from movies to games. Still very early. Should integrate nicely and be flexible enough to work for anything from deep ocean water to lakes and puddles.


Also looking at why terrain parallax has been so awful lately, and helping Petur with some shaders.

I started this week by getting the cloud improvements I spent my weekend with into the game and fixing some issues with last week’s implementation. The volumetric density tracing now works properly, giving some decent sense of depth in the distance. I also reworked the cloud shading to a more physically based, customizable approach.

Then I started back-porting some of the procedural map improvements to custom maps. Custom maps can now also grow grass on terrain blended rocks and biome variations now use the same back-end as the procedural maps, which for example allows us to adjust terrain texture colours with the air temperature and to eventually tint rocks in the same adjustable way the procedural map does it.

Towards the second half of the week I started developing some editor painting tools for our custom maps. Those tools allow artists to paint all sorts of information onto their terrain, which can then be used by various bits of game logic to find out details about the world. Examples for this include the current biome or the type of water or soil an object is on. This sort of information is important for things like our ambient sound nodes to find out which sound to play and for players, trees and animals to find suitable spawn points. All of this is invisible to the player, but you’ll hopefully be able to use those tools yourself in our SDK one day.

Some word on how EasyAntiCheat is working. You can get in touch with them here.

This week we added verifications for Kernel Patch Protection, also known as Patch Guard or KPP. Patch Guard is a Windows self-protection mechanism that ensures the integrity of kernel code and critical objects. When Patch Guard detects a forbidden kernel modification, a bluescreen with CRITICAL_SYSTEM_CORRUPTION is triggered. Microsoft has included this functionality to prevent drivers and anti-virus software from introducing system instability. Due to this, some hacks disable Patch Guard to gain the ability to hide themselves by making kernel modifications.

With the recent update, Rust will not start if Patch Guard has been disabled. In that case a Windows restart is required with normal boot configuration, having Patch Guard enabled. We are currently testing and working out possible hiccups/bugs with the new system, so please give us some time to iron out remaining issues.

The three major food groups again. Bug fixes, features, optimization. All that above is one week's work. It's important to realise that we wouldn't be able to work this quickly if we hadn't taken the hard decision a year ago to start again. I recently compared the codebases. Here's an interesting statistic.

So next week, more of the same. Petur is optimistic that the 'new Legacy map' will be ready, so you should all get your hopes up, and you know who to blame if it isn't. Next week is a compulsory wipe week too, but please don't wreck your servers just in-case the patch is delayed.

Mailing List

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.

* By subscribing you agree to the Terms Of Service and Privacy Policy