28 May 2015, 6PM
We aren't releasing an update this week. It'll all come out properly next week. Next week's patch is a mandatory wipe too. If you feel let down and wish we'd have told you earlier, you should follow us on twitter where we did just that.
Some of the stuff below is already in the live branch, because we released a couple of maintenance patches earlier in the week that included the changes.
If you want to play with the new stuff, you can do so by joining the development branch on Steam. Our updates from @RustUpdates get automatically compiled and made live on the development branch on Steam - so you get the changes about 10 minutes after we make them.
Player Movement Fixes
I took a good look at the player movement this week. There was a noticeable delay when melee fighting other players, as they swung and attacked at where you were about half a second ago. This was making melee fights pretty shitty. What we were doing was updating the player position, which marked the position as changed, then the queue pushed the position out every 100ms. This doesn't mean the player position was always 100ms behind, because their position probably updated again closer to the push-out time, But the position update message was set to a normal priority, which means they were buffered for up to 20ms before they're pushed out.
Now we push entity positions out as soon as they're updated. This sacrifices bandwidth for responsiveness. The updates are sent as immediate priority, which means they get sent straight away with no buffering or delay.
But then it became obvious there was another problem: the tick that players were sending to the server was also buffered. So now that's sent immediately too. And then another problem appeared: the increased update rate revealed a bug in the lerp system, which made the player movement all jumpy. So I spent some time and got that all smooth.
These changes are already on the live branch.
The F2 tweaks menu has been redesigned slightly and has a bunch of new options. You should definitely try the new AF option that Diogo added, that is really going to boost your framerate. Read his section for some suggestions.
The crafting system has a new way of working, which is long long overdue. This has been on my todo list for a while.
Now you select a blueprint by clicking on it, and it will show you the blueprint box, which has information on the item you're looking at, along with the resources needed. It also shows the amount of the item you get from a craft, the time it takes, and the amount of each ingredient you currently have.
You can use the + and - buttons to change the quantity. The > button sets the quantity to the maximum you can create. You can also type the quantity in manually.
The crafting queue is now at the bottom. The currently crafting item is green. You can cancel items with the cross, and scroll through the list horizontally by dragging.
It also shows a notice on your HUD, so you can see how long is left on your craft without having to keep opening the inventory menu.
Xavier finished the miner's helmet this week, so I put it in the game. Our first non-yellow light! Yay!
Pie Menu Upgrades
The pie menu now tells you how much stuff costs. The second number in the brackets is how much of that resource you currently have.
Which is particularly useful when you're wondering why your lock won't let you make a key.
The menu also uses Rust colours now. I know some people found the blue and white out of place.
Automatic Transmit Voice
The input category in F2 now has an option to turn Push To Talk off. This means that instead of holding down V to talk to someone, you should in theory just be able to talk. Whatever you say will come out of your head in game, like playing on a console.
If the sensitivity is wrong you can edit these settings in Steam (because it's using the settings from Steam).
- Turn off nametags option available in Tweaks menu.
- Added map search to server browser.
- Fixed some viewmodels casting shadows.
- Campfire damage makes noise, draws blood.
- Added missing eat/study icons.
- Made furnace quieter.
- Fixed inventory.giveall not giving properly.
- Fixed some shaders not casting shadows.
- Fixed map not accepting mouse input.
All the usual bug fixes, optimizations, balancing. Plus I've got lots on my list that I don't want to get anyone's hopes up with by promising.
Somewhat of a slow week for me but I made some progress with some more ammo types this week and you should expect to see the following:
- Incendiary Pistol & Rifle Ammo.
- Explosive Pistol & Rifle Ammo.
- Incendiary Rocket.
- 12 Gauge Slug.
- HV Arrow.
The Incendiary rocket creates a bunch of fires that have a small chance of spreading. It’s a bunch of fun and I’m excited to see how it’s used during raids
I’ve also done some work on survey charges and hope to have mining implemented next week.
After getting some feedback from Petur and Andre, I made a long overdue shader enhancement to the terrain blending quality, resulting in crisper transitions and a slight performance improvement.
You may have noticed the development branch got broken all day and night yesterday. Turns out our shaders got way too fat. It was time to slim them down and take some measures to speed up the compilation process.
Two of the biggest culprits affecting rendering performance in higher quality modes turned out to be, as expected, anisotropic filtering (AF) and parallax occlusion mapping (POM). I modified the shaders and make POM triggerable independently from shader or graphics quality, and I added graphics HUD sliders for anisotropy and parallax in the menu.
I’d recommend an AF level of 4 if you wish to play with POM enabled; max 8x if you have a killer card. Also make sure you have PVT enabled as it drastically reduces the required bandwidth. Please note that this would depend on resolution, which I’m assuming here to be equal or higher than 1080p. Parallax levels are as follows: 0 = none, 1 = parallax mapping, 2 = parallax occlusion mapping; these affects only the terrain and terrain-blended objects for now.
Last week I decided to submit Water2 to another branch instead of going straight to development main due to performance concerns. It’s almost ready for prime time, however, and I hope you’ll find it worth the wait.
This week we finally fixed the Fog in Water2, after Andre and I had been discussing potential workarounds for the Unity limitations. We found only one way to do it; it’s ugly but it works. Having explicit control over CameraDepthTexture resolve and additive depth on camera target would go a long way. Andre submitted a ticket addressing the issue a while ago, that would also have made our life easier. If you’re a developer as well, please take some time to vote on it.
I also got to improve the Water2 optics a little bit and these new shots feature the Fog fix, depth-based color extinction and thickness-based visibility, as well as the long awaited shoreline wetness.
Please note that the optics are far from done, however. The margin for improvement is huge and will take a few weeks of smaller iterative improvements to reach the quality I’m aiming for.
- Also cleared a bunch of smaller tasks this week:
- Fixed terrain basemap issues on OSX/OpenGL displaying garbage further away.
- Added height limit to avoid terrain blending on top of tall rocks.
- Added vface fix for custom SpeedTree transmission; normals for inverted faces now point in the right direction.
- Fixed color grading transition issues between biomes.
- Fixed coarse heightmap issues affecting terrain-blend transitions on procedural map.
- Fixed dirt accumulation not showing on building parts.
I’ll be cleaning up a lot of the water code and add proper knobs for artistic tweaking. I was too busy this week to add support for lakes, so that was moved to next week. It’ll require water rotation (currently axial aligned) to support lakes properly. Foam was also planned for this week, but it’ll have to wait a bit longer due to other priorities.
The water mesh might require some tweaks since I’m getting precision issues on the “filler” mesh, used for distant rendering.
I might also be pulling the trigger on some native optimizations for the water simulation. The plan is to have two separate simulations, for deep and shallow waters, then fade between the two depending on deepness. Later, I'll introduce another entirely independent interactive simulation that will be merged into the deformation as well.
Our rock shader was starting to really be a strain on performance for a lot of people. To counteract that I switched any rocks on the procedural maps that don’t need full terrain blending to a simplified shader.
This week I mostly worked on powerlines, roads and rivers for the next iteration of our procedural worlds.
I improved the existing roadside powerlines and added new giant high-voltage ones that connect big rad towns and are visible from far away. This looks cool and makes finding radtowns a lot easier. I also added wires to both the roadside powerlines and the new bigger ones, which was more painful than I would have liked it to be.
Rivers and roads got quite a bit wider. I’m currently working on a new way to render the roads in order to make them look more like actual roads and less like tiny paths. Rivers are now forced to flow downhill, so make sure enjoy the physics-denying uphill rivers over the weekend while you still can.
Other changes include fixes for monument spawning to prevent them from spawning partially inside rivers, tundras got a lot more grassy, and mountain splat-mapping got a whole lot nicer. I also refactored some code to make things nicer to work on in the future and fixed various cases where grass or decor could spawn mid-air.
In other news, the terrain raycasting step that was causing checksum verification issues for some people has been removed, which means we might be able to re-enable checksum verification on server connect next month. Nice side-effects include that the level loading times will get quite a bit shorter and custom maps can now have grass grow on procedurally spawned rocks as well.
- Added particle system cull script (allows Petur to place them all around Hapis Island).
- Fixed grass color being off compared to the terrain when using biome tinting.
- Improved climate blending (now calculates the exact sunset and sunrise hours).
- Fixed reflections ignoring the sky dome orientation on Hapis Island.
We identified buildings and trees as the biggest performance drains right now, so next week I’ll optimize buildings a bit more by combining individual building pieces that are part of the same LOD cell into bigger meshes. I’ll also have to finish up procgen8 and get my wisdom teeth removed.
Aside from the Hapis improvements I mentioned last week, this extra pre-wipe time has given me a chance to look into some more general issues.
Firstly, all of the rocks and some ground textures have been given a much needed tint tweak, to add some harmony to the environments. This is a pretty considerable change and probably deserves some screenshot space, but of course I was an idiot and forgot to snap some.
We also found the bug that was causing dynamic grass tints to look a little wonky, which means biome-specific grass types will now finally make a return.
I then continued iterating on our overall atmosphere and lighting, focusing especially on unsucking some of our twilight hours -- which was proceeding okay...
...until we decided to try a fully adaptive HDR lighting scheme, which meant scrapping all those tweaks I just made. Oh, well!
It is a bit of a complicated system to set-up properly, so I don't have any great screenshots yet, but I can only say that it will not look like this...
Other than that, I tuned some foliage and animal materials, but I'm not going to go into those and put you to sleep. That's Andre's job.
P.S. I also changed the airplane sound. And yes, I know it's kind of jet’ish, but then so are those contrails. Sssshh.
Finished the third-person ladder animations.
Added some natural leaning to the third-person run animations for all of the weapons.
Added some new animations for the bear, so when he moves and turns, he rotates his front part of the body in the direction of his turn.
Tweaked the ragdoll settings for all of the animals, so the joints have more realistic limits on them.
Some players have commented that the wolf attack animations looked a bit ridiculous with the paw swiping (ala Manny Pacquiao), so I redid them so the wolf attacks with just his mouth (ala Mike Tyson).
Started working on the third-person handcuffed animations.
Next week, I’ll finish up the handcuffed animations (just need to do the crouching bit and some more jumps). I’ll also be improving the turning animations for the other animals.
This week I finished up work on the miner’s hat and got started on the wolf headdress.
Next week, I should be finished (or very close to finished) with the headdress and looking to start on some more substantial clothing pieces.
Melee stuff this week. It's mostly just rough idea scribbling, and a lot of these will evolve from the thumbnails so these are just brainstorm starting off points. We don't want to go too medieval with this stuff, but at the same time keep them practical and fairly realistic to what you would find and use from an old world: crude rebar club and scrap metal blades. A lot might naturally open up other possibilities in the fighting system, such as two-handed slow weapons and parrying.
Next week I'll be developing more melee weapon ideas, and after that there are a number of things on my mind that I'd like to take a look at, including revisiting some older weapon designs, armors/clothing and NPCs. I have some ideas for mutants and caretakers that I'd like to get round to exploring , but these are just thoughts in my head and there's no guarantee that this stuff will be in any time soon, so don't take this as 'OMG caretakers next update!!!' or anything.
I finished the scrap searchlight early this week, so I started re-working our building LODs now that we have a clearer idea of where we are going optimizing those. I've been remapping the LODs to use an atlas texture that's shared across all of them, allowing us to merge all your bases parts into larger chunks and hopefully reduce drawcalls/improve merging substantially there. I’m trying to get this optimization on the dev branch for this weekend so we can analyze what differences it makes.
Next week I'll work on a second light made out of a garbage bin lid! And after that, granted no optimization is needed anywhere else, I'll start on either the windmill or the oil pump.
I've been working on ideas for a tier 2 furnace, which would be larger capacity furnace for smelting needs. I like the idea of being able to build it in as part of your base, so it could be a kind of fireplace and workshop in one. Either that or you would need to have it as an outside structure, which you'll need to defend.
I've also done some more icons, which I'll probably be doing next week too as usual. I'll also be working on more furnace stuff, and a little idea I've been playing around with.
This week I did a polish pass on some of our melee weapon sounds and finished up a first pass over all the gun reloading sounds.
I also made some adjustments to the ambience to push it into the background a bit more. Human ears are more sensitive to certain frequencies. We want to take advantage of this by giving the more important sounds like gunshots and footsteps more presence in the areas that our ears are more tuned to. When I was doing the new gunshots last week I was making sure that they had a lot of snap and presence in the 2-5 kHz range, and this week I gave all the ambience an EQ cut in these sensitive areas to give the important sounds more space in the mix. Sound is interesting: the way that you perceive a given sound is heavily influenced by what else you’re hearing it with. That’s why we’ve been focusing on designing individual sounds more than balancing different sounds against each other so far. We’re getting to a point where I’m feeling happy with a lot of the main sounds we’ve got in game, which gives me a good reference point to tune other sounds from, so expect to start seeing more of these types of adjustments to the overall mix moving forward.
I also spent some time this week working on adding more variation and detail to our ambience.
Next week I’m planning to continue working on ambience, to start exploring bullet fly-bys, and to take a second look at how we’re handling distant gunshots. I was originally hoping to do distant gunshots purely with audio effects in Unity (which is how they work now) but Unity’s audio effects sound a bit wanky, so I think we might end up needing to just make separate audio files and crossfade between them.
I finished up the final concept for the windmill, I think these should add a lot of character to player bases and make the landscape more interesting to look at.
Didn’t get to work any more on the engine designs yet, but I’ll have some more concepts next week. I plan on exploring more than just gas powered engines but also steam/coal powered engines as well.
I finished up the bone club, and I’ll have to sort out a texture variant for it without blood, so at the moment it’s going to stay bloody till then. I’ve started on the new semi-auto pistol weapon for you all, which I hope to have finished by next update. Sorry for the short post: I’ve had to take Thursday and Friday off for a funeral, so I’ll be back on it Monday morning!
Easy Anti Cheat have made some really good progress against cheaters this week. As well as blocking and banning a bunch of cheats/players, they've also integrated their cheat systems with the @RustHackReport twitter. This seems to be working well for now, but we'll integrate something properly in the game at some point.
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.