Build this kind of game
Accept an ability that the player saw as ready, even if lag made it arrive early
A player presses the button the moment the cooldown looks finished, but on the server it still has a fraction of a second to go, so the use is refused and the game feels unfair. Accepting a little early fixes honest players, but a wrong rule also pays cheaters. Here is how much to forgive and how to keep it from adding up.
Work out how many updates per second my online game can afford
More updates per second feel better, but every player added multiplies what your server has to send, and a cheap home connection or small hosting plan runs out sooner than expected. Here is the sum that tells you the highest rate that still fits, before the game starts stuttering with a full lobby.
Catch players who move faster than allowed without punishing a laggy connection
If the server trusts the position a player reports, anyone can fly across the map. If it rejects every position that is too far, an honest player whose connection stalled for a moment gets thrown back. Here is a distance allowance that stops cheating yet forgives a short stall, and how to correct instead of reject.
Check the settings of my game server before it goes live
A game server starts fine with a typo in its settings and then fails strangely under load, or two servers fight for one door and only one works. Settings from the environment arrive as text, which makes it worse. Here is a checker that lists every problem at once with the instance it belongs to.
Accept player names that look right and cannot fake someone else
Players type names with invisible characters, text that flips direction, a hundred spaces, or the same name as a friend with a different capital letter. All of it ends up confusing the scoreboard and the chat. Here is a cleaner that handles the odd cases and a way to give duplicates a number.
Find out why one friend sees missing or wrong pictures in the shared game
One player sees a blank texture or a different sound, and nobody can say why, because the game files look the same everywhere. Often a file is old, missing or named with different capital letters, which works on one computer and not on another. Here is a list comparison that names each difference.
Warn and remove idle players without kicking someone who is just watching
A player who walked away blocks a seat, but a timer that counts silence also kicks someone in a long cutscene, a spectator or a person reading the map. Mouse wiggles by a script fool a simple check as well. Here is a check that warns first, ignores the right times and counts only real activity.
Show a final scoreboard where ties are handled fairly
When two players finish with the same points, a scoreboard that just lists them in some order says one of them did better when they did not. Ties need a rule for who is ahead, when they really are equal, and what number comes after a shared place. Here is a ranking that gets all three right.
Find the exact moment two players' games stop agreeing
In games where every machine calculates the world itself, one tiny difference grows until players see different things, and nobody knows when it began. Comparing a short fingerprint of the game at every step points straight at the first step that differs. Here is the fingerprint and the search, including the two-player case.
Keep the page my friends open from an invite link quick to load
A friend taps your invite on a phone with a slow connection and leaves if nothing appears in a few seconds. The size of everything that must load before play is what counts, not the size of the whole game. Here is a checker that tells you what is too big and about how long the wait is.
Make sure a purchase or door opening is not done twice when the message repeats
Important messages are sent again when no answer comes back, so the other side may receive the same one two or three times. Without care, a player pays twice or a chest gives its content again. Here is how to recognise repeats cheaply, what to do with a message from long ago, and why the answer must still be sent.
Stop old network messages from overwriting newer ones in my online game
Messages over the internet can arrive out of order, so an old position can land after a new one and throw a player backwards. The obvious fix of comparing numbers breaks once the counter runs round after a long match. Here is the comparison that keeps working, and how to count losses.