The purpose of this project is to create a 3D real-time role-playing game in a fantasy world. What makes it different from commercial games is:- the universe is created randomly: each time you play, the game is different; the terrain is different, the
Be the first to post a text review of Awakening Demons. Rate and review a project by clicking thumbs up or thumbs down in the right column.
********************************** *** RPG ENGINE CHANGELOG *** ********************************** v0.344-2-2002 ->Gestion du sexe des personnages ("on" me l'a demand...) ->CEngine : lgre modification pour permettre aux personnages de crer leurs propres qutes et de les proposer aux autres (en pratique, seul le joueur pourra crer des qutes et les proposer des IAs, contre rcompense). v0.3321-01-2002 ->Ajout CTemplateName et CName, qui amliorent la gnration de noms alatoires. Cette gnration est base sur des modles de noms, qui sont eux-mmes bass sur des listes de types de phonmes. On peut rajouter un modle ou en enlever dynamiquement. ->Ajout CObserver et CSubject (merci Doug =o) ; CEngineClient drive de CSubject. ->Commenc l'IA ; un fichier CHANGELOG_AI lui est spcifiquement associ, pour ne pas mlanger les deux modules. ->Compltement transform l'arborescence de rpertoires v0.3213-01-2002 ->Factoris les proprits de CQuest, CEvent et CAction dans une mme classe CControlObject. BEAUCOUP de nettoyage ; la plupart des Casts tordus pour cause d'includes cycliques ont disparu, du mme coup. ->Ajout un dlai limite d'xcution pour les qutes ->Ajout un gestionnaire de personnages qui ajoute d'autres personnages lorsque leur niveau diminue. Ce gestionnaire est vraiment basique, mais il fonctionne. v0.3112-01-2002 ->Modification de CEngine pour qu'il ait accs aux qutes, et puisse vrifier leur tat ; lorsqu'une qute apparat, elle est attache un personnage choisi alatoirement (avec une concordance des alignements, quand mme), qui va pouvoir la proposer n'importe qui ->Modification de CSchedule et de CQuest pour pouvoir faire apparatre des qutes de manire temporise. Toutes les qutes ne sont donc pas disponibles immdiatement ->Corrig un bug dans CSchedule qui l'empchait de marcher =o) v0.3011-01-2002 ->Rcriture de la hirarchie de classes ; CBaseObject supprim au profit de CPersistantObject ->Sauvegarde et chargement rcursifs de tous les objets Cration d'une classe CFParser ->Cration de CPersistantObject ; CBaseObject drive de cette classe Les processus de sauvegarde sont en cours d'implmentation. ->Cration de CJumperList ->Limitation de la mmoire des personnages (CHARACTER_MEMORY_*) ; pas implment dans CCharacter car cette limitation doit se situer au niveau des processus d'intelligence artificielle ->Nouveau vecteur de diffusion pour les vnements : les rumeurs ->Planificateur de tches ajout ; il hrite de CCharacter et possde une priorit maximale. Ce planificateur joue par extension le rle d'un dieu du jeu, incarn par un personnage virtuel omnipotent, pouvant effectuer les mmes actions que n'importe quel personnage. ->Passage de paramtres aux objets synchroniss (pointeur void*) ->Amlioration du systme de rtribution de points d'exprience ->C3DObject n'hrite plus de CBaseObject, a faisait un beau merdier ->A FAIRE : - Gestion des aptitudes ; points de magie ? //- Dialogues (structures seulement) ; tendances caractrielles ? //- Attacher une qute un personnage, qui va la proposer aux gens qu'il rencontrera - gestionnaire de personnages : gnrer de nouveaux persos quand ils sont tus v0.2229-12-2001 ->CAction / CEngine : une action n'est pas forcment diffuse sa cible (ex: ACTION_StealObj) Un flag a t rajout dans l'objet CAction pour signifier s'il doit ou non tre diffus ->CEngine : gestion de toutes les actions d'changes d'objets ->CEquipment / CCharacter : gestion du poids de l'quipement et de la limite lie la force du personnage. ->CEquipment : intgration d'un nouveau type d'objets: les objets maudits Les objets magiques passent des niveaux en mme temps que leur propritaire (bonus/malus) Insertion d'un constructeur pour crer des objets par dfaut rapidement ->CEngine: corrig un bug dans la diffusion des vnements: au lieu de diffuser une rfrence vers toujours la mme zone de mmoire, on en fait une copie pour chaque CEngineClient cibl v0.2128-12-2001 ->CEngine : les actions ACTION_Use et ACTION_UseInContext sont implmentes compltement ->CEquipment / CCharacter : la mise a jour des caractristiques a t dlocalise de la classe CCharacter vers CEquipment (ncessaire pour grer les objets utiliss dans le cas d'actions de types ACTION_Use et ACTION_UseInContext) ->CEquipment: tests additionnels sur les caractristiques requises Amliorations mineures (get_Value()) ->CEngine: amliorations des attaques au corps corps et distance Prise en compte des bonus des armes utilises, de la partie du corps vise et des bonus d'armure ->La communication entre objets marche nickel; le moteur vrifie lorsqu'une qute a t termine ou non, et dans quelles conditions (succs / chec). v0.2027-12-2001 ->Le moteur de jeu est capable de trouver la qute correspondant un vnement au moment o il doit tre transmis. La diffusion des vnements est au point. ->Dbuggage des CList ; problme dans remove() rsolu. ->Optimisations dans tous les sens ; code redondant dans CEngine.cpp ->Les liens entre les classes CEvent et CQuest sont en cours d'implmentation. Le constructeur CEvent(CQuest*) est commenc. ->Hirarchie de classes : CEquipment drive maintenant de CEngineClient v0.1223-12-2001 ->Ajout une classe gnrique de client pour le moteur de jeu : CEngineClient. Cette classe implmente toutes les mthodes de communication entre objets demandes par le moteur de jeu. Modifications entraines : - un objet quelconque peut envoyer des actions au moteur de jeu (ex : un pige, un feu ...) - un objet possde un niveau de priorit : par exemple, un pige ne sera jamais test pour savoir s'il a russi a toucher un personnage, on considre qu'il le touchera toujours (niveau de priorit suprieur celui du personnage) Il a fallu rcrire la plupart des mthodes de CEngine pour vrifier le type d'objet manipul, tant donn qu'elles taient toutes implmentes pour grer uniquement des CCharacter. Note : CEngineClient hrite de C3DObject v0.1119-12-2001 ->Les deux hirarchies de classes du moteur 3D et du moteur de RPG sont lies via C3DObject, qui drive de CBaseObject. Les mthodes virtuelles pures ont t recouvertes par des mthodes vides. Les problmes d'hritage multiple ont t rsolus par des casts multiples, permettant d'expliciter au compilateur le chemin choisi dans le graphe d'hritage. Pourquoi l'hritage et pas l'agrgation d'un C3DObject dans CCharacter ? D'abord, a forcerait adopter l'une des solutions suivantes : - crer des interfaces dans CCharacter pour les mthodes de C3DObject - crer une seule interface pour rcuprer l'objet 3D et d'appeler ses mthodes (bidouille...) Et dans les deux cas, il faudrait modifier tous les constructeurs pour appeler CMoteur3D->add(). En plus, on ne pourrait plus crer un CCharacter sans qu'il soit attach au moteur 3D. Il est donc plus correct conceptuellement de modifier la mthode CMoteur3D->add() ; au lieu de retourner un C3DObject, elle prendra un pointeur C3DObject* en paramtre, et le remplira. Il faudra donc rserver la mmoire avant son appel. De plus, une classe CAnimatedObject va tre ajoute ; elle drivera de C3DObject. Au final, la classe CCharacter ne drivera plus de C3DObject mais de CAnimatedObject. v0.118-11-2001 ************************** *** AI CHANGELOG *** ************************** v0.344-2-2002 ->Termin le modle motionnel. ->Ajout une mmoire moyen terme. Les stimuli sont regroups en squences, dans cette mme mmoire. Il est ainsi plus facile de raisonner sur chaque squence, plutt que de raisonner sur les stimuli en vrac, car chaque squence est dfinie de telle manire qu'elle impose des proprits communes chacuns de ses objets. ->La mmoire immdiate n'est plus limite en taille. Les stimuli (CAI_Stimulus) possdent maintenant un facteur de priorit (fixe) et une priorit relative (variable en fonction de l'attention disponible du personnage). La priorit relative est dcrmente chaque tour de jeu, jusqu' devenir nulle ; le stimulus est alors effac de la mmoire immdiate, et l'attention accorde chaque objet est recalcule. ->Implment CAI_Observer_C. La classe CAI_Observer est maintenant une classe abstraite. Il suffit de driver de cette classe pour implmenter un nouvel observer ; par exemple, plus tard la classe CAI_Observer_AI sera implmente, et permettra de crer des personnages pouvant lire dans les penses des autres. Le personnage principal pourrait recevoir des flashs, etc... v0.3321-01-2002 ->Implment CAI_Observer et CAI_WarningMessage. La classe CAI_Observer met des signaux au personnage, chaque modification d'tat dtect. Un personnage peut ainsi en surveiller un autre (se surveiller soi-mme ; surveiller une cible ou un ami, etc...). ->Implmentation de la mmoire motionnelle ->Modle motionnel bas sur 5 motions (et leurs contraires): la peur, la colre, la tristesse, le dgot, la surprise. Il y a galement 3 motions complmentaires : la faim, la fatigue, et l'excitation. ->Implment compltement l'ordonnanceur de tches. La boucle d'IA est dcompose en tches atomiques ; chaque appel de CAI_Mind::main(), une tche atomique est ralise, et le compteur ordinal est incrment pour passer la tche suivante au prochain appel. Cela vite des ventuels problmes de ralentissement ds des boucles d'IA trop gourmandes. ->Dbut d'implmentation de la classe CAI_Stimulus. ->Dbut d'implmentation des structures lies l'IA ; rflexion sur la hirarchie de classes adopter.
Be the first person to add a text review.
Copyright © 2009 Geeknet, Inc. All rights reserved. Terms of Use
Thanks for your rating!
Would you also like to write a review?
Thanks for your review!
Get credit for your review by logging in via OpenID. Click your account provider: