JeuWeb - Crée ton jeu par navigateur
Gestion d'un système temporel différent dans le 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 : Gestion d'un système temporel différent dans le jeu (/showthread.php?tid=2138)

Pages : 1 2


Gestion d'un système temporel différent dans le jeu - shlikah - 13-12-2007

Bonjour,

je bloque actuellement sur mon projet sur la gestion du temps dans le jeu, par rapport au temps "de la vraie vie"...
Je m'explique : j'étais partie au départ sur le principe qu'un personnage qui vivait un jour de notre vie prenait un mois dans les dents, ce qui permet de voir évoluer son personnage, et peut être de le voir mourir...

Seulement, j'ai calculé, et avec cette échelle de temps, il faudrait presque 8 mois de jeu pour voir un perso prendre 20 ans, ce qui est quand même long comme temps de jeu...

Second probleme : mon temps sera égrenné par mois tous les deux mois... Ce qui n'est pas super du tout : "Aujourd'hui, nous sommes en janvier/mars/mai/juillet/septembre/novembre/janvier"... blaaaah



Donc je cherche sur le net pour m'aiguiller un peu, et je ne trouve pas grand chose sur la gestion d'un calendrier en parallèle au notre, avec une échelle de défilement du temps différente.

Je présume qu'il me faut une date T=0 qui serve de référence, et une échelle de valeur pour pouvoir calculer par rapport à la date actuelle, quelle est la date du jeu...

Est-ce que j'me dirige vers une solution normale ou est-ce que j'pars dans un truc farfelu ? (j'ai parfois du mal à modérer mes élucubrations et mes délires (il)logiques et donc j'essaye de me freiner lol)


Merci d'avance de votre aide Wink

(Je précise que je ne souhaite pas qu'on me fasse mon truc, j'veux qu'on m'aide et qu'on m'explique, ça ne me servirait à rien de recopier sans rien comprendre...)


RE: Gestion d'un système temporel différent dans le jeu - Byleth - 13-12-2007

Pour ce qui est du problème des mois, tu peux prendre le timestamp que tu divises de manière à ce que ton résultat ne change que tous les jours (pas trop dur ça, tu divises par le nombre de secondes dans un jours puis tu prends tout ce qui est avant la virgule). tu utilises ensuite la fonction modulo(12) pour obtenir des cycles de 12 jours auxquelle tu attribues un tableau de mois qui va donc tourner.

A toi de faire ça à ta sauce selon la vitesse à laquelle tu souhaites aller.

Pour la question du temps, a toi de voir combien de temps tu veux qu'un personnage puisse vivre et avise en fonction...


RE: Gestion d'un système temporel différent dans le jeu - Sephi-Chan - 13-12-2007

La gestion du temps proposée par Byleth me paraît convenable. Le seul problème, c'est que toute manipulation de date doit passer à la moulinette.

Je n'ai par contre rien d'autre à te proposer, si ce n'est t'orienter vers une avance rapide dans la partie inintéressante : jusqu'à avoir 18 ans, on prend 1 an par jour. Puis on repasse en cycle normal (1 mois par jour) après cela.


Sephi-Chan


RE: Gestion d'un système temporel différent dans le jeu - Plume - 13-12-2007

Shlikah a écrit :(Je précise que je ne souhaite pas qu'on me fasse mon truc, j'veux qu'on m'aide et qu'on m'explique, ça ne me servirait à rien de recopier sans rien comprendre...)
Je précise que les moins idiots d'entre nous ont cerné ton niveau et tes attentes, donc on savait déjà ça Wink

Concernant l'échelle de temps pour une gestion parallèle à la réalité, je pense qu'il faut que tu te demandes d'abord combien de temps dans la vie réelle tu veux que le personnage vive, en gros associer ça à une durée de vie du jeu. Après, s'il est possible de créer d'autres personnages qui pourraient prendre la relève, ça peut éventuellement compliquer la chose, mais passons.
Ensuite, tu poses un âge maximal pour tes personnages, donc un âge virtuel cette fois-ci.
De ces deux informations, tu peux trouver une échelle de temps qui correspond à tes envies, attentes, besoins.

Je pense que c'est ce qu'il y a de mieux, quelque chose de personnel & d'adapté Smile

Lex.


RE: Gestion d'un système temporel différent dans le jeu - shlikah - 13-12-2007

Merci pour votre avis messieurs Wink

Alors en fait j'ai fait comme il me semblait "logique" en espérant que ma logique le soit... Et vu que vous me proposez ce que j'ai fait, j'en conclus que j'me plantais pas trop.

J'ai fait :
timestamp dans le jeu = timestamp de départ (que j'ai initialisé de façon arbitraire) + ((timestamp actuel - timestamp de depart) * échelle du temps)

J'ai mis une échelle de temps à 60 pour l'instant, ce qui fait qu'un jour dans le jeu passe en 24 minutes (donc il faut 1 jour humain pour faire vieillir notre perso de 2 mois environ). Je règlerais par la suite, mais ça me semble un bon compromis pour l'instant.

Sephi-Chan > en fait, on ne peut pas créer de perso agé de moins de 18 ans, puisqu'il n'y a rien à lui faire mais je note ton idée pour quand je donnerais la possibilité aux persos de procréer Tongue Merki !


Par contre, j'ai encore un ptit souci, dans le sens où un timestamp valide ne peut aller que de 1970 à 2038, et si je conserve cette échelle de conversion, j'serais bientôt en 2038... trop tôt en tout cas...


RE: Gestion d'un système temporel différent dans le jeu - Plume - 13-12-2007

Je suis pas sûr qu'il y ait un vrai problème. Le soucis qu'il pourrait y avoir, c'est que le TIMESTAMP fourni par UNIX, buggera en 2038, dans la théorie. Or, si tu enregistres ton TIMESTAMP POSIX en tant qu'entier & non plus en tant que TIMESTAMP dans ta base, à quoi tu rajouteras le temps pour adapter à l'échelle de temps du jeu, je pense pas que la transformation en une date même dépassant le 19 janvier 2038 pose problème.

Maintenant, à souligner que je me trompe peut-être, même sûrement. Je ne fais qu'avancer une hypothèse pour ne pas avoir fait de tests. Je pense qu'il faudrait voir au niveau du fonctionnement des fonctions qui manipulent les TIMESTAMP, mais sinon, j'crois que ma théorie se tient.

Lex.


RE: Gestion d'un système temporel différent dans le jeu - Roworll - 13-12-2007

Accessoirement, tu peux inventer ton propre système pour le décompte du temps.
Des semaines de 6 jours, 5 semaines par mois et 10 mois par année par exemple.
Un poil plus compliqué mais ça règle ton soucis de timestamp.

Reste aussi un problème avec ce système de défilement du temps et de vieillissement des personnages : comment gérer l'absence du joueur ?
Le personnage vieillit-il (je pars 1 mois en vacance et au retour c'est l'hécatombe)
Le temps est-il figé pendant mon absence (syndrome hibernatus, pratique pour le jeu plus compliqué pour la cohérence)


RE: Gestion d'un système temporel différent dans le jeu - Plume - 13-12-2007

Il gèle son compte & il fait pas chier Confusediffle: Sans quoi pour une absence prolongée, il risque de mourir, les affaires dépérir .. Après, pour ceux qui ont des absences prolongées imprévues, prévoir un système de récupération ..

Je suggère ^^

Lex.


RE: Gestion d'un système temporel différent dans le jeu - shlikah - 13-12-2007

Effectivement, dans le cas de l'absence du joueur, elle porte dans le jeu le nom de "cryogénisation"... Tongue Puisque les persos peuvent partir en "vacances" en terme de loisirs, j'pouvais pas choisir ce type de [MODE OFF]...
On ne dépense rien, on ne perd rien, on ne vieillit pas, mais le temps passe quand même

Merci Lexus pour le truc du timestamp j'vais voir de ce côté la...

Sinon, en fait ça va pas trop mon truc de temps qui défile plus vite dans le jeu, parce qu'à ce rythme, dans 1 an on sera déjà en 2067... on va arriver à des dates bizarres quoi... (si le jeu tient le coup avec des joueurs dessus mais bon...)

En fait j'ai cherché d'autres solutions :
- chaque joueur vit sa vie depuis une date fixe, genre 1940, et évolue... Par conséquent, le temps final du jeu ne dépassera surement jamais 2030, et on n'aura pas de dates extravagantes, mais on aura donc plusieurs espace-temps différents, et par conséquent, si on veut recréer un personnage, on commencera toujours en 1940 etc etc. Un peu monotone quoi...

- pas de temps dans le jeu, mais en fonction de la date de création du perso, il y a de plus en plus de risque de mourir. Mais du coup pas de "joyeux anniversaire Robert", et pas d'événements "à dates fixes" genre Cérémonie de récompense... Pas de "oh, dommage, Robert est mort à 64 ans...", il sera mort, point barre !

- idem mais avec un temps réellement décompte de la manière que j'suis en train de faire, sans l'afficher sur le site

- pas du tout de notion du temps, uniquement une notion de "vous jouez depuis tant de jours"... mais là ça limite encore plus...

- partir de 1940 et finir en 2040 et à partir de 2041, "boucler" pour revenir en 1940, mais tous les jours gardent leur "acquis", et leur age, etc etc... ptèt compliqué et bizarre à mettre en place...


Sachant qu'il n'est pas prévu qu'il y ait des notions d'évolution des techniques du cinéma, donc l'année "réelle" n'a que peu d'importance...


Voili voilou, j'ai mal à la tête... (et j'crois que ce topic n'a pas vraiment sa place ici puisqu'en fait il s'agit plus de gameplay que de prog... oups Wink)


RE: Gestion d'un système temporel différent dans le jeu - Plume - 13-12-2007

Il s'agit de prog', mais là, il vire au gameplay Smile

J'réagirait un peu plus tard sur le reste si il y a encore lieu d'intervenir.

Lex.