Uma vez tentei escrever um jogo simples com o UDP em uma semana como um teste descartável. Foi horrivelmente.
Joguei fora cedo. O principal problema que tive foi restaurar o estado do jogo de todos os jogadores / inimigos / objetos para um estado antigo e avançar o jogo até o ponto em que o jogador está jogando (ou seja, meio segundo antes de um salto. Um pouco mais cedo ou mais tarde pode faça o jogador errar o salto)
Talvez esse método não seja a maneira mais fácil? Eu suspeito que seja, mas eu o projetei errado desde o início e percebi no final do segundo dia. (então eu não aprendi muito ou perdi muito tempo)
Para mim e para os outros, o que está envolvido em um jogo UDP simples e como eu escrevo um? Ou como eu resolvo o problema de previsão restaurando para indicar corretamente.
Vou marcar isso como CW bc, sei que haverá muitas respostas úteis.
fonte
Fazer o seu próprio desenvolvimento pode ser educativo, mas muitas vezes você faz mais se pode aproveitar uma implementação existente (ou pelo menos começar a partir daí).
Eu usei o ENet e o Raknet . Eu só usei o Enet em um jogo simples, mas ele fez o que eu precisava. A Enet usa uma API de nível inferior ao Raknet. Raknet foi usado em um projeto maior. O Raknet é extremamente poderoso, mas quer fazer você estruturar seu jogo em torno da estrutura do Raknet.
Enet:
Raknet:
fonte
Se você tiver tempo e energia, poderá baixar a fonte do Quake 3 e estudá-la. É fácil compreender se você se sente confortável com C e igualmente fácil de mexer.
Quais outros jogos multiplayer têm fonte disponível e usam UDP?
fonte
Se você for homebrew (como eu), vai aprender muito - também sobre coisas que não queria saber. Como NAT atravessado. De acordo com Caspin, a Enet está perdendo isso, mas você sempre pode encontrar algum código STUN de código aberto que funcione na maioria das situações.
fonte