5 November 2015
Wipe updates are an opportunity for us to do all the stuff that would have otherwise break saves. Stuff like renaming/removing items and entities, and changing stuff about how the building system works. I had a lot of stuff backed up that I wanted to take care of this wipe.
Our shit was everywhere. We had a sounds folder, a models folder, a textures folder, a prefabs folder, an entities folder, an items folder, an icons folder. That sounds pretty organised, but it's a fucking nightmare. Want to add a new entity? Easy, create the item, put it in the items folder, create the entity prefab, in the entities folder, the entity code goes in the scripts folder, sounds clips go in sound clips, sound definitions go in sound definitions, item icon goes in the icons folder. Grr.
So I reorganised everything. Now if you want to add a weapon it goes in the Prefabs/Weapons// folder. Everything the weapon needs goes in that folder. So if you want to delete that weapon, you delete the folder. If you want to find a weapon's item, it's in that folder.
This doesn't affect you at all, but it affects modders. So if you have a server mod and you're wondering why everything is broke, it's probably because a prefab it's looking for has changed location. Sorry.
Doors and Windows
Doors and windows are no longer on the building planner. They're now items that need to be crafted and deployed.
This was something we've wanted to do for about six months. The problem with having these kinds of items on the building planner is that it limits the scope. For example, if we want to add different types of doors, there's no way to do that beyond the three tiers. So if we want a submarine door, or a cage door, it can't be done. It limits the scope in that way. Another thing to consider is if we add a second, wider doorway, or a different shaped window to the building blocks, we'd then need to add a new entry for the windows and doors, so it doesn't scale in that way.
The good news is that this already comes with some benefits. Because the doors aren't upgradable or rotatable you need a way to easily do those things. So we've made it so you can pick the door up. The door has to be open and have no lock on it to do this.
Unity released an update at the end of last week that finally fixes the memory leak. Thanks Unity!
Another round of exploit fixes for the sentry gun, because you people are super clever!
- Can no longer cancel a turret craft to get infinite 5.56 ammo.
- Can no longer destroy foundations to create floating turrets.
- ^ This fixes a tonne of exploits relating to building over the top of the turret.
- Turret will no longer cease firing if you crouch while touching it.
- Turret is more accurate in general.
- Turret has more health and is slightly more resistant to bullets.
There was a bit of an oversight with the rifles last week when some fixes were made and the recoil was reduced way too much, so I’ve restored the old recoil values, and in addition I slightly lowered the damage of all bullets.
This is my first foray into changing some of the core mechanics of how Rust works. Things are going to end up not working and be unbalanced while this is all ironed out, but the eventual goal is to have the game more about sweat equity and less about RNG. To this end, one of the first things I did was make it so guns spawn with very low, almost broken condition. It’s worse for the AK and Bolt, and you may get 5-10 shots off with them if you’re lucky. Most of the time they’ll just be straight up broken, though. SMGs, pistols, and shotguns spawn with more condition, but desperately need repair. I’ve also lowered the amount of ammo that spawns with weapons. I’m hoping this will mitigate the phenomenon of people getting lucky and finding an AK within 20 minutes of the wipe and just steamrolling everyone on the server.
I’ve also made some things more common and more likely to be found in barrels and Radtowns:
- Bone Knife & Eoka no longer fill up the uncommon spawn table (now common).
- Mace, Longsword, Large Cleaver now uncommon (instead of rare).
- Salvaged sword common (instead of uncommon).
- Higher chance for usable weapons/tools in Radtowns.
- Drastically reduced ammo found in Radtowns.
Due to the aforementioned change, researching had been modified so that item condition accounts for the first 30% success chance of the item. What this means is if you had an AK47 with full condition and 1000 bp frags, you’d have 100% research success. If you use a broken AK in that situation you’ll have 70% research chance. Btw that means you can now research broken items if you use blueprint frags to increase the chance beyond 0%.
Early Weapon Buffs
You’re going to notice a difference using the spear. The time between click and strike has been halved! Nerfing it oh so many months ago was the right thing to do, but perhaps it was nerfed a little too hard. It should be easier to use now.
You’re also going to notice the Eoka is a little less crap. Its default bullet spread has been reduced significantly. It used to be completely useless because you’d be lucky if one or two pellets hit the target. I’ve reduced its aim spread penalty by 75%, so it will fire shells more closely in comparison to the Waterpipe shotgun.
Continuing my quest for balanced bows, I have increased the max bow headshot damage multiplier by 25% this will make it more deadly, but it still won’t kill a fully geared guy in one shot.
Chasing sentry bugs and a visit to the dentist prevented me from doing everything I wanted with the early game this week, so I’m going to continue down that path for the foreseeable future. As per my last blog, I’ll look at making guns harder to craft/maintain and things like traps or base defenses for new-ish players. I also want to take a look at farming and try and improve it, perhaps growing hemp and making it so you really have to take care of your plants for them to yield anything (pumpkins are out of control).
Since mining was added, people have been cheating the system by setting up a test server with the same seed as their main server and using admin mode to look for the best resource nodes to mine. Some of the Rust community maps have even started to map out the resource distributions to make the whole thing accessible to people who don’t have access to a test server. This is now finally fixed.
Server owners can specify a server salt in addition to the server seed, which is unknown to people who connect to the server and is used to scramble the locations of mining resources. By default the salt, similar to the seed, is calculated from a unique hardware ID, but I recommend setting it via the startup parameters (server.salt) and changing it regularly, for example with every wipe.
I got some good progress done on the new building system. Entities can now link up with other entities via sockets in a generic and extendable way. Constructions keep track of their socket states and can reject the attachment of other constructions if they’re occupied. I also started converting the stability system to entity links, which even in this early iteration is already looking much more robust. Let’s bring in the issue list from last week’s devblog to see how I’m doing.
- Queries to get nearby entities utilize the physics system, which is slow and turned out to be a problem for more than just buildings.
Building blocks do not know which sockets of other building blocks they’re connected to after placement and therefore cannot use this information for conditional models or stability. Building blocks do not know which of their own sockets are occupied and therefore cannot reject placement of additional building blocks on the same socket other than by checking the physics system.
- Conditional building models do physics checks to determine their state, which is slow and unreliable and is therefore only done on the client.
- Conditional building models are slow to render and therefore only spawn very close to the camera.
- Conditional building models cannot change building colliders.
Building stability uses the physics system to determine the stability of a building block, which is slow and unreliable.
- Building stability is quite basic and doesn’t take the weight of objects that are placed on top of building blocks into account.
The last outstanding issue with stability, the fact that it doesn’t take weight into account, can be solved relatively easily with the new functionality, but I haven’t gotten around to setting that up yet. Conditional models are mostly untouched so far, but this week’s progress opens up a number of options to revamp that system as well, which I’m hoping to get started on next week.
- Made static decor placement more resistant to mismatches.
- Removed a bunch of bush game objects from the server.
- Fixed sentry triangle foundation exploit.
- Fixed warehouse monument physic material.
- Fixed particles being far too bright at dusk and dawn.
- Added murmur hashing for platform independent, reproducible hashes.
I think I should start calling this section 'next month' rather than 'next week'. I’m planning to wrap up the building system improvements over the next couple of weeks, then transition to getting the new and awesome structures Vince has been working on into the procedural world generation.
Finally, the stone gate should be available. It was on main this week for a short time, then we re-organized a lot of folders and content and it disappeared. It should be back for good this time.
Foundation Steps Experiment
I proposed the idea of using a three metre gradient for our foundation.steps block earlier in October. The goal was to ease building creation, so that you did not end up with walls ending at different heights as soon as you built on uneven terrain. We tested it, and while it worked perfectly for mountain bases where slope angle reach 45 degrees easily, building on flat became harder. Door blocks clipping were a tad nasty, too. Ideally we’d have a foundation steps block that can adapt between 1.5m and 3m, but for the work required as of now it doesn’t seem to be worth the while.
Shelves are in. They're 600hp, and they cost 250 wood and 125 metal fragments. They can be built only on constructions, can be stacked, and built to form angles and should let you create loot rooms as capable as before. Oh, and they're not a default blueprint.
Shutters are in this week, two metal embrasures that cost 200 metal fragments. While they might not allow you to see as low as the hacked bunker windows, they do the job. If you really want to aim down at the base of your building at the moment, I recommend placing a chest under your window as a temporary workaround. Wood shutters are animated, and can be opened and closed just like doors. They cost 200 wood. None of these are default BPs.
Don’t get excited, this was just me preparing the terrain for a possible integration next month. I have another batch of moves to make before I can go back to working on it.
Further Optimizing Building Blocks
I’m also looking into reducing the amount of drawcalls each and every part of the building blocks are making. The process is to regroup all of the blocks from one or several tiers under one material. I’ll try to carry on this over to next week, and if not for every tier, have it tested on twig or top tier.
I’m going back to dungeons this time, unless something more important crops up.
I finished the M249 model. Now I need to rig it up and animate it. Here’s the finished model.
I also made some changes to the shotgun and the bolt rifle reloads so that if their partially full they won't play the entire reload animation. It will play an animation according to how many bullets actually need to be put into the gun (like in most FPS games). I did the animations and wrote some preliminary code, but it still needs more testing and love from Helk.
I also worked on some minor animation stuff:
- Tweaked the turn in place animations
- Added special fx to the swimming animations so they create splashes when player is swimming above water line
- Reduced the delay between pressing fire, and the spear hitting the target for the spear weapons
I'll rig up the M249 and animate it. I also need to make the LOD models for the third-person model.
Short and sweet this week! I was in a bit of a code writing mood, so I’ve been spending some time finalizing the ambience updates and ironing out some technical/performance issues. The hard stuff is all done now so there’s just a bit more code cleanup and then a bunch of sound design and editing left to do. We’re going to be able to play ambient loops from pretty much any/every in game object now. Running past a bush and actually hearing the wind blowing through the leaves of that specific bush, hearing bees buzz around the flowers at your feet and birds chirping in the tree above you feels really awesome.
I’ve also spent a bit of time working on soft target impacts for some of the melee weapons, so we’ll have more of a soft slicing sound when you hit flesh or cloth with a hatchet instead of the sharp clang we have now, for example.
I’m really excited about the ambience stuff now, so I’ll probably spend most of next week working on sounds for that. I should also have the soft target impacts finished up.
In the last devblog, I said that I'd try and get the body finished this week, but I thought it was more important to make sure that there weren't any massive holes in the workflow I'd been using before I go too far. With that in mind, I decided to take the head to a more finalised state and worked into the small details of the face like wrinkles and pores as well as the colour map. You should be able to see the extra detail I can pack into using one super efficient map.
You can see how the new model reacts when changing the lighting conditions in the video below. You can also see my forays into how facial hair might work. Each strand has a gradient from black to white and my plan is to have the hair fill out along that gradient, giving the effect of growth over time (at least for the first week or so! More severe growth will probably have to incorporate some mesh hair). I probably won’t look into the shader for a while, but it’s another step to making it as easy as possible to add to the character. Currently all the hair is placeholder including the eyebrows.
What I said last week, minus the stuff I did this week. So basically try to get the body to the same state the head is in.
As I said last week, I left the LODs alone till I have the all the model finished off. I’ve made some real good progress since: I’ve finished the high poly of both the body and the barrel of the AK, and now I’m working on the textures for the main body and need to bake the maps out for the barrel, which will be fairly quick.
I made sure the original--or at least the new original--AK47 parts fit the alternative main body, and they do! Which is awesome.
The plan is to finish off the barrel and get it all textured and move onto the LODs!
Now the footprints are working it was clear they weren't visible enough, and they didn’t show up in shadow due to only being normal maps. So I went through and created albedo maps with some AO for all sand/snow footprints. I will probably do the same for mud/dirt, but I think any other surfaces would look weird.
I created a fly swarm effect that I’m going to spawn on corpses. Ideally the fly swarm can start small when the corpse is fresh and grow over time.
I made a sweet little sandbag impact and decal set.
Land Mine Explosion
I did the first pass explosion for the Land Mine. I think it needs to contain more dirt and debris being displaced, and generally better motion, so I will be doing a second pass soon.
Incendiary Rocket Explosion
Started working on a distinct explosion for the Incendiary Rocket ammo. I want to make it look like the old 1960’s M202A1, which is going to take some work.
I want to start looking at weather effects. We currently don’t have extremes like thunder/lightning, snowstorm, sandstorm, etc. As much as possible I want to try and enhance the feeling of exposure to the elements. This should give you more visual feedback than just the HUD for when your cold, wet etc.
- Continue Incendiary Rocket Explosion
- Second pass Land Mine Explosion
- Fix swimming water effects.
- Stab decals.
Finished off the crafted semi-auto this week and passed it on to Tom to sexify in 3D. The cool thing about this is it’s possible all our other stocks and various add-ons can fit onto it quite nicely. I also have another drone concept--which is still WIP--but I'll throw it up. This one might be leaning a bit too far into a sci-fi look, but there are definitely some elements to it that I like.
A few other projects that I'm thinking of helping with next week, but along with those I'm thinking about starting the concept for the scientist NPC, finally.
I intended to get the bone club throwable this week, but got caught up fixing a number of issues/niggles I'd noticed. Some of these included:
- Both hands no longer in frame.
- Reduced movement in the idle (looked odd when running/jumping).
- Better settle/blending between anims.
- More weighty hit reactions.
- Improved deploy anim.
Here's a before & after video if you're into that sort of thing:
Throwable Bone Club.
Added additional randomization to mining resources (server.salt convar)
Added murmur hashing for platform independent, reproducible hashes
Added window shutters
Added window embrasures
Added stone gate
Removed a bunch of bush game objects from the server
Doors are now craftable items (removed from planner)
Window bars are now craftable items (removed from planner)
Fixed sentry triangle foundation exploit
Fixed warehouse monument physic material
Fixed particles being far too bright at dusk and dawn
Fixed water not drawing on map
Fixed some sounds not adhering to volume control
Fixed shadow related memory leak (unity update)
turret exploits fixed
craft return exploits fixed
Made static decor placement more resistant to mismatches
Made snow jacket single item with skins
Server query responds with misc server performance stats
Chat input is correctly limited
Unlocked doors can be picked up
Couple of generic texture improvements
Foundation.steps metal and stone hollowed
eoka spread reduced
spear charge time reduced
broken items can be researched
item condition accounts for 50% inverse instead of 100% of success chance
stone spear takes wooden spear
slightly reduced bullet damage
bone knife & eoka no longer fill up the uncommon spawn table (now common)
mace, longsword, large cleaver now uncommon instead of rare
salvaged sword common
higher chance for usable weapons/tools in radtowns
drastically reduced ammo found with weapons in radtowns
lowered ammo in found weapons
can no longer place campfires, furnaces, stashes under water
Bone club view model anim updates
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.