mpattyn / rpg

Random Plot Generator
GNU General Public License v2.0
0 stars 2 forks source link

Qu'est-ce que je peux faire pour aider ? #26

Closed claire-rivoire closed 10 years ago

claire-rivoire commented 10 years ago

Je dois bien avouer que je suis à la ramasse, et c'est pas faute de vouloir aider, mais je sais pas quoi faire. J'ai bien pensé a rajouter des choses dans Character et/ou NPC pour faire un BDI, mais j'ai peur d'interférer avec ce que vous êtes en train de faire, ou tout bêtement de faire n'importe quoi (je suis pas trop sûre de tout comprendre à la direction que vous voulez faire prendre à ce jeu). Qu'est ce que je peux faire ? Sachant qu'il faut aussi livrer un rapport, et un manuel utilisateur, vous voulez que je m'y mette ? bon le manuel utilisateur devra sûrement attendre que il y ai quelque chose qui marche, mais ... Autre question, on essaye de se voir avant lundi ? (il faut rendre ça avant 9h du mat', alors c'est sûr qu'on va pas filmer la vidéo de démo lundi matin !) si oui quand ? moi normalement j'avais prévu d'être a Rouen dimanche à 18h (oui je sais c'est tard ...) donc si il faut que j'arrive plus tôt, j'aimerais bien le savoir à l'avance. Vous êtes dispo quand vous ?

Pierre-Sassoulas commented 10 years ago

Au niveau du monde et des entités on peut pas travailler à 4 dessus. Mais ce n'est que la base du logiciel et il reste à faire la partie IHME. Je penses qu'il faudrait que tu fasse l'IA des NPC (BDI ?) en suivant la bibliographie que vous avez fait avec Maxime. Je n'ai pas l'impression que toutes les parties aient étés implémentés.

Pour le manuel utilisateur... je sais pas trop ce qu'on peut mettre dedans mais c'est sur qu'il y'a un squelette latex à faire dans tous les cas. Enfin c'est secondaire par rapport à avoir un programme qui tourne. Par contre le rapport, la conception et la présentation sont importante.

Moi aussi je rentre à Rouen tard le dimanche, mais la vidéo je penses qu'il n'est pas nécessaire d'être 4 pour le faire.

azuryus commented 10 years ago

Pareil, d'habitude je rentre assez tard le dimanche...

Il me semble avoir entendu dire qu'on n'était pas obligé de rendre la présentation le lundi, donc on peut encore la préparer après... et du coup, la vidéo je sais pas ?

Je veux bien commencer à faire ce que j'ai dit pour l'IA des NPC...? Il faudrait aussi faire la génération du monde non ?

Pierre-Sassoulas commented 10 years ago

Il reste à faire "Génération du scénario de base", "MJ qui adapte le scénario aux actions imprévus" et "IA des NPC". Pour l'instant le monde génère le type de terrain, et on peut ajouter des personnage et des items dedans, et les bouger. Les personnages ont un sexe et les entités ont des Connaissances de manière automatique et peuvent discuter et échanger des Connaissances mais ce n'est pas automatique (Je penses que c'est le rôle de l'IA des NPC de les faire discuter).

Plus précisément ce qui est fait :

Partiellement fait :

A faire :

Nope :

claire-rivoire commented 10 years ago

Pour répondre à sylvain, si on se base sur l'énoncé, il parle pas de rendre la présentation lundi,( donc ça correspond bien à ce que tu as entendu) mais la vidéo, il en parle. Alors je pense qu'il vaut mieux faire quelque chose, quitte à la refaire pour la présentation de mercredi. Qu'est ce que tu compte faire pour l'IA ? pour le moment la classe NPC est quasi-vide, c'est la dedans qu'on fait le BDI non ? Je vais déjà compléter la partie conception du rapport avec les diagrammes.

azuryus commented 10 years ago

Ok, donc oui, faudra faire la vidéo...

Je vais commencer à faire ce que j'ai dit là https://github.com/mpattyn/rpg/issues/22#issuecomment-31411611

