State machines
A friend joins a running match and unbalances the teams
Letting people in at any moment drops them into the middle of a fight and often onto the already stronger side. Here is how to park latecomers somewhere sensible and bring them in at a fair moment.
A late message brings back an old picture or makes an event vanish
Network messages can arrive out of order or twice. If the newest one always wins, a door that opened for a moment is forgotten. If every one is obeyed, players jump back in time. Here is which kinds of news to throw away and which never.
One slow loader keeps the whole group staring at a loading bar
Everyone is ready to play except one person whose download stalls. Wait forever and the group leaves, start without them and they fall behind. Here is a rule for when to go, whom to drop, and when to call the whole thing off.
The lobby countdown starts while someone new is still joining
Everyone clicks ready, the countdown begins, then a friend walks in or someone backs out, and the match starts with the wrong group or with a single lonely player. Here is how to decide when the countdown may run and when it must start over.
The whole group freezes because one player's connection is slow
Games that make sure everyone sees exactly the same thing can only move on when everyone's move has arrived. That makes one slow player everyone's problem. Here is how far ahead to schedule moves, when to show a waiting message, and when to let go of the slow one.
The last hit takes the loot and the player who did most gets nothing
A boss falls to one huge blow after a long team fight, and the credit goes to the player who happened to strike last. Or the damage list shows more than the boss ever had. This entry shows how to share credit so it matches what really happened.
Troops that flee, come back one tick later and flee again
Morale makes battles feel alive, but a simple threshold makes units flicker between running and fighting right at the boundary. Players see soldiers twitching on the spot. Here is how to give fleeing and rallying different conditions so a rout looks like a rout.
Both players land the final blow in the same instant
Two fighters strike each other down together, and the game declares the one who was processed first the winner, which feels random and starts arguments. This entry shows how to decide such moments the same way every time, and when it is a draw.
Letting players pause a shared game without ruining it
In a game that others are playing at the same time, a pause can be abused, forgotten, or end with everybody being thrown back into the action unprepared. This entry shows how to keep it useful and how to keep the game clock honest.
Open the door, then close it, but the messages arrive the other way round
Some happenings only make sense in order. If the second one arrives first, a door ends up open that should be closed, or a score is counted before the round started. This entry shows how to hold messages back until the gap is filled, and when to ask again.
Back from the settings screen lands in the wrong place
Menus that open other menus, from the game, from combat, from a shop, tend to send the player back to a fixed screen or let one menu open twice on top of itself. This entry gives a simple way to always return to exactly where they came from.
Not enough power: which buildings go dark, without everything flickering
When supply drops below demand, a city can either dim everything a little or switch some buildings off. Switching off is clearer, but a careless version flips the same buildings on and off every moment. Here is a rule that is predictable and stays still.