Archives for:
“Uncategorized”

Devblog 165

Async Texture Loading

As promised in last week’s devblog, I focused on the last performance issues caused by skins over the weekend and first half of the week. I implemented fully asynchronous texture loading from PNG including texture compression via DXT and mip map creation. This means that everything that has to be done when a new skin was downloaded and the texture cache is created is now running in a thread without any impact of the game frame rate. All of the heavy lifting was implemented in native code to make it crunch through the skin textures fast enough even when a bunch of skins have to be processed simultaneously. The result is that skin loading now has next to no impact on the game performance, as you can see on these screenshots from before and after the optimizations.

I’m pretty proud of the API I wrapped around this since it’s just as easy to use as Unity’s WWW class but without the massive frame rate drops that came from blocking the main thread. If you’ve played with skins disabled up until now I highly recommend giving them another try this week.

Networking Optimizations

Aside from skins one of the biggest performance issues related to entities being streamed in and out of the world was the client side method to get all entities that belong to a certain network group. This is used to destroy all entities that belong to a certain network group when that group is left. I sat down and rewrote this so we have a clean and efficient way to do this sort of query. This eliminates a 30ms spike for every network cell that is left, of which there can be around 15 at once.

Flooding Protection Improvements

We’ve tested a new configuration for the server flooding protections on the official servers over the week and after some tweaking it looks like we’ve found something that’s more secure in case of a DOS attack while simultaneously reducing the amount of false positives. This new configuration will go live to all servers with this week’s update.

Receiving Data Optimizations

I’ve increased the number of entities to send per server frame when someone spawns or respawns. This generally speeds up the time spent in the “receiving data” step of the loading screen.

Rocket Factory Grounds

I’ve been chugging along at getting the grounds around rocket factory to a polished level. Most of the area I’ve been working on is now fully dressed, and I’ve been hard at work at placing the overgrowth, vertex painting the ground meshes, and adding various other dressing props. I’m very pleased with how this part of the level turned out and I’ll spend the remaining time this week on getting everything as polished as possible before handing the map over to Vince, next week. All that’s left is to create LOD and collision models, bug testing. and to add loot spawns. As long as nothing unexpected happens, we should be on track to release this area in the next forced wipe.

 

WIP: Hapis Island

Hapis work continues, and we’re still on schedule for a big update in July.

I’m also taking a look at our lighting again, as it seems to have deteriorated lately, just like our wonderful neon-grass. Likewise, I am hopeful that I can bring in some proper lush trees before the wipe too, so that we can finally say goodbye to this age of pine trees.

Also, Buck and I will be working on giving Hapis Island a bit of backstory. This will include naming all of the things on the island, which will in turn be visible on the in-game map. This is something that we want to translate on to procmaps as well in the near-future.

But more on all that later, as none of this is relevant to today’s patch!

Tier 3 Workbench

I’ve finished up on the Tier 3 Workbench. LODs and gibs all done, so it’s ready for implementation. I know a few of you on Reddit have wondered about the workbenches, so I wanted to let you all know that we now have all three tiers of the workbenches done! Here are a couple of screenshots of it in engine.

Peace out.

Music

I’ve spent quite a lot of time doing listening tests with random intensity fluctuations this week and fixing issues as I come across them. This has mostly been really small granular changes (like extending the length of a note to fill a spot that feels off when drums aren’t there). There’s a little bit more of this to do still

I’ve found some occasional sync issues with clips that fade in part way through playing and am exploring options for fixing that now. It’s looking like I’m going to have to rejig the playback portion of the new music system a bit. I’ve got a couple different approaches in mind that I think will work well, and will actually give us sample-accurate timing on all music clip playback.

There’s been a couple smaller improvements this week too. Separate menu and in-game volume sliders are working now, and the music volume sliders have a much more sensible max volume so having them turned all the way up will actually let the music sit nicely with the rest of the game audio instead of drowning everything out.

I’ve seen a good number of people asking when this is going to be done, and I was hoping to have it wrapped up already, but I really want to make sure this all kicks ass before I push it out. You guys will have to wait a little longer still, but I think it’ll be worth it.

Sound

I’ve done another round of smaller mix tweaks and sound polish this week. Inventory UI sounds are probably where you’ll notice it the most this time around, although I’ve smoothed out levels of qutie a few other bits as well.

I spent some time working through my backlog of raw recordings and getting stuff library-ready this week too.

Player Animation Tweaks

I’m back working on Rust after doing some work on another project. This week I’ve been working on the third-person player animations. I added a bit of arm sway when the player runs. I also made the player lower his gun to a more natural position when walking (assuming the player has not fired his gun recently). I also tweaked the player’s walk animation so it looks more distinct from the running animation.

Devblog 160

Shotgun Trap

I’ve added a new trap straight out of Concept Limbooo. This shotgun trap detects motion in front of it, and when it does it starts blasting homemade shells every second until it runs dry. You can place them on walls, ceilings, floors, etc. I’m excited to see how people use this for base defense moving forward. I’d eventually like to have actual pressure pads and stuff, but this should do for now. It’s worth noting that it is only triggered by people who are not authorized on your Tool Cupboard, similar to the flame turret. Enjoy!

Flame Turret Placement

Last wipe I had difficulty placing my flame turret in my airlock, so I changed it so you can make it hug the wall a little easier. Big whoop!

Decay Improvements

We want to rework decay to make it more intuitive and much more efficient at solving the problems it’s meant to solve. The first step for this was to optimize the decay computation on the server to lay the foundation for more complex decay behaviour in the future. Once this was done I enabled decay on all twig building blocks such that all parts that are left over from raids decay quickly within two hours, eliminating the need for the base owner to manually clean them up.

Pickup Penalty

