6 ms·
The DOOM 3 Network Architecture (2006) [pdf]
- gfodor 10y agothis looks really great, are there any similar resources for people looking to unpack game networking protocols/optimization?
- vicpara 10y agoThis is one I particularly liked. Age of Empires networking inner workings: http://www.gamasutra.com/view/feature/131503/1500_archers_on_a_288_network_.php?print=1 http://www.gamasutra.com/view/feature/131503/1500_archers_on...
- SeanBoocock 10y agoThis 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_Programming_Gameplay_Networking_Halo_final_pub.pptx http://downloads.bungie.net/presentations/David_Aldridge_Pro...
- cma 10y agoThe section here on GGPO is good: http://twvideo01.ubm-us.net/o1/vault/GD_Mag_Archives/GDM_September_2012.pdf http://twvideo01.ubm-us.net/o1/vault/GD_Mag_Archives/GDM_Sep... It is the lock-step model but with state rewind, so that you get near zero apparent latency from your own actions (at the cost of animations from other player actions starting a few frames in). You occasionally see things like a successful hit from you on an opponent be rewound and applied to a block from him/her instead. For co-op games where aren't you aren't closely interacting (like in riding along in a vehicle) it can be a near conflict free and zero latency experience. You can use various levels of it, accepting a reducing a 100ms ping into a 50ms delay will get less conflicts than reducing it all the way to 0.
- shlorn 10y agoHere is a link to valve's short but nice overview of networking on the source engine: https://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking https://developer.valvesoftware.com/wiki/Source_Multiplayer_...
- atomical 10y agoYou might want to check out some of the research of Luigi Auriemma. I'm using his encryption/decryption algorithms for a halo combat evolved client. http://aluigi.altervista.org/ http://aluigi.altervista.org/
- manigandham 10y agoGreat video by Jon Shiring from Respawn about their network and game architecture for Titanfall (this is more high level than network code but still good info) https://www.youtube.com/watch?v=ayF8e8q_aA8 https://www.youtube.com/watch?v=ayF8e8q_aA8
- cgarrard 10y agohttp://gafferongames.com/networking-for-game-programmers/ http://gafferongames.com/networking-for-game-programmers/ http://gafferongames.com/networked-physics/introduction-to-networked-physics/ http://gafferongames.com/networked-physics/introduction-to-n... http://gafferongames.com/building-a-game-network-protocol/ http://gafferongames.com/building-a-game-network-protocol/ Not game specific but will get you into the mindset of how a networked game functions.
- shurcooL 10y agoThe good well-known resources I knew of are already posted, so I'll just add one of my own [0]. [0] https://dmitri.shuralyov.com/blog/10 https://dmitri.shuralyov.com/blog/10
- douche 10y agoI really cannot wait for Fabien's book on the Wolfenstein 3D engine to come out. I really hope that it does.
- oh_sigh 10y agoIs there something particularly special about Wolf3D that you are awaiting, or just his write up on it?
- douche 10y agoMore 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 10y agoAlso 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 10y agoAny feelings on Marathon on the Mac? I recall that game feeling quite groundbreaking in the semi 3d era.
- deleted 10y ago[deleted]
- bashinator 10y agoI 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.
- joshmn 10y agoAs a web dev this kind of stuff blows my mind.
- parr0t 10y agoExactly what I was thinking :)
- Narishma 10y agoFrom the same place and somewhat related: http://fabiensanglard.net/doom3_documentation/DOOM-3-BFG-Technical-Note.pdf http://fabiensanglard.net/doom3_documentation/DOOM-3-BFG-Tec...
- kyrra 10y agoDota2 interestingly enough just uses protobufs for network and replays I believe. https://github.com/skadistats/smoke/wiki/Anatomy-of-a-Dota-2-Replay-File https://github.com/skadistats/smoke/wiki/Anatomy-of-a-Dota-2...
- sluukkonen 10y agoCSGO does as well.
- mevile 10y agoSending 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.