Rust Marque Logo

Devblog 56

We took the first step towards custom maps, and we added horses.

16 April 2015
Devblog

Decay

Buildings now decay over time. This works in the most simple way possible, and for the most part should be completely invisible to people. The end effect is that abandoned buildings should fall down. This is probably going to get more complicated over time as we see how it goes, but for now we thought it was best to keep it simple and then find out what we need to change via seeing it in action, rather than as a theory.

Server Performance

We had a lot of performance issues right after last week's patch. This was probably to be expected, as it hadn't been tested on 200+ player servers before then. It flagged up a few issues that we quickly fixed and got the servers running back up to speed. One of the biggest problems was physics CPU usage. The changes to dropped items lead to situations like this. Which I guess we should have expected, but we didn't. We had to take some steps towards reigning that behaviour in a bit (they don't collide with each other anymore).

Non-Procedural Maps

I looked into what needed to be done to enable non-procedural maps. The long-term goal is to let people make their own maps--and that has to happen sooner rather than later--so I wanted to get on this ASAP. This also means that it won't hold Petur up, because we all know how desperate he is to stop focusing on what it looks like and get the first version of his map playable. So in this update there's a quick proof of concept of that: a map called CraggyIsland. It's a tiny island. Player spawning and a bunch of other stuff doesn't work properly, but you can run around and build. That's a big enough step for this week.

Sign Crashes

We've been seeing a lot of issues with signs crashing. This seems to stem from this error, where Unity has issues creating the font texture because there's too many glyphs on it. An old post I found about this error explained that this was usually caused when "Best Fit" was enabled on text labels. Best Fit automatically changes the font size to fit text in a particular rectangle. The post said that the way Unity's font stuff works, it has to add glyphs to the texture for every size it tests, so it wastes a lot of space. I stopped using Best Fit for signs, which makes it a lot harder to create nice looking and multi-line text. So signs are now limited to one line, and hopefully that's going to fix all our problems. If not, we might have to look into restricting it more, and if that still doesn't work I'll likely come at it from another angle and just have you draw on the sign yourself instead of using fonts. I also fixed a couple of bugs with the text changing size when you went away from a sign and came back.

The Rest

  • Fixed some out of order stuff when receiving snapshots/loading.
  • Added horses (not ridable).
  • Load screen has different music.
  • Ambient sounds don't start until you're in the game.
  • Fixed tracers not drawing.
  • Updated EAC (should fix OSX/Linux hanging on exit).
  • Disabled SpeedTree smooth LODs (performance test).
  • Fixed alpha cut-off on a bunch of trees/billboards.
  • Fixed trees sometimes popping in and out.
  • Shader Level targets only specific shaders.
  • Fixed wind not affecting trees.
  • Symbols and crash work.
  • Fixed some exceptions not getting reported.
  • Fixed player distance rendering.
  • Ragdolls should fall over properly now, instead of kneeling in place.
  • Can remove sleeping bags from death screen.
  • Fixed underwater sound effect staying when disconnecting from server.
  • Fixed building blocks sometimes showing the wrong impact effects.
I made a bunch of world models for all of the weapons to show the actual item being dropped, instead of the default bag we've used. Rigged up a new rocket-launcher view model, as the old one was missing an actual rocket to put inside. Here’s a WiP of a reload animation I’m doing at the moment. Keep in mind, the rocket model is just a place-holder, and the final version should look better (if it doesn’t, someone is gonna get fired… looks around nervously.) [embed]http://files.facepunch.com/minhle/2015-04-14_14-05-57.mp4[/embed] Added a better impact effect when a player with clothing gets shot. [embed]http://files.facepunch.com/minhle/2015-04-08_15-26-29.mp4[/embed] Added an animation for the player bandaging himself, and bandaging other players.

First-person

[embed]http://files.facepunch.com/minhle/2015-04-14_20-39-12.mp4[/embed]

Third-person

[embed]http://files.facepunch.com/minhle/2015-04-10_11-36-44.mp4[/embed] I toned down the footsteps so they no longer look like they’re being created by a dinosaur, and I also added snow footsteps. [embed]http://files.facepunch.com/minhle/2015-04-14_14-50-04.mp4[/embed]

