Unreal Networking Architecture
unreal.epicgames.com
unreal.epicgames.com
The replication model of the Unreal Engine remains one of the best I've ever seen. Nonetheless, as with anything involving a distributed system, it is very easy to make errors.
Even the original UT (version 400) had a serious error due to the ease of marking functions network transportable. The function to cycle maps was marked to allow the client to send it to the server. It was certainly nice having the ability to select maps on any server. :)
His article on the scripting language was also my first realization of the power of DSLs.
I should also say that most of my learning came from studying the header files in the SDK and imagining what the various implementations would look like. The SDK is still available: http://www.udk.com/download
I even taught myself how to write a decompiler so I could see those implementations. This taught me about the PE format, C++ name mangling, and, of course, x86 assembler. Heady stuff for a 20 year-old. :-)
And then he posted this darned screen shot: http://stackoverflow.com/questions/2791787/what-was-tim-swee... and taught me about C++ metaprogramming.
And then this presentation: http://www.cs.princeton.edu/~dpw/popl/06/Tim-POPL.ppt which made me spend months learning what these stupid Monad things are and having to learn Haskell, ML, and Common Lisp in the mean time. (What? C++ isn't the best programming language available?)
While some people learned to program by going to college, I learned by studying _everything_ Tim Sweeney and John Carmack wrote (and practicing, practicing, practicing). Mr. Carmack's release of old id source code is a huge gift to the world.
The first time I implemented a UDP gameserver, they were invaluable resources for the logic required if you don't already understand how it works. (Selective msgs require acks, most don't, most don't need resends, etc).
> Last Updated: 07/21/99
So I'd say it's as relevant as ever.
The latest version of that document: http://udn.epicgames.com/Three/NetworkingOverview.html
How Unreal's content packaging relates to its networking architecture: http://udn.epicgames.com/Three/PackagesAndNetworking.html
How the game state is replicated: http://udn.epicgames.com/Three/GameStateReplication.html
How that packaged content is streamed to the client: http://udn.epicgames.com/Three/ContentStreaming.html
And somewhat older:
How events are simulated on the client: http://udn.epicgames.com/Two/SimulationReplication.html
How variables are replicated: http://udn.epicgames.com/Two/VariableReplication.html
How functions are replicated: http://udn.epicgames.com/Two/FunctionReplication.html