Mesmo jogos 100% cliente / servidor às vezes apresentam problemas quando o cliente está atrás do NAT. Jogos peee-peer são problemas ainda maiores. Alguns jogos precisam usar vários transportes (como UDP e TCP) ou várias conexões (como uma porta UDP diferente para voz).
Quais são algumas maneiras de garantir que um jogo funcione de maneira confiável quando executado atrás de um roteador NAT?
- Ponto a ponto: não existe servidor centralizado. O jogador A inicia um jogo e o jogador B quer entrar
- Cliente-servidor: um servidor centralizado em um endereço conhecido (nome do host) aceita todas as conexões de entrada. Cada cliente se comunica apenas com esse servidor.
- Combinação: onde o servidor é apenas uma partida, mas as atualizações do jogo são ponto a ponto. Pares diferentes podem ver cada jogador com um IP / porta diferente potencialmente (por exemplo, alguns clientes estão atrás do mesmo NAT e outros em um roteador diferente)