DIR Return Create A Forum - Home
---------------------------------------------------------
DWG Dumb Welsh Gamers
HTML https://dwgwales.createaforum.com
---------------------------------------------------------
*****************************************************
DIR Return to: DEVBLOG NEWS
*****************************************************
#Post#: 177--------------------------------------------------
DWG RUST WARS experimental DEVBLOG 80 v1323
DIR By: jjed11
Date: October 6, 2015, 6:55 pm
---------------------------------------------------------
Devblog 80
Posted on October 1, 2015 by Craig Pearson
Napalm, small stashes, and lots of optimisation. We’re wiping
this week, too.
Maurino
Helicopter 2.0
Wow! You guys rekt that thing. I watched many encounters of the
heli being completely owned without taking a single life. Turns
out there was a bug making it super easy to be taken down. The
chopper had 100% penetration values set, this means any bullets
would go right through it like a laser beam damaging every
hitbox inside it, so you could simply shoot from under it and
the main rotor and engine would be destroyed! This is now fixed.
Even that isn’t enough, though. So I’ve made the following
balance changes and fixes
Door guns fire slightly faster.
Door guns do slightly more damage.
Larger gap between door gun bursts.
2.5x health for the tail rotor and engine.
Smoke on the weakspots appear when they are at 50% health
instead of after one shot.
You can no longer use tool cupboards to prevent rocket
strafes.
Loot crates are actually unlootable until their flames go
out.
Also, this :
Some clever players figured out they could constantly circle
around a piece of cover indefinitely and solo the helicopter.
Welp that’s over. Now when you deal a significant chunk of
damage to the helicopter it’ll blanket the area the damage came
from in napalm, forcing you to move. I hope this makes it so it
takes several players in multiple positions to take out the
helicopter.
Another change I made was the ability to harvest the helicopter
gibs! They’ll provide you with some metal fragments and high
quality metal, but be careful they’re hot! You should wait about
8 minutes before attempting to harvest them.
Bow Changes
Everyone in reddit is all up in arms about the bow changes I
introduced (without trying them I might add) so let me fill you
all in on what I changed and why:
Bow repeat rate is slightly slower.
Bow has a little more aim sway.
Headshots with the bow score 120% damage instead of 300%
damage.
Crossbow fires arrows with a much faster velocity (50% bonus
instead of 20%).
HV arrows are ‘thinner’ vs wood arrows (need to be more
accurate with them).
I did these changes because the bow had some of the highest DPS
in the game, was the easiest weapon to obtain, and you could one
shot a fully armed player with it. This was wrong. And, believe
it or not, Rust is not ruined because of this change. Some
people said their go to strategy was hunting fully geared
players with a bow. Well you can still do that, you just have to
hit them twice instead of once, so if you’re good it shouldn’t
be a problem. And if that’s too hard for you then I guess you
were getting lucky, which is exactly why I made these changes.
It’s still just as deadly in every other way, and will take out
a naked with one shot center mass.
Small Stash
I’ve added this back into the game. It’s a very small storage
container for early players who can’t yet build a base, but
still want to keep their stuff safe. It’s a default blueprint
too! Place it on terrain and put your stuff in it. There is a
menu option to bury it. Once buried, it is completely invisible
to everyone (including you) it’s only revealed if someone is
within 2 meters of it and looks directly at it for several
seconds.
Next Week
I have one or two more tasks relating to endgamers, and then I
think it’s about time to give the early game a lot more love.
I’ll be doing what I can in this department.
Garry
You know how you’re all ****ing about optimization? ‘When are we
gonna optimize the game? I wish the game was optimized. You
should take a week off and optimize the game.’ Well that’s what
we’ve been doing, so don’t **** and moan that you don’t have
anything new to play with.
Garbage Collection
I’ve been continuing my work on reducing the amount of garbage
we create. I’ve mainly been focusing on the server for this, but
these benefits apply to the client too.
To send network messages between the client and server we use
protocol buffers. We use this library, which we found to be the
cleanest and fastest available at the time. It does create a lot
of garbage though. By this I mean it creates a lot of new
classes without reusing them. So I’ve been going through and
finding different ways to do things, changed a few classes to
structs, pooling a bunch of objects, avoiding foreach, avoiding
new byte[]’s, avoiding creating BinaryWriters where
possible. And the tl;dr is, it’s now totally garbage free
writing, and reading only creates new objects when reading a
string (I couldn’t get past that).
This saves us from between a few kb’s up to a few mb’s of
garbage every FRAME. This makes garbage collection a lot rarer,
which means that the server doesn’t stop responding every 20
seconds for 1.5 seconds while it collects it all.
Saves
Another server performance issue were saves. Every 5 minutes the
server saves its state, so if it crashes or restarts it can
carry on pretty much where it stopped off. This is fine in the
early days of a server, but once you approach having 200,000
entities, it starts to take a long time. Between 4 and 5 seconds
generally.
During this 5 seconds you’re running along as a player, other
objects are stopped in place (helicopter, plane), and then when
the server starts to respond again you’re zapped back to where
you were 5 seconds ago. ****ing terrible.
So with a bunch of caching, the pooling mentioned above, and
some cunning, I got this down in my tests from 5 seconds, to 0.1
seconds. Which is still a little blip – so the auto saves are
now every 10 minutes instead of every 5.
Poll
Andre
Prefab Pooling
This is something we’ve been planning to do for a very long time
but never have. Creating and destroying objects is a fairly
expensive operation in game development in general and
especially so in Unity. Not only does instantiating an object
lead to relatively huge memory allocations, which have to be
garbage collected when the object is destroyed, but it’s also
simply a pretty slow operation in itself.
In this first iteration I added support for effects, decals,
dynamic decor, building blocks and sounds. All of those have
been spamming objects under the assumption that one day it won’t
matter too much since we’re going to pool those instantiates and
get rid of the overhead of those systems all at once.
What this means for you is less stuttering since fewer garbage
collections have to be done and higher frame rates since the
slow instantiate operations don’t have to be done at all as long
as the pool contains game objects that can be recycled.
Grass Optimizations
Since the game is finally in a pretty good state in terms of
memory allocations things that used to be fairly minor compared
to the big problem areas are now turning into the new, albeit
less extreme, problem areas. Grass is such a system, and since
Unity just recently added new overloads to rebuild meshes with a
low memory overhead, I was able to significantly reduce the
dynamic memory allocations when rebuilding grass meshes.
Together with prefab pooling in the other systems this really
made a difference.
Cliff LODs
There was a problem with the cliff mesh LOD setup that caused
them to be rendered at full quality at any distance. This
probably affected performance in a negative way fairly
significantly for some of you and is now fixed.
Other Stuff
Fixed arrows being almost impossible to fire through window
bars.
Fixed crash in status console command.
Fixed building stability issues caused by collider batching.
Fixed entity collision event not resolving batched
colliders.
Fixed water level test for entities with zero bounds.
Fixed terrain alpha cutoff range being too far away.
Added pooling support to all LOD components.
Added AssetPool (memory pool that’s optimized for Unity
assets).
Updated CraggyIsland (dev test map).
Next Week
After weeks of mostly focusing on optimizations and back end
work I’m hoping to return to working on some new map related
features this month.
Gooseman
I revisited the holo sight model as it had some issues with the
dents looking a bit off. It’s almost ready to go in game as I
just need to tweak the texture a bit more.
I added some more wear-and-tear to the red dot add-on model.
It’s almost ready, too.
I made the rail pieces that the add-ons will act as an
intermediary between the add-on and the guns they’re attached
to.
Next Week
I’ll finish up the textures for the holo sight/red dot and start
working on the low-poly versions of the
flashlight/laser-sight/silencer add-ons.
Vince
I’m back from vacation this week, and I had some gate related
tasks to take care of. There’s nothing to show for this really,
as most of the work I have done the last four days has been
pretty invisible, but will pay off in the future.
It involved redoing things that already existed, such as
animations for gates and player building doors, having them use
bespoke animations as opposed to the procedural ones used so
far. We also have all doors and gates sharing a same hierarchy
and pool of anims, which will pave the way to easy updates and
skins for them in the future. After this some more gibs, small
tasks here and there. Expect the gates and doors animation stuff
in for next patch.
Unfortunately I’m not pushing the dungeon branch into main for
this patch as the dungeons will still need some love when
Andre’s terrain features arrive. It is very likely to be for the
next wipe cycle.
Next Week
I have a few leads regarding gates skins I can explore, as well
as player building block skins (think wallpapers). These things
should give me some buffer until I’m back working on dungeons.
Tom
More progress on the AK47. There’s some still some tweaks to do
but here it is so far (there’s an extra mag in the shot, but
ignore that).
The extra UV space is super awesome and it will benefit people
who are making there own skins for the AK that’s already in the
game. I’ll create a tutorial on how to transfer old skins onto
the new mesh, but nevertheless I’m excited to see new skins you
guys decide to come up with. I’ve also started the LODs for the
female character considering all that I’m doing now is tweaking
texture maps.
Next Week
Finalise the texture for the female and transfer the LODs over
to the new AK.
Alex Rehberg
Unity uses a linear scale for volume, but humans perceive sound
volumes in a logarithmic scale, so if you take a sound in unity
and turn the volume down half way, it doesn’t actually sound
like it’s been turned down half way. This is a little lame
because the volume sliders in the editor are dominated by louder
levels. It’s a lot lame because when we fade sounds in and out,
they spend less time at the lower volumes, which makes the fades
sound too abrupt. I spent some time this week fixing that.
Transitions between different ambiences will sound smoother now,
and so will all of the distance crossfades. The helicopter
propellers will probably be the easiest place to hear this
change right now.
I’ve started adding pooling to the sound system and fixed some
bugs that arose from recycling sound objects. All the prefabs
that we spawn to play sounds should be pooled now. There’s still
some room for improvement here so I’ll be trying to reduce the
sound system’s GC contributions more next week.
I also
Finished up a first pass at wooden and metal door impact
sounds
Finished a first pass at thunder sounds
Increased the distance the rocket flight sound is audible
from
Toned down the heartbeat that plays when you’re wounded
Made some tweaks to the bush rustling sounds
Adjusted the gunshot and explosion volume ducking a little
bit
Re-setup third-person reload sounds
Made the reverb tail wander calm down shortly after the shot
so it doesn’t sound so bouncy and ridiculous if there’s more
than one or two gunshots going off at once
Made a few small tweaks to our audio mixer
Started working on open/close sounds for the large compound
gates (fun!)
Started working on bullet ricochet sounds
Next Week
Next week I’ll be spending a bit of time reducing GC in the
sound system and finishing up the sounds I started working on
this week. I also want to spend some time exploring Unity’s
Native Audio Plugin SDK.
Xavier
Eat my (customizable) shorts!
Next Week
More gaudy, obnoxious clothing. Also, possibly some new computer
hardware for me. That’d be cool.
Paul
Tried some sniper scope ideas this week, experimenting with some
more unique looking scopes like retro fitted telescope, glass
bottle (bit of game logic with this one; I’m not sure 100% would
work, but it looks cool), and mounted magnifying lenses. There’s
also some designs that just have a cool look to them but are
made from more DIY type parts: copper piping, pipe clips, cloth
binding, etc. I tried to keep the attachment point pretty
simple, with either a simple metal plate or just a bolt so you
could stick them onto any gun and have some sort of believable
way they’d stick on, letting you make some crazy p250 silenced
sniper beast gun or something similar
Next Week
Add-ons, add-ons, add-ons!
Howie
I just got back from vacation, but I had a little bit of time to
work on something Vince asked me to look into: creating some
skins for our gate model to give it a little more personality.
We want these skins to be able to work on either the stone or
the wood gate, so these probably aren’t going to work since the
frame of the stone and wood gates are different, but I’m going
to continue on focusing on just the doors and the design of the
locking mechanism while borrowing some elements from these
initial designs.
Next Week
After I’m done with the gate skins, I really want to get back to
the abandoned military tunnels.
Petur
A SavasIsland_koth update I made some time ago goes live this
patch. The most notable change is that you can no longer build
right over the construction hut, and that there is now a way for
hill owners to clear existing building parts, thanks to a new
rapid-spawn C4 platform that defenders can and should build
around and fortify. Hopefully this means hill bases will stop
growing out of control like a uncontrollable tumour.
I also made an updated map because some people are still really
confused by the map:
It is worth noting that you can get good and bad loot boxes
everywhere, but it is far more rare to find a metal crate on the
beach than in the dome. Likewise, the only place to get exotic
ammo is in the central ammo farm.
Diogo
Spent the weekend trying to find ways to speed up local
reflections and the last few days cleaning up and preparing for
the merge. It’s finally time to give up endless tweaking and
drop it on the build.
So to recap, here’s a list of changes introduced with Water 2.5:
Local reflections on all water surfaces.
Rivers using new water shader.
Fixed a bunch of long-standing bugs.
Cleaned runtime memory allocations.
Next Week
Fixing any bugs that may show up due to new water code. Likely
some more water tweaks. Native code updates to get rid of some
Unity 5.2 warnings.
Taylor
I’ve been looking into reworking the male character model. I’ve
mostly been balancing out proportions on the body and
everything’s still really loose while we iterate. This is the
progress, from left-to-right.
Changelog
Added server side collider batching to work around the Unity
collider limit
Roof blocks are cheaper
Roof blocks are tougher
Fixed some effects not being recycled
Fixed ragdolls not inheriting effects (blood disappear on death)
Fixed effects dying when target object was removed
Fixed arrows being almost impossible to fire through window bars
Fixed cliffs never switching to lower LODs
NPCs die of starvation more
Completely reworked entity visibility queries, fixing various
issues along the way
Server time warnings show whether it was caused by a garbage
collection
Server console show garbage collection count
Added prefab pooling to effects, decals, dynamic decor, building
blocks and sounds
Added pooling support to all LOD components
Optimized dynamic memory allocations when refreshing grass
meshes
Objects created by the protobuffer system use a pool
Protobuffers write directly to the network stream, instead of
creating a byte[]
Fixed being able to loot a corpse from far away
Increased calorie consumption
Rocket Launcher - Fixed snapping when going to ironsight, added
dryfire sounds
Hammer - smoothed out anim speeds
Made bow viewable, fixed popping on idle loop, improved
transition when cancelling shot
SMG - dryfire fix
Salvaged sword - fixed snapping on hit reactions
Bean can & f1 grenades - Added hold state & anim while aiming
Fixed query throttle not working
Sound volumes use a scale that is closer to how humans hear
Set up third person reload sounds again
Toned down wounded heartbeat sound
Gunshots and explosions duck other sounds slightly
Rocket flight is audible from farther away
First pass at silenced gunshots
New thunder sounds
New door impact sounds
New tree impact sounds
Bush rustle sound tweaks
Calmed reverb tail wander on gunshots and explosions down a
touch
Sound templates are pooled
Arrows, spears and sign world models gibs
Auto saves are every 10 minutes instead of every 5
Developer 1 only works if you're a developer/admin
Updated EAC
Errors/Exceptions are highlighted red in the server console
Errors/Exceptions on server log the stacktrace too
Improved gib performance
Impact effects now get the exact terrain material at impact
(sand, dirt, …)
Added correct AI obstacle shapes to building pieces
Fireballs use better sound balancing (client side performance)
Run the garbage collector in the loading screen (join, respawn)
Added deploy volume that uses the newly added unified entity OBB
Clamp AF between 1 and 16 (fixes silent errors)
Fixed crash in status console command
Fixed building stability issues caused by collider batching
Fixed entity collision event not resolving batched colliders
Fixed water level test for entities with zero bounds
Fixed terrain alpha cutoff range being too far away
Updated CraggyIsland (dev test map)
*****************************************************
Page 1 of 1