Forums : Les possiblités de la plateforme Mozilla

Aller à la discussion :  Plus récente Plus ancienne

# [Résolu] Comment faire transiter des informations de PC à PC pour un jeu ? Jabber et JSJac... ?

Envoyé par : Raphael

Date : 28/12/2006 13:43

Bonjour, je voudrais pouvoir créer un jeu mettant en relation 2 PC utilisant une application XUL.

Pour discuter avec un serveur, a priori, il faut passer par XMLHTTPREQUEST non ? Mais peut-on discuter directement avec un autre PC ? Via son IP ? Comment se code se genre de jeu ? Est-ce que l'un des 2 PC doit servir d'hôte ? Ou bien les 2 PC doivent-ils être constamment synchronisés ? Quelle approche prendre ?

Il m'est venu une idée pour promouvoir le réseau Jabber, et me délester d'une gestion fastidieuse de connexion et de gestion de joueurs. J'ai vu qu'il existe déjà de nombreux projets de clients Jabber en XUL (Mango,...) donc il est possible de mettre en relation mes joueurs via le réseau Jabber en utilisant une MUC par exemple.

Et je me demande s'il serait possible d'ajouter des données de jeu aux messages, que mon client saura parser et traduire. De cette manière, je pourrais alors faire transiter toutes les données/actions des joueurs via Jabber ce qui aurait de nombreux avantages :

  • Avec un simple compte Jabber, il est possible de jouer (connexion, chat, jeu) avec quelqu'un d'autre via son JID.
  • Toute la gestion des vCard, des comptes, etc... sont relégués à des clients comme Gajim, Psi,... Ce qui m'éviterait de coder tout ça. Les infos des joueurs seraient donc stockés sur des serveur Jabber ce qui m'évite cette gestion aussi.
  • Mon code s'en verrait terriblement simplifié je pense : Suffit d'implémenter un format de données à envoyer pour traduire l'état du jeu dans un message Jabber. Et bien évidemment, une fenêtre de Chat simplifié que je n'aurais qu'à calquer sur ce qui existe déjà en XUL (Extension FF ou Mango)

Apparemment il n'existe qu'une bibliothèque en JS pour Jabber : JSJac, mais orienté web... Je ne suis pas sûr de pouvoir l'utiliser pour une application XUL. Et le code de Mango semble terriblement vaste et complexe pour moi. Existe-t-il d'autre librairies ?

Que pensez-vous de ce projet ? Est-ce réalisable ? Et l'utilisation de Jabber est-elle envisageable pour faire transiter des données de jeu ? De mon point de vue, l'idée semble novatrice et puissante mais qu'en est-il vraiment ? Est-ce trop lourd ? Est-ce techniquement réalisable ?

Merci d'avance pour votre avis sur la chose.

# Re: Comment faire transiter des informations de PC à PC pour un jeu ? Jabber et JSJac... ?

Envoyé par : Paul Rouget

Date : 28/12/2006 16:17

J'ai déjà eu l'occasion d'utiliser Jabber coté XUL (XPCom), mais j'avoue que c'est quelque chose d'assez compliqué. N'hésites pas à exploiter les composants de Mango, mais attends toi à avoir du boulot.

Si tu veux quelque chose de plus simple, tu peux utiliser les sockets en JS: http://www.xulplanet.com/tutorials/mozsd(..).

Mais si tu as du courage, je te conseille vraiment XMPP (jabber).

# Re: Comment faire transiter des informations de PC à PC pour un jeu ? Jabber et JSJac... ?

Envoyé par : Raphael

Date : 28/12/2006 21:26

Ok, il est vrai que promouvoir Jabber serait une réelle motivation !

Et donc, toi qui a bossé dessus, penses-tu qu'il est possible d'envoyer des informations en se servant de ce réseau ? Afin de jouer avec quelqu'un à un jeu ?

Un message Jabber semble être un document XML de la forme :

<message to="toto@jabber.org" type="chat">
 <body>Salut !</body>
</message>

Serait-il possible de le modifier en quelque chose comme :

<message to="toto@jabber.org" type="chat">
 <game_status>Playing</game_status>
 <game_action>Attack</game_action>
 ...
</message>

Est-ce que ce message passera au niveau des différents serveurs ? Ou bien pas du tout...

En gros, est-ce que mon projet est viable ? Et si non, comment sont habituellement développer des jeux Online tout bête comme Pong ou autres ? Comment sont gérés les échanges de données ?

Merci.

EDIT : D'après quelques réponses sur Jabberfr.org, il semblerait que ce soit possible, il y a même une JEP à propos d'un protocole pour un jeu d'échec entre Jabber Users : http://www.xmpp.org/extensions/inbox/che(..)

Il ne reste plus qu'à me mettre au boulot... =)

# Re: Comment faire transiter des informations de PC à PC pour un jeu ? Jabber et JSJac... ?

Envoyé par : Paul Rouget

Date : 28/12/2006 22:03

Oui oui... le protocole XMPP permet tout ce genre de choses. Mais sinon, en général, si tu veux faire communiquer deux programmes et que tu ne trouves pas de protocole adapté, crées le tien. Et pour cela, tu auras besoin des sockets (cf mon dernier msg).

# Re: Comment faire transiter des informations de PC à PC pour un jeu ? Jabber et JSJac... ?

Envoyé par : Raphael

Date : 29/12/2006 10:13

Merci, je considère donc mon problème comme réglé, il ne me manque plus qu'à bosser dessus dès que j'aurai un peu de temps (c'est que mon CAPES de Maths est dans moins de 3 mois maintenant, faudrait que je lâche mon PC et mes projets en XUL moi XD).

# Re: Comment faire transiter des informations de PC à PC pour un jeu ? Jabber et JSJac... ?

Envoyé par : Utilisateur anonyme

Date : 01/02/2007 02:44

Je pense avoir la solution à ton problème: http://xulfr.org/wiki/xmpp4moz

Il n'est plus possible de poster des messages dans ce forum.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.