Doors, Keys and Fur.
You can play this right now
It seems like a lot of people don’t seem to understand that you can play this stuff I’m posting about on Steam right now. We’re not posting about stuff that doesn’t exist. So please feel free to jump on, run around in the server for a bit.. then if you’re not impressed come and try it again next week to see what we’ve changed :)
Building on Rocks
You couldn’t build on rocks. Now you can. It makes it feel more like a castle.
F2 Menu Fixed
The F2 menu wasn’t working on OSX or Linux. It hasn’t been working for a long time. It turned out it was because the onmousedown jaavscript hook was being called twice on those platforms.. so when you pressed on something it would toggle it off and then back on. Doh.
So now non Windows users can increase their framerate by making the game look worse too!
You now lower your weapon when running, jumping and swimming. Like in Battlefield. This obviously means you can’t shoot people when doing any of these things.
A while back I made a little script that converted a scene into a prefab. This means that artists can create a little scene, which can contain other prefabs like campfires and loot stashes.. then run a script which will convert it into a prefab.. then when the map is procedurally generated it can add them to the map.
This is a reaction to the worry that there won’t be landmarks on procedural maps. It won’t just be used to create statues, but we could potentially create anything with it. Waterfalls, powerstations, airports, craters, volcanoes.. there really is no limit here.
It would be nice to open this system up to modders at some point too. I can envisage a situation where we or server owners will choose a bunch of user created monuments from workshop which will appear on their procedurally generated maps.
Following the concepts made a week ago, Bill has re-made the furnace model.
You can now place doors in your doorways. Doors only open one way, so I’ve tried to make it obvious in the placement guide which way it’s going to open outwards. The design is very loggy right now. Don’t worry, all these building components are going to get another pass at some point.. we’re just making everything fit together right now.
Petur finished his lantern model and put it in game. We don’t have a viewmodel yet though, so it’s just deployable like a campfire. We’re struggling to justify it’s existence in the crafting system at the moment, so it might turn out to be a rare/lootable only item.
This is a bit of a divergence from the legacy version. Nothing is owned. Doors don’t belong to you just because you place them. They don’t know you are their owner.
So any door that isn’t locked can generate a key. Go up to it, press use, select create key. You will then lose some wood and 60 seconds later you’ll have a key in your inventory. You can now lock that door. Once the door is locked you can only unlock it with your key, or any other keys that have been made from it. You can give a key to a friend, or hide one for safe keeping. If someone kills you and loots your key, they will be able to open your door.
There’s three important points to this system. Firstly.. it’s emergent, it’s what we’ve been trying to do in Rust from the start. Give you the tools to make the game yourself. Why does your house belong to you? Because you built it? Because you have the key? What happens when you don’t have the key – is it still your house? Should people be able to steal your house, in the same way that they steal from your corpse? Of course they should.
Secondly.. we’re not getting rid of password locks, number locks, fingerprint scanners. Those will come later. It’s an evolutionary thing. Eventually you’ll be able to upgrade to these systems, at a cost.
Thirdly – it’s a process. It’s not set in stone. If it’s exploitable in some way that ruins the game we’ll look at it and we’ll evaluate whether we need to fix it, and if so, what the best way to do that is. A lot of potential problems with this system are gameplay problems that the player should solve themselves, but I can imagine some scenarios we might have to cater for. We might have to make it so you can ‘remove’ a lock from a door for example, so no keys can ever be made, and it can never be locked. This is all part of the process.
We have stag, wolf, boar and bear on the servers. They now have their walking animation working properly.
They are all using the wolf AI right now.. which means they’re either walking around aimlessly, or following you aimlessly.
When something dies now, their ragdoll is able to inherit stuff that is attached to them. Right now this is only effects.. specifically the blood effect. So ragdolls will continue to bleed after they die. Here’s a video of 3 men being murdered.
We had fun playing with a fur shader. Goosey made all of the animals use it. Here’s a video of it being applied to a bear.
And here’s some experiments on the player model.
Item Website Integration
I added an editor script this week that should speed things up for us. Previously if we’d edited something on the item admin website we’d have to export them which would download a zip file, then we’d have to extract each folder in the zip file to a specific place in the project folder. This was only two minutes work.. but it’s dumb robot work, and it meant that a lot of the time I was editing the json item definitions by hand instead of using the website and then having to backport the changes.
So I wrote a script that talks to the website, downloads all the items definitions, item icons and phrases and puts them in the right folders.. deleting the old ones where appropriate. I’m really happy with it, it’s already changed the way I work constantly.
Item Icon Rendering
I was getting tired of the terrible placeholder icons we were rocking, so on a whim today I wrote an icon rendering system. This is pretty much the same thing that I wrote for Garry’s Mod a few years back. It worked out pretty hacky, and pretty great.
Unity has issues with alpha. Some shaders write alpha when they shouldn’t, and some don’t write it when they should. This means that the alpha that you get back from the backbuffer is unreliable. So I brute forced it. I render the item on a red, green and blue background. Then compare the pixels on each texture. If the pixel’s colour is different then it’s transparent.. then we can compare the colours and work out the transparency level and even the colour of whatever is overlaying it.. leading to a perfectly rendered icon with perfect transparency!
Here’s some examples of the raw output:
Tom has tried his best to not go on holiday for long enough to make us some new clothes! We’re trying to get a basic set of clothes ready for the baseline, I think these are coming along quite nicely.
Howie has been imagining how our buildings will progress.
Meg has been thinking about sleeping bags.
A nice week. A lot got done, not only on the surface but between the sheets too. The door stuff required a fair amount of internal re-jigging, and now it’s done the item system is even more useful.
Next week I’m hoping to flesh stuff out a bit by adding more items that exist legacy and implement a bunch of Dan’s previous creations. I’m also hoping to start work on the building ‘upgrade’ process (which will use programmer art until Bill is back).