IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement 2D, 3D et Jeux Discussion :

Jeu de gestion en 3D : architecture et scripting


Sujet :

Développement 2D, 3D et Jeux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 9
    Par défaut Jeu de gestion en 3D : architecture et scripting
    Salut à tous !
    Je suis actuellement en train de programmer un jeu de gestion en 3d et en temps réel, mais je suis bloqué ...
    Rapidement voici l’architecture actuelle de mon jeu :

    Il existe des objets, et des types d'objets, chaque objet possède un type. Les différentes classes d'objets (pas les types) sont "unité", "personnage", "batiment", "objet dessinable" et "tuile" (pour le sol) ils héritent tous de la classe "objet". Et de la même manière il existe des types de bâtiments, des types d'objets dessinables ...
    Pour chaque classe d'objet et chaque classe de type, j'ai fait une interface, ainsi depuis mon "GameEngine" je peux accéder à n'importe quel objet et parcourir des listes d'objets.

    Chaque unité est composée de "sous-objets dessinables" qui sont en fait des objets dessinables. Ainsi pour créer une scierie, j'ai une sous partie "batiment de la scierie" et une sous partie "scie", que j'animerais. Cela permet de rendre des animations différentes sur le même objet.
    Les classes "personnage" et "batiment" héritent toute deux de la classe "unité" qui possède ses propres attributs : vie, sous objets dessinables ... Un bâtiment possède des personnages qui y travaillent ou y habitent un personnage possède des sorts ...

    Toutes mes classes sont en place et je commence le codage des interactions entre unités. Et c'est ici que se corse le problème ... Je veux un système très modulable et donc je veux pouvoir modifier le comportement de mes unités dans des fichiers XML. Pour continuer nous allons prendre un exemple concret : une carrière de pierre. Imaginons qu'elle soit composée d'un treuil animable, d'une carriole animable, et d'une partie fixe (ce sont les objets dessinables). Trois personnages sont destinés à y travailler. J'ai donc un type de personnage mineur appliqué à trois objets différents.
    Dons mon idée, chaque objet dessinable possède différentes partie d'animation, différentes actions : une action "faire tourner la manivelle du treuil", une action "descendre dans la mine" chaque action est en fait une animation squelettale.
    Le type de personnage "mineur" possède plusieurs listes d'actions (attention ce ne sont pas des animations) une liste pour chaque mineur une liste est du style "aller vérifier s'il reste telle ressource dans l'entrepôt"/"ramener X marteaux"/"descendre dans la mine"/"attendre que tes copains soient prêts". Le type de bâtiment carrière quant à lui peut avoir des actions du style "dès que untel part fait suivre la carriole". La synchronisation des différentes unités se ferait à mon avis par des sortes de checkpoints.
    C'est ici que je bloque ... Comment structurer ces actions, prendre en compte les actions du joueur qui appuie sur tel bouton de la GUI, gérer un scripting d'AI (au niveau de l'unité mais aussi du joueur), comment gérer le déplacement des unités (une classe spéciale, ou met on le pathfinding ?), je suis perdu .
    Une autre question est : comment gérer l'animation squelettale dans Ogre ?
    ++ et merci d'avance

  2. #2
    Membre éprouvé
    Inscrit en
    Avril 2011
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 59
    Par défaut
    Pour commencer, je me demande si tu n'essaye pas d'être plus royaliste que le roi


    Dans les jeux de gestion commerciaux dont je me souviens(bon j'admet ca fait un petit paquet de temps que j'en ai pas toucher un), quand un personnage rentre dans un batiment ca déclenche une animation "travail en cours" du batiment(fumée qui s'echape d'une forge, moulin qui tourne etc...) qui n'est pas forcément calquée sur l'action réelle de chaque personnage.

    Par bien des côté la création de jeu, tiens de la prestidigitation. Le but n'est pas de faire les choses réellement devant les spéctateurs mais de faire croire des choses aux spéctateurs(ici le joueur).


    Pour décanter les choses, je commencerais à faire une chaine d'action simple avec les batiments.

    Dans le cas d'une forge.
    Le forgeron aurait comme script(enfin plutot comme machine à état):

    1. etat idle [animation glandage]
    On check de la liste des ordres du joueur
    - si vide ou non appropriés au forgeron, on continu à ne rien faire
    - si un ordre faisable par le forgeron est disponible il passe en état 2.

    2. marcher en portant les resources nécéssaires de l'entrepot vers la forge [animation associée: le personnage marche en portant un paquet]
    Calcul du chemin. Est t'on arriver à la forge?
    - oui on passe en état 3
    - non on continu à marcher

    3. travailler dans la forge [on cache le personnage]
    La personnage a t-il finit de forger son objet?
    - oui, on passe en état 4
    - non, il continu à travaller

    4. marche en portant le produit finit vers l'entrepot [animation pareil qu'en 2]
    Calcul du chemin. Est t'on arriver à la forge?
    - oui on passe en état 1
    - non on continu à marcher


    Et la forge:

    1. mode vide [pas d'animation]
    On test le nombre de personne dans la forge
    - un et plus -> on passe en état 2
    - forge vide -> on reste en l'état

    2. mode travail [animation avec de la fumée]
    On test le nombre de personne dans la forge
    - un et plus -> on reste en l'état
    - forge vide -> on repasse en état 1


    Après faut que tes objets puissent se notifier entre eux (par exemple que le forgeron puisse signaler à l'entrepot quelles resources il prend).

    Bon je ne sais pas si ca répond à la question en fait (faut dire qu'elle est vaste)


    PS: pour la question sur ogre, je te conseille de créer un topic juste pour elle dans le sous forum des moteurs 3D.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 9
    Par défaut
    J'uppe ce sujet pour avoir plus d'informations sur l'architecture même su jeu, sur le scripting et les langages possibles (je pensais au python) et sur l'animation squelettale dans Ogre3D
    Merci bien !

    ++

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/11/2007, 16h24
  2. [AIX] Gestion des erreurs dans un script
    Par f-k-z dans le forum AIX
    Réponses: 2
    Dernier message: 17/07/2007, 08h45
  3. Jeu 2D / gestion de saut d'un personnage
    Par scarface56 dans le forum Physique
    Réponses: 9
    Dernier message: 23/01/2007, 10h52
  4. Jeu de gestion en java
    Par luckyvae dans le forum Développement 2D, 3D et Jeux
    Réponses: 6
    Dernier message: 27/08/2006, 18h19
  5. Gestion de Variables dans un script
    Par John Lee dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 25/03/2005, 14h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo