Tivemos esse problema com alguns CCGs online nos quais trabalhei. Melhor solução que já vi:
1) Os jogadores DEVEM se conectar ao servidor, e não diretamente um ao outro, e NUNCA deve passar endereços IP dos oponentes nos dados que transmitir aos jogadores. Isso evita ataques de negação de serviço em que um jogador força o oponente offline para a vitória.
2) Conexão derrubada = você perde, o oponente vence. Devemos assumir que, se você caiu, foi uma queda para evitar certas perdas.
3) As desconexões tentam se reconectar por um período de tempo, para que um ligeiro soluço líquido não o force a perder sem culpa sua. Idealmente, o tempo é longo o suficiente para permitir que alguém se reconecte se acidentalmente chutar o cabo, mas curto o suficiente para que o oponente não fique frustrado e adormeça enquanto espera. Acho que achamos que 45 a 60 segundos pareciam corretos.
4) Permita que os jogadores denunciem seus oponentes. Este é um conjunto necessário para impedir que alguém encontre uma maneira irritante de contornar sua política. Por exemplo, talvez seja tão verbalmente abusivo que o oponente caia apenas para sair de lá, ou se desconecte e reconecte continuamente para prolongar a duração do jogo, ou fique paralisado para evitar uma perda ou qualquer outra coisa. Você não pode impedir TODO o mau comportamento, mas pode incluir um mecanismo no jogo para denunciá-lo e deixar o departamento de suporte ao cliente cuidar do resto.