I’ve got rudimentary networking working in my game. Two clients can talk to each other directly, exchange messages, and show the movements of the other player. Sort of. The last time I demoed the game, one of the clients dropped a message or something, and was no longer synchronized with the other player. This kind of thing is tricky to test for and tricky to recreate. My current strategy is to open two instances of the game on one computer and manually control them both.
The answer I read about is that I need to build a system that can log player actions and then replay them. That way I can create a set of specific user inputs and replay them in a deterministic way. This is the next feature that I’m working on.
My plan is to create a class that logs all user input in a similar way that player characters log their own actions. This class will use the same clock and history mechanism that the player characters use.