top of page
RollbackGameScreenshot_edited.jpg

Evaluating Rollback Networking Outside of Peer-to-Peer 
Two-Player Games.

Sep 2022 - May 2023 Honours Project & Dissertation.

Solo Project, Project Complete, Dissertation In-Progress.

Main Skills: UE5, C++, Physics, Networking, Game Engine Architecture, Deterministic Gameplay.

  • GitHub

Project Description

Honours Project & Dissertation at Abertay University.

Rollback Netcode has emerged as the latest approach for achieving "lag-free" online multiplayer in two-player fighting games, quickly gaining recognition as an essential feature in modern titles by resolving the long-standing frustrations associated with online play.

This project is about investigating the applicability of this netcode system outside of the fighting game genre, and examining if it delivers the same level of online gameplay quality it is currently renowned for.

Now implementing Rollback presents new technical challenges as it requires certain conditions to be met, such as deterministic gameplay, save-states, and only networking the players' inputs. Consequently, a significant aspect of my work has been exploring the necessary how to achieve these goals in a modern game engine, specifically Unreal Engine 5.

Example of the Rollback Process (sourced from GGPO documentation)

GGPO Example Diagram (by pond3r / ggpo) .png

Development

A full breakdown of the theory, research, and development can be found in my Dissertation (linked above), but here is a brief overview of the process:

  1. Research the technology Rollback Networking and related information.

  2. Research determinism and if Unreal Engine supports it.

  3. Since it doesn't, research how to "get around" UE5's non-deterministic systems.

  4. Implement a manual fixed tick/update and Bullet3 Physics into UE5. LINK to example guide by Steve Streeting

  5. Integrate Rollback into UE5 using the GGPO UE4 plugin.

  6. Develop a simple FPS game to use as a testbed.

  7. Network the game using GGPO.

  8. Re-code most of the game because it used some newer UE features that cannot be used alongside GGPO.

  9. Test, analyze, and fix desyncs within the gameplay.

  10. Trust me you need to do step 9 again.

bottom of page