Pergunta

Estou desenvolvendo um jogo de estratégia online usando .Net v2.Embora o jogo seja principalmente estratégico, ele possui alguns elementos táticos que exigem um desempenho de rede razoável.Pretendo usar pacotes TCP para dados estratégicos e pacotes UDP para dados táticos.

{EDITAR} Esqueci de mencionar que estou me afastando do WCF e do .NET 3+ por alguns motivos.Primeiro, porque quero manter meu download pequeno e a maioria dos meus clientes já possui o .NET 2.0.Segundo, porque gostaria de ter a opção de migrar para Mac e Linux e não tenho certeza da disponibilidade do WCF no Mono.{/EDITAR}

Estou procurando recomendações de bibliotecas de rede.Encontrei algumas opções, como Torque Network Library (C++) do GarageGames, RakNet (C++) e a biblioteca de rede lidgren (C#):

http://www.opentnl.org/ http://www.jenkinssoftware.com/ http://code.google.com/p/lidgren-network/

Alguém tem experiência real com essas ou outras bibliotecas?


Acabei de tropeçar no RakNetDotNet:

http://code.google.com/p/raknetdotnet/

Esse poder seja o que estou procurando...

Foi útil?

Solução

Por que limitar-se ao .NET 2.0.O .NET 3.0 (ou 3.5) contém WCF e é um subsistema de comunicações sólido, de alto desempenho e com boa segurança..NET 3.0 é apenas .NET 2.0 com bibliotecas adicionais (WCF, WF, WPF).

Outras dicas

Próprio .NET da Microsoft baseado XNA permite criar jogos em rede no Windows e no XBox 360.

http://code.google.com/p/lidgren-network-gen3/

Lidgren.network é uma biblioteca de rede para a estrutura .NET que usa um único soquete UDP para fornecer uma API simples para conectar um cliente a um servidor, lendo e enviando mensagens.

Também gostaria de observar que "Games for Windows", que o XNA usa no Windows com seu Live!APIs de rede agora são gratuitas...o que significa que se você escrever um jogo XNA que use recursos de rede, seus usuários não tem que ter uma assinatura ouro :-)

http://www.engadget.com/2008/07/22/games-for-windows-live-now-free/

Você poderia dar uma olhada em Entanglar ( http://entanglar.dunnchurchill.com ) se você estiver procurando por algo de nível superior.Entanglar fornece ciclo de vida completo e sincronização da entidade.

Embora esta questão seja bastante antiga, um sistema de nível um pouco superior desenvolvido especificamente para jogos é Um jogo - entre as plataformas suportadas também está C#.Existem versões de avaliação e é gratuito para uso pessoal.

Você define os objetos do jogo de maneira semelhante à UML e um gerador de código online cria assemblies contendo os objetos do jogo.Enviar atualizações de estado é tão simples quanto chamar métodos setter.

Não é a coisa certa, se você quiser lidar com os soquetes sozinho.Observe também que sou desenvolvedor do APlay, portanto esta é uma resposta tendenciosa.

Uma pergunta antiga, mas vou divulgá-la para qualquer pessoa que se deparar com isso.Estamos usando OpenTNL em nosso jogo, Bitfighter, e estou sempre surpreso com o quão bem ele funciona.E é grátis se você puder conviver com a GPL.

Se você é novo no desenvolvimento de jogos, eu recomendo o XNA – é fácil de programar.A vantagem do Torque, porém, é que ele possui ferramentas de criação de ativos, que também podem ser inestimáveis.Para um jogo ou FPS de última geração, o mecanismo Source é ótimo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top