Using a client-server model for single-player allows it to lean on that system for replaying state changes.