PvP Improvements Phase 1
A big complaint in Rust is how badly the gunplay sucks. I know right? I took a look into this and the reason the guns felt shitty is multi-faceted.
- Viewmodels sway too much when moving.
- Muzzle Flashes occlude your target.
- No hit indicator sound/visual.
- Gunfire hiccups and lag (See Andre’s section for more).
- Hitbox code incomplete.
The incomplete hitbox code is the major issue here. Basically we have separate damage scalar values for each area of the body, so if you get hit in the legs or arm it does less damage, and if you get hit in the toes or fingers it does a LOT less damage. Sounds good in theory, right? Unfortunately, there has been a bit of a long-standing oversight that has caused a lot of WTF moments in Rust. The problem is that when you hit someone in the finger or hands or arms it will *only* deal damage to the hit body part, even if a more critical body part as just beyond it - such as your fingers being infront of your face. This is compounded by the fact that in most firefights you’re aiming at center mass and that just so happens to be where all the hands and fingers are blocking because they’re holding a gun, so your bullet could do 3 damage or 45 depending on where it hits.
So, how do we solve this?
We need to redo the hitbox system with some sort of density values so when an attack happens, its power is reduced by the density of the first hit, and continues through until it either exits, or has had its power reduced to zero. An example would be a finger with a density of 5%, damage scale of 10%, and your head with a density of 100% and a damage scale of 200%. If I shot you while you held your hands up to your face, the bullet would deal 10% of it’s damage, and lose 5% of it’s velocity and continue through to hit your head which would deal 200% of it’s damage (less the 5% loss), and reduce its power to 0 and finish.
Unfortunately, this is a task that will take some time so I haven’t started working on it yet, but rest easy! I changed the amount of damage that hands and arms take to be much closer to that of center mass, while still taking armor into account.
This should seriously help with the bizarre issues where you seem to hit someone 30 times and they don’t die. As soon as I can, I’ll look into fixing the hit-boxes properly, this should hold for now.
This problem is two-fold. One, we added bad-ass muzzle flashes and forgot that they would occlude the target. Derp. Two, there was a shader oversight with the lit smoke that was making them become opaque when they were lit at night. Diogo did an awesome job of fixing this, so you can thank him! Both of these issues are now resolved. I’ve also rotated some muzzle flashes a bit so they don’t directly block line of sight to your target when firing.
I reduced the amount of viewmodel sway you experience while aiming down the sight. I did this to reduce how clunky and unresponsive aiming in Rust felt. This is kind of a long-term stop-gap measure because eventually I’ll make it closer to legacy where you have a small cone where your viewmodel moves independently of your aim. This will also allow us to remove a bunch of the conefire stuff we have in place as well.
Hit Indication Sound
Time to set Reddit on fire. People have very strong feelings about this one way or the other. Here’s what I think: We had it in Legacy and it was great; we don’t have it now and gunplay feels sloppy. So I re-added it and it feels great. It’s the finishing touches that really helps bring the gunplay (almost) back in line with Legacy. With that said, yes there is one ‘Con’ to having a hit indicator sound, and that is if you spray at a bush you know for certain if you hit the guy or not. I can probably address this down the line by ensuring you have a clean line of sight to the target before it plays but for now this is how it is and to be honest, it makes 99 out of 100 fire-fights feel way better, so the balance has tipped in favor of adding it. I’ve also added some convars so you can control how it works
hitnotify.notification_level (default = 1)
- 0 = Off.
- 1 = Clientside hit reporting (instant feedback but small chance of false reports).
- 2 = Serverside hit reporting (bit of a delay but always accurate).
Loot Table Changes
I took some time and listened to your feedback and changed some of the loot tables in terms of which blueprints are found in which tier, here are the most significant changes:
- Bone & wood armor no longer default, common/uncommon?
- Salvaged Sword is Common.
- Lantern is Common.
- Some Rad-Suit parts are uncommon instead of Rare.
- Pistol ammo is now Common.
- Removed some snow jackets for now, existing one is uncommon instead of rare.
- Leather gloves use leather, is Common.
- Wood and Bone armor is no longer default, now common/uncommon.
- Roadsign armor is Rare
We’ve been adding so much stuff recently it’s probably about time to take a look back at some of the things we’ve implemented and fix them up. I’ll do some more work on improving PVP & PVE, and take a look at things like Armor Condition and perhaps some initial investigation into how we can do Weapon Mods (but don’t count on that for next week).