Hi my name is Chris and this is Battle(non)sense
Today we will take a look at the netcode of
Darwin Project,
a Battle Royal game made by
Scavengers Studio, which you can get for free
on steam.
In case that this is the first time that you
watch one of my videos, I want to say
Welcome to my channel!
and please watch my Netcode 101 video first
or right after this one,
to learn more about
tick rates, update rates, network models,
super bullets, lag compensation and packet loss.
As well as a few other things like how I do
my network delay tests.
The reason why I no longer include this basic
information in every netcode analysis,
is not to get you to watch more of my videos.
I have created this “Netcode 101” video,
as my patrons and subscribers requested that
I should keep the actual netcode analysis
as short as possible,
So, the card overlay in the top right corner,
as well as the link in the description down below,
will both take you directly to that
Netcode 101 video.
Now, first of all, what kind of network model
does this game use.
Since you surely followed my advice and watched
the Netcode 101 video first,
you know that there are basically 
3 different network models.
Client hosted matches or listen servers,
where one of the players is also the host
Peer to peer, where all clients talk to each
other and run their own synchronized simulation
And dedicated game servers, where the clients
only talk to the game server,
which runs the simulation
Considering that there are only 10 players
and a show director,
the developers could have been tempted to use the listen server or client hosted matches network model.
But luckily, they did go with dedicated servers
instead, which as far as I am able to tell,
are only hosted on amazon’s cloud platform
AWS.
However, while Amazon has data centers in
these locations here
Darwin Project currently does not seem to
take use of all these data centers,
as the region selection only allows you to choose
from these 6 locations.
So, if you don’t live near one of these,
then you will have to play at a quite high ping,
which means that you won’t have a
good experience in this game.
Which is why I think that the developers should
consider to also use other hosters
to fill the gaps where AWS does not have
any data centers yet.
Now before we dive deeper into the networking,
I want to show you 2 settings in this game
which, in my opinion at least, every game
should have.
Number one is the Frame Rate Limit slider,
where you can choose any value between 30 to 300FPS,
which is especially useful for
those of us who have a GSync or FreeSync display.
And number two is that you can not only select
the Voice Chat Input Device,
you can even select an Output Device for the built-in Voice Chat feature.
Which means that if you capture or stream
this game
then you can put the Voice Chat Output on a separate audio track,
which gives
you a lot more control over that audio source
when streaming or recording your gameplay.
If you want to learn more about how you can
put the game audio, voip and your microphone
on different audio tracks,
then you can find
links to 2 videos in the description down below
where I show you how you can do that
using OBS,
digital audio cables and the new audio setting that was included in the April update of Windows 10.
Now, how about the update rates at which the
clients and the server send and receive data.
When we look at the network data captured
with wireshark, then we see that the server
sends 30 updates per second to the client,
which means that the server probably runs
at a tickrate of 30Hz.
The send rate of the client however is directly
linked to its frame rate.
So, when you play at 200FPS then your client
will send 200 updates per second to the server.
While when you lock your frame rate at 120,
your client then sends 120 updates per second
to the server
And when you lock your frame rate at 60,
then your client sends 60 updates per second to the server.
Now while is possible to further reduce the
network delay by using a client send rate
that is higher than the tickrate of the server,
it doesn’t make much sense to have the client send more than 60 updates per second
when it receives just 30 updates per second 
from the server.
When your client sends 160 or even more packets
per second,
then this can even have a negative impact on your online experience,
as packets per second can become a limiting factor before bandwidth,
as we have seen in the past with
Quake Champions.
So, while players should absolutely be able
to play a game at 200FPS or even more,
I think that the developers should not allow the client
to send more than 60 updates per second
when the game runs at a tickrate of 30Hz,
to avoid that the send rate of the client causes issues for the players.
Now how much bandwidth do you need to play
Darwin Project.
So, when you play at 160FPS, then the client
sends 160 updates per second to the server,
which causes that the game needs quite a bit
of upstream bandwidth as you can see here.
However, if your connection can handle a game
like Battlefield 1,
then Darwin Project should work just fine.
Now, if you have played Darwin Project then
you might have noticed this overlay in the
lower right corner.
This value here seems to tell us the servers
send rate of 30Hz,
but I have no idea what these other 2 values stand for.
If you know more about these then please leave
a comment down below.
Then we see the network latency here, which
is higher than the ping that you see for your
connection to the AWS data center, as the
latency value is based on the game data,
and thus will include the processing delays of
the client and the server.
The game does not have any sort of network
performance icons that would show up when
there is an issue with your connection to
the gameserver.
However, the latency value here will turn
red as soon as it exceeds 183ms.
That said, it would also be nice if the text
could turn orange between 90 to 183ms
because your online experience will already suffer
as soon as your latency is higher than 90ms.
Another very nice detail is that in the 2nd
line of this overlay
you get the name of the AWS data center that you are connected to.
So, you always know where that server is located.
Now how much network delay or lag are 2 players
affected by when they play on the same server,
at a ping of 16ms each.
In my network delay tests, I measured an average
damage delay of 46.2ms,
an average gunfire or arrow delay of 52ms
and an average movement
delay of 53.2ms.
So, when you compare these results to those
from other games,
then you must keep in mind that I had to run these tests at a ping of 16ms,
since the European servers of Darwin Project are only hosted in Frankfurt
to which I have a ping of 16ms.
But even when you keep that in mind, Darwin Project shows quite decent results,
which is why the online experience is quite good
in this game.
Now how about the lag compensation which usually
causes that players who have a low ping to the server,
receive damage far behind cover when they get shot by a player who has a high ping to the server.
If you have played Darwin Project, then you
know that while there are cases where you
feel that you were hit behind cover, it is
not as bad as it is in other 1st or 3rd person shooters.
In Darwin Project it is actually quite tricky
to hit other players when you have a ping
of more than 100ms to the server,
because at a higher ping there is a noticeable delay
between pressing the left mouse button and
shooting an arrow,
as you can see here in these examples.
And that’s all for today.
If you want to try Darwin Project then you
can find a link to the steam store in the
description down below.
And if you give it some time then it might
start to grow on you just like it did for me.
That said, I want to make clear that this
was not a sponsored video.
I did not get paid by Scavengers Studio to
test this game,
nor did I talk to anyone who is involved with the development or marketing of this game.
So, if you enjoyed this first netcode analysis
for Darwin Project,
then it would be great if you could support me on Patreon,
because without the awesome support that I get from my patrons
Battle(non)sense could simply not
exists anymore.
You can find a link to my Patreon in the description down below,
where you will also find links to my social accounts
in case that you want to stay up to date on the videos that I am working on.
So, if you enjoyed this video then please
give it a like,
subscribe for more
and I hope to see you next time!
Until then, have a nice day and take care,
My name is Chris and this was Battle(non)sense.
