JeuWeb - Crée ton jeu par navigateur
Choix pour developpement d'un jeux - 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 pour developpement d'un jeux (/showthread.php?tid=6868)

Pages : 1 2


Choix pour developpement d'un jeux - DrXela - 14-11-2013

J'aurais une question, assez simple, mais c'est aussi une demande d'informations à la fois...

J'hésite souvent sur le fait de concevoir un jeux sur site type "Ogame" (enfin rien à voir si le genre, juste que c'est pas du flash, c'est juste de l'affichage web avec cron et autres) et j'hésite pour cela entre :

- le faire en JavaEE/Webservice
- prendre un framework PHP MVC et faire du simple HTML/PHP/SQL (bon, sans doute du java/js aussi) tel Zend/Symphony/Yii

Bref, que me conseillerez-vous, pourquoi (point fort, point faibles ? genre niveau sécurité, niveau rapidité d'action client/serveur, niveau facilité à maintenir le code, etc), et si jamais j'oublie quelque chose par rapport à ces deux idées (ou si vous en avez une autre à proposer), hésitez pas à le dire.


RE: Choix pour developpement d'un jeux - Sephi-Chan - 14-11-2013

Coucou,

Si je devais partir sur du Java, je pencherais plutôt pour un framework Web moderne comme Play! plutôt que sur des technologies corporate (synonyme de lourd, lent et chiant à utiliser) comme JEE, qui — malgré la vitesse de Java — produisent des sites mous.

Je partirais en revanche plus sur du PHP dans ton cas : ça permet d'itérer rapidement et de voir le projet avancer pour maintenir la motivation.

Par contre, un truc que tu n'auras pas de base avec une stack PHP et que tu as dans n'importe quelle stack Java, c'est la gestion des tâches de fond (background jobs) Il va sans dire que c'est une fonctionnalité essentielle pour tout jeu par navigateur. On a vu (et on voit toujours) sur JeuWeb des gens qui créent des jeux sans ça et ils pourrissent littéralement leur code pour gérer ce genre de choses (en exécutant des tests à chaque chargement de page pour lancer ou non des opérations, etc.). En PHP tu peux regarder du côté de PHP Resque ou Gearman.


RE: Choix pour developpement d'un jeux - niahoo - 14-11-2013

Il n'y a que toi qui puisse le dire. ça dépend totalement de ton niveau sur chaque plateforme, du temps et des moyens dont tu disposes, etc. Quelles sont tes conclusions pour le moment ?


RE: Choix pour developpement d'un jeux - Anarion - 14-11-2013

Des commandes CRON peuvent éviter le problème des tâches de fond, non ? Et, à défaut, l'hébergeur doit bien pouvoir proposer un truc qui s'en rapproche...


RE: Choix pour developpement d'un jeux - Poubi - 14-11-2013

Salutations,

Pour peu que l'on ait un serveur dédié, le problème ne se pose pas, un crontab, ou mieux, un service PHP tournant dans un screen en tâche de fond. De plus, MySQL et SQL Server proposent des triggers, ceci pouvant être intéressant pour un jeu web.

Sans serveur dédié, il existait auparavant le site webcron permettant de lancer à distance une page web protégé, malheureusement payant aujourd'hui. Je l'avais utilisé à l'époque pour un petit jeu web que j'avais fait à la va-vite. Mais bon, j'avais 13 ans, c'est pour dire ... ^^'

Cordialement,
Poubi. Smile


RE: Choix pour developpement d'un jeux - DrXela - 15-11-2013

@Sephi : En effet, le JEE est à mon sens, lourd, chiant et compliqué. Mais n'étant pas expert dedans, je me demandé si c'était pas "mieux" malgré tout.

Par contre, je n'ai pas tout saisi par le fait de ne pas avoir de base de background jobs en PHP, certains frameworks ne proposent pas du threading pour éviter les blocages ? Pourrais-tu me donner un exemple reel que je cerne mieux la chose ?

Je me renseignerais sur "Play!", Resque et Gearman, pour me faire une idée.

@niahoo : Je n'ai ni contraintes de temps, ni date butoir, et mes compétences sont assez bonnes en informatique globale, je pense, après, j'aime bien le PHP, le java, le JS.

@Anarion/Poubi : Le jeux sera plus que probablement sur un dédié, donc avec des cron. D'un coté, je me vois mal comment mettre à jour les données journalièrement sans les crons.

D'ailleurs, simple question : l'affichage dynamique de ressource, tel que sur Ogame, cela correspond à un cron qui calcule les ressources de la personne "tout le temps" ou c'est simplement un "affichage visuel", de ce que le joueur gagne (estimation d'un gain de X ressources à la seconde, donc incrémentation du compteur, mais uniquement coté client pour "faire joli") ? Si c'est visuel, comment les ressources sont-elles vraiment mise à jour aussi régulièrement, vu qu'en actualisant la page (donc perte du visuel), on a quand même le bon compte de ressources ?

Je vois mal un cron calculé toute les secondes les ressources de millions de joueurs...


RE: Choix pour developpement d'un jeux - niahoo - 15-11-2013

Les ressources sont recalculées au chargement, justement Smile


RE: Choix pour developpement d'un jeux - DrXela - 15-11-2013

Donc visuel + recalcul.
Genre (Date.Now - Date.LastCalcul)*Y ressources à la seconde ? Et ils ajoutent au total déjà mis en BDD ? Et donc si un mec sonde notre joueur X, le pille ou fait quelque chose qui revele ses ressources, on recalcule à chaque fois, par rapport au dernier temps d'affichage ?

Ca me parait étrange mais ca semble intéressant à mettre en oeuvre


RE: Choix pour developpement d'un jeux - Anarion - 15-11-2013

AJAX, peut-être ?


RE: Choix pour developpement d'un jeux - Asuleath - 15-11-2013

(15-11-2013, 08:14 PM)DrXela a écrit : Donc visuel + recalcul.
Genre (Date.Now - Date.LastCalcul)*Y ressources à la seconde ? Et ils ajoutent au total déjà mis en BDD ? Et donc si un mec sonde notre joueur X, le pille ou fait quelque chose qui revele ses ressources, on recalcule à chaque fois, par rapport au dernier temps d'affichage ?

Ca me parait étrange mais ca semble intéressant à mettre en oeuvre

Exactement. L'affichage c'est juste un js qui estime tes ressources d’après la prod que tu avais au chargement de la page. Ensuite, à chaque chargement de page, le site met à jour les ressources des joueurs.
Ça te parait étrange, et c'est normal, c'est une méthode barbare, mais elle a l'avantage de marcher dans la plupart des situations.