RUST Devblog 49

chipper's picture

The improvements keep coming http://playrust.com/devblog-49/

Love the sleeping bag idea, should save a lot of mucking around trying to find each other on new maps.

Devblog 49
Posted on February 26, 2015 by Garry Newman

Sleeping Bag Charity Simulator

Assign to Friend

Something we’ve been thinking about for a long time. We’ve talked ourselves out of it and talked ourselves back into it. Our primary problem with this solution was that we didn’t like that people would be killing themselves to spawn near a friend. Which probably seems like a silly thing to worry about. So now I’m pulling the trigger.

The idea is as simple as it could be. You hold E on a sleeping bag that you own, select assign to friend – then search for your friend’s name and click on it. Your friend now owns this sleeping bag and can spawn at it. The player list is collected from players on the server and from your friends list.

There will obviously be some issues with this. Maybe I will spend a buttload of resources to full your screen with sleeping bags calling you a bitch. Maybe I will make a sleeping bag for everyone on the server to fool them into spawning into my jail. I don’t think the effects of these things are too devastating right now, so we’re going to handle them as they become issues, instead of removing opportunities for emergent gameplay.

No More Demolishing

Demolishing isn’t used properly and mostly isn’t needed, that’s our conclusion. When you break into someone’s base and you find their cupboard we don’t think you should be able to pull out a hammer and demolish walls and doors to find secret rooms. You shouldn’t be able to remove the entire building in a couple of minutes. You shouldn’t be able to place a cupboard next to someone who doesn’t have one, and demolish their base. That seems like common sense game design.

There is one legit reason to use demolish. You are remodelling your base. It seems to us that this is something worth sacrificing, worth making people think around. Maybe we’ll add further tools in the future to make remodelling easier, but we need to see how this changes gameplay before making those kind of decisions.

The benefits of removing demolish are obvious. Penetrating a single wall and getting access to your cupboard doesn’t give them access to your whole house. You can have multiple chambered safe rooms that take time for them to break into. Your house is probably still going to be there when you log in, even if you have been raided.
Missing walls

People have been missing walls. This is because somewhere along the line a message was sent from the server describing the wall, and it got lost somehow. This isn’t something that only affects building parts, it’s potentially any entity sent from the server.

To detect and prevent this we now send a hash along with entity snapshots. If the hash doesn’t match we throw an error and kick the client. This doesn’t fix the problem – it just means that people are kicked instead of missing walls.

I’ve spent a good chunk of my time this week looking at what we could be doing wrong to cause this to happen. It seems to be affecting about 1 in 100 people who join our development servers right now. We’re logging it and we’re getting information, hopefully when the patch is released we’ll get some answers from the larger pool of people. Just keep in mind that this is a known issue and we’re working on it, if there’s any information you have that can help it’s very much appreciated.
Freeze Bug

We had a freeze bug last week. After about 10-20 minutes playing the game would freeze. After a lot of messing around I managed to capture the freeze in the editor and was able to debug it. It turned out it was a thread locking issue in FMOD (Unity’s audio engine).

After some trial and error we found out that this doesn’t happen if we disable our ambient sound system. So it’s disabled. For now.

The bug has been passed along to Unity, but I don’t have much faith in them fixing it without a hard repro. Next week I’ll have a good poke at it and see if I can find out exactly what we’re doing to cause the lockup.. but threading issues like these are very hard to recreate on demand.
Admin Commands

You might have come across a poor guy on a server somewhere with a trail of lines and boxes following him everywhere he goes. At some point a server admin looked at him and pressed X. This is an internal debugging command that turns on debug mode for an entity. It’s a toggle so to turn it off you need to do the same thing again.

We decided we don’t think server admins should have these shortcuts, given the amount of craziness it causes, so we have restricted them to developers. We also disabled a bunch of other admin “cheats”, like instacraft.
Screen Overlays

We have new screen overlays for you. An overlay for when you’re too cold, an overlay for when you’re too hot, and a directional damage overlay – so you know where you’re being attacked from. We’ve tried to make these as unintrusive as possible while still being noticable.

Networking Fixes

Since the last patch was released I fixed a bunch of stuff that was wrong with the new network code. Some server providers were finding that players couldn’t join their servers – this was because the server variable “server.ip” (which binds the server to a specific ip address) wasn’t working. Users were losing connection to servers for no reason, this wasn’t anything abnormal. They just weren’t getting notified of exactly why they were getting kicked.
Server optimizations

Server owners who were lucky enough to get over 100 people on their servers will have found that their servers framerate dipped significantly. This isn’t a new problem – it’s been happening for a while. I spent a good few hours profiling one of our official servers this week with 150+ people connected and found a few performance issues. You should find your server performs a lot better now. A few of these performance fixes also apply to the client too, which is a bonus.

Servers were leaking memory like crazy too. I fixed a bug where some entities weren’t getting deleted properly but I also did a lot of optimizing (which is explained in the next section).
Diagnostics

It was hard to figure out what was happening on the server in terms of what objects existed in the world, how many there were etc. This information is pretty much critical to optimize memory usage.