To prevent the abuse of the extended pickup mechanic on window bars and embrasures for unintended use cases I added a penalty when picking up those building pieces. They now lose half of their health whenever they’re picked up, and need to be repaired with the hammer after placing them again.

Floor Spikes

Floor spikes have been quite useless for a while, especially so after re-enabling twig raiding. I changed them so they now block foundation placement the same way barricades do. They’re still quite easy to destroy with metal tools, but can offer some protection for smaller bases and can be useful to block hiding spots around your base entrance. If they turn out to still be useless after this change we can adjust their health as needed with the next wiping update.

Invoke Optimizations

I moved over nearly all of the remaining Unity invokes to our optimized invoke handler. This generally eliminates overhead and makes our code more robust as I explained when I first added the system to the game. Nothing too exciting, but progress nonetheless.

Floor Grills

Floor grills have been rarely used since they offered little advantage over the normal building floors. To give them a purpose you can now build them closely above the large furnace as they allow for the needed air ventilation and therefore fulfill a specific purpose in the game.

Rocket Factory BuildingDamian Lazarski

I continued work on the rocket factory building. I focused on finishing the ground mesh and did a dressing pass on the ground level. In addition, I have created a scaffolding around the rocket, polished the interior geometry, added damage to the walkways and began to playtest the layout. My next step for this area is to finalize all the paths throughout the levels, finish the jumping puzzles and add ladder access to open up different levels of the building.

Shading Revamp Progress

This week I went on to test and fix a bunch of integration issues introduced by the new physical-based shading. It’s pretty much ready to deploy, but I decided to postpone it until after today’s patch, so we can get a week’s worth of player testing on Staging.

Below is a video showing off the new skin shader on the viewmodel hands. Please mind that some of the textures were tweaked by me and are still pending on a proper contribution from a real artist. Same goes for the player/worldmodel skins. Regardless, you’ll be able to give it a spin tonight on Staging.

Scrap Pile

This week I finished off the LODs, gibs and prefabs for the revised dropbox that you saw last week. I also created the gibs for the single-shot gun trap, readying it for implementation. Then I moved onto a new asset: the Scrap Pile that Paul concepted. This is what you’ll now see when you break a barrel:

Music

I continued work on music this week, mostly working on polishing all of this stuff up now. I’ve got the remake of the classic theme set up in game, and although there are a few tweaks to make on the audio side still, it’s sounding pretty good so far. I’m particularly happy with how much smoother intensity changes feel with this one.

I was able to build the song up from much smaller audio clips because of the new playback system, so we’ll be able to save bit of disk space and memory too. The bassline, for example, is built up from 5 different 1 bar long clips now. In the previous system we would have needed 6 different clips and they’d all have to be 8 bars long, which would have been about 10x more audio data.

I’ve also started working on another song that I’m pretty hyped about so far and have spent a little more time fine tuning our other existing songs, particularly looking for spots where I can swap longer clips out for a handful of properly arranged shorter clips.

I’m getting pretty close to having this stuff wrapped up, but I think I want to sneak another new song or two in before I push it out. I’ll have previews of those up soon.

Water Jug Sounds

I made a bunch of recordings for the water jug this week and have done most of the editing to get the final sounds ready to go in game. Should be finished next week!

Melee Weapon Impacts

You know what sound I really hate? The salvaged icepick. Holy crap! I started working on polishing up the impact sounds for it this week. I took a piece of pipe from a speaker stand I’m not using and recorded some impacts with it. I ended up doing one set on concrete and another set on some packed down dirt.

The packed dirt kept the metal from ringing out really nicely without adding too much of its own character to the impact. I was careful not to strike at an angle and kick a bunch of dirt up, so there’s not really any debris sound, and it layers really nicely with our existing grass/sand/cloth/etc impacts.

A while back I did soft material impact variations for most of our melee weapons by editing the existing impacts, but the quality improvement from using separate recordings was pretty massive, so I’m having a go at re-recording other melee impacts in the same way.

Player Preview Animations

Continuing with player anim feedback ideas. I went back to the player preview animations I concepted a while back. They now all have the required transitions to/from each state, as well as Unity animator states ready for implementation if/when it’s desired.

Other stuff

  • Window bars and embrasures now store item condition
  • Window bar and embrasure item condition is reduced by half when picking them up
  • Fixed riot helmet radiation protection
  • Fixed insane planner leak
  • Progress on the Hapis improvements (not live till June 1st at the earliest)
  • Progress on the new Rocket Factory dungeon (also June 1st at the earliest)
  • Fixed a NRE when checking banned server ips
  • Some tweaks to GamePhysics (hopefully to improve performance)

New Items and A Little Raid Balance

You’ve got mail

Mailbox added

Helk has added a new way to communicate in the game: Mailboxes. These craftable items may be placed across the terrain. Those passing by (or raiding) may drop a note in the mailbox. Only those authorized on the cupboard are able to see the notes which have been left. They also give a nifty notification when new mail is present (the red tab on the side goes up).

Code locks on cupboards

After serious buffs to raiding last week, we’re seeing some balance swing back in the direction of defenders with this patch. Mainly, the tool cupboard can now have a code lock placed on it. Also, the cupboards protection has been increased to match the wooden door.

Not only does this secure your cupboard from random unwanted access, it makes griefing more expensive for raiders. No longer will they be able to just clear access and re-auth – they now must destroy a locked cupboard entirely.

This also revitalizes the importance of external cupboards. When placed properly, external cupboards should take priority if the main cupboard is destroyed. This’ll make it even more difficult for raiders to permanently grief your base – even if they do steal all the loot.

Edit: Cupboards can now only be placed on construction (no more cupboards on the ground)

Fire rate changes

Helk has fixed an issue with semi auto guns wherein they weren’t firing as fast as they should in certain instances. With this, he’s reduced the fire rate of the Semi Auto Rifle, Semi Auto Pistol (P250), and revolver.

