Network
Every time there is lag there is a LPB close by.
Multi-player programming focus on the following things.
- Some basic network terminology.
- Use some form of network protocol to send data between peers.
- Keep a shared world synchronized from the perspective of each player.
- Make it possible for the peers to request services from each other with remote procedure call.
- It should send as little data as possible to keep it all in sync.
- It needs to be handle normal latency and latency spikes.
- Who has authority over what object in the world.
- Make your game resistant to exploitation.
- Build up any infrastructure the game needs.
- Handling matchmaking.
- Building the social experience of the game.
Reference
- Crash Course in Online Features for Programmers - 2017
- Developer Update | Let's Talk Netcode | Overwatch - 2016
- Preview: Reliable UDP implementation, lockstep, LAN, and parity bit checking - 2015
- Networking Gameplay and AI in Assassin's Creed Unity - 2015
- 64 Network DO’s and DON’Ts for Game Engine Developers. Part IIa: Protocols and APIs - 2015
- Relay servers - 2014
- Core network structures for games - 2014
- The importance of packet count - 2014
- Using throttling to reduce network errors - 2014
- How to make a multi-player game – part 1 - 2012 - Part 1 and Part 2.
- Choosing a game network library- 2012
- Error handling using forever-loop- 2012
- Scaling Guild Wars for massive concurrency- 2012
- I Shot You First: Networking the Gameplay of HALO: REACH - 2011
- What every programmer needs to know about game networking - 2010
- Networking for Physics Programmers - 2010
- Debugging Multiplayer Games - 2009
- Drop-In COOP for Open World Games - 2009
- Networking for Physics Programmers - 2009
- Efficient Robust Networking: Podcast & Slides - 2008
- Mercenaries 2: Networked Physics in a Large Streaming World - 2008. Notes & Podcast
- Networks and Networking - 2007
- Networked Physics - 2006
- A Distributed Architecture for Interactive Multiplayer Games - 2005
- Introduction to Multiplayer Game Programming - 2004
- Distributing Object State for Networked Games Using Object Views - 2002
- An Effient Synchronization Mechanism for Mirrored Game Architectures - 2002
- Cyberspace in the 21st Century: Part Six, Scalability with a Big 'S' - 2001
- Cyberspace in the 21st Century: Part Four, Foundations II - 2000
- Cyberspace in the 21st Century: Part Five, Stability Before Security - 2000
- The TRIBES Engine Networking Model - 1999
- Designing Fast-Action for the Internet - 1997
- Fast-Paced Multiplayer
- Introduction to Networked Physics
Shared World Shooter: Destiny's Networked Mission Architecture
Connecting Players and Franchise Across Console Generations in the Dragon Age Keep