Gostaria de saber se a combinação de clientes Javascript com servidores PHP / mysql é uma boa idéia para jogos em navegador multiplayer em HTML5 em tempo real (pequena escala)?
Meu conhecimento técnico é muito limitado e, embora eu planeje aprender o node.js no futuro, a curva de aprendizado é bastante grande no momento.
Como eu já estou familiarizado com o PHP, sinto que o faria funcionar muito mais rápido.
A escala que estou pensando é de 2 a 8 jogadores na época. E tentando manter a contagem de mensagens do cliente no servidor o mais baixa possível.
Os valores que pretendo armazenar / manipular são:
- Nome e ID do jogador.
- Posição X e Y.
- Saúde.
- Itens equipados (máximo de 8 slots, provavelmente menos).
- Ações (caminhar, atacar, usar etc, mas apenas 1 ação / jogador de cada vez).
- Bullet X, coordenadas Y e trajetória.
- Nome da guilda / clã.
- E algumas funções básicas de bate-papo / correspondência.
Meu palpite é que, embora não seja a melhor solução, mas enquanto eu mantiver a lógica pequena, isso será completamente possível. Estou certo?
javascript
networking
html5
client-server
php
justanotherhobbyist
fonte
fonte
Respostas:
Para um jogo em tempo real, você deseja minimizar a latência. Aqui estão duas dicas para alcançá-lo, com notas sobre PHP e Node:
Eu mesmo acho o node.js muito fácil de entender e, como você precisará codificar bastante JavaScript de qualquer maneira, eu recomendo que você experimente. Pelo menos, dê uma olhada rápida nos tutoriais socket.io para ver como é trivial configurar um canal de comunicação em tempo real.
fonte
Juntamente com a resposta de Tapio, gostaria de sugerir apenas (se possível) enviar a entrada do usuário (cliques e entrada do teclado) para o servidor e ter o servidor e o cliente emulando o jogo. Cada N assinala que o cliente solicita uma sincronização ao servidor, e o servidor responde com todas as informações necessárias para renderizar o jogo, como saúde, itens etc. Isso é para garantir que o cliente também não seja dessincronizado Muito de.
É claro que o servidor e o cliente precisam ter exatamente a mesma implementação do jogo, portanto isso pode ser um pouco mais trabalhoso. Se você tiver implementações perfeitas no cliente e no servidor, o cliente precisará sincronizar com menos frequência.
Isso reduzirá as mensagens do cliente / servidor e reduzirá a latência. Isso também ajudaria a evitar trapaças.
Supondo que você esteja criando este jogo em JavaScript, pode valer a pena escrever o back-end em JavaScript também, usando o NodeJS. Dessa forma, você pode reutilizar a implementação JavaScript do seu jogo para o servidor e o cliente.
fonte
Eu recomendo aprender Nodejs. Se você já possui Javascript, não será tão difícil. Eu criei um jogo TRON Multiplayer rapidamente com o Nodejs e foi meu primeiro dia de uso. (Ah, e o cliente era uma tela HTML5; eu estava apenas enviando informações importantes, conforme mencionado nos outros comentários.)
Dê uma olhada em um módulo chamado nowjs. Boa sorte!
fonte