As Helk explained to me, these changes do not necessarily nerf the fire rate of these 3 guns. Rather, they help prevent against scripts and binds which allowed for clips to be emptied in a mere second.

Long and short: normal players shouldn’t feel much change; if anything, these guns should be more responsive to mouse clicks. Scripters and people with special binds (mousewheel up = fire), however, won’t be so happy after this update.

Crossbow changes

The crossbow has also received a slight buff. The reload time has been reduced by 0.8 of a second. On top of that, the scope alignment has been fixed.

Hammers pick up ladders (and more)

Andre has improved the pick-up-ability of hammers this week. Most notable: ladders can now be picked up with your hammer equipped (if building is privileged). Beyond that, window bars, embrasures, and shutters can also be picked up with a hammer.

Spear buff

Early game fans rejoice this week as the spear has been buffed. Not only has the attack rate been slightly increased, the duration between click and attack has been significantly reduced. To top it off, the range of the spear attack has been increased.

Flamethrower can now damage AI

Ever wondered what it’d be like to take a flamethrower to a bear? Now you can find out, as Helk has made flamethrowers damage AI.

HV arrow metal tip

In a temporary change – and hopefully a sign of new arrow types coming in the future – Helk has made it so HV arrows show up as having a metal tip.

Sign cost reductions

Shop keeps and artists of Rust will be happy to hear of some reductions of sign costs:

  • Metal hanging signs reduced by 90%
  • Wooden sign costs also reduced

Rifle body cost increase

With the addition of scrap last week, players can now make a research bench and craft components – if they have enough scrap. It’s getting a bit harder to create rifle bodies this week, as the scrap cost has gone up to 250.

Other stuff

  • In game voice has its own audio slider
  • Waterjug added – it’s like the bucket but has lid to be carried in inventory
  • Dangerous NPC footsteps audible from a bit farther away
  • Food crates spawn 3x as much food
  • Maps and notes craft in 5 seconds
  • Heavy plate helmet slightly higher protection than facemask
  • Ceiling lights can be deployed on angled surfaces
  • Drinking from the world is slightly less glitchy (maybe)
  • Demolish option removed from hammer for admins
  • Skipqueue command added (admins can skip a player in queue)
  • Fishtrap requires cloth instead of rope again
  • Removed antihack.enabled (toggle the protections individually instead)
  • Add last violation type to player kick message and server log when enforcing

Devblog 158

It’s a game changing update this week: most components can be crafted in the Research Table using scrap, the Twig building tier and Ladders ignore Tool Cupboard restrictions to help raids, and all the servers are wiped. Have fun!

Scrap & Research Table

I kind of skipped ahead with my plans and added something that is sure to shake the game up a bit. We now have “Scrap” in Rust. If you destroy a barrel you’ll get one scrap, and looting boxes will yield 5-10 scrap based on their type. Think of it as a sweat equity resource: you’ll know exactly how much effort each piece of scrap represents. It also happens to be very valuable. You can use it in the Research Table to craft components.

For those unfamiliar with the Research Table, it is a deployable you can once again craft for 1000 Metal Fragments, 25 High Quality Metal, and 5 Sheet Metal. This will allow you to turn scrap into components.

Each piece of scrap you add to the Research Table will increase the probability of successfully finding or creating the target item from the heap of scrap. Success or Failure will destroy all of the scrap contained in the Research Table, so the risk is yours to take. Each type of component has a different amount of scrap required to reach 100% success rate.

It is important to note that you must have at least one of the components you wish to find to begin searching the scrap. You can’t just pull them out of thin air.

Alongside with their traditional yielded parts, recycling components will yield 10% of their scrap requirement in scrap.

This feature will hopefully address a bunch of issues. Firstly, it has an actual, measurable value associated with it: you know how difficult a quantity of scrap was to produce. Secondly, it has an intrinsic value: you can use it to craft components. And thirdly, it is accessible to everyone. In my mind this makes it a good candidate for a common currency in the game, and I hope to see people charging for scrap in their vending machines.

Because each piece of scrap is associated with a certain amount of sweat equity, it allows you to bypass some of the RNGness of the game. You know if you hit X amount of barrels and you really want it and have been unlucky, you can get that gear you wanted.

I’m sure lots of balance changes will need to be done, but I really hope you guys enjoy the feature and give it a chance for the next few weeks.

Raiding

Let’s talk about raiding. Raiding has been in a pretty bad state for a really long time now and it’s probably fair to say that we have been arguing about solutions without actually acting on them for far too long. This ends now.

Raid Towers

The first major change is that you can now place all building blocks of the twig building tier inside other player’s cupboard radius without being authorized. This obviously opens the door for raid towers, dramatically changing the building and raiding meta of the game. To some this may seem like a drastic step and I’m sure many will immediately take to Twitter to proclaim that we’ve now finally ruined the game in its entirety. Our aim with this is for raiding and building to involve more creativity. Raiding shouldn’t happen on the exact path the architect of the building envisioned when planning his defense. It shouldn’t be a fixed equation of sulfur and explosives to get to the loot. It shouldn’t be binary in the way that either a base is destroyed in its entirety with all loot being stolen or it fails completely with no loot being lost. It should involve planning, risk and reward. You should be vulnerable during the execution of a raid, even if the owner of a building is not online. It should be rewarded to recognize that one of the loot rooms in a building is exposed and can be raided rather easily by a small group of players or even a single person. People should build multiple loot rooms with various kinds of defenses and maybe even a secondary base to fall back to. Raiding shouldn’t only be accessible after farming massive amounts of resources. But a successful raid also shouldn’t mean the complete and utter destruction of a person’s life. It should be a setback, the intensity of which depending on both the layout of a base and the creativity of the attacker. I believe we need various means of executing a raid to get to this point, and raid towers are an important step to experiment with this new reality.

