3 November 2016
The component system is now live. This represents a fundamental shift into how Rust will be played. The XP system is gone. Congratulations to everyone who bitched and complained about how awful it was. You’ve succeeded! Just kidding. We knew the XP system was shitty about a week after releasing it, and funnily enough, not for the reasons everyone was attempting to illustrate.
The XP system mainly sucked because it completely changed the feel of Rust as a sandbox. It was no longer about new encounters and enjoying your time in the game world, but instead about how to level up as quickly as you can. And when that finally happened, the game immediately became boring. It was also unsustainable going forward. New items we haven’t even thought of yet would need to be hacked into certain levels, which would cause a never ending balance nightmare and item bloat (it was already ridiculous when you’d reach a level and have 12 things unlocked). Eventually we’d like to never have to wipe and just have decay and resource management take care of the server, and XP was not compatible with this goal without all kinds of workarounds and hacks forced in like some sort of prestige system. And lastly, it removed the “making lemonade out of lemons” feel Rust had, where you’d stumble across a bucket helmet and crossbow blueprint and that would be your load-out for the foreseeable future.
tl;dr: Blueprints were too random, XP was too linear and took Rust in the wrong direction.
So I’ve done my best to combine the best of both worlds with the component system. Here’s what you need to know:
- No more locked items, no more blueprints, everything craftable from the start
- Items beyond basics (bow/burlap/furnace/eoka etc) require some kind of component
- Components are items which are uncraftable and only found in the world
- Radiation is back (albeit in a minor fashion)
- North/South division is NOT a thing (yet)
When you first spawn in, you’ll be able to play the game like you have in the past: getting a spear and a bow, setting up a 1x1, etc. When you’re ready to move on to bigger and better things, you’re going to have to search for components for more complicated items. This means going to Radtowns, barrels on the roadside, or, if you’re lucky, encountering the newly added junkpiles while harvesting resources. Virtually all of the components you find are going to be used in a great deal of recipes, meaning you’ll have to make choices. Do I make a better axe or a sword? Do I make a crossbow or a ladder hatch? Combat armor or radiation protection? Bolt-action or AK? I’m hoping this proves to be a sort of best of both worlds scenario. where you can go out and keep stockpiling components for your linear progression, but also based on the components you’re finding have a bit of emergent gameplay based on what you decide to do with them.
I feel it necessary to point out that, even though we’re launching this onto Main, it’s still a work-in-progress. Not all components are implemented yet, and there’s going to be too much or too little loot. Radiation will be unbalanced, though I’m sure for some it’ll be perfectly balanced. The game will be a grind, or maybe it won’t? Maybe clans will hoard everything and we’ll have to add North/South after all? Maybe the penalty from dying will feel too much as there won’t be any progression between deaths/raids. We’ve done our best to mitigate all of these issues preemptively, but things change after 20,000 people play it vs the feedback we get from 200. Just know that we’re quite obviously going to be monitoring the responses, playing the game ourselves, and adjusting everything until it’s perfect. I sincerely hope this is the last time we have to revisit item distribution so we can move on to adding more fun or desperately needed things to the game, like rideable horses, or pooping.
Now that we’re merged into main I feel it necessary to repost the information about the Recycler as it’s a pretty important feature with this new component system.
Image via Rustafied.
You can find Recyclers at most Radtowns. Throw any item into it and turn it on and it’ll go to work chopping it up. After its complete, you will receive about 50% of the items constituent components/resources, e.g., if you throw some armor inside you’ll get cloth; if you throw something like sheet metal or a propane tank in, you’ll get metal fragments.
Radiation has been reprogrammed from the ground up and works entirely differently than it used to. However, I've had little time to test my implementation, so I stayed on the conservative side until we have time to make some procgen adjustments. Basically each radiation zone specifies a radiation level from Minor, Low, Medium, High. These correspond to a RadPerSec value (2, 10, 25, 45).
The Radiation value from your clothing indicates the RadPerSec subtracted from your exposure. So, if you are in a Low radiation zone (10 rads per sec) and you have radiation protection of 8, you’ll receive 2 rads per second. All you need to do is ensure your radiation protection from your armor/clothing is higher than the zone you are entering and you’re good to go. Here is an example of the kind of things you’d need to wear to survive in some of the Radtowns (low/medium)
In addition, radiation no longer increases to its maximum along a linear path towards the center, but rather is its maximum value for the whole radius, minus a falloff range at the outer edges. This means we have more radiation coverage for an area and it can get dangerous very quickly, while still letting players probe the outer boundaries. As before, your radiation exposure will be indicated by a geiger counter sound, and you’ll know immediately if you aren’t protected enough.
I haven’t bothered to implement any High radiation areas yet in case it somehow breaks the game, but if you go into a radzone unprotected you’re basically screwed. After taking 100 Rads you lose the ability to sprint, and radiation deals damage much quicker than it used to. It should be impossible to do naked Radtown runs now. You’ll need to commit some armor resources to it.
I’ve also added Radiation Pill spawns in the food boxes you sometimes find around monuments, but I've reduced their effectiveness to -25 rads. They’ll also eat away at your hydration, so ensure you’re carrying water if you plan to take them!
I’ll observe how this is received over the next while and hopefully when we can ensure procgen always spawns at least one of each tier of monument, we can amp up the radiation significantly. I’ll also take a look at ensuring cold/hot zones are far more brutal, making it so you need to dress for the occasion in those zones as well.
When adding the component system I thought it might be a good idea to bring back some of that fortune and reward for exploring, I had our artists do some concept art for junk piles.
Meh, close enough!
Art takes time so please don’t laugh at my programmer art cobbled together from other assets. Hopefully it’s passable until we get real versions made.
Here’s how they work: if you go exploring, you will encounter them in fields, forests, under powerlines, that sort of thing. The contents are procedural, so you’ll find anywhere from 1-4 barrels and if you’re lucky, a crate. One thing I’d like to do is add a similar system as sort of harvestable decor inside Radtown buildings. Eventually I’d also like to replace the ‘barrels’ with actual components and junk you can rip out of the pile. Either way people seem to enjoy these so far so we’ll keep improving the system.
Now that loot is so integral to the core of Rust, I realized we may have a problem on servers such as Rustafied who boast 400 slots, where there might not be enough loot to go around. I asked André to look into this and he’s added loot scaling with a few server convars to control how it works:
spawn.player_base (default 100)
spawn.player_scale (default 2)
With these default settings, with up to 100 players, nothing changes, however when players increase beyond 100, things start respawning quicker so that when it reaches 200 players, the respawn time is halved. Fingers crossed!
There appears to be a bizarre performance issue affecting some users, which looks like this:
Framerate appears good, but the game is sluggish and pauses intermittently. If this happens to you please press F7 and send us a report, mention that you’re experiencing the same issue highlighted in the devblog. This will automatically send us your system report so we’ll have an easier time diagnosing it.
This issue is not present in the DirectX 9 version, so if this happens to you feel free to relaunch selecting that option (but F7 us first!).
Melee in Rust sucks. We know this and when we get time we’ll work on improving it. For now, I’ve increased the damage of most melee weapons by about 30-40%, so let's see how this plays out
I’ve also made the salvaged tools require components and gather about 30% more than they used to, making them far better than the pickaxe/hatchet.
Maps no longer have fog of war. Craft one and you'll be able to see the whole map. This should hopefully make them a lot more useful, and a lot more common.
The way we approve and ship skins is different now. We download them from Workshop on demand. This allows skin authors to tweak them after they've gone live, removing the burden from us and putting them in complete control. This has other advantages to becoming more moddable. In theory server mods could force unapproved Workshop skins on certain objects. I'm hoping this opens the door to us becoming more moddable in the future. This also means we can add new skins to the game without actually releasing an update.
We've added some of the skins created with the new system during pre-release to the store page, expect a lot more in the future.
All the attention on the skin stuff might seem like it's motivated by our greed. I want to explain our motivation here: compared to how much we make selling the game, skins don't make that much money for us. It's not insignificant, but it's not company changing. Our Workshop authors,however, have made over $250,000 from their skins sales since we started doing this. I think back to when I was 20, how much a cheque for $2000 would change my life, especially if it was earned by doing something that I enjoyed and wanted to be a bigger part of.
And that's the big motivation behind making it more accessible for more of the community, encouraging their contributions, their efforts, giving people new career options and aspiration
I've all but finished texturing the Hazmat Suit. I'd like to tweak a few things on the texturing still, I think it'd benefit from having a bunch of decals for example, but those types of things I can add after I've skinned and LOD-ed this guy. I'll be moving onto skinning and LODing today, and setting the suit up in-game next week so it's reasonable to expect it in next week's patch.
The main suit will be setup to accommodate any colour variations we might want, so I've included a few examples of how that might look.
The new Workshop is available in the main menu. Click the button and explore what's out there. We're working with Valve to get a few things working, so if something is broken then that's probably why.
We have an issue/request section on the RustWorkshop repo on Github, so if you find any problems please check here.
I optimized some inefficiencies in our prefab pooling system and added pooling support to the building conditional models and our renderer batching, which should help reduce framerate drops when entities are streaming in. We also started testing the new optimized prefab pooling mode that will help us work around a huge chunk of internal Unity overhead related to game object activation and deactivation. There are still some outstanding tasks, but I’m hoping to enable it for everyone next week.
I’m still working on overhauling parts of our networking backend to make things more robust and ultimately more optimized in terms of memory allocations and network traffic. While a couple more smaller fixes related to network group subscriptions are going live this week, the biggest chunk will start testing on the staging servers next week since I thought it would be smart not to add something like this with a big gameplay content update.
Helk and I discussed the need for a high capacity pistol in the Rust arsenal, so we decided upon this bad boy. It’s a Beretta M92 pistol. This is the low poly model, and I haven’t gotten around to doing the smoothing groups so please excuse the jagged polygon look.
I’ve been working on some new hitmarker sounds this week, which aren’t in yet. I’ve done a few versions that get more weighty and brutal/crunchy as they progress so we can try out different hitmarkers based on how much damage you do. A shot in the hand would be a light click and a shot to the neck a nice crunchy thump. Some of the source material for this came from recording screws and bolts being shot at various pieces of cloth and leather with a slingshot.
I’ve also added something to allow us to disable melee hitmarkers on objects, which means no more gnarliness when you’re smashing barrels.
Unique silenced shots for the LR300 and MP5 are in now, along with adjusted bullet flybys. The flybys have a sweet, supersonic crack now, which I think makes them a lot more intimidating.
I’ve been working on placement sounds for deployable building parts this week, and I’ve also started taking some of the deployable sounds we added last week, creating inventory UI sounds to match (out of the same source recordings).
I’ve done a little bit of small polish this week too from a list I built up while playing last weekend.
Took a break from my current ongoing tasks to work on some optimizations due to high demand. Most of my focus this week has been rendering where there's still a huge margin for improvement. Had a few ideas during the weekend that panned out better than expected.
- Improved water rendering and culling
- Minor improvement to deferred lighting
- Optimized terrain and terrain-blended rock/cliff shaders; now 2x faster
The terrain optimizations are hard to quantify, but on my test machine (GTX 960) it can save up to 2-4 ms per frame depending on resolution, anisotropic and parallax settings. Most notably, setting anisotropic sampling to 4-8 has barely an impact now.
This week I've been working on a viewmodel for the satchel charge. As the code it uses effects a couple of other deployables (and I've had to add to it) this won’t be live until the others are playing ball with the new code.
We started the production of what’s needed for the harbors. We have a few sets done: the dock walls, mooring bollards. We’re now working on the tug boats and the dock crane as well. As most of the progress goes towards the bigger picture, we’ll show you some of it when there’s more done rather than individual props. Stay tuned!
The Hapis Island tunnels and Radtowns have seen some changes. Likewise, a few regions that felt a bit too barren have been fleshed out some more.
Sound occlusion is on by default now! In case you forgot, this means that some sounds like campfires will be muffled if they don’t have a clear line of sight... er... hearing to you. It provides a nice bit of sonic separation between the inside and outside of your bases.
Added new lighthouses to Hapis Island
Added a new radtown to Hapis Island
Added integrated workshop
Added collared shirt
Added silenced lr300 and mp5 gunshots
Added prefab pooling to building conditional models
Added prefab pooling to renderer batching
Added Component System
Added loot scaling
Removed XP System
Fixed player eyes looking glossed over
Fixed players not blinking
Fixed players not looking around
Fixed clothing backfaces having weird lighting
Fixed incorrect network group subscriptions of players before spawn
Changed the Hapis Island tunnels to mineshaft networks
Maps no longer have fog of war
Sound occlusion enabled by default
No more hitmarkers when meleeing barrels
Updated bullet flyby sounds
Misc minor sound polish
Improved water rendering and culling
Optimized terrain and terrain-blended rock/cliff shaders
Disabled a few irrelevant warnings for non-developers
Optimized prefab pooling (more to come next week)
Spawn group respawn rates are now scaled with the player count
Disabled rain until we can re-enable its particle collisions
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.