Friday Devblog 18

<a href='http://playrust.com/friday-devblog-18/'><img src='http://files.facepunch.com/garry/2014/July/25/2014-07-25_20-06-39.png'></a> Some fun stuff this week!

25 July 2014
Spectator Mode

We had a few bugs that could only be diagnosed easily by being able to spectate other players. So I added that. It works a bit like the spectator mode in Counter-Strike and it's insanely useful for development. It's letting us see tons of weird animation bugs that would be otherwise quite hard to see in detail (without getting killed).

Right now anyone can jump into spectator mode by typing "spectate" in the console (use "respawn" to respawn). Once in you can jump between players with jump and duck. This will probably end up being an admin only thing, and I'll add the ability to spectate other entities (like animals etc).

It's kind of like flipping between TV channels.

New Background

Probably not worth mentioning really, but Bill and Petur made a new background scene for the menu.

Event System

I made an event system this week. The event system is what controls creating events like the air drop. The airdrop is something that really works in the current version of Rust and we want to add more events like this. The events system is designed to work a bit like the AI director in Left4Dead.. the intention is that eventually it will be able to say "a lot of people are hungry - launch some event relevant to that". Right now it just throws out a random event around once a game-day.

The cargo plane is back - but it doesn't drop its load yet. It does have little blinky red lights that illuminate the landscape below at night :)

Clothes Tool

I made a tool to help the artists implement and visualise their clothes. This is something that was seriously lacking in the old version of Rust. Artists would make their models but wouldn't actually ever see them in game until they were implemented and usually made live. This is an issue because the artists need to see their models and textures in the lighting conditions of the real game, sitting next to other textures and models in the real game for scale.

I both hate and love making tools like this. I hate it because only a handful of people will use them, but I love it because you're exposing people to a bunch of cool stuff.

It turned into GMod at some point, and I can't help but fly around taking pictures.

Others Projectiles & Effects

You can now see the bullets and arrows fired by other players. This means you can actually see where you're being shot from.

Map Updates

Bill's new rocks have gone into the maps. There's still some tweaking to do here but I think we can all agree that they rock more than the old ones.

The snowy biome is in. It's a bit underhwleming right now - because we need to add per biome weather cycles, LUT values, detail models and other ambient stuff. Right now it's just snow with snowy trees.

Switch Items

When you drag an item onto another item in your inventory, they will now switch places.

Impact Effects

I set up another tool for Petur to test the impact particles he's making.

These impact effects are now in-game. Each collidable object in the world has a physics material assigned to it (wood, concrete, metal, flesh) and the effect gets chosen based on that. There's two special cases to this.

First of all the Terrain. Because the terrain has splatmaps, and different textures we need to query to find out which texture it is (sand, grass, mud, rock, snow etc). Then we can choose a particle based on that. This is particularly important when it comes to footstep effects.. so we can have different sounds/effects base don the material the player is walking on.

Secondly, skinned meshes like the player or animals. The player pretty much always wants to return the Flesh material when they're shot. But I've set it up so each bone and each clothing peice can return a different physics material. So for instance, if the time comes where we add a helmet, when you shoot a player in his helmet it will return a Metal material, and create a spark.

Animal LODs

Goosey has LOD'd all the animals! This means we will get higher performance and can do the mesh collision discussed in the last post!

Documentation

I've been laying down a few documents for the artists/programmers to refer to. There's probably no reason to hide them from the public.. so here take a look. They are totally useless to anyone without the source code, but I'm guessing someone somewhere will be interested in that stuff.

Summary

After last week's sprint I didn't really expect to get much done this week. I expected to spend the whole week fixing, cleaning and refactoring. I spent a lot of time doing those things, but writing these blogs it always surprises me just how much we do get done.

I am considering making the server for Rust Experimental open to everyone. I can't think of a reason not to do this. But I am scared that once it's out it's out. Even though technically I can render the server incompatible there will be hundreds of people renting out servers - and by screwing them I'll also be screwing their customers, who are also our customers. So I want to be sure as hell that there's no good reason not to openly distribute it before we decide to.

Boar Animations

Goosey has nearly finished animating the boar! Joke here about how animating is boaring!

Torch Animations

Alex has been cracking on with the animations for the torch.

Dan's Wreck Head Tools

Dan's been wrecking it with the tools. He's finished the hammer and he's LOD'd them all. They are ready.

Structure Work

We've been thinking about how the buildings fit together. We really want to get it right before we rush into anything so Scott has been doing a lot of prototyping. It's the kind of thing that gets harder and harder the more you think about it.

Tom's Stuff

Tom went on holiday.

Invert Y

A few guys were really really bitching about an inverted y option. Which is fair enough if you have accidentally learned to play games backwards I suppose. So if you need this, open the console with F1 and type "input.flipy 1"

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.