Ladders

In addition to making raid towers first class citizens I’ve enabled ladder placement inside the cupboard radius. Ladders are supposed to be used as an alternative for boosting or be used in the construction of a raid tower. Ladders now have more forgiving placement rules, even allowing you to attach them to the edge of floors. They can also be climbed from both sides and be traversed around to switch sides. Climbing a building with ladders should involve some risk but also be a relatively cheap way to exploit weaknesses in a base design.

Turrets

To make turrets play a more essential role in base defense they can now see and fire through twig building blocks. This is mostly to counteract the fact that people can now place twig building blocks inside the cupboard radius, but I think turrets will automatically start to play a bigger role in base defense now that defenders have to protect against a wider range of potential attacks.

Twig Decay

The twig building tier now decays six times as fast. After an initial delay of one hour until the decay starts, twig structures will decay completely within another hour, making it two hours of decay time overall. This is obviously meant to quickly decay away raid towers after a raid was either successful or failed.

The Future Of Building

I also tweaked some elements of building with this update. I reduced the health of low walls by 50% and added wall sockets to the top and bottom end of foundation steps. This makes them less useful to block the construction of raid towers. Over the course of the month I want to think about what we can do to open up more options and allow for more creativity in base design. We’re currently talking about the possibility of half height snapping of foundations and half height walls. We’d love to hear your thoughts on what you think the future of building and base defense should look like.

To summarize, I’m not claiming to have found the final solution to fix everything about raiding overnight. However, this is meant to be a big step in order to shift the game on the right path going forward. I think the ideas behind what we’re trying to do with this are solid and can develop into far more involving raiding and building systems than the path we’re currently on. Let’s see how it plays out, this is early access after all.

Animal AI

I spent some time this week improving animal AI again. One thing you’ll notice is you won’t find animals that are randomly stuck any longer. This was a problem with the flee logic and is now resolved. In addition, animal flee behavior is more interesting. They used to just pick a position and flee to it; now they constantly evaluate the best position to flee to. If you’re chasing an animal and you start flanking to the left, it will try and move further away from you by turning right. It’ll also be evaluating dangers so that if you are chasing the animal into a pack of wolves it will most likely turn around and consider you to be the lesser of two evils. I think all the little changes like this will add up and produce a robust and interesting feeling AI.

Invisible Animals

Ever since the new animals were introduced there was a pretty major bug that some animals were not visible on the client at all while still dealing damage to players around them. I’ve tracked this down to the network group update routines and fixed the offending code.

Skin Cache

I have implemented a caching system for the workshop skins that vastly improves their load times, memory usage and performance. Unity is pretty shit with loading and processing textures in real time, which made skins cause significant stuttering whenever they were loading in. We also couldn’t enable texture compression on them since that would have made the stuttering even worse, which in turn made memory usage and performance suffer. The cache is now created only once, after a skin is downloaded. This does have some overhead, but any future load will be almost instantaneous, completely eliminating any stuttering from the skins after the initial download. This should really help with performance.

Launch Site Update

Progress is steady on the Launch Site. Half of the monument is complete, leaving most of the work remaining on the factory and the office building interiors.

 

Mailbox

This week I finished up on the mailbox concept by Paul! I adjusted it a little bit from the concept by adding some support beams in where I felt it was needed.

Roadsign Rework

I’ve almost finished up the Roadsign Armor rework. The old textures were in a pretty bad shape so I’ve had to scrap them and start again from scratch. They should feel a lot more realistic and less blown-out now. I’m finishing up baking the high poly leg pieces now, ready to move onto skinning and LODding next week. For now here’s a comparison between the old and new jackets:

Admire Animations

More R&D this week. We talked a while back about perhaps having some admire animations for the weapons, so you can enjoy the beauty of your skins close up. Here’s a mock up of one.

Music

I’ve got the fade in points and control clips I discussed last week finished, and all the changes to the playback system are working now.

I’ve been working on some final little UI updates on the editor side, and a code cleanup/refactoring pass now. After those are finished the code side of this will be done!

I’ve also been working on tweaks to existing songs, finishing the remake of the classic Rust theme, and moving those songs all over to the new system. I’m hoping to have all that done within the next couple weeks and then this should be ready to go out. I might try to sneak a new song in there too. One thing I’m trying to do with these tweaks is slim the in-game music down a bit so it feels more like it’s part of the ambience when you’re out of combat, and so the drums don’t sound quite as overpowering when you are in combat. Our current music definitely takes over the soundscape a little more than I’d like.

Here’s what the editor UI looks like now:

The little green clips in the top section are control clips. The ones in this song reduce intensity at those points instead of the slow gradual drop we had before. We’re now dropping intensity at more musically relevant spots now and are able to drop it more rapidly because of that, which makes everything feel a lot more cohesive.

The bottom section is where I can set fade in points. The vertical green lines are when the fade will be complete, and the little bit that hangs off to the left on the top of those lines shows the fade length. In this screenshot, you’re looking at a drum clip and can see that it’s only allowed to fade in right before drum hits, and will always be 100% faded in by the time the hit happens. Bringing new tracks in and out feels way smoother and more musical now!

 

 

Devblog 157

Muzzle Brake Nerf

I guess the Muzzle Brake was a little OP after all! I spent some time testing it in a controlled environment and its TTK was nearly the same with and without, except you didn’t have to control recoil with it. This was unintended. It really was only supposed to be good up close and quickly have its effectiveness fall off with distance. To that end, I’ve made the following changes to bring it back in line with its original specifications.

  • Projectile velocity decreased 20%
  • Projectile distance decreased 25%
  • Aimcone drastically increased

What this means is the bullets take longer to reach their targets, their damage falls off sooner, and it’s even more inaccurate due to aimcone than before. Hopefully this will bring it to a place where it is advantageous to use in close range, but terrible at long distance.

