Bibliotecas da camada de rede [fechadas]

12

Estou procurando por todas as camadas de rede disponíveis para adicionar ao meu jogo, gratuitas ou com preços justos para jogos independentes.

Por camadas de rede, quero dizer algum tipo de biblioteca com a qual posso interagir, com a qual poderei enviar e receber mensagens, e ele manipulará todas as informações de baixo nível por si só.

Estou procurando especialmente:

  • Bibliotecas de alta qualidade que entendem e lidam com coisas complexas, como congestionamento de rede.
  • Bibliotecas escaláveis, que me permitirão ter muitos jogadores tocando juntos.
  • De preferência, uma solução ponto a ponto e não uma baseada em servidor.
  • De preferência, uma biblioteca que possui ligação para linguagens de alto nível (como Java ou C #).

Um exemplo do que estou procurando é o Grapple , mas sei que existem outras bibliotecas disponíveis.

Carvalho
fonte
Embora seja um tópico muito útil, essa pergunta provavelmente não é adequada para o formato stackexchange, pois está realmente pedindo uma comparação de recursos de várias bibliotecas e, portanto, uma discussão aberta.
Cameron Fredman

Respostas:

8

Sinto a necessidade de adicionar ENet a esta lista. Concedido, ele não vem com ligações para outros idiomas, mas, como está escrito em C, a criação de ligações é trivial.

Eu achei o ENet robusto, bem escrito e escalável, e lida com jogos ponto a ponto muito bem.

Blair Holloway
fonte
5

Estávamos usando o RakNet por um tempo e gostamos, e recebemos críticas positivas de outros estúdios. http://www.jenkinssoftware.com/

O bom do RakNet é que ele é multiplataforma, na maior parte, portanto, se você deseja entrar no espaço do console, é uma boa possibilidade.

Jeff
fonte
Eu gosto de como é gratuito para jogos indy
Oak
Eu também usei o RakNet, e é muito bom. Não é perfeito, mas as amostras são boas, você tem acesso total à fonte e a licença Indie é muito perdoadora.
Logan Kincaid
4

Eu escolhi o Zoidcom (C ++) porque é bem projetado e possui excelente documentação + exemplos:

A biblioteca de rede da Zoidcom é uma biblioteca de rede de alto nível baseada em UDP, que fornece recursos para replicação automática de objetos de jogo e sincronização de seus estados em uma conexão de rede de maneira altamente eficiente em largura de banda. Isso é obtido através da multiplexação e desmultiplexação de informações de objetos de e para fluxos de bits, o que torna possível evitar o envio de dados redundantes. Bools levam apenas um bit, números inteiros e flutuantes são removidos para quantos bits forem necessários.

Um grande parte do trabalho tedioso que aparece ao tentar desenvolver um protocolo de rede eficiente é tratado pela Zoidcom, por exemplo, decidir quando enviar quais dados para qual cliente, como obtê-los de maneira eficiente e confiável através da linha, o que fazer quando os dados chegarem perdido e muito mais.

Alguns jogos de código aberto criados usando o Zoidcom:

Licença:

O Zoidcom está disponível gratuitamente para uso não comercial e assim permanecerá. Licenças comerciais e de shareware estão disponíveis mediante solicitação, o anúncio oficial da licença será disponibilizado com o release 1.0.

Leftium
fonte
2

Se o C # não for um problema, você pode conferir o Lidgren . Atualmente em sua 3ª geração, ele apresenta (entre outras coisas):

  • Licença MIT
  • Ponto a ponto (o NetClient / NetServer é baseado no NetPeer)
  • Simulação de atraso
  • Criptografia de pacotes
  • Muito eficiente (buffers reutilizados para zero lixo)
  • Desenvolvedor ativo e responsivo!
Jason Kozak
fonte
1

Desde que você mencionou o Java, sugiro pesquisar no JGN (http://forum.captiveimagination.com/index.php/board,4.0.html), nunca o usei pessoalmente, mas ouvi coisas boas sobre no fórum JME. A documentação parece ser escassa.

Raoul
fonte