Online Games — How Do They Not Lag?
summary
An authoritative-server netcode for Super Mario World that replaces JSON with a custom binary payload to reduce message size around 5x and runs the server at 30 ticks/second. It uses UDP with delta compression (keeping about 3 seconds of history ≈9 MB), client-side prediction with server reconciliation to eliminate input lag, and adds lag-compensation/rewind for PvP plus an optional rollback mode for competitive play. The implementation addresses CPU and bandwidth overloads and demonstrates much better scalability than a naive approach.
AI-written summary · about
chapters (21)
- 0:00Online game introduction
- 1:26Multiplayer mode goal
- 2:29Authoritative server explained
- 5:15Game data format
- 7:01Initial performance issues
- 7:43Optimizing with ticking
- 8:45TCP versus UDP
- 11:13Reducing data size
- 12:37Solving input lag
- 13:40Client-side prediction
- 16:47Persistent stuttering problem
- 17:30Delay-based netcode solution
- 20:39Handling criticism
- 21:22Battle Royale transition
- 22:07Delta Compression optimization
- 26:41PvP lag compensation
- 30:11Maximizing latency reduction
- 31:57Rollback-based netcode
- 33:23Conclusion and demo
- 34:06Introduction
- 34:49Q&A
related talks
45mOnline Games, But How Come They Don't Lag?
25mWhat the Web can Learn from Video Game Networking
47mReliving the History of Multiplayer Games
18mOvercoming latency, How we build a Cloud Game service with Go
53mMultiplayer Pac-Man with RSocket
42mHTTP/3 and UDP Protocols for Client and Server Online Game Development
17mDissecting and Streamlining the Interactive Loop of Mobile Cloud Gaming
47mToward a High-Performance JSON Protocol: Notes
