Lots of fixes and optimisation this week including the XP system, Gunplay, Graphics and more …
XP System Changes
Well I certainly played the hell out of rust this week. I’ve had a blast with the XP system and I’m going to keep playing until I reach max level. I’ll be adjusting things as I go and then doing it all over again until I feel it’s in a good place. Here are some of the things I noticed, and some of the things I changed to fix them.
Barrel sniping was awful. Such a waste of loot for new people. I’ve changed it so you have to be close to a barrel to get the xp gain when it is destroyed (i.e. melee it)
I also noticed that more often than not you didn’t earn much xp from new people because they’d likely die soon after giving them tools. I’ve not changed the max xp you can get from other players but I have slightly increased how fast you get it by lowering the diminishing xp value. I’ve also added it so weapon owners get a share of the xp when an animal is killed so go ahead and give those newmans a spear as well as a stone hatchet!
I took a look at the math and decided that it is perhaps a little too hard to level up beyond level 25. Due to diminishing xp and the increase in level/item cost we had a double negative working against us. I’ve doubled the max amount of xp for smashing barrels and finding loot crates, and increased the gathering max xp by 50%. Please understand this does not mean you will be earning double, it just means you will be able to earn more before the xp gains start slowing down.
I’ve also patched a few exploits and annoyances. People were opening trash piles, taking the food out and putting it back in, so the next person to come along wouldn’t get any xp from it, but would perhaps eat the players food and earn xp for THEM. I also encountered some people who were filling airdrops up with garbage to prevent them from despawning. I’ve changed it so loot crates are output-only so you can’t stuff anything back inside of them, should kill 2 birds with one stone.
Lastly, I’ve made some minor changes to the tech tree, namely by making the Sentry Gun unlock way earlier than it did before, this is in preparation for some raid changes I’ll shed more light on in the near future.
While playing it became obvious that some item costs were way out of whack in terms of resources so I went ahead and made the following changes :-
- Reduced the cost for many mid/late game melee weapons (250 metal frags wtf?)
- Drastically reduced the cost of ceiling lights, reduced fuel usage, and increased light output
- Increased roadsign armor cost
- Reduced small stash cloth cost to a mere 10
Maurino Berry Alex Webster
The crossbow was a little bit overpowered for what it was so we went ahead and added a couple of nerfs. First, you can’t sprint while reloading, this will only be an issue when on the offense with it and less so when defending and strafing side to side. Second, we increased the deploy duration to make it less feasible to stack a bunch of crossbows on your hot bar and rapidly switch instead of reloading – similar to what we did with the pipe shotgun. We also fixed a regression where arrows were once again doing 2x headshot damage. Hopefully these changes are well received and as always we will be watching and balancing as we go.
I continued my work on the gunplay reboot. Arrows now have their own damage type so clothing and buildings can have separate protection values against arrow damage. Clothing is still offering the same protection for bullets and arrows for now, but this will be changed in the future. Buildings no longer receive any damage from arrows, which removes arrow raiding of the lower building tiers. This has already been causing some backlash, but the idea behind it is that we will offer alternative ways to raid in the early game. Beancan grenades are an obvious choice, and we will tweak them as needed to fill the gap.
Next item on the list was the widely hated randomised damage of projectiles. This was caused by the fact that the projectile velocity was randomised slightly, which not only randomised the projectile damage but also made leading your target more luck based than it should have been. This has been removed completely.
- Damage is now 100% predictable on every shot
- Projectile velocity will always be the same at the barrel and then fall off via drag
- Projectile damage is maxed for the first X meters and falls off linearly from there
I adjusted the headshot damage multipliers of shotgun buckshot and the crossbow. Buckshot now uses a reduced headshot damage multiplier since players have no control over the exact direction of their shotgun pellets. Shotgun slugs are not affected by this. The crossbow now uses the same reduced headshot damage multiplier as the bow. The bow itself will hands down do the same damage as before, aside from removing the randomised projectile velocity, which had a relatively huge influence on the damage output of weapons with slow projectile speeds like the bow.
Lastly Maurino and I did a balancing pass on the player hitboxes. Neck hits are no longer considered to be headshots and hits to the thighs are correctly using the leg damage multiplier.
Graphics Performance – Part 1
As promised, my focus since last week, aside from the occasional bugfix, has been mostly graphics performance. So far I’ve been able to shave off around an average of 0.5 ms on absolute minimum settings and around 1.0 ms on default settings via adjustments and optimizations – measured on a GTX 960. I’m trying to keep the visual fidelity as close to its current state as much as I can. I will also be working with Petur to ensure my optimizations place nice with his graphics overhaul.
These are the improvements so far:
- Reduced overall surface shader complexity
- Reduced water shader complexity
- Added new faster option for reflections (now default)
- Optimised bloom: now ~30% faster
- Optimised climate color grade LUT blending (5x faster)
- Now disabling climate LUT blend when color grading is off
- Optimised eye adaptation (2x faster)
- Default water quality now set to 1
The actual FPS delta is not obvious and depends on a lot of factors. Regardless, we have to keep at it because small changes will add up to something bigger at the end.
Since a lot of you seem frustrated that your high-end GPU is not giving your higher FPS than your friends running lower-end GPUs, you should note that your GPU is not the only important factor here. We are currently CPU-bound in a number of occasions, which means your GPU won’t matter for FPS. In some cases, the situation even seems to get worse the longer we play. For example, Maurino and I were comparing performance on the same spot, the same server and same settings, and my FPS were consistently ~20% higher. Even though my GPU was a GTX 960 and his was a GTX 780, the area we were at was causing us to be CPU-bound where my slightly better CPU would shine the most (i7-6700K @ 4GHz vs i7-4930K @3.4GHz).
Naturally, we’ve also been dedicating resources to handle the CPU and memory situation as well. However, since part of it depends on the engine, we ask you to bear with us while we fix our stuff and put some pressure on Unity to improve theirs.
New Water Reflections Option
Introduced a new graphics option this week to control water reflections separately from water quality. My intention was to give you more control over both while introducing a faster, lower quality reflection quality level as a default option.
Music is in now! It’s disabled by default until I get a chance to test it out on a nice full live server, but if you want to try it now you can type “music.enabled 1” in your console. We’ll enable this by default next week.
If you try it out and hear something you want to give feedback on you can type “music.info” in the console to get info on the currently playing song.
Melee Viewmodel Fixes
I noticed a lot of the melee weapons were no longer striking the centre of the screen, so that’s been rectified. Also an oldie but a goodie, the viewmodel pickaxe was the wrong way round, striking with the chisel instead of the pick.
This week I completed the art for the power substations. You should find these at the ends of big and small powerlines ingame, as a small place to explore.
Bone Armour Rework
I’ve been finishing up the high poly sculpt of the bone armour. With the exception of a few small details and asymmetry It’s pretty much there and I’ve begun to make a start on the low poly. The low poly will be a bit of a challenge to find a balance between looking pretty and being efficient . Modelling each bone could easily eat up a lot of polygons, but I’ve got a few tricks in mind to minimise this as much as possible.
Player Animations Fixes
Some players spotted a bug with the 3rd person pre-throw animations, which occurred when a player held down the right mouse button to aim his throwable weapon and then switched to another weapon (without letting go of the right mouse button). The player would be stuck in the pre-throw pose. This bug has been fixed.
I also went over the pre-throw animations for the rock and improved them so both hands are placed in a more natural pose.
The spear animations also had some tweaking to them as well to look more natural.
The blasted sleeper bug (where the player appeared standing until he/she was approached closely), was reported again. The previous fix that I implemented did not remove the bug 100% of the time so I had to come up with a better approach. I believe this new fix that I implemented this week will completely fix the issue.
I also fixed up some of the position / orientation of some of the items that player was holding in 3rd person.
Double Barrel Shotgun
Tom Butters sent me his awesome new double barrel shotgun model and I started the process of rigging it up in preparation for the 1st person animations.
Bicycle Seat Stock Art
I’ve completed the bicycle seat stock, lods and material set ups in unity and you can have a play around with it here!
I really like the old vintage look to it, though in one of our shaders, the fuzz map on the leather it desaturates everything that is masked out but nevertheless it still looks rad!
I don’t think it’s quite worth me mentioning in it’s own section but i’ve made some headway on the highpoly of a larger capacity magazine clip, which i imagine would when spraying for a large amount of time reduce accuracy or cause the gun to overheat. Either way, it’s on it’s way!
Melee weapons now hit centre of the screen again Pickaxe viewmodel is now the right way round Longer crossbow deploy Fixed patrol helicopter guns not doing any damage to building blocks Added arrow damage type (so armor can specify separate protection values) Structures no longer take any damage from arrows Cupboards no longer require a huge distance from walls on placement Cupboards can no longer be placed on foundation stairs (exploit fix) Projectile velocity is no longer randomised (no longer causes random damage) Projectile damage falls off linearly with distance (after initial max damage distance) Fixed exception when shooting head protective gear that’s fully broken Reduced shotgun buckshot headshot damage multiplier Reduced crossbow headshot damage multiplier (now identical to bow) Fixed rocket LOS check false positives on some building parts Fixed missing bone ID of some animal skeleton bones (game manifest) Changed the assigned body parts of some lower body player bones (more accurate) Sprinting blocked while reloading Crossbow Crossbow deploy length extended Neck is no longer considered as a headshot Fixed helicopter loot crates being empty sometimes Crafting cost reduced for many melee weapons (mid/late game) High end weapons found slightly less often in radtowns (bolt/ak) Trash piles refresh their contents (and xp) more often Can no longer stuff random items into loot boxes to prevent them despawning Town sign cost decrease Crude oil will once again spawn from oil barrels Ceiling lights are cheaper and cast more light Lanterns/Ceiling lights use much less fuel Roadsign armour is more expensive (resources) Xp from barrels is only awarded if the destroyer is nearby (no more sniping barrels for xp) Small stash cost reduced to 10 cloth Sentry gun unlocks at level 18 instead of 24 Lasersight unlocks at 24 instead of 25 Wood doors much more vulnerable to explosives Resource providing ownership share increased to 50% (was 20%) Xp gain when another player kills an animal using your tool Doubled max XP for smashing barrels and finding loot crates (less falloff at higher levels) Increased gathering max xp by 50% ( less falloff at higher levels ) Increased xp earn rate from others gathering wood/nodes Fixed black graphic distortion in dungeon tunnels Fixed some trees not using normal map properly Fixed revz missing name plates in OpenGL Reduced overall surface shader complexity Reduced water shader complexity Added new faster option for reflections (now default) Optimised bloom: now ~30% faster Optimised climate color grade LUT blending (5x faster) Now disabling climate LUT blend when color grading is off Optimised eye adaptation (2x faster) Default water quality now set to 1