JeuWeb - Crée ton jeu par navigateur
Quel langage utiliser pour créer un jeu ? - 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 : Quel langage utiliser pour créer un jeu ? (/showthread.php?tid=7613)

Pages : 1 2


Quel langage utiliser pour créer un jeu ? - guys1 - 28-03-2016

Bonjour à tous,

J'ai le projet (avec des amis) de créer un jeu par navigateur...
Mon idée est un jeu dans le même style que kings and legends ou mypirate

L'espace joueur de kings and legends est en php, mais le jeu ?

Connaissez-vous des moteurs de jeux ou scripts permettant d'arriver à un résultat similaire ?

Merci!


RE: Quel langage utiliser pour créer un jeu ? - Xenos - 29-03-2016

Salut,

non. Mais cherche sur le forum, tu auras peut-être des infos sur les questions type "quel langage pour mon jeu?".

En tous cas, de mon point de vue, PHP n'est pas très adapté aux temps réels (ou assimilés; même si je trouve le web/HTML pas adapté non plus).


RE: Quel langage utiliser pour créer un jeu ? - L'Omniscient - 30-03-2016

Ah, tu prendrais quel langage côté serveur Xenos pour du temps réel ?

(Désolé guys1, je ne suis pas assez calé pour te répondre. Peut-être quand tu auras tes langages de base je pourrai te donner les quelques conseils de librairies et technologies que j'ai eu si nos langages sont similaires, mais pour l'instant je peux pas trop te répondre ^^)


RE: Quel langage utiliser pour créer un jeu ? - Akira777 - 04-04-2016

Hi !

Pour ma part, je nage dans deux écoles :

- PHP + Framework (Laravel, Symfony, CodeIgniter) pour un jeu web classique.

- Node.js + Socket.io pour un jeu web plus temps réel.

Après, sur mon jeu en cours, je mélange les deux : API REST avec Laravel 5 pour le moteur, Node.js + Socket.io pour le côté temps réel.

Niveau frontend, ce n'est pas les solutions qui manquent et tout est question de préférence :
- La solution classique HTML + jQuery
- Angular.js, React.js, Vue.js (j'aime beaucoup celui là)

Tout va être question de ce que tu souhaites apprendre, ce que tu aimes et à quel point tu veux donner de l'importance au Javascript dans ton jeu.

Mais cela ne s'arrête pas là, on peut aussi faire du temps réel avec PHP (ReactPHP, Ratchet, ...).
Si tu connais l'environnement, Ruby + Rails peuvent être une autre solution.

Côté base de données, cela va aussi dépendre des outils que tu choisis. J'aime bien travailler avec MySQL et Redis. Encore une fois tout va dépendre de ton jeu et des technos que tu utilises.


RE: Quel langage utiliser pour créer un jeu ? - L'Omniscient - 05-04-2016

Et qu'est-ce que tu entends comme différence entre "jeu web classique" et "jeu web plus temps réel" Akira ?
Par exemple, si une jauge chiffrée doit s'actualiser en temps réel selon les actions des utilisateurs, tu considère ça comme jeu en temps réel, même s'il ne s'agit que d'une jauge ?


RE: Quel langage utiliser pour créer un jeu ? - Akira777 - 05-04-2016

(05-04-2016, 12:22 AM)LOmniscient a écrit : Et qu'est-ce que tu entends comme différence entre "jeu web classique" et "jeu web plus temps réel" Akira ?
Par exemple, si une jauge chiffrée doit s'actualiser en temps réel selon les actions des utilisateurs, tu considère ça comme jeu en temps réel, même s'il ne s'agit que d'une jauge ?

J'entends par temps réel, un jeu comme Agar.io par exemple. J'y inclut aussi des jeux comme Guerre Tribale, on peut dire que c'est du quasi-temps réel (map, ressources, constructions, production, ...) même si c'est relativement simulé (le ressenti est très fort lorsqu'on joue en partie de 24h avec le temps accéléré x200).

Mais pour te donner quelque chose de plus concret, je prend le jeu que je développe actuellement pour exemple.
C'est un jeu de ninja où il y'a des missions, des villages, des combats, ...

Les missions sont relativement classique, on choisi, on clique et hop on attends 20 minutes. Malgré le fait que les missions se fassent par groupe jusqu'à 8 où il y'a un semblant de temps réel (les joueurs sont synchronisés), cela reste tout bonnement "classique".

En revanche, les combats se font en temps réel. On est dans une arène (ou "lobby") où l'on voit les joueurs en attente de combat. On choisit son adversaire, il est prévenu en live (avec notification navigateur). A partir de là se lance une instance d'un combat, elle gérée par node.js + socket.io. Chacun joue son combat suivant ses coups, le nombre d'attaque qu'il peut faire. Il peut aussi discuter en live avec son adversaire (ça fait très anime japonais ou les combattants discutent 20 minutes entre chaque attaque xD). Bref, là c'est ce que j'appelle du temps réel.


RE: Quel langage utiliser pour créer un jeu ? - L'Omniscient - 05-04-2016

Ah tiens, parfait, justement, ton node.js est sur un autre serveur que ton PHP ? Et comment envoie-tu les données de Node.js à PHP et vis versa ? Je suis en pleine galère là dessus en ce moment, aucune doc ne fait le tour de la question des websockets sur PHP >.<
Sinon j'ai bien trouvé ça :
http://stephaneey.developpez.com/tutoriel/php/sockets/
En gros juste une petite technologie socket.php, mais je me tate, j'attends de trouver les différentes alternatives, lesquelles sont les mieux, et surtout, lesquelles sont possible sur mon serveur mutualisé (je crois que c'est un mutualisé, j'arrive même pas à trouver cette info).
D'autre part, tu as un clé SSL ? Pour avoir la clé SSL, faut que je paye 108e l'année je crois au lieu de 48e. J'ai lu que c'était important.

Re-désolé guys1, je te pique un peu ton sujet, mais les réponses qu'on me donnera pourront te profiter. Faut que tu te renseignes sur les websockets en tous cas pour le temps réels. A partir de là, tu auras les langages serveurs les plus adaptés.
Voici un site avec des infos là dessus :
http://www.html5rocks.com/en/tutorials/websockets/basics/
Tu noteras qu'ils ont évincé le PHP ces petits *** Big Grin
D'où ma peine actuelle, alors que je veux faire des petits trucs pas très élaborés en temps réels (du genre, juste un chiffre qui s'affiche en temps réels) pour que yait pas de soucis de deux interactions au même moment sur ce chiffre. Et pour ça, avec PHP, bah faut trouver des trucs de vaurien de web, le codeur de la rue. Mais bon, je suis un codeur de la rue, j'assume Big Grin


RE: Quel langage utiliser pour créer un jeu ? - niahoo - 05-04-2016

(05-04-2016, 03:00 PM)LOmniscient a écrit : A partir de là, tu auras les langages serveurs les plus adaptés.
Voici un site avec des infos là dessus :
http://www.html5rocks.com/en/tutorials/websockets/basics/
Tu noteras qu'ils ont évincé le PHP ces petits *** Big Grin

Parce qu'il n'y a pas d'implémentation PHP digne de ce nom pour les websockets. À part peut-être celle basée sur React mais je pense que ce n'est pas mature.

Mais honnêtement, tu fais un jeu assez textuel à ce que j'ai vu, je doute que tu aies un quelconque besoin des websockets. Je crois surtout que tu es en train de te disperser. Alors après c'est pas grave, si tu veux simplement apprendre c'est super cool ; mais dans ce cas là oublie le PHP pour ce point là, tu iras plus vite.


RE: Quel langage utiliser pour créer un jeu ? - L'Omniscient - 05-04-2016

Bah en fait niahoo, un premier soucis :
- Certains utilisateurs ont un délai assez long de l'AJAX qui fait que l'inventaire ne s'actualise pas avant plusieurs longues secondes... C'est assez gênant (pourtant l'un d'eux a une connexion qui lui permet de naviguer facilement sur facebook par exemple). Si les sockets peuvent régler ça ce serait bien.

Deuxième soucis :
- La prochaine implémentation dans mon jeu sera un système de construction de structures dans des régions, avec un placement de troupes. Les troupes pourront être retirées à tout moment par le joueur, je voudrais donc que les autres joueurs voient en temps réels ces troupes disparaître, pour qu'au moment de les attaquer, ils n'attaquent pas des troupes fantômes. (J'ai essayé de trouver des alternatives du genre actualisation commune toutes les 20 minutes avec des délais de déplacement des troupes de 20 minutes, mais c'est pas du tout optimal). Donc pour ça, il me faut absolument une technologie qui permette d'afficher en même temps une donnée chez deux clients.

D'ailleurs mon jeu n'est pas du tout textuel. Tu t'es sans doute basé sur le descriptif de l'univers ou le forum RPG pour dire ça, mais le jeu web en soit ya vraiment quasi pas de texte.


RE: Quel langage utiliser pour créer un jeu ? - niahoo - 05-04-2016

(05-04-2016, 03:44 PM)LOmniscient a écrit : - Certains utilisateurs ont un délai assez long de l'AJAX qui fait que l'inventaire ne s'actualise pas avant plusieurs longues secondes... C'est assez gênant (pourtant l'un d'eux a une connexion qui lui permet de naviguer facilement sur facebook par exemple). Si les sockets peuvent régler ça ce serait bien.

Ok et donc tu es sûr que c'est la connexion qui est longue, et pas le calcul de l'inventaire ou autre ? Parce que facebook n'utilise pas le websockets. Il utilise le long-polling, et c'est ce que je ferais si je voulais « permettre d'afficher en même temps une donnée chez deux clients » sur un jeu en PHP.

Et si facebook utilise cette techno, c'est bien la preuve qu'elle est tout à fait viable. Il faut juste avoir un serveur web robuste, mais Apache t'emmenera facilement jusqu'à 4000 joueurs, de quoi voir venir pour le remplacer.