JeuWeb - Crée ton jeu par navigateur
Choix technologique - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Choix technologique (/showthread.php?tid=7381)

Pages : 1 2


Choix technologique - Webroz - 28-05-2015

Bonjour,

Je suis ici car le fait de crée un jeux web m'intéresse fortement.
Mais n'étant pas fort en javascript, j'essaye de voir quel type de jeux vers lequel je peux m'orienter ?
J'aimerais faire un jeux web orienté PVP où les joueurs s'affronte mais le soucis c'est que pour du temps "réel" il faut pratiquer du java Sad
En php, il faudra forcément rechargé la page et c'est pas tolérable. Je ne veux pas faire quelque chose du style wow avec des personnages et tout mais déjà commencer par un simple combat dans une page avec Joueur A et joueur B qui se lance des sorts en temps réel jusqu'a ce qu'il y a un perdant par exemple.

Si vous pourriez m'orienter sur les types de technologie, conseil ou autre ? Une façon de faire du temps réel de manière simple avec Javascript sans partir dans de gros code complexe. Je suis preneur. Merci d'avance


RE: Choix technologique - Xenos - 28-05-2015

Salut,

attention: javascript ≠ java.
Java est assimilable à un PHP-typé (les variables sont d'un type donné, c'est à dire une classe/interface), javascript est plus orienté "évènement & prototypes".

Pour moi:
Temps réel entre des joueurs → sortir de HTTP, et basculer sur un jeu "classique", avec un SDK (type Neoaxis pour la 3D, ou Unity pour la 2D ou 3D). Cela permet de développer vite et bien de très bons jeux en temps réel.


RE: Choix technologique - Webroz - 28-05-2015

Bonjour,

Merci pour ta réponse.
En faite je ne sait pas si tu a compris ma demande, justement je ne cherche pas à faire un jeux classique style MMORPG avec personnage et autre...
J'aimerais juste un combat dynamique dans une page web avec juste deux joueurs (barre de pv / mana ) et autre et une barre de sort et les joueurs se lance des sorts en temps réel sans plus avec quelque animation de sort évidemment.

Il faut toujours basculer sur du "classique" ?


RE: Choix technologique - niahoo - 28-05-2015

Si tu veux du temps réel tu peux te tourner vers les services tiers comme pubnub :

https://www.google.fr/search?q=site:jeuweb.org+pubnub+&ei=U-ZmVfucB8n8UvGcgeAL

Ensuite, pour faire des effets de sorts par exemple, ça va demander plus de boulot.

Dans tous les cas si tu veux que ça soit dans une page web et que ça soit dynamique c'est javascript ou rien Smile


RE: Choix technologique - Xenos - 28-05-2015

Si tu me poses la question du choix de la techno à utiliser pour un jeu 2D (simple ou complexe), temps réel entre des joueurs et sans javascript, je te réponds: un SDK classique hors jeux web Wink
Si tu inclus le javascript coté client, je te réponds pareil :p

Si tu veux un petit jeu 2D en temps quasi-réel avec javascript coté client, je te réponds websockets (permettant la connexion serveur->client au lieu du client->serveur habituel) & NodeJS (bien que je ne le connaisse pas, mais de ce que j'en ai compris, c'est un langage serveur basé sur les évènements parfaitement adapté aux websockets) mais il existe aussi des lib en C/C++ pour les websockets (libwebsocket par exemple).

Si tu veux un petit jeu 2D en tour-par-tour rapide, sans que les gens n'appuient sur F5, sans forcément gérer au mieux les ressources serveurs et compatible PHP, je dirai javascript client + PHP serveur + long polling ou autre technique de faux-push.

Si tu veux un jeu en tour par tour où la réactivité est de plusieurs secondes, les balises HTML5 devraient suffire (meta refresh, iframe etc), et la techno serveur est alors classique (PHP, Java, n'importe quoi qui fait du HTTP).


Donc:

Temps réel → SDK classique
Temps quasi-réel → Javascript client, Websocket, NodeJS
Tour par tour rapide (<1s, sans F5) → Javascript client, PHP (ou autre), long polling/Ajax
Tour par tour lent (>1s, sans F5) → HTML5, PHP, meta refresh/iframe


[Edit]
Quoique Ratchet semble être une implémentation intéressante des websockets en PHP... Mais bon, PHP sur du MySQL, c'est vraiment pas le mieux pour ce genre de structure évènementielle.


RE: Choix technologique - Webroz - 28-05-2015

J'ai du mal à cerner la réel utilisation de pubnub dans mon cas ?
S'il vous plait, je suis nouveau dans le développement de jeux web, pouvais vous prendre le temps de détaillé vos propositions ?
Histoire de ne pas être perdu comme un sagouin x)

Oui je sait ce que c'est la recherche google mais les liens que je tombe dessus sont vague.
Exemple :

"Pubnub proposent un service permettant de définir quel utilisateur est en ligne et abonné à une room. Dans les deux cas, la procédure est la même, l’utilisateur doit être authentifié du côté du service qui va stocker de son côté que la websocket (canal de communication) correspond à tel utilisateur. Une fois que la même websocket est abonnée à une room, le service est capable de retourner la liste des utilisateurs qui y sont abonnés.

Cette fonctionnalité est utilisée par exemple dans la création d’un chat, avec une information sur les utilisateurs en ligne."

Oui d'accord mais sa ne me guide pas trop :3


RE: Choix technologique - Xenos - 28-05-2015

Si j'ai compris, pour PubNub, tu as le client qui s'inscrit sur une liste de diffusion (via un code javascript), et ton serveur qui envoie des informations sur cette liste de diffusion. PubNub sert de hub: il reçoit les infos du serveur, et se charge de les dispatcher aux clients, dont chacun a un code javascript qui récupère ces informations.

C'est vraiment du temps réel, pubnub, ou il faut compter des pings de >100ms ?


RE: Choix technologique - Webroz - 28-05-2015

C'est un peu plus clair.
Moi je partirais sur une base pour commencer :

Tour par tour rapide (<1s, sans F5) → Javascript client, PHP (ou autre), long polling/Ajax

Ne maitrisant pas Javascript, j'opterais pour un client PHP et donc il faut que je me renseigne sur le long polling / Ajax c'est ça ?


RE: Choix technologique - Xenos - 28-05-2015

Un client PHP?! Bon, c'est techniquement faisable, mais à mon avis, c'est une erreur de compréhension de ta part (ou d'expression de la mienne): PHP est le langage coté serveur, c'est le langage qui répond aux requêtes des clients. Javascript est le langage à privilégier coté client, c'est lui qui dira au client (au navigateur) quelles requêtes envoyer au serveur (qui tourne en PHP).

Et sinon, oui, si tu pars sur cette solution, renseignes-toi sur les techniques de "push" en PHP, dont le long polling fait partie, et sur les techniques pour envoyer des requêtes par javascript, dont Ajax fait partie.


RE: Choix technologique - Webroz - 28-05-2015

Erreur d'expression de ta part et de compréhension de la mienne x)

Mais avant d'essayer de dynamiser tout sa, il vaux mieux que je met en place les fondations de mon jeux non ? Je pense que sa me permettras de mieux comprendre mes besoins et de m'orienter en fonction de mes blocages. Je pense qu'il serait préférable pour moi, de faire un bout fonctionnel déjà, d'éviter de penser aux côté temps "réel" sans avoir une ébauche qui me permettrat de mieux éguiller mes besoins.

Après c'est sur, se renseigner pour anticiper plus tard ne fait pas de mal Big Grin

Merci d'avoir pris le temps de me répondre en tout cas.