Roguelike.fr
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le Deal du moment :
Cdiscount : -30€ dès 300€ ...
Voir le deal

Boucle de Jeu et gestion du temps

4 participants

Aller en bas

Boucle de Jeu et gestion du temps Empty Boucle de Jeu et gestion du temps

Message par xboxut 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 :
Boucle de Jeu et gestion du temps Editeu10
xboxut
xboxut
Ranger Arbalester lvl 13
Ranger Arbalester lvl 13

Messages : 87
Points : 4132
Réputation : 3

Revenir en haut Aller en bas

Boucle de Jeu et gestion du temps Empty Re: Boucle de Jeu et gestion du temps

Message par ZeBlob 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
ZeBlob
ZeBlob
Wizard of Yendor
Wizard of Yendor

Messages : 480
Points : 4808
Réputation : 17
Age : 26
Localisation : Dungeon of Doom

http://roguelike.fr

Revenir en haut Aller en bas

Boucle de Jeu et gestion du temps Empty Re: Boucle de Jeu et gestion du temps

Message par xboxut 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
xboxut
Ranger Arbalester lvl 13
Ranger Arbalester lvl 13

Messages : 87
Points : 4132
Réputation : 3

Revenir en haut Aller en bas

Boucle de Jeu et gestion du temps Empty Re: Boucle de Jeu et gestion du temps

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

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

Messages : 480
Points : 4808
Réputation : 17
Age : 26
Localisation : Dungeon of Doom

http://roguelike.fr

Revenir en haut Aller en bas

Boucle de Jeu et gestion du temps Empty Re: Boucle de Jeu et gestion du temps

Message par Ailoen 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
Ailoen
Samurai Kokushu lvl 15
Samurai Kokushu lvl 15

Messages : 101
Points : 4204
Réputation : 7
Localisation : Pyrénées

Revenir en haut Aller en bas

Boucle de Jeu et gestion du temps Empty Re: Boucle de Jeu et gestion du temps

Message par loudo 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
loudo
Samurai Kokushu lvl 15
Samurai Kokushu lvl 15

Messages : 107
Points : 4386
Réputation : 3

Revenir en haut Aller en bas

Boucle de Jeu et gestion du temps Empty Re: Boucle de Jeu et gestion du temps

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut


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