Je me demande si la combinaison du côté client Javascript avec le côté serveur PHP / mysql est une bonne idée pour les jeux de navigateur multijoueurs en temps réel HTML5 (à petite échelle)?
Mes connaissances techniques sont très limitées et même si je prévois d'apprendre learn node.js à l'avenir, la courbe d'apprentissage est plutôt énorme en ce moment.
Comme je connais déjà PHP, je pense que je le ferais fonctionner beaucoup plus rapidement.
L'échelle que je pense est de 2 à 8 joueurs à l'époque. Et en essayant de garder le nombre de messages du client au serveur aussi bas que possible.
Les valeurs que j'ai l'intention de stocker / gérer sont les suivantes:
- Nom et ID du joueur.
- Position X et Y.
- Santé.
- Objets équipés (8 emplacements maximum, probablement moins).
- Actions (marcher, attaquer, utiliser etc. mais seulement 1 action / joueur à la fois).
- Puce X, coordonnées Y et trajectoire.
- Nom de guilde / clan.
- Et une fonction de chat / mailing de base.
Je suppose que même si ce n'est pas la meilleure solution, mais tant que je garde la logique petite, c'est complètement faisable. Ai-je raison?
la source
Réponses:
Pour un jeu en temps réel, vous voulez minimiser la latence. Voici deux conseils pour y parvenir, avec des notes sur PHP et Node:
Je trouve moi-même node.js très facile à prendre en main et comme vous devrez de toute façon coder un peu de JavaScript, je vous recommande de l'essayer. Jetez au moins un coup d'œil aux didacticiels socket.io pour voir à quel point il est simple de configurer un canal de communication en temps réel.
la source
Parallèlement à la réponse de Tapio, je voudrais suggérer d'envoyer (si possible) uniquement des entrées utilisateur (clics et saisie au clavier) au serveur, et que le serveur et le client émulent le jeu. Tous les N ticks, le client demanderait au serveur une synchronisation, et le serveur répondra avec toutes les informations dont le client a besoin pour rendre le jeu telles que la santé, les objets, etc. C'est pour s'assurer que le client ne se désynchronise pas trop beaucoup.
Bien sûr, le serveur et le client devront avoir exactement la même implémentation du jeu, donc cela pourrait être un peu plus de travail. Si vous disposez d'implémentations parfaites sur le client et le serveur, le client devra se synchroniser moins souvent.
Cela réduira la messagerie client / serveur et réduira la latence. Cela aiderait également à prévenir la tricherie.
En supposant que vous créez ce jeu en JavaScript, il pourrait être utile d'écrire le back-end en JavaScript également, en utilisant NodeJS. De cette façon, vous pouvez réutiliser l'implémentation JavaScript de votre jeu pour le serveur et le client.
la source
Je recommande d'apprendre Nodejs. Si vous avez déjà Javascript, ce ne sera pas si difficile. J'ai fait un jeu multijoueur TRON rapidement avec Nodejs, et c'était mon premier jour à l'utiliser. (Oh, et le client était un canevas HTML5; je n'envoyais que des entrées clés, comme mentionné dans les autres commentaires.)
Jetez un oeil à un module appelé nowjs. Bonne chance!
la source