Underwater Bases

People are smart. They figured out that since you can’t jump up on ledges out of water and need a smooth gradient like the shore to get out, and because you can’t use tools underwater, you could build a base in the water and it would be very hard or impossible to raid. Fuck that! I made it so tools work if your head is out of the water, and I added some code that lets you jump out of water onto ledges like any other first-person shooter. It’s not perfect, but it’s a start at combating that exploit.

Interpolation

I noticed everything that moved seemed to be jerky or look as if it was moving at 15fps. This is due to the interpolator catching up to the most recent positional sample and causing the entity to just wait there until it got a new one. To fix this I added a small, fractional second delay (lerp.lerpDelay) to the interpolator and everything is smooth. The only thing you should notice in terms of gameplay is smoother movements on objects.

Inside-Rock Bases

Garry added some sweet fixes for this last week, but I found one last exploit. The size of your player when crouching was ever so slightly too small: under some conditions your character’s eye point could peek up into a rock and let you place a sleeping bag inside. I made the crouching size just big enough to prevent this. Hopefully that’s the end of interior rock bases. Also...
  • Bandages and medkits use third-person animations from Gooseman.
  • Fixed the Arctic Crystal Ores having 0 health.
  • Ammo crafting times were balanced so they are all around 15 seconds.
  • Changed most clothing to use the ClothFlesh impact effect instead of blood.
  • All clothes provide some form of radiation protection, some more than others.
  • Fixed incorrect display names for crates and alive players when looting.
  • Fixed some barrels culling out too early.
  • You can only repair a building block if it hasn't been attacked for 10 seconds.
  • Thompson rate of fire was nerfed and its sound vastly improved.
  • Tracer visuals way improved high-five Garry.
  • Clicking no longer interrupts bandaging.
  • Re-added censorship to rag-dolls.
  • Metal armor now shows metal impact effects.
  • Implemented Burlap Head Wrap - it's a default item!
  • Improved grenade throwing distance & explosion effects.
  • Explosions do raycasts - won't destroy contents of house with explosives.
  • Implemented Dan C's gibs for various deployables.
  • Fixed cargo plane scale, was 50% too small.
