Skip to main content

Rollback netcode in Godot (part 5): State, hashing and mismatches

Submitted by David Snopek on Monday, 2022-02-28 @ 8:00 AM

This tutorial is part of the Rollback Netcode in Godot course. See the previous part if you haven't already!

This is the 5th part in a tutorial series teaching how to implement rollback netcode in your game in Godot, using the Godot Rollback Netcode addon:

https://gitlab.com/snopek-games/godot-rollback-netcode/

In this part, we talk about all about state in the context of rollback netcode! We add a state mismatch bug to our demo game on purpose, then go through how to debug it by adding detailed logging, and viewing the log files in the Log Inspector tool - including setting up state replay so you can see what a match looked like on a particular tick. We also talk about the rules about what can and cannot be put into state, as well as a few tips and tricks.

Here's the Git repo with the tutorial code (see the 'part-5' branch):

https://gitlab.com/snopek-games/godot-rollback-tutorial

Level:
Intermediate

All the tutorials in this course

  1. Rollback netcode in Godot (part 1): What is rollback and prediction?
  2. Rollback netcode in Godot (part 2): Getting Started with the Godot Rollback Netcode addon!
  3. Rollback netcode in Godot (part 3): Making a custom MessageSerializer
  4. Rollback netcode in Godot (part 4): Spawning scenes and NetworkTimer
  5. Rollback netcode in Godot (part 5): State, hashing and mismatches
  6. Rollback netcode in Godot (part 6): Playing offline!
  7. Rollback netcode in Godot (part 7): Input Delay and Interpolation
  8. Rollback netcode in Godot (part 8): Animation Players
  9. Rollback netcode in Godot (part 9): Sound Effects
  10. Rollback netcode in Godot (part 10): Random Numbers
  11. Rollback netcode in Godot (part 11): Advanced Input Prediction