Eoka Buff

Setting up early on a wiped server last week, I managed to scrape together some tin cans, gunpowder and junk from the caves to produce an Eoka with a few rounds of ammo. Some asshole was chasing me and I blasted him point blank–thinking it would be a clutch move–and he wasn’t even phased. Eoka needed a buff. To that end, I’ve drastically decreased its aimcone so that more pellets will actually hit the target you’re aiming at.

Animal AI Improvements

Work continued on Animal AI this week. It’s still not perfect, but I did fix a few issues. Animals will bump up and down less often, and some animals have a bit of a blind spot behind them so you can sneak up on them. Wolves and bears will flee less often, and most animals have increased health. They’ll also figure out when they’re stuck and attempt to flee. There is still a tonne of work to be done here, and things are going to keep on changing as I get better at using Apex AI, so stay tuned.

Navmesh Generation Improvements

I was messing around with the navmesh settings and I reduced its resolution for the time being, which seems to have no affect on how the animals behave, but it does reduce load times to a quarter of what they used to be. In addition, CPU and memory usage seems to have dropped as well. I’ll keep on tweaking these settings moving forward and try and find the perfect balance.

Shop Names

I added a feature this week that allows you to name your shops! When people mouse over the icon on the map they’ll see the name. It’s limited to 32 characters right now, but it should help shopkeepers differentiate themselves from all the other little green dots on the map.

More Pooling

I added pooling support to a bunch of fairly common entities that were still missing it. This reduces the overhead when their objects load in and out of the world, eliminating frame rate drops in the process. The affected entities are as follows:

  • Animals
  • Locker
  • Search light
  • Water catchers
  • Recycler
  • Repair bench
  • Turrets
  • Hidden stashes
  • Wildlife traps

Stricter Hack Prevention

We’ve been experimenting with the parameters of the anti hack system over the course of the week and improved any parts of it that were causing false positives when the detection was configured to be stricter. I think we made some good progress on most of the server side hack prevention systems this week, improving the detection rate while simultaneously lowering the amount of false positives. This is of course still an ongoing process since we have to do these improvements one step at a time so we can verify the changes on the live servers.

 

Improved Hack Reporting

One of the major issues with community hack reporting were cheaters that either scrambled their name or changed it to the name of other players on their server. This made it difficult for people to find the person they want to report as a hacker. Given that we allow a massive set of unicode characters in player names simply disallowing exact duplicates of other people’s names really doesn’t address the core issue. So what I ended up doing was to change the death screen to show the name the other person currently has on Steam rather than the name that’s cached on the server. In addition to that I changed the F7 player selection such that the last person to kill you will appear at the top of the list. This should help make community hack reports easier for you to submit, more reliable and easier for us to process.

Rocket Factory Building

This week I have went back to working on the rocket factory building. I have focused on finalizing the floor layout and creating a jumping puzzle inside the building. The puzzle requires some tricky jumps alongside cranes and broken beams in order to access the higher levels of the area, where we plan on placing some higher quality loot. In addition, I’ve been working on finishing the interior geometry and textures, as well as general polish.

Viewmodel Locomotion Test

For a while now, I’ve wanted to try out what movement would look like with some more reactive animations in first person. By that I mean having a separate animation for running, anticipation for directional changes, overlap and settle on jumps, etc. Whether this ends up going anywhere or not it’s been an interesting test. At the very least, changing the pose when running seems to make the movement feel more urgent, IMO.

Player Animations

I went over some of the player animations and noticed we were missing lateral climb animations. I added couple of climb animations for when the player is climbing to his left/right, so climbing rope walls should look much more natural now. I also fixed some slight glitches with the walk/run animations.

Music

Music was my focus this week. The new system is capable of everything the previous music system was now, and we gained some immediate benefits & flexibility from the timeline based approach we’re taking over the rigid sections we had previously.

The new editor UI is finished and a lot nicer to work with now. I added multi-selection and the ability to copy intensity restriction/fade settings from clip to clip this week, which is a huge improvement over the old UI. Not super exciting for you guys, but it helps my workflow a lot.

I started working on a couple new features this week now that the foundation is nice and solid. First I’m adding the ability to place special clips in the timeline that can give me precise control over when intensity reduces. Right now music intensity holds for a few bars when it’s raised and then starts to slowly drop, which doesn’t always feel as snappy and responsive as we want. Adding these control clips will allow us to drop intensity more drastically in spots that make sense musically (under a main drum hit so that the tail of the drum rings out over a low intensity melody that just started, for example).

Second is the ability to specify fade in points on a clip by clip basis. Right now clips can fade in and out as they’re playing, which keeps us from having to wait 8 bars to bring a more intense track in, or to drop out a melody. We can also prevent certain clips from fading in or out, and can specify fade in and fade out times for individual clips. This works alright, but it can sound really awkward if a drum track fades in when a long drum tail is ringing out after the initial hit has already played, or when a recurring melody fades in half way through a musical phrase. With the ability to specify fade in points I’ll be able to drop a fade in point just before every drum hit on a drum clip and always have the drum track enter on a hit, or to place fade in points at the start of important phrases in a melody so we know the sections of a melody will always play in full.

After those two are sorted I’m going to experiment with a few more ideas for special control clips to allow us to do things like loop x bars while intensity is above a certain level or skip the next x bars unless intensity is below a certain point, and randomly jump to one of a handful of playback positions. I’d like to add the ability to randomize regular clip playback a bit more too.

I may also change the way intensity works so that we can drive music changes with more than one parameter (turn sadness up when you die, turn wolfiness up when a wolf is chasing you, etc). I’m still trying to decide if I want to drive sad/happy type mood changes within each song or just handle it by switching songs though, so I’m not sure if I’ll implement this part yet.

