We made a good push this week. It finally feels like we’re emerging from the darkness, reaching out for the light.
You might be wondering why we haven’t added any player clothes since we released on Steam. Well that is obviously because the player model system is a huge car crash. All the clothes are included as part of the player model. I tackled that this week. The player model is now just animation data and we can drop models onto it. This means that in the future if we want to add a new set of clothes for the player – the artist just needs to model it. They don’t need to recompile the whole player.
This is a huge deal to us because we want to explore customizing the player’s look a lot in the future. We want improvised clothing. We want blood decals. This makes that feasible.
Player animation is something that I think we can all agree needs a bit of love. So we’ve switched over to Mechanim. This means we no longer code our animation system in code. We use an nice friendly editor.
This allows us to alter the animations nice and quickly, visually, logically. Did I mention that it’s really easy too?
The mechanim stuff has a bunch of cool IK stuff built in too. This means we don’t have to animate things like the player turning to face something, or looking up and down. We can do it in code – which makes it look a lot smoother. We can even place the hands and feet on world objects. This opens up a lot of possibilities for the future. Here’s what it looks like when we force the player model to point at a cube. This isn’t one of the possibilities.
The player now has a shadow. This happened on accident and we decided we’d keep it in. It does feel quite nice in game, and gives you a greater sense of being there.
The network code is pretty much feature complete now.. and we’re currently testing it. Replacing the netcode might sound like a daunting task, but it turned out to be pretty simple. Early this week we were happily jumping about with other white cubes building campfire bridges.
One of the big scary systems in the netcode went in this week. The PVS culling system. It’s a pretty simple system in theory. You divide the world up into a grid, then the player only gets information about stuff in the cell he’s in (and the surrounding cells). But there’s a lot of moving parts. You need to account for objects moving from one cell to another, you need to tell players in the cell it left that it’s now gone, and players in the cell it entered that it now exists, and what if a player is subscribed to both cells? You need to account for players moving between cells, you need to send players entering a cell the contents of that cell, you need to tell them to delete the contents of cells they’re leaving. But from tests this seems to have all worked out.
So we got networking working, threw the player models on the players. Now we are at this stage.
Andre is working hard on the procedural maps. They look a bit like the Windows XP desktop background at the moment, but progress is going well. We’re really pleased with it.
It’s very early days in this development but it’s at a place where I think we’re ready to share it with you. It isn’t finished, there’s a lot we want to explore. This doesn’t rule out specifically made maps, but I think there’s a lot more value for money in this method, where the server owner will generate a map from a seed.. so every server you go on could potentially have a completely different map.
Dan has been keeping himself busy, as usual.
Alex & Minh’s stuff
Alex and Minh have been doing awesome work this week on the view models. The viewmodels currently use two different rigs. Which make things hard for us. They also all have the hands included in them. There will come a stage at some point where we’ll want to swap the hands out with a different pair. So we’ve been working on unifying the whole system.. which is more work than you would think. But we’re making progress.
The viewmodel system has been changed to use Mechanim too. It was previously using an insane amount of custom code – which we’ve managed to completely make redundant.
Tom, desperate to restore his reputation, has been working on a rocket launcher model this week.
The experimental branch is on Steam, and you can join it if you want to watch the development. But if you’re more interested in playing Rust I would stick to the current live branch. You might lose your settings and stuff if you switch to the experimental branch and then switch back. But here’s how it’s done.
Our plan right now is to port everything back over to the experimental branch until it’s in a playable, feature complete condition. At which point the experimental branch will be the default branch, and the current live branch will be put on a legacy branch. This means you will still be able to play the old branch if you want to. We won’t be forcing anyone onto the new system that don’t want it.