The other really common one is "lock step" where a common rng seed is shared and all player inputs are replicated. The game state then moves forward deterministically in "lock step" with all the players inputs. This is pretty common for RTS style games where a few inputs can drive thousands of units. Most also hash the game state and "resync" if a client is found to have diverged.