claire-rivoire commented 10 years ago

Ouais, c'est bien ce que je pensais. >< je dois t'avouer que la gestion des thread, ça me pose problème. Mais comme c'est ce qu'il y a dans la correction de Pauchet ...

azuryus commented 10 years ago

Y'a absolument rien de compliqué !! Suffit que la classe NPC implémente Runnable et possède la méthode run(), et de faire new Thread(new NPC()).start(); Mais je vais le faire :)

claire-rivoire commented 10 years ago

Ok, si tu veux. de toute façon tu te base sur la methode run de la correction de Pauchet ? c'est ce que j'aurais fait moi.

azuryus commented 10 years ago

Oui, bah c'est à peu près ça... Après, pour l'instant, y'a pas de plan d'actions, donc il fera rien... Pour commencer je pensais faire que les PNJs, dès qu'ils voient un nouveau personnage dans leur champs de vision, ils vont le voir pour augmenter leurs connaissances ? Mais c'est un peu léger...

Pierre-Sassoulas commented 10 years ago

En fait le but réél c'est qu'il suivent leurs désirs.

Après ce qu'on met dans les désirs doit influer ce que font les PNJ.. Effectivement, ils peuvent aller discuter avec les autres PNJ. Il peuvent aussi essayer d'amasser des objets pour augmenter la value de ce qu'il transporte. Créer des objets de valeurs, amasser de la valeur, discuter avec un personnage de sexe x, etc.

Derrière il faut que desires suivent... Dans Les Knowledge j'ai hésité à rendre Knowledge générique avec quelque chose de type Entity, Verb, object pour pouvoir simuler ce genre de chose dans notre HTN (Entity wantToPosess Entity, Character Posess Item etc, Entity IsAt Position.) Mais ça faisait une grosse modification sur la conception très proche de la deadline. Je penses qu'il faut viser simple (si cela suffit... si ça ne suffit pas je penses que ça pourrait être une solution).

azuryus commented 10 years ago

bah en fait, c'est ce que j'allais faire, mettre une Entity dans Knowledge, pour qu'une connaissance concerne forcément une entité particulière. J'aime bien la syntaxe que t'as utilisé, je vais voir ce que je peux faire !

claire-rivoire commented 10 years ago

J'avais pensé à faire la même chose que Pierre pour décrire les Objectives. c'est difficile sinon de demander au PNJ de faire le lier entre son Objective et des Actions sinon. mais comme tu dit, ça fait du boulot

Pierre-Sassoulas commented 10 years ago

Pour moi Verb était un enum donc pas trop compliqué au final. Ensuite je pense que si Knowledge est effectivement générique et concerne toujours une Entity ça va simplifier beaucoup de chose. (Par exemple dans Localisation on a plus besoin de faire des entrée sémantique, juste de préciser que l'object est une Position et y accéder avec les accesseur de Knowledge). Cela simplifierait bien la fonction getKnowledgeAboutEntity(Entity e) dans Entity.

Et ça permet de représenter beaucoup de chose sans forcément créer une classe exprès pour ça. Par exemple : On pourrait ne pas recoder la classe Localisation et juste faire des Knowledge(Entity, Verb.IsAt, Position(0,0)) sans coder une classe spécifique pour ça. Même si créer une classe exprès rend tout ça sémantique.

Je suppose que Sylvain va avoir fait quelque chose d'approchant donc je développe peut être pour rien ^^

azuryus commented 10 years ago

Oui, par contre je suis pas trop d'accord pour le Knowledge(Entity, Verb.IsAt, Position(0,0))... J'ai justement rendu Knowledge abstract car toute seule, elle ne veut rien dire : Les objets contenus sont différents si c'est une Location (Position), un Fact (String) ou une Possession (Entity), donc il faut bien des classes séparés.

J'essaye de faire du mieux que je peux, mais je rencontre ça et là des petits trucs gênants que je dois changer, donc ça prends pas mal de temps...