Comparison of Net-Code Based Solutions to Lag in Peer-to-Peer Online Games

Seth Messier (V00975362) & Dario Monette (V00983158)

Weekly Summaries

Introduction

Being able to provide players in online games with synchronized game states is an ongoing problem. As games get more complex and the demand for accurate representation of opponents becomes more important, solutions for reducing visual lag on an application level have evolved to improve gameplay quality. Online gaming is a massive market, not only for casual players but also competitive ones, where issues with server quality and delay can cause players to avoid a game entirely. By evaluating and comparing solutions commonly used to diminish the effects of connection delays, we hope to provide strategies developers can choose from based on their project's needs.

Net-Code Methods

Many methods, such as rollback and delay-based net-code, already exist to address the problems described above. Each has its own advantages and disadvantages. Some may perform better in certain environments due to side effects on gameplay or specific multiplayer scenarios. Although individual analyses of these net-code types have been performed, there is limited information comparing them under identical conditions. Providing data on their differences in the same setting offers deeper insights into their strengths and weaknesses.

Project Plan

We will develop a simple online game using JavaScript, complex enough to have network quality affect its performance. The project will follow these steps:

While using one of these methods is common, our approach is unique in directly comparing the two side by side.

Expected Outcomes

By the end of the project, we will have:

Timeline

Important Dates

Hosting and Infrastructure

We are currently deciding who will host the project website and client side on GitHub Pages. An update will be posted on Teams once finalized.

The game server is hosted at https://peer-to-peer-networking-game.onrender.com/.

The server facilitating P2P will be hosted on Render. For NAT traversal, we will use Google’s public STUN servers.