Will DataSnap ser apropriado para até 8 não-comunicação intensiva jogo multiplayer bi-direcional?

StackOverflow https://stackoverflow.com/questions/1836204

Pergunta

Estou construindo uma pequena multipliplayer que terá o seguinte:

  • deve ser escrito em Delphi
  • deve suportar conexão com a Internet (não apenas LAN)
  • trabalho sobre HTTP
  • apoiar alguns criptografia dos pacotes (pode ser personalizado)
  • será capaz de enviar comandos para o servidor
  • será capaz de receber respostas do servidor
  • ser capaz de conectar até 8 jogadores para um servidor
  • ser capaz de passar objetos complexos (talvez JSON serializado) para os servidores

Você acha que o novo Delphi 2010 DataSnap pode ser utilizado com sucesso neste cenário ou devo ir com o TSocket velha lisa?

Foi útil?

Solução

DataSnap pode fazer tudo o que você listados acima:

  1. DataSnap está escrito em Delphi.
  2. Ele pode se conectar via HTTP através de qualquer conexão, local, rede ou remoto.
  3. Ele vai trabalhar através de HTTP, incluindo suporte para tunelamento a conexão HTTP
  4. Você pode filtrar o fluxo de dados da maneira que quiser. O produto inclui um filtro de compressão. Daniele Teti tem escrito algumas muito agradáveis ??filtros de criptografia .
  5. Você pode enviar comandos para o servidor chamando métodos de servidor
  6. Você pode receber uma resposta do servidor através de chamadas de retorno do servidor
  7. Você pode facilmente conectar oito pessoas para um servidor
  8. Você pode passar objetos JSON. Esse é o tipo padrão enviado entre cliente e servidor.

Então, para responder sua pergunta, sim, eu acho que o novo Delphi 2010 DataSnap pode ser usado em seu cenário.

Outras dicas

Como Nick disse, a resposta é sim.

Bob Swart escreveu um papel branco e produziu alguns vídeos sobre o atualizados DataSnap em Delphi 2010 que podem ajudar você começar.

Se o seu jogo multiplayer não enviar muitos dados HTTP e DataSnap pode funcionar. Se você precisa de uma comunicação rápida, eu usaria UDP e protocolo binário personalizado. A menos que você tem que ignorar um firewall empresa que pára quase qualquer protocolo HTTP, mas - e as empresas geralmente não gostam de pessoas que jogam em suas horas de trabalho - uma conexão de entrada firewall bloqueia, não de saída. Apenas o servidor precisa de portas abertas para permitir que os clientes se conectem. E eu gostaria de evitar JSON, bem como - se você não precisa de interoperabilidade a serialização binária é muito mais rápido.

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