Blueprints, Sounds and Wasted Time
UPDATE: I know this is a hot topic, so have tried to clear up some confusion here.
Last week I mentioned what we envisioned for blueprints. I made some progress this week, so I’ll go into more detail. Blueprints will be stored in your Steam Inventory. You will be able to trade them.
Being able to trade sets the “IN-APP PURCHASES” alarm bell ringing in most people’s heads. Don’t worry. It set it off in mine at first, but it’s just a side effect of being a part of the Steam ecosystem. The intention isn’t for us to sell blueprints to you, the intention is to treat them like trading cards. If you get the same one twice, you can give it to a friend, or swap it for one you don’t have.
We imagine it working like this. You start playing Rust. You can craft a small number of things, you play, you have fun. You get a new blueprint in your inventory. You can now craft a shirt. You play more, you get another new blueprint. You can now craft trousers. Your friend starts playing, you craft him a shirt. He dies. He asks you for another shirt. You decide that you don’t want to keep doing this.. so you start a steam trade and give him the shirt blueprint. You play for a few more hours, you get another trousers blueprint. You sell it on the Steam Market for $0.03 – and you also sell two hats you got from playing TF2 for $0.12. With the $0.15 you buy a coat blueprint.
It’s important to us that there’s no losers in this situation. This is what the Steam Inventory system does. Everyone involved wins. Even when you look at the most exploitative situation, a guy spending hundreds of dollars to buy all the blueprints.. he’s still got to go in the game and get the resources to be able to craft the items. And even then you could kill him with a rock and take all the stuff he’s made.
So that’s what we have planned. Valve are still beta’ing the inventory service, but they expect it to be ready quite soon. Once that’s done we’ll switch it on and see what happens. We also appreciate that not every server wants people taking their ‘global’ blueprints with them so will make sure they can choose global/local inventories.
Scott’s new improved stone hatchet model went in this week.
There was an issue with gun sounds not fading based on distance. Internally there’s a mixup between sounds/effects created by the viewmodel, and effects visible on the 3rd person model. This is something I want to work on to make more unified and less error prone in the future.
For now I made a quick fix that will change the sound to 2D if it was created by your viewmodel, and your viewmodel is visible. If not it will create a 3d positional sound. As a bonus I made it lower the pitch based on distance if the sound is a gunshot – to try to replicate that bassy distance gun-shot sound. There’s more we can do in this area to make shit cooler.
I had a fight with asset bundles this week. Sometimes when you’re using Unity it’s awesome, you can feel the progress you’re making rushing past your head like you’re travelling 200 miles per hour. Other times it feels like you’re walking around a haunted house in pitch blackness, and every corner you turn you get punched in the face by a big fucking witch.
So the issue I was trying to quickly solve here was our build times. We used to have about a 10 minute build time. This mean that when we committed code 15 minutes later it was on Steam for osx, linux and windows. This is awesome when you’re iterating quickly – you can go through bug reports and be like “try now”, and they can try and see instant results. Lately, after changing to Unity5, and especially after changing to Speed Trees, our build times have been hitting an hour. Which makes iterating a lot slower, it makes our whole development a lot less dynamic.
Asset Bundles basically would mean putting the majority of content in these big bundle files. In theory that means that we wouldn’t include content with the 7 different builds we do, which would mean they would compile in less than a minute each. We would also be able to put out 1.3gb of textures in its own bundle, which we wouldn’t have to ship with the server. Plus we want to enable people to create their own maps etc, and asset bundles are the way to do this in Unity.. so it’s work that would need to be done anyway.
But after a day of work that didn’t exactly work out. It seems that the asset bundles between opengl and directx are incompatible, and between 64bit and 32bit are incompatible. Which reduces the usefulness of them significantly.
So I ended up spending another half a day breaking our build process up in jenkins, so instead of building each platform linearly – one after the other, it now builds them all simultaneously. This brings our build time from an hour to around 15 minutes. Which is much better.
None of this changes the game at all. I just wanted to give you guys a feel for what goes on behind the scenes, the kind of day to day stuff we have to do.
I added footstep sounds for more ground materials. Things like sand, snow, wood, stone, dirt. These sounds aren’t perfect yet. In fact the sand sound is fucking terrible. But it’s better than concrete sounds everywhere.
I fixed a few things with building. I fixed being able to place the sleeping bag inside of walls, and therefore be able to spawn your way into someones base. I fixed not being able to climb through windows. I fixed a number of broken materials.. especially on the (still very much placeholder) transition animations. I fixed being able to place railings across doorways.
We haven’t updated much to do with the building system because we’re still figuring out the right direction for upgrades. Particularly whether the geometry should change much, or at all, or just the texture/material. If the geometry stays the same but just the texture changes, things get very very easy for us. This is likely the way things will go at first – but we’ll probably keep the option of going back and changing geometry if we want to.
Goosey and Xavier have been experimenting with the bandage. The idea is that you’ll wrap the bandage around your head
I think this might be our lowest content update ever. The fact is we’ve been spending a lot of time fighting with Unity this week. And we’re still fighting – that’s why there hasn’t been an update released for a few days. We don’t know whether this is the new Unity beta, or something we’re doing in the code, or the new build process, but we’re banging away trying things until it works.
It might just be that this is over-cautious error reporting and we don’t really have anything to worry about. But I’d rather worry about it and confirm that it’s meaningless than put a patch out that stops everyone from playing.
Next week.. bug fixes. Bug fixes. Some re-writes and refactoring to make the code easier to use. If the Inventory stuff is released we’ll make that live too.