Ajout d'un mode multijoueur à un jeu HTML5 [fermé]

15

Je suis intéressé à créer un jeu dont j'ai actuellement une expérience coopérative, mais je suis curieux de savoir quelle est la meilleure méthode pour l'implémenter en HTML5.

J'ai fait des jeux avant d'utiliser des sockets C droits, et aussi avec la bibliothèque Net pour SDL.

Quelles sont mes meilleures options pour le faire dans un environnement basé sur un canevas?

À l'heure actuelle, tout ce que je peux trouver est soit des solutions AJAX / base de données (avec un taux de rafraîchissement élevé), soit en quelque sorte la mise en œuvre d'un serveur PHP qui acheminerait les données via des sockets.


Le gameplay global serait un type de jeu de plateforme 2.5D, donc les deux clients devraient être continuellement mis à jour avec les positions des joueurs, les positions ennemies, les projectiles, les données environnementales, etc.

te
la source
1
Lorsque les websockets ( en.wikipedia.org/wiki/WebSockets ) sont finalisés (et implémentés, etc.), ce serait probablement un bon moyen, jusque-là, je pense que AJAX (sans le X, aucun XML requis pour cela) serait probablement le meilleur moyen (toujours pas un très bon moyen je suppose).
Elva
Il semble que la prise en charge des sockets Web diminue rapidement ...
the_e
Voulez-vous faire un stand ou un jeu? Si vous voulez faire du jeu; ne vous embêtez pas pour html5.
@stefan: pourquoi pas les deux? ce n'est pas parce qu'il n'est pas encore finalisé que je ne peux pas travailler avec!
the_e

Réponses:

12

Socket.IO propose un système construit au-dessus de plusieurs autres couches (y compris les websockets, flash, techniques de comètes) avec une sélection gracieuse.

Node.js est une option pour l'exécuter côté serveur.

Vincent Scheib
la source
5

Voir cette réponse :

Vous pouvez cependant utiliser Flash là où il est disponible pour fournir à votre script une solution de secours jusqu'à ce que WebSocket soit largement disponible. Le web-socket-js de Gimite en est un exemple gratuit. Cependant, vous êtes alors soumis aux mêmes limitations que les Flash Sockets, à savoir que votre serveur doit pouvoir cracher une politique inter-domaines sur demande vers le port de socket, et vous aurez souvent des difficultés avec les proxys / pare-feu. (Les sockets Flash sont faites directement; pour quelqu'un sans accès IP public direct qui ne peut sortir du réseau que via un proxy HTTP, cela ne fonctionnera pas.)

Ricket
la source
3

« Comète » est probablement un terme générique que vous pourriez utiliser ici. Les WebSockets seront une option plus souhaitable (quand ils seront satisfaits de la sécurité).

casr
la source
3

Node.js est la réponse. Je l'ai utilisé pour développer un jeu de tir multijoueur en temps réel, et cela a pris environ 1 mois du début à la fin. Il présentait des défis uniques, tels qu'il devait avoir une latence minimale, et tous les joueurs doivent rester synchronisés les uns avec les autres pour que le concept fonctionne.

Le côté client et le côté serveur sont tous deux écrits en javascript et partagent des classes / logiques entre eux. Cela commence à compter lorsque vous essayez de corriger des bogues, car vous n'avez pas à tout mettre en œuvre deux fois.

Le jeu est en place depuis environ 2 mois, sans redémarrage et des milliers de matchs ont été joués.

Socket.io est une implémentation de sockets et utilise node.js, mais il est trop gonflé à ce stade pour un jeu. Il existe d'autres implémentations websocket sur github pour node.js et également des exemples de jeux l'utilisant.

onedayitwillmake
la source
2

Vous pouvez toujours simplement utiliser AJAX et une sorte de file d'attente de messages. ActiveMQ est un bon exemple. Vous exécutez ActiveMQ sur le serveur, puis votre JavaScript peut envoyer et recevoir des messages. Faites en sorte que chaque joueur ait un nom unique et envoyez des messages à l'autre joueur.

Brendan Long
la source
2

Vous pouvez essayer d'utiliser http://easywebsocket.org/ , c'est facile à implémenter et c'est une solution sans serveur basée sur websocket :)

Pierre-Loic Doulcet
la source
2

Nous travaillons sur une plateforme multi-joueurs qui pourrait vous intéresser. Vous pouvez voir notre projet sur www.16cubes.com - nous fournissons une simple couche javascript pour effectuer des communications poste à poste. Il est quelque peu basé sur le principe Comet, et nous prévoyons de passer à l'utilisation de websockets car il deviendra un peu plus standardisé. D'un autre côté, nous fournissons certaines fonctionnalités prêtes à l'emploi .. comme la correspondance automatique des adversaires, le chat de jeu, l'invitation en un clic d'amis Facebook etc.

Nous avons une démo tic-tac-toe, vous pouvez probablement avoir une meilleure idée si vous la voyez. Et oui, vous pouvez également jouer de manière anonyme. Aucune inscription requise, si vous ne le souhaitez pas. Il y a moins de 10 API javascript contre lesquelles vous devez coder, et elles sont disponibles sur www.16cubes.com/documentation

Nous recherchons activement des commentaires, alors faites-nous savoir à la fois les bons et les mauvais


la source