I’ve been messing around with screen-space water on this iteration. It had a rocky start, but it’s looking alright now. I’m taking the opportunity to take a stab at improving the water visuals a little bit. I understand performance is a concern, so I’m making sure we have decent low quality fallbacks that favor performance over quality.
I've been doing further work on the headwraps that Paul designed. The first of two different models, which you can see below, should be going in the game very soon. I really like working on smaller items like these, because they give me the opportunity to experiment with new techniques that will help me speed up my work-flow while producing better visual results. The next head wrap model should hopefully look even better while using some of the same techniques.
I've been concepting explodey stuff this week. I worked on a Rust-esqe grenade based on a baked bean tin to replace the current crappy stock model. I've also worked up some ideas for different kinds of RPG ammo. There's a range of ideas in there: at the moment we are using one for the standard RPG rocket, but can use others further along for rockets with different effects (like napalm for area of effect tactics). I've also been helping redo the look of the code lock, which is still a WiP (sometimes it takes a few goes to nail something to look right, which is all part of the process :D).
I found out why the heads were bugging out, so I started back on them. We can look forward to some extra ugly mugs to chase after in-game. I’ll have to create the LODs for each of them, which at this point is the time-consuming part. Here are the first three new heads with their unique normals. [embed]https://s3-eu-west-1.amazonaws.com/files.facepunch.com/TomWorkPC/2015/April/14/2015-04-14_16-12-00.mp4[/embed] I also made the bean can grenade. Here is what it look like at the moment. I still need to add the frays of material to it! Here it is in game, complete with LODs. [embed]https://s3-eu-west-1.amazonaws.com/files.facepunch.com/TomWorkPC/2015/April/15/2015-04-15_15-54-03.mp4[/embed] I also started work on the rocket projectile.
I finished the work on our barricades! The new models all come with gibs for destructibility. Garry will implement the remaining barricades in the coming weeks. Work has started on the new door locks, but in the middle of redesigning the current keypad, everybody agreed that what we really needed was more options and something more aligned with Rust’s style. So after a first round of concept art, greybox and discussions I will have another attempt later at these soon.
I’ve been working on a gib pass on some of the placeable objects, such as the large storage crate, furnace and the small wooden box too. Other objects that you can loot will also be done too, like the barrels and the newer loot crates. Thanks for the vid, Rustafied.
Up until now, most of the monuments have been one-shot deals (the lighthouse, the radio telescope), and only really existed to give the players landmarks to help with navigation. With the new bridges, the idea is to add something that player can interact with and possibly change. You should be able to build your base on top of bridges, and you should be able to repair gaps and then try and charge people to cross or hide underneath like a troll. I’ve got the game meshes finished and am going to get them in-game with collision so everyone can check them out.
I tried my hand at making some crossbows this week and here are the (fairly rough) sketches. As well as trying to keep them roughly to the theme of the other guns, so they didn't look too out of place, I was trying to give them that "cobbled together" feel while still making them look like they could do some damage. I'm currently working on polishing up three and a variation of four, which unfortunately didn't quite make the blog deadline. I also did the icon for the headwrap.
I finished up a change that allows any object that can take damage in the game to define its own impact effects/sounds, and added unique sounds to the loot barrels. I’m really excited to start using this to give every game object its own sonic character, so expect to hear a lot more of this soon! I’ve done a first pass at sounds for the wolf as well. This one was a bit trickier than the bear, because people are so much more familiar with how dogs sound. Whimpering wolf sounds are definitely some of the most depressing things I’ve ever had to make. I’ve also started working on sounds for when players take damage and when players are in a wounded state on the ground. I’m getting really close to having a first pass at all the sounds in the game done now, which means I’ll be starting to work on a lot of smaller details soon. Yay!
Phew, time flies. More work has been done preparing the updated batch of trees, and once that is all set and done, I expect everything to perform and look better. Especially those god-awful distant trees. In other news, I added a ring-road to the upcoming custom map, and starting roughly blocking out some of the custom radtowns... Next week I should get the systems I need to spawn proper forests, and when those are in, we'll almost be playable.
I debugged a couple of issues that mostly affected OS X and Linux players this week.
  • Fixed that the game would not fully close on exit.
  • Fixed missing terrain textures.
  • Fixed bullet impact decals turning things pink.
  • Fixed not being able to place doors inside caves.
  • Added translucency to cloud shading.

Stars

I also added real-life star constellations to Rust, which means in theory you can now navigate using the night sky. This is a work in progress and it’s quite possible that we’ll have to make some hero stars more visible for people to actually be able to find them. I boosted the overall star brightness for the screenshots.

Clouds

Another thing that’s been long overdue for a refresh are our clouds. I came across a neat way of rendering them efficiently just a few hours ago and decided to give it a go. The new clouds are based on a smart but fake way of tracing their density that doesn’t suffer from the high performance requirements of normal ray tracing. The implementation that will go live today is still quite rough since I literally finished it after the devblog should have been posted, but it should offer a nice preview of the things to come. These new clouds provide a solid foundation for dynamic weather conditions since their shading and coverage can be very diverse.
Another decent week considering GTA5 came out on the PC. We got some new features in (not as game changing as we'd have liked). We got some optimizations and stuff in, but we have a lot more work to do here. We've also started using GitHub more than Trello. It seems like Trello needs a lot of work to maintain, to stop it becoming a polluted shit-hole with no accountability. It actually gets worse the more it gets used. GitHub's issues self-manage. Things are categorised, assigned, disappear when they're done. Our Github issue page is public - which means anyone can comment or add issues. I'm guessing the day will come when we have to make it non-public because of the amount of spammy bullshit that will get posted. I don't think there's a way to make it publically visible but not editable.

Newsletter

Recieve monthly updates straight to your inbox