Sound mix

I made a few minor tweaks to sounds this week as well. This was mostly bringing levels down on a few sounds that felt a little too loud after I dropped levels on most super loud stuff last week.

Devblog 156

Heavy Armor Nerfs

Lots of people have been complaining about the Heavy Armor and how it protects too much. I disagree, but only because I know how it really should behave and the fact of the matter is it was only half implemented. I’ve taken some steps to bring it more inline with its original concept. First thing you’ll notice is that if you wear the helmet your view will be seriously impaired

Second thing you’ll notice is that if you wear the jacket you will not be able to aim down the sight thanks to how bulky it is. This means you’ll have to get good at hip-firing, use the lasersight, or rely on shotguns/flamethrowers etc.

Lastly, wearing either the jacket or the leggings fully reduces your movement speed to that of the full set rather than each piece providing a small reduction.

Lets see how this plays out. It may be too much, in which case I’d like to increase the protection even further. Or it may not be enough, in which case I’d like to add some more nerfs like being unable to swim. I still have some work to do with the view occlusion, I’d like to to eventually be a mesh and bounce up and down as you walk, and it probably occludes super widescreen multi-monitor setups too much. More on this next week.

 

Minor AI Fixes

I didn’t do much with AI this week, but I did fix an issue where some ore nodes were not properly carving the navmesh, resulting in AI potentially getting stuck between them. I also adjusted the bear walk animation to properly match its move speed.

Helicopter Rocket Fix

Shout out to arodax for pointing me in the right direction and finding the fix for our helicopters randomly shooting explosive rockets instead of napalm. For those interested: it happened when the helicopter was shot and forced into a strafe pattern, but the napalm cooldown hadn’t finished yet so explosive rockets were considered available. This should be fixed now

Shadow Improvements

I made a few changes to shadows this week. One issue that’s been bothering me for a while was the resolution of the shadows changing according to the camera orientation, so I went ahead and switched to a more stable solution. You should note that resolution is more predictable and hopefully less distracting.

In order to maximize shadow resolution, Two Cascades now has a maximum distance limit of 200 meters, regardless of the value you set on the graphics options. The No Cascades option already had a limit of 50, which is also the minimum. Only Four Cascades will give you the full range now.

Another shadow cascade related problem is that the hard border between different cascades can be quite distracting. I added blending between these regions in order to mitigate the distraction.

Finally, water caustics now get shadowed properly from the sun/moon light.

 

 

Ambient Lighting Improvements

We’ve been struggling with ambient lighting for a long while now, due to Unity limitations handling fully dynamic scenes. We’re now slowly working to solve some of these problems with the ultimate goal of improving overall visual fidelity of the game.

Until we have a proper global illumination solution, this week I took the opportunity to switch to spherical sky-based ambient lighting. It looks wrong in some cases but still beats what we had before, which was basically a dark flat color. It’s not final yet, but it’s a start. The ambient occlusion was also tweaked to cover a larger radius and higher intensity to add more depth.

 

 

 

Better Movement Violations

I spent some time reducing the false positive rate from the server side flying detection and eliminated some overhead from the water checks to free up some time to do other, more advanced verifications. Overall these improvements led to a much better detection rate with fewer false positives, which allowed us to push the detection strictness quite a bit. We’ll be experimenting with the parameters on some high population servers over the course of the next week in order to determine how far we can push the system without running into false positives.

Smooth Player Movement

You know how in Rust players in the distance looked like they were walking at half your framerate? Well, that was because in Rust players in the distance were walking at half your framerate. This was caused by some ancient optimization that no longer makes any sense and made every gunfight feel kind of shit, so I removed it and made shooting people feel buttery smooth in the process.

Large Furnace Exploits

Oops, looks like last week’s furnace placement changes fucked shit up. Those exploits are now fixed.

Garbage Collection Reduction

Nothing interesting to see here. I removed a bunch of needless memory allocations that were done every frame, which reduces the amount of garbage collections that occur.

Water Catcher Exploits

I realized that the various water catcher exploits were still around and finally addressed them with this update. Sorry, we really shat the bed there.

Launch Site Crane

I spent this week building a crane on the rocket launch site:

It will have two lifts running in the columns left and right of the crane, and not all floors will be accessible using it. For some I’ll have you jump because I know you all love it. As always, some juicier loot will be where it’s hard to get to. When I’m done with this, the next undertaking for me will be the rocket itself.

 

 

Rocket Factory Site

I’ve been working on a variety of tasks around the rocket factory site. I focused mainly on getting all the buildings textured, and I also did a quick dressing pass in parts of the level to get a better preview of what the finished area would look like. In addition I’ve been working on polishing the fuel silos, added pavements and curbs alongside buildings and tweaked the layout to allow for more open spaces. Next week, I will be going back to the rocket factory interior and getting it done to a presentable level.

Roadsign Armour Rework

A few weeks ago Helk and I talked about reworking the Roadsign Armour, so I’ve been taking a look at it this week. It’s a bit of a delicate one: on the one hand it’s an iconic part of Rust; on the other it’s just a few signs loosely dangling round your neck. Not to mention it already has a bunch of skins, so the textures all need to line up properly to keep the skins intact.

Fortunately there’s a lot of spare space on the old texture so I’ve got a bit of leeway to add some straps, buckles and rivets to make it all feel a bit more constructed. I’m using a few tricks to cut the plates up while maintaining a nice edge bevel and I’ll be taking another pass on the textures. Here’s where I am with it so far:

Water Jug Viewmodel

Animations and states are now setup for the Water Jug, so it’s ready for when there’s time to get it in game.

Player Animations

I’ve been going over the various player animations and fixing minor little details that looked a bit off. For example, the crouch walking animations had the spine jutting out a bit awkwardly, so I fixed that. I’m also polishing up the jumping animations and re-adding the multi-directional jump animations so it looks more natural when you jump sideways/backwards.

Viewmodel Tweaks

I finally finished going through all of the viewmodels, fixing minor cosmetic issues such as awkward looking wrists and clipping animations.

Tier 2 Workbench

Finished up grounding the props onto the main model, and also finished up on the textures. Now finalising the LODs–those loathsome LODs–and setting up the prefab, it’s so nearly finished!

Footsteps

After playing and taking a bunch of notes after the last patch went out, I’ve gone through and polished up some of the newer footsteps this week. Barefoot concrete and wood sound a lot better now and most of the grass footsteps are a bit softer and sound better as well.

Animal Sound Polish

I’ve polished up most of the animal sounds that weren’t playing before the AI update (sleeping sounds were the really bad ones). I’ll do a full pass over all of these once the animal animation updates are finished.

Mix Pass

I also did a higher level mix pass over our audio this week. There was too wide of a difference between our quietest sounds and our loudest sounds, which caused people to turn their volume up to hear the quiet bits, and then get their ears blown out when an explosion or gun goes off nearby, so I’ve brought some of the quieter stuff up a bit and most of the louder stuff down a bit. This was a fairly quick rough pass, so I’m sure there’s some bits that are out of whack still, but most of the core sounds should be a lot more reasonably balanced now.

I made some EQ adjustments and swapped a few ambient sounds out for better versions as part of this too.

Metal Recording

I got my hands on a bunch of chunky, solid pieces of scrap metal the weekend before last so I’ve spent some time recording that stuff this week. Metal has been one of the harder things for me to get good recordings of because I have mostly had access to fairly thin metal, and that doesn’t always have the tone or texture that I’m looking for. Some of this stuff will be used to improve weapon sounds and some will be for UI/physics sounds.

Music

Music system updates are coming along nicely! The back-end updates are fairly nailed down now, and I’ve spent a good chunk of time on editor side UI this week. Here’s a little peek at the old UI vs the new UI (although the length in bars bit on the old one is actually newish too):

In the previous system music playback was divided into layers and sections. Sections divided a song up in the time domain and layers were divided a song by instruments (ambience on one layer, drums on another, etc). This worked okay, but the strict section time division thing was getting in the way, so I’ve got the music system working much more like traditional audio software now. Layers still exist but clips of music can live anywhere in time on a given layer. This means I can lay drum stings in right on the timeline with the meat of the music, and we have the flexibility to do clips that have lead ins instead of every clip needing to start right when a section starts.

After the core UI stuff is finished up I want to explore adding some randomization to music playback. Playing random clips is an easy and obvious first step here, but I’d also really like to jump around the timeline a bit a specific points. Being able to loop a section of the timeline a random number of times, or to randomly jump to one of a handful of different playback positions could be really cool.

Bumps And Bugs Fixed As We Head Toward Next Wipe…

Fixes and tweaks

1:15pm EST – After a large launch last week, the team is focused on tweaks and fixes. Let’s get into it…

Player boosting kicks

After some shifts to the ingameantihack system last week, players have been getting kicked for violations while boosting on other players’ heads. This has been fixed, so player boosting should no longer result in a kick.

Viewmodel tweaks

Minh is continuing his work on viewmodel animation fixes. After tweaking a ton of them last week, there are only a few more to go before he moves on to animal animations.

Shooting through/under stone doorway

There has been an issue with being able to shoot through a small slat under a stone doorway in certain situations (mainly during raids). This has been resolved.

Other things

  • Fixed various issues with dungeons
  • Fixed issue with players being culled when looking over a low wall
  • Fixed being able to drop items between icons

What’s New In Rust

10:10am EST – We have confirmation from the official Rust Twitter that the update will hit in a couple hours. Also,

Also, new skins are live!

 

What’s in store? A new animal AI, improved sounds and models, better large furnace placement,

a fresh version of Unity, along with a bunch of other changes and tweaks.

New animal AI

After weeks in development, the new system for animal ‘intelligence’ is set to go live with this update.

Although the Rust wildlife will still look the same, they should move much better than before –

no more jutting up and down sheer cliffs or running through stuff. Some also now have meaty gibs!

As with any first iteration – especially one of this magnitude – there is still a lot of work to be done.

This launch is the baseline functionality. Once in place, the team will be able to build over time;

adding new models, animations, sounds, and hopefully creating unique behavior for each animal.

Don’t be surprised to see bugs, glitches, or just overall wonky animal behavior this week and expect more

improvements and optimizations to AI over the coming patches.

Better large furnace placement

A great quality of life improvement this week, large furnaces are now much easier to place on uneven terrain.

Also, their foundations extend down further than before.

 

Rust Hack Report is back

After being silent for over a month, the Twitter feed of game banned cheaters, @RustHackReport, is back.

How better than to come back with a bang? It added ~2,400 bans to the still growing list (although much of that is probably backlog).

Hopefully those bans keep coming; this hacker situation has been out of control lately.

 

New footstep sounds

A whole slew of new sounds have been added, mainly footsteps based on where you’re walking and what type of footwear you’re sporting.

This accounts for barefeet, boots, burlap, hide, and hazmat on surfaces like grass, dirt, sand, snow, concrete, carpet, metal, wood, stone and more!

Great work by Alex on this one, walking around is much more dynamic now.

 

Updated models and animations

Mihn has done a ton of tweaks and fixes to animations and viewmodels for various items in game. Although nothing may be immediately apparent,

it’s likely you’ll notice some differences as you settle in this wipe.

Deer meat added

Supplementing the new animal AI, a fresh type of meat has been added. No longer do deer yield chicken – deer meat is now an item.

 

Unity 5.6

A big step forward for the underlying engine which runs Rust – Unity has been updated to version 5.6.

This is a significant change, as up till now, Rust has been running on Unity 5.4.2f2.

What does this mean for you? Well, along with making the new animal AI possible (Navmesh),

Unity 5.6 boasts better tools for developers, improved performance (or so they say), better graphics,

and a slew of bug fixes and improvements. You can find more on Unity 5.6 here.

 

Performance concerns

As always, with large launches months in the making, a major concern is performance.

Although the team has made strides forward in both client and server performance over the past several weeks,

this new version of Unity (and specifically Navmesh) currently causes some issues.

 

Mainly, starting a server is now a much longer process due to the Navmesh creation. During that time, CPU usage on the server box

During that time, CPU usage on the server box shoots up to 100% and holds there for up to 5 minutes.

This generates lag and sometimes mass kicks on all other servers running on the box – which stands to be a big issue,

especially for servers on shared hosts (you know, like most of them).

On top of that, with any change this massive, you can’t really know how server performance is going to hold up with

people in one server until you actually have 300+ people in the server. This is all to say, we’re entering a bit of

untested territory with this update; fingers crossed it all goes smooth.

 

 

This Week In Rust

Simple handmade sight added!

Simple handmade sight

First teased last week, the new simple handmade site has been implemented.

Costing high quality metal, this weapon attachment allows you to aim at your

foe slightly better than iron sights. Here are some details and pictures…

Cost
6 high quality metal

Searchlight added!

Helk has just added the searchlight item. It runs off low grade (1 low grade spent every 20 seconds),

is bright as fuck, and can be pointed around by holding E and selecting ‘Use.’ Here are some details:

Cost
1000 wood
500 frags

Other stuff

Several other things have been completed this week, for more information on that check out my previous post, but here’s a rundown:

  • FOV is fixed (reverted back)
  • Fix for plants not growing / applying color scale
  • New skins added
  • Various optimizations (see details on devblog)
  • Fixed purple textures on stone hatchet projectile
  • More progress on new rocket factory dungeon (probably not making it in next week)
  • More progress on animal AI (maybe next week?!)

Fixes and prerelease progress

It’s a fresh week for Rust development, and although we’re not yet seeing a ton of new things for this week,

we are seeing a bunch of preparation for the next forced wipe on April 6th.

Plant fixes

Helk has implemented a couple fixes for plants. First and most important, he’s fixed plants not growing.

He’s also fixed the color scale of plants (which wasn’t being applied).

Unity 5.6.0f2

Garry has upgraded the prerelease branch to Unity 5.6.0f2. Along with continuing on the animal AI,

he’s implemented some fixes and improvements to the UI. Here’s hoping the new AI system will launch

with the April 6th forced wipe!

World model shifts

Minh Le and Alex have been working on several world model and LOD changes for guns,

attachments, and other weapons/tools.

Rocket facility progress

Damian is working on the rocket facility site, first teased last week in devblog 153. Don’t expect to see this April 6th,

however, according to Alistair the launch site is quite some time away, and has not been merged into the staging branch.

 

 

DEVBLOG 153

Binoculars

Seeing far off in the distance no longer requires a gun with a scope; binoculars are in.

This new tool allows you to toggle between 3 zoom levels, offering magnified views

greater than even then 4x scope! They do cost a gear (and high quality) but you can

find them in purple loot boxes around the map (and even recycle them for a chance of a gear).

Cost

5 high quality
1 gear

 

Furnace and campfire auto stop

No more bags upon bags piling up amongst ever burning furnaces and campfires

they now stop altogether once a single item is ejected. It may be inconvenient,

but is aimed at improved server performance. All those burlap sacks piling up and combining outside of every burning furnace across the server adds up.

combining outside of every burning furnace across the server adds up.

There were some more drastic changes proposed to furnaces – which we may still see in the future

but for now, furnaces and campfires just stop the moment something ejects.

Crossbow: No gear required

The crossbow may be seeing a resurgence as it no longer requires a gear.

With any give, there comes a take, so it does now cost more wood, rope, and frags.

Old cost
100 wood
50 frags
1 rope
1 gear

New cost
200 wood
75 frags
2 rope

Netting cost reduced

Providing a bit of cost balance to the newly added netting,

Helk has reduced the price. It not only now costs 1 less rope,

it requires wood instead of metal fragments.

Old cost
5 rope
15 frags

New cost
4 rope
200 wood

Other cost reductions

The cost of several other items has also been reduced.

  • C4 requires 2 tech trash (instead of 3)
  • Holosight requires 1 tech trash (instead of 2)
  • Silencer requires 5 high quality metal (instead of 8)
  • Eoka cost reduced (now 75 wood and 30 frags)

More pick ups

In addition to the new requirement of tool cupboard access and hammer for picking up all objects,

Helk has added the ability to pick up a several deployables. Here’s a list of what you can now pick up:

  • Auto and flame turret
  • Tuna lights
  • Lanterns
  • Ceiling lights

Stuck decals on spinner actually spin

Iterating on the spinner added last week, Helk made it so stuck items will actually spin.

Arrows, spears, machetes, etc. thrown at the spinner will also move around.

Although it may be a small change, it does open up more possibilities for this new spinning wheel.

Entity pooling

Also in the optimization realm, Andre has been doing a bunch of work this week with entity pooling.

As opposed to the furnace stuff which focuses on servers, this entity pooling is mainly aimed at improving client .

performance. Awesome! Hopefully between the two we’ll see better performance all the way around after the update this week.

 

 

Other changes

  • Skins are no longer marketable while they’re in the item store
  • Client optimization in the form of entity pooling
  • Candle and miner hat show fuel inventory
  • Muzzlebrake has higher durability and further reduces recoil
  • There’s an awesome looking new simple handmade sight which is on the item list,
  • however, it needs more work on geomitry so it won’t make it in this week.