
The DOOM 3 Network Architecture (2006) [pdf] - yarapavan
http://fabiensanglard.net/doom3_documentation/The-DOOM-III-Network-Architecture.pdf
======
douche
I really cannot wait for Fabien's book on the Wolfenstein 3D engine to come
out. I really hope that it does.

~~~
oh_sigh
Is there something particularly special about Wolf3D that you are awaiting, or
just his write up on it?

~~~
douche
More his writing. He does a phenomenal job digging into old code bases and
extracting the meaning from them.

The promise of a step-by-step illustration of the Wolf3D engine is very
interesting to anyone that cut their teeth playing it.

~~~
lostgame
Also to anyone interested in the history of the transition between 2D and 3D
gaming.

It's totally a fetish of mine, this strange period we got from 93-97 in 3D
gaming, from flat-shaded polygons to the strange pixelated quad-polygons of
the Sega Saturn right up until we finally got something like Majora's Mask on
the N64 that truly started to demonstrate its full power.

The developments and the history are fascinating.

~~~
Waterluvian
Any feelings on Marathon on the Mac? I recall that game feeling quite
groundbreaking in the semi 3d era.

~~~
bashinator
I remember I showed it to my 80-something grandmother when Marathon first came
out, on the ridicuously-overpowered computer used by the department IT guy who
shared an office with my mom.

My grandma said, "It's beyond my ken." And she was an amazing person - taught
high school math to disadvantaged urban kids (in the city - she commuted), and
this was just a moment where I could see someone experiencing a whole new
reality, and rejecting it for the effort it would take to accept it.

And that's not always a bad thing. My grandmother had no real reason to be
familiar with what would become a huge industry and culture. But it was eye-
opening to see that rejection happening.

~~~
debaserab2
That's really interesting that you were able to observe and understand that. I
remember a few moments like that in my childhood when the internet age was
dawning and not being able to comprehend how a person could reject something
so marvel.

Now that I'm much older, I'm able to understand why someone might want to do
that now. I wonder what it will be in my lifetime that I will be unable or
unwilling to comprehend.

------
kyrra
Dota2 interestingly enough just uses protobufs for network and replays I
believe.

[https://github.com/skadistats/smoke/wiki/Anatomy-of-a-
Dota-2...](https://github.com/skadistats/smoke/wiki/Anatomy-of-a-
Dota-2-Replay-File)

~~~
sluukkonen
CSGO does as well.

------
mevile
Sending game snapshot state as deltas is pretty interesting as initially
thought they were sending actual diffs of snapshot but they just mean they're
not sending all state at once and from the bitpacking section it looks like
they're using some kind of custom binary format. The reason they're deltas is
that even though they're using UDP, deltas only work when you have the
previous snapshot and so they require acknowledgement of the delta, something
you don't get with UDP by default. Even the compression is custom.

Extremely small message sizes was really important to them.

------
joshmn
As a web dev this kind of stuff blows my mind.

~~~
parr0t
Exactly what I was thinking :)

------
gfodor
this looks really great, are there any similar resources for people looking to
unpack game networking protocols/optimization?

~~~
vicpara
This is one I particularly liked. Age of Empires networking inner workings:

[http://www.gamasutra.com/view/feature/131503/1500_archers_on...](http://www.gamasutra.com/view/feature/131503/1500_archers_on_a_288_network_.php?print=1)

~~~
SeanBoocock
This is definitely a classic. A more recent but no less seminal presentation
is David Aldridge's overview of Bungie's networking approach (and more broadly
all modern FPSs):
[http://downloads.bungie.net/presentations/David_Aldridge_Pro...](http://downloads.bungie.net/presentations/David_Aldridge_Programming_Gameplay_Networking_Halo_final_pub.pptx)

------
Narishma
From the same place and somewhat related:
[http://fabiensanglard.net/doom3_documentation/DOOM-3-BFG-
Tec...](http://fabiensanglard.net/doom3_documentation/DOOM-3-BFG-Technical-
Note.pdf)