So I added a command called “dump”.. which dumps a bunch of information about the world into a folder. This information includes:

System information
A list of root gameobjects grouped by name, ordered by count.
A list of root objects grouped by name, ordered by count including children.
A full hierarchy of gameobjects including component count.
A list of connected players including network stats.
A list of all instanced Objects grouped by type, ordered by count
A list of all instanced ScriptableObjects grouped by type, ordered by count

This has been really valuable. Unity’s GameObjects, ScriptableObjects and Components use a lot more memory than you’d expect, so the fewer objects we can have the better. The dump command revealed that we had a bunch of sub-objects on the server that weren’t really needed.

A simple example would be weapons. The rock has 3 LOD objects. So you have the rock object, then 3 children objects for the LODs. The server doesn’t need those children, so if we cull them we have saved 3 game objects. Which is 1,500 game objects when you have 500 rocks weapons in the world.

Now compare that to the Torch, which on the client consists of 11 gameobjects. Or some of the trees, which before optimization had 20+ collider objects.

So we’re getting somewhere.. but there still seems to be an unexplained leak. Unfortunately this leak seems to be in normal objects instead of Unity objects. I started making a quick mono profiler to record the GC creating/destroying objects. But then I realised that there apparently isn’t a way to detect when an object is destroyed.. so it’s going to be tricky.
Server restarts

It’s annoying when you’re on a server and the owner restarts it without giving warning, right? You’re in the middle of a field – you’re vulnerable. So I added a command for server owners called “restart” which notifies everyone on the server that it’s going down, and gives them a 60 second countdown to get safe.
Eoka Fixes

Helk and Goosey have made the Eoka behave like it did in legacy. Hold down fire to strike the flint until it goes off. This makes it is a very unreliable firearm. It can now be crafted without a blueprint too!
Repair Bench

Helk finished work on the Repair Bench! Just drag your damaged item in and press repair. You’ll get it back all fixed up for a price of around 40% item initial cost for a 100% repair.

But careful, each time you repair an item its maximum condition goes down until it becomes un-repairable. The model is a placeholder.

Climates

Helk has made different biomes have actual different temperatures. This means you’ll freeze to death in the arctic, and bake in the desert (during the day). Clothing will protect you against the cold and Metal armor magnify it.

The values are subject to change but it should definitely have an impact on where you travel, when, and what you wear there.
Metabolism

Radiation is now split into two categories, radiation level and radiation poisoning. This makes it work more like legacy, where radiation level is representative of the radiation in the area you’re currently standing in, and radiation poisoning increases based on that.

You wash off some of your radiation by jumping in water and moving around.

We added Comfort. In the future we’re going to use it for a bunch of things but right now it means if you stand around a campfire you’ll heal faster and not get cold. You’ll heal faster if you have a bunch of people with you. Food doesn’t directly give you health anymore – you have to metabolise the calories gained from them instead.

A bunch of numbers have been balanced and tweaked here. It’s all subject to change – so let us know how it feels.
Everything Else

Fixed Poncho zfight fix
Don’t warm up stability if server.stability is false
Lanterns are destroyable
Bow and Arrow are craftable by default
Animals make attack noises
Fixed melee swing animations not playing for other players
Fixed items not cooking/smelting after load
Metabolism changes are networked to the player without delay
Reduced torch brightness
Hammer attacks are non repeating, can repair faster
Fixed third person player look angles sometimes going crazy
Banning a player also kicks if they’re connected
Cargo plane doesn’t fly as high
Fixed loot containing starter blueprints
Ricochets bounces are less random
Smoothed radiation screen transitions
Made geiger sound quieter
Fixed letters repeating in sleeping bag rename eeeeeeeeeeeeee
Servers running insecure now run without VAC
Users that are VAC banned or running without EAC see only insecure servers
Radiation clothing protects against radiation exposure rather than radiat

Comments

linuxslacker's picture

awesome

that sleeping bag change sounds good

same with bow/arrow changes

sadly im over my net so wont be on for a bit :( had fun for the few days i could play the rust updates aswell as mumble really add up fast

chipper's picture

-

With limited net I’d wait until the updates become less frequent. It’s pretty much an update a week at the moment which chews a chunk of bandwidth.

Sha8doW's picture

And wastes a lot of time

You have a week to do everything… And everything at the end of the week is lost.
My key frustration with the game at the moment… More than any of the bugs/content issues

Fuzz's picture

-

1 month would be HEAPS better. I’ve had to give up on it for now too for the same reasons.

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Project issue numbers (ex. [#12345]) turn into links automatically.
  • You can use Textile markup to format text.
  • Lines and paragraphs break automatically.
  • Insert Flickr images: [flickr-photo:id=230452326,size=s] or [flickr-photoset:id=72157594262419167,size=m].
  • Web page addresses and e-mail addresses turn into links automatically.
  • You may use [view:name=display=args] tags to display views.
  • Avast! This website be taken over by pirates on September 19th. Yarr!

More information about formatting options

CAPTCHA
This question is for testing whether you are a Norwegian and to prevent automated spam submissions.
Image CAPTCHA
Enter the characters shown in the image.