Nouveaux messages
Durant votre absence
Derniers sujets
» Souls Rescue
Mar 15 Nov - 22:06 par oldteen

» DF 0.43.04 est là !
Sam 15 Oct - 13:00 par Novak666

» Le Roguelike Bundle
Lun 3 Oct - 14:56 par Novak666

» Bonjour a tous !
Lun 26 Sep - 20:10 par Aristoxène (jbbourgoin)

» Les morts alakon
Jeu 8 Sep - 10:08 par Aristoxène (jbbourgoin)

» illumine, un roguelike-like
Dim 28 Aoû - 3:11 par Dejima

Sondage

Qui veut un t-shirt HJKL ?

63% 63% [ 5 ]
25% 25% [ 2 ]
13% 13% [ 1 ]
0% 0% [ 0 ]
0% 0% [ 0 ]
0% 0% [ 0 ]

Total des votes : 8

Ceux qui commencent le plus de sujets
Guryushika
 
Stdrome
 
ZeBlob
 
Kasaris
 
Belphegor
 
lonewolfs
 
xboxut
 
Krabator
 
Novak666
 
loudo
 


Boucle de Jeu et gestion du temps

Voir le sujet précédent Voir le sujet suivant Aller en bas

Boucle de Jeu et gestion du temps

Message par xboxut le Mer 12 Fév - 14:41

Salut à tous, 

Je viens juste de commencer le développement d'un jeu d'aventure se passant dans les années 30 (influene Pulp)avec de gros morceau de Roguelike dedans. J'aimerai un peu discuter de la manière de gérer la boucle de jeu et le temps dans vos Jeux.

Concernant mon projet, j'utilise un système de gestion du temps qui est similaire à ADOM.

Chaque seconde qui s'écoule dans le jeux contient 10 tics. Chaque entité du jeu possède une vitesse et un compte de points d'action. A chaque tic, le compte de point d'action est incrémenté de la vitesse de l'entité. Lorsque ce compte atteint le coût de l'action, celle ci se déclenche.
  
Du coup, ma boucle de jeu ressemble à cela:

1)entrée sur une carte du joueur. Chaque entité est positionnée correctement sur celle ci suivant l'heure locale et l'emploi du temps qu'elle suit. 

2)attente de la première action du joueur. Parcours de l'ensemble des entité de la carte et initialisation de leurs première action.

3) défilement du temps, exécution des actions arrivé à terme puis ajouts de nouvelles actions pour les entités qui n'en n'ont plus (IA pour les entité non joueur, input pour le joueur).

4) Si le joueur meurt ou sort de la carte, conservation des positions des entités mais suppressions des actions non effectuées. Si le joueur revient tout de suite sur la carte, il la retrouve comme il l'avait quitté (étape 2 direct), sinon, si trop de temps s'est écoulé, on reprend à partir de l'étape 1.


Quelques précision concernant l'architecture du code. Le joueur possède une pile d'actions. Cela permet de gérer le temps des actions "multiples" comme l'équipement de plusieurs objets d'un coup, ou le ramassage de plusieurs objets. Les actions des autres entités sont gérés avec une liste chainée commune à toute les entités non joueur de la carte. Il n'y a aucun besoin de piles d'actions pour chaque entité puisque l'IA s'occupera de ramasser les objets les uns après les autres ou de s'équiper petit a petit. 

Concernant la résolution d'actions ayant lieu en même temps, elle se fait sur une simple comparaison de la vitesse, de la perception et de la dextérité des entités.

Voilà mon système, il est assez lourd puisqu'il nécessite souvent des tris, et met à jour l'ensemble des entités de la carte en même temps.


Qu'est ce que vous utilisez comme système de gestion de temps dans vos jeux? Qu'en est-il pour projet Graal ou pour Ruche? Aucun problèmes de performance lorsque la carte est grande et que le nombre d'entité à mettre a jours devient important (100? 1000? entités)?

Pour finir un screen de mon éditeur de jeu en cours d'écriture avec les widgets fait maison Smile :

xboxut
Ranger Arbalester lvl 13
Ranger Arbalester lvl 13

Messages : 87
Points : 1423
Réputation : 3

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Boucle de Jeu et gestion du temps

Message par ZeBlob le Jeu 13 Fév - 18:53

Cool que tu programme un jeu Smile Si j'ai bien compris, le jeu se déroule en temps réel c'est ça ? Pas bien compris toutes tes explications XD

#.....@....................>..........k.........#
Born, Shit and Die - S02E05 - The Gloomy Poop


"Everything looks SO boring now."

ZeBlob
Wizard of Yendor
Wizard of Yendor

Messages : 480
Points : 2099
Réputation : 17
Age : 19
Localisation : Dungeon of Doom

Voir le profil de l'utilisateur http://roguelike.fr

Revenir en haut Aller en bas

Re: Boucle de Jeu et gestion du temps

Message par xboxut le Jeu 13 Fév - 21:06

Et Non perdu c'est du tour par tour  Laughing! même pour les système stour par tour la gestion du temps est des plus cruciale, regarde DCSS ou nethack; il y a toute une gestion de la durée des actions, de l'initiative etc. Finalement, la seule différence avec les jeux en temps réel, c'est que le temps ne passe pas lorsque l'on ne fait rien et que les pas de temps sont beaucoup plus grossiers Smile et/ou pas gérés de la même manière dans la boucle de jeu.

xboxut
Ranger Arbalester lvl 13
Ranger Arbalester lvl 13

Messages : 87
Points : 1423
Réputation : 3

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Boucle de Jeu et gestion du temps

Message par ZeBlob le Jeu 13 Fév - 21:48

Ah je pige, c'est juste parce que tu as parlé de "secondes", ça m'a perdu^^

#.....@....................>..........k.........#
Born, Shit and Die - S02E05 - The Gloomy Poop


"Everything looks SO boring now."

ZeBlob
Wizard of Yendor
Wizard of Yendor

Messages : 480
Points : 2099
Réputation : 17
Age : 19
Localisation : Dungeon of Doom

Voir le profil de l'utilisateur http://roguelike.fr

Revenir en haut Aller en bas

Re: Boucle de Jeu et gestion du temps

Message par Ailoen le Sam 22 Fév - 22:20

Pour Ruche, le système de gestion du temps est très basique :
- la boucle principale tourne en attendant qu'une touche soit pressée
- le joueur presse une touche
- si son action "coûte" une action (bouger, taper, ouvrir une porte...), on passe à l'étape suivante, sinon on reprend à la première étape (regarder dans l'inventaire par exemple)
- tous les monstres étant placés dans une liste, on décrit l'ensemble de la liste avec une boucle for, chaque monstre effectue son action, puis on passe au monstre suivant.
- retour à l'étape 1.

Au début, j'avais voulu implanter un système à base d'actions avec des coûts, exactement comme tu le décris. Après de quelques tentatives infructueuses, j'ai laissé tomber pour me tourner vers autre chose. Je retenterai peut être un de ses jours, parce que c'est quand même beaucoup plus réaliste qu'actuellement...


Dernière édition par Ailoen le Mar 4 Mar - 16:14, édité 2 fois

Ailoen
Samurai Kokushu lvl 15
Samurai Kokushu lvl 15

Messages : 100
Points : 1494
Réputation : 7
Localisation : Pyrénées

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Boucle de Jeu et gestion du temps

Message par loudo le Mar 4 Mar - 15:02

Pour Graal, il y a plusieurs phases de jeu. Les 2 premières phases (exploration et résolution des évènements) sont dans l'attente de l'action du joueur afin de continuer. Il n'y a pas vraiment de gestion de temps de ce côté. Dans la phase de combat, c'est plus compliqué, d'autant plus que c'est encore expérimental à ce stade. C'est basé sur des cycles (qui, si j'ai bien compris pourraient correspondre à tes tics) et ceux-ci sont influencés par la vitesse des personnages. J'essaierai d'y revenir quand ça sera plus abouti Smile

loudo
Samurai Kokushu lvl 15
Samurai Kokushu lvl 15

Messages : 107
Points : 1677
Réputation : 3

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Boucle de Jeu et gestion du temps

Message par Contenu sponsorisé Aujourd'hui à 13:06


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum