gitmyhub

MultiplayerNetworkingResources

C ★ 8.6k updated 2mo ago

A curated list of Multiplayer Game Network Programming Resources

A curated list of articles, videos, and tools explaining how multiplayer games keep players in sync over the internet, covering lag compensation, rollback netcode, client-side prediction, and more.

C++UnityUnreal EngineGodotsetup: easycomplexity 1/5

This repository is a curated reading and watching list for anyone who wants to understand how multiplayer games handle their networking. Making two or more players experience the same game world at the same time over the internet is genuinely hard. Connections have delays, packets arrive out of order or get dropped entirely, and each player's computer must keep its version of the game world in sync with everyone else's. The techniques used to deal with these problems, such as lag compensation, rollback netcode, client-side prediction, and interpolation, are the focus of most resources collected here.

The list is organized into categories. There are written articles covering everything from beginner introductions to deep technical breakdowns of how specific games like Halo, Valorant, League of Legends, and Quake handle their networking. Many entries come directly from the engineering teams at studios like Riot Games, id Software, and Valve. Topics range from choosing between the TCP and UDP protocols, to how to build peer-to-peer connections, to the tradeoffs between different synchronization models for real-time versus turn-based games.

Beyond articles, the list also points to videos and recorded conference talks, libraries and tools for implementing networking in your own game, and miscellaneous resources like books and university research papers. Some entries are aimed at specific engines or languages such as Unreal Engine 5, Unity, Godot, and C++, while others cover the underlying networking concepts that apply regardless of the tools you use.

This is a reference collection rather than a single tutorial or framework. There is no code to run and nothing to install. Its value is as a starting point for a developer who wants to build online multiplayer functionality and needs to know what the field looks like, where the hard problems are, and where other people have written up their solutions.

Where it fits