JeuWeb - Crée ton jeu par navigateur
Afficher des ressources en temps réel ... - 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 : Afficher des ressources en temps réel ... (/showthread.php?tid=6580)

Pages : 1 2


Afficher des ressources en temps réel ... - Lord-Gargoyle - 24-11-2012

Hello,

Je voudrais faire un jeu tout ce qu'il y a de plus classique pour l'instant, avec des ressources qui augmentent au fil du temps ...
J'ai l'impression que dans des jeux genre Travian, les ressources sont visibles en temps réel ...
Je ne crois pas que ça soit un simple compteur javascript ...
(Ça je sais faire ...)
Et il ne me semblait pas que Travian utilisait de l'Ajax, mais ça a peut être changé depuis ...

Donc la question est : est ce que je suis obligé d'utiliser Ajax (que je ne connais pas du tout, c'est pour ça que je pose la question)

Et par exemple, est ce que c'est possible si un voisin pille nos ressources, de voir notre écran changer juste à ce moment là (sans avoir à le faire nous même) ?

Merci d'avance


RE: Afficher des ressources en temps réel ... - Sephi-Chan - 24-11-2012

Il y a Ajax pour aller chercher les informations régulièrement.

Sinon il y a du push pour envoyer des informations en temps réel (ça demande un dédié ou l'usage d'un service comme Pubnub ou Pusher).


RE: Afficher des ressources en temps réel ... - sclabet - 25-11-2012

salut,

j'ai fais un jeu dans lequel les combats sont en temps limités. au début du combat, j'ai un algo sur mon serveur en php qui calcule la date de fin du combat et la stock en base de donnée. Quand j'affiche (ou réaffiche) la page du combat, le serveur calcule le temps qu'il reste au joueur et l'envoie chez le client. je gère l'affichage du compteur avec javacript.

pour les ressources, je pense qu'il est possible de procéder de la même manière :
quand un joueur (toi la plupart du temps) demande au serveur une page où tes ressources sont concernées, on a un algo qui calcule le gain de ressources en fonction de la date de la dernière connexion de ce type (stockée en base de donnée). une fois l'algo tourné et les modifications faites, on stock la date actuelle en base pour que quand l'algo sera relancé la prochaine fois, il prenne comme date de dernière connexion la date actuelle.

je ne sais pas si c'est la meilleure solution... je n'en connais pas d'autre (j'ai pas cherché...)

le push je ne connaissais même pas... (je ne suis pas informaticien...) est-ce que ça marche bien ? (en général il y a plein de truc pour empêcher les popup etc...)


RE: Afficher des ressources en temps réel ... - php_addict - 25-11-2012

salut

j'édite mon post car j'ai écrit des conneries...bref...

oui ajax est une solution mais ce ne sera pas du temps réel, la seule possibilité est le push effectivement ou les socket

après pose toi la question si tout cela est nécessaire, car dès que le joueur change de page alors les ressources seront mises à jour


RE: Afficher des ressources en temps réel ... - Sephi-Chan - 25-11-2012

Effectivement, mettre à jours les ressources par push n'est pas forcément pertinent, à moins que tu développes un jeu axé sur le temps réel.

Un polling en Ajax toutes les minutes est sûrement bien suffisant.



(25-11-2012, 01:33 AM)sclabet a écrit : le push je ne connaissais même pas... (je ne suis pas informaticien...) est-ce que ça marche bien ? (en général il y a plein de truc pour empêcher les popup etc...)

Les technologies de push fonctionnent très bien et la compatibilité est très bonne. Et c'est une histoire de travail personnel, pas de métier. Wink


RE: Afficher des ressources en temps réel ... - Xenos - 25-11-2012

Si le flux de ressources est connu et constant (par exemple: +5u/s, avec aucune raison que ce flux n'évolue), alors tu peux bluffer le jouer: un script (javascript) va actualiser la quantité de ressources affichés dans la barre "Mes ressources", sans rien demander au serveur.

Après, tu croises avec l'AJAX présenté par Sephi: toutes les X minutes (5? 15? 60? +oo?), tu demande au serveur de "faire un point" sur la quantité réelle de ressources que le joueur possède.


RE: Afficher des ressources en temps réel ... - sclabet - 26-11-2012

@Xenos : oui c'est bien en compteur en javascript que je dis (je n'avais pas précisé de ce côté là...) le gain de ressources étant constant, il y a juste à donner au client un état des ressources au moment de l'affichage.

la solution que tu proposes Xenos me pose un problème. imagine que le joueur s’aperçoive qu'il lui manque un tout petit peu de ressources pour lancer une amélioration par exemple, il attend et lance juste au moment ou elle devient possible. dans ce cas le serveur n'a pas mis à jour les ressources (toutes les X minutes) et refuse la manipulation?

comment procédez vous dans ce genre de situation?

ps édit orthographe...


RE: Afficher des ressources en temps réel ... - Ter Rowan - 26-11-2012

Comme dit Xenos


L aspect client est une sorte de prévision, seul le serveur a raison

Au pire tu prévois en js avec une seconde de retard, si tu as peur de l effet que tu décris sur les joueurs


RE: Afficher des ressources en temps réel ... - Sephi-Chan - 26-11-2012

Si la production est complètement linéaires, rafraîchissement via une requête Ajax est inutile : la prédictions en Javascript suffit.

Si en revanche cette production varie, là la requête fréquente est utile.

Dans tous les cas, ce n'est que de l'affichage. Smile


RE: Afficher des ressources en temps réel ... - Xenos - 26-11-2012

Pas forcément: le joueur peut avoir construit un bâtiment ou s'être fait pillé ses ressources... Ou le timer javascript du client a peut-être un décalage avec le serveur. D'où un check de temps en temps.
Si la production varie mais qu'on sait comment (doublée chaque heure par exemple), alors ca revient à peu près au même que le linéaire.