Researching returns! Plus a look at the new dungeons, the new assault rifle, the future of the XP system, and more.
19 August 2016
I ran a thread on reddit a couple of weeks ago to see why some people really hated the XP system and to find out what elements of the BP system they missed. Pretty much everyone said they hated how the XP system forced them to play in a somewhat linear fashion and that there was no researching of items. This meant if you killed a higher-tier player their items were mostly useless to you because you were too afraid to take them out of your base. To that end, I’ve reintroduced researching into the game - but it’s not exactly how it was before. It’s similar to the old way of researching in some ways, and I’ll lay it all out for everyone so you can see the differences.
First, you need a research bench. These can be found at various monuments, or they can be crafted at level 10 and above.
Second, you’ll need to find some Research Paper. You can find it rarely in barrels, and more commonly in loot crates.
Third, you’ll throw your target item into the research bench and based on its durability, you’ll have a base 0-30% chance of research success. By adding more Research Paper you can increase the success chance. Different tiers of items require more or less research paper to maximize success chance. Low-end items require only one or two, and high-end items can require up to 10.
If research is successful, the source item will be destroyed, and you’ll be granted a number of Blueprints for that item. The quantity of blueprints you receive is based on the item and its rarity. Things like ammo will give you many dozens of blueprints, and things like Assault Rifles will grant you upwards of 5.
Each BP can be looked at as a single craft session. They stack and are tradable, but they do not permanently unlock items. Pressing the ‘Craft’ Option on the blueprint will initiate a crafting session of the target item, assuming you have the available resources for it.
What this means is that if you happen to find a Semi Auto Pistol, for example, you can take it back to base and break it down to produce several craft sessions of it in exchange for some research paper if you have it. (Or none if you’re a degenerate gambler).
Be warned: items created from Blueprints have a limited durability, and are such as less likely to succeed in being researched again.
This system effectively allows a bit of fast-tracking if you opt for that sort of gameplay, and it also increases the usability of loot from players who are higher than you. I know it’s not a perfect solution, but I hope it’s an appropriate stop-gap measure to please all the people who were upset with the more linear nature of the XP system. I’m hoping this gives us a bit of breathing room to rethink the entire thing, and really get some solid answers on how the XP system has negatively affected Rust, so we can form an action plan moving forward. More on that at the bottom of the blog.
Boy was it ever annoying to try and aim at people with the Holosight: it was all dim and grey. I removed the glass entirely from it, so its completely transparent and all you’ll see is a reticle, like every other game. Maybe it’ll be useful now?
Whoops! When I implemented the performance fixes last week, that prevented the playermodel rebuilding when anything in the inventory changed (rather than actual clothing changing), this also meant it would ignore the state changes of the items, so turning the head lamps on/off would not actually trickle through and change the light status. This is now fixed and everyone can continue to never unlock or use either of these items!
We made the graphics update available on the pre-release branch a few days ago, and work goes on to get it ready for the merge, which is still planned to happen in the next forced wipe.
If you would like to playtest it in advance, right-click on Rust in your Steam library and go into properties, and from there into betas, and select prerelease from the drop-down menu. That’s it. Rustafied has a lovely gallery of what'll be waiting for you when you do, though we've improved on that already.
I spent some time running the numbers on PvP damage this week and did a pass on the overall damage output of projectile weapons. I started by increasing the base damage of rifle and pistol bullets. This means that all player weapons that use those ammunition types had their damage increased against both naked and geared players. Here are the new numbers, simply double them for headshots:
- Bolt Action Rifle base damage is 75
- AK base damage is 50
- Semi Auto Pistol base damage is 50
- Semi Auto Rifle base damage is 40
- Thompson base damage is 37.5
- Revolver base damage is 37.5
- SMG base damage is 30
With the exception of the Bolt Action Rifle, which received a smaller buff than the other guns to allow people wearing a Coffee Can Helmet to barely survive a headshot from it, all firearms still have the same damage ratios relative to each other. However, they now all require less hits on target to kill. You can one-shot with headshots from the AK and Semi Auto Pistol at close range, but even the most basic headgear means a second hit is required.
Another thing that changed is the effective range of weapons. Rifles have always had a less severe damage falloff over distance than pistols. However, I increased the initial distance at which rifles do their maximum amount of damage to further widen the gap and give them a bigger advantage over pistols in those encounters.
Lastly I increased the projectile radius of shotgun buckshot again, to even out the variations in damage output caused by pellet spread. This should help make shotguns feel better again.
As most of you know, the projectile code in Rust has always been client-side with some server-side verifications to ensure clients can’t just send whatever damage output they want to the server. The server side verification uses a simplified projectile model for this, which could lead to some rare issues with hits not registering. I did some some more work on the server-side verification this week which should drastically reduce the amount of rejected attacks caused by client delay or desync.
There was a rare issue where the player view direction was not properly networked to other clients. I went over a ton of server-side code to track this down and identified and fixed two situations that could lead to this - let’s hope this takes care of it for everybody.
The combat log now contains all attacks that have been rejected by the server, including a reason for the rejection. For those who don’t know, you can access your combat log by typing “combatlog” into the F1 console and pressing enter. This will show you a list of all the recent damage you dealt and received. Including rejected attacks should help us track down any further issues with the server-side verification and make the whole thing more transparent for players since they can see exactly what was going on during an armed encounter.
If you’re a Rust player chances are you’ve experienced frame rate stuttering whenever huge buildings are loading as you walk around the world. I’ve started tracking down things that are causing this and started implementing some solutions. The first one that’s available for testing is entity pooling. It’s disabled by default and can be enabled with the “pool.entities” convar. It greatly reduces the intensity of lag but I want to do some more testing and add the system to more entities than just building blocks and external walls before enabling it for everybody. If you encounter any issues with it make sure to let me know.
There are a bunch of new convars that allow server owners to customize gameplay. You can increase the following convars to increase the amount of damage of the specified damage type:
The same categories are available to scale the protection against a certain damage type from clothing and armor:
We’re hoping to use those to quickly test out balancing ideas on our staging servers. It will also be interesting to see the values community servers are setting them to since that should give us a general idea of what the community’s thoughts on balancing are.
I added a number of additional interaction checks to nearly all RPC calls to prevent clients from sending interactions to the server that shouldn’t be allowed. This should make basic scripting a bit harder to do for some things, even though it’s just a small step in the right direction.
I have been creating a new tunnel set to enrich the types of underground scenes you can find in dungeons. This is an old mine style tunnel, that would be a remnant of industrialization from an older era on your island.
I will use these smaller and twisted tunnels to make secondary paths into military complexes and natural caves. Right now the re-worked military tunnel dungeon has several entrances and exit points, and it will be the largest underground place in Rust so far. I will reveal more about this in the coming updates.
I have started detailing the lighthouse that was featured last week. The exterior part of the tower is mostly finished and I have begun working on the base and the bunker structures. The bunker is pretty clean at this moment, but the goal for it is to have an abandoned and deteriorated look. Here are some work in progress screenshots:
I’ve been working on the animations and sound effects for the LR-300 assault rifle's viewmodel. Here’s what I have so far.
I also made LODs for the worldmodel and rigged it up for animation. This is what it looks like in third-person with attachments.
I really loved the Deer Skull Helmet that Paul concepted along with the Bone Armour, and spent a bit of time this week integrating it into the set. Fur is a pain to make so I opted for more of a makeshift cowl, but it still looks pretty intimidating. The human skull version will still be an option, and I'm tempted to add a bear skull option for the ultimate in bad-ass head attire.
Paul’s developed the Vending Machine concept to the point that I can start making some good progress on it. He’s done an awesome job, and I’m really looking forward to texturing this beast of an asset. What you’re seeing below is the high-poly, and I’ll soon have the low-poly version ready for baking out my texture maps. I just have to finalise a few things before that though.
For the monitor, I’m hoping to steal James Kings’ (Chunks, Arcade Game prototype) shader for their old arcade game machines screens from the arcade prototype, like this one, To get that old pixel look going like in this video.
I took this week to do a polish pass on a bunch of our sounds and fixed a bunch of little stuff that’s been bothering me for quite a while.
Ambient sound levels are balanced way better now. No more hurricane wind! I thought that having windy days be a bit louder might be a fun gameplay thing initially but it was kind of just annoying so the windy days are a lot closer to calm days now and I’ve brought a bunch of the bird & cricket sounds down a bit as well (now that they don’t need to be able to play over the wind). I also ditched a few bird stings and cricket loops that sucked.
Some footsteps still sounded kind of funny so I EQed a bunch of those and swapped some of the ones that still felt wrong out for new footsteps. These sound a lot more cohesive now. I bumped the volume on footsteps up a touch too.Bush rustles always felt like they started a little bit after you’d actually entered the bush because the fade in time was a little long. I made the rustles start quicker and did some EQ and polish work on them so they sound a lot more natural now. The tearing bits after the initial impact on a tree were a little long so I shortened that up. I also added a bit more woody knock to the tree hits and polished them up.
Our bullet ricochet sounds sucked so I did new ones, and added more variations than we had before. We’re now also preventing a shotgun blast to the ground from playing way too many impact & ricochet sounds. Our bullet fly-bys sounded alright, but I felt we needed a little more variation between each fly-by and more low end to make them feel scarier, so I did a bunch of new bullet fly-by sounds.
Music was playing a little too often so I bumped the song gaps up and made it so that music playback triggered by intensity changes can’t start songs before the minimum time between songs has passed.
I did some smaller EQ and volume tweaks on more sounds as well.
As I’ve said before, the XP system had huge praise until it was released, and then lots of people hated it. I’m not deaf nor blind to this, and I’m leaning towards the whole thing needing a rethink. In some ways the XP system is the antithesis of what Rust was all about: it forces players to do things in a certain order and takes away from the sandbox feeling of the game. We added this because people were bitching about how grindy hitting barrels and hoping for blueprints was, but I neglected to realize that the randomness could actually lead to some interesting situations and forced you to work with what you had.
There have been some suggestions regarding completely removing blueprints or XP of any kind and having all items available for crafting, so long as you had the components for it. This could be a good solution, but not without a bunch of other changes. Keep in mind I added the blueprint system in Legacy three years ago to provide players with a sense of progression and to have something to keep after they died and were looted. If we went to a full component only system, being raided would result in 100% loss of all progression, and you’d end up being a new player again. Ragequit probability = high.
We can do things with a component system, like split the map up so the higher tier stuff is moved away from the newer players in a gradient, that way you sort of make you way inland and are less likely to encounter guys with AK47’s when you have a spear. It needs a lot of thinking, but I will say this: ditching the XP system is one of the options on the table. Not just because people are bitching, but because something about it just ‘feels’ wrong when I think about what Rust is. It’s possible we can somehow balance it, but we might just be polishing a turd. The XP system is great in the beginning, because you’re getting all kinds of new stuff, but it slows down and when you finally reach the end it provides a perception issue of the game being ‘finished’ rather than being a sandbox you can spend forever in.
So yeah, that’s where I’m at right now, I hope the Research Table gives a bit of breathing room for everyone while we keep on keeping on. Thanks for playing!
Added Research Bench
Added Research Paper
Added entity pooling (pool.entities convar, disabled by default for now)
Added some server side interaction checks to nearly all interactions
Added additional line segment to projectile and melee hit LOS check
Added additional info to server log when rejecting attacks for LOS violations
Added attack verification to launcher weapons
Added meleedamage, arrowdamage, bulletdamage and bleedingdamage server convars
Added meleearmor, arrowarmor, bulletarmow and bleedingarmor server convars
Added admin vis.lineofsight server convar (debugging)
Added admin vis.protection client convar (debugging)
Added admin printinput and printhead console commands (debugging)
Removed a few shitty bird stings and cricket loops
Fixed alt+enter related darkening
Fixed alt+enter related rocks missing terrain blend
Fixed candlehat/minerhat not working
Fixed player view direction sometimes not being shown correctly to other clients
Fixed some server side garbage collection spam from auto turrets
Updated to Unity 5.4.0p1
Better volume balance and general polish on ambient sounds
Better, more varied bullet flybys and ricochets
Don't play a million ricochet or impact sounds when shotgun blasts hit the ground
More woody knock and less tearing on tree impacts
Footstep polish and consistency
Bush rustles have a lot shorter fade in and sound more natural
Misc small sound tweaks, volume balance, and polish
Increased time between songs
Never play songs before the min song gap has elapsed
Large Box unlocks at level 9 (was 10)
Research Bench unlocks at level 10 (was 17)
Made holosight easier to see through
Combat log now also contains rejected attacks with a reason for rejection
Disabled pool.skins on the server by default (doesn’t make much sense there)
Doubled projectile radius of shotgun buckshot and handmade shells
Increased rifle and pistol projectile base damage from 40 to 50
Adjusted bolt action damage so coffee can helmets let you barely survive one headshot
Increased effective distance of rifle bullets
Projectile LOS checks now use client side start position after verifying it
Attack LOS tickets are now clamped
Renamed pooling stat commands to print_memory, print_prefabs and print_assets
Split pool clear command into clear_memory, clear_prefabs and clear_assets
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.