Categories
Video Games

Netcode Explained: How It Impacts Your Online Gaming Experience

In online multiplayer games, netcode refers to the networking infrastructure and code that synchronizes the game state and information between clients. Netcode is vital for ensuring smooth, lag-free gameplay across different internet connections.

Netcode

Netcode plays a critical but often overlooked role in determining the quality of online gaming experiences. Well-designed netcode can make even the most chaotic multiplayer matches feel smooth and responsive, while poor netcode leads to frustrating lag, rubber-banding, and hit registration issues.

Understanding how netcode works and the different techniques developers employ can help explain why some online games “feel” better than others, even at a technical level. This article will explore the basic purpose, components and optimization of netcode, and how it impacts gameplay.

The Purpose of Netcode

The primary function of netcode is to synchronize the game state and information between different clients connected over the internet. This includes:

• Player positions and orientations
• Projectile trajectories
• Player health and status effects
• Environment state (objects, doors open/closed, traps activated, etc.)
• Inputs from each player

Netcode must gather all of this data, reconcile any differences, and deliver updated game states to each client at a fast enough rate to provide a consistent, real-time experience. This synchronization process is what enables online multiplayer games to work at all.

Components of Netcode

Netcode has two main components: the network protocol and update rate.

The network protocol determines how information is packaged, compressed and transmitted between clients. Common protocols include UDP and TCP.

The update rate refers to how frequently new game state information is sent from the server to each client. Higher update rates (e.g. 120Hz) generally provide a smoother experience but require more bandwidth.

Optimizing Netcode

Developers optimize netcode through:

• Smoothing and prediction algorithms to hide the effects of latency
• Compressing data packets to send more information per update
• Prioritizing important information (e.g. player positions) for faster delivery
• Increasing the update rate to synchronize game state more frequently
• Employing dedicated servers to handle all game calculations

The tradeoff is generally between bandwidth usage, CPU load and responsiveness. “Good” netcode aims for the optimal balance between these factors for a given game.

Impact on Gameplay

Well-designed netcode is nearly invisible during normal gameplay. Players can move and attack fluidly with few delays or hitches.

Poor netcode leads to frustrating issues like:

• Rubber-banding – Where players or objects suddenly jump back to previous positions
• Warping – Where remote players appear to instantly “teleport”
• High latency – Leading to delayed responses and actions not matching inputs
• Hit registration issues – Where shots and attacks don’t register properly

 

While netcode operates beneath the surface, it has a massive impact on the quality and “feel” of online multiplayer gameplay. Game developers must optimize netcode to accommodate the speed, chaos and full sensory experience of modern interactive titles. Players, in turn, have come to expect a seamless, lag-free online experience – a testament to how far netcode optimization has come.

 

Choosing the Right Netcode for Your Fighting Game

Delay-based or rollback? We explain the pros and cons of each for developers.

Fighting game developers face an important decision when designing the netcode for their titles: should they go with delay-based netcode or rollback netcode? Both approaches have trade-offs in terms of complexity, bandwidth usage, latency compensation and creating a smooth online experience.

Delay-Based Netcode

Delay-based netcode has been the standard for years due to its relative simplicity. It works by artificially introducing a delay (around 100-200ms) between when a player inputs a command and when it is executed. This helps hide some of the latency caused by network lag.

Pros:

• Simple to implement
• Requires less bandwidth
• Works well at low to moderate latencies

Cons:

• Requires introducing artificial delay, hurting responsiveness
• Struggles at high latencies
• Can lead to “input dropout” if latency spikes

Rollback Netcode

Rollback netcode simulates the game at the fastest possible speed and then “rolls back” to correct for latency when network data arrives. This provides a more responsive experience with lower perceived input lag.

Pros:

• More responsive input feel with less artificial delay
• Works well at both low and high latencies
• Can correct for packet loss and latency spikes

Cons:

• More complex codebase
• Requires more bandwidth
• Can lead to “rollbacks” visibly correcting action on-screen

Recommendation: Rollback

While delay-based netcode was sufficient for many years, rollback has emerged as the superior option for fighting games – especially competitive titles.

The more responsive inputs and ability to handle high latency variations make rollback a much better fit for the rhythm and reflexes required in fighting games. Despite the complexity, rollback netcode is well worth implementing to provide the best online experience for players.

Most major fighting games in recent years have transitioned to rollback, from Mortal Kombat 11 and Killer Instinct to Guilty Gear Strive and Them’s Fightin’ Herds. Developers looking to create a thriving online community for their fighting game should seriously consider following suit.

What is netcode?

Netcode refers to the networking code and protocols that synchronize game state and inputs between clients in online multiplayer games. It ensures all players experience the game in the same way despite latency.

Why is netcode important?

Netcode is important because it determines how smooth and responsive online gameplay will feel. Good netcode can hide latency and latency spikes, while poor netcode leads to problems like rubber-banding, hit registration issues and overall lag.

What are the types of netcode?

The main types of netcode are delay-based and rollback. Delay-based netcode is older and introduces artificial delays to compensate for latency. Rollback netcode simulates the game at full speed and then “rolls back” to correct for latency, providing a more responsive experience.

What affects netcode performance?

Several factors affect netcode performance, including network protocol, update rate, prediction algorithms, data compression, prioritization of important information, and server infrastructure. Developers must optimize these to achieve the best balance for their specific game.

How can netcode be improved?

Netcode can be improved by: increasing the update rate to synchronize game state more frequently; compressing data packets to send more information per update; employing dedicated servers to handle all game calculations; and using more advanced prediction and interpolation algorithms. However, this often comes at the cost of increased hardware requirements and bandwidth usage.