logo de la page sur libstory

À propos

Le but de cette bibliothèque de fonction est d'avoir tous les mécanismes nécessaires à la manipulation d'une histoire interactive dans le cadre d'un jeu (mais si quelqu'un a d'autres idées, je suis toute ouïe:).


Par histoire interactive, on peut prendre comme exemples les jeux d'aventure (les King Quest et les Leisure Suit Larry de Sierra ou encore les Monkey Island de Lucas Arts). Mais d'une manière plus large tout type de jeu où le joueur doit interagir avec une histoire.

qu'est ce qu'une histoire ?

Oublions un peu nos ordinateurs et lançons nous dans la réflexion qu'amène une telle question. Dans un premier temps, on peut aisement remarquer qu'une histoire s'inscrit obligatoirement dans un temps et un espace (qu'ils soient absolu ou non importe peu). Le caractère interactif amène à essayer d'interférer avec le cours de l'histoire. Ces essais visant à trouver les évènements permettant de changer son cours. On peut donc réduire une histoire à une suite d'évènements.


Un évènement est assimilable à une action se produisant dans un contexte donné et généralement, là où il y a une action, il y a une réaction (ou plusieurs).


Une action est un verbe suivit de paramètres qui peuvent prendre différentes forme (un acteur, un accessoire, un élément du décor, etc.).


Une réaction est aussi un verbe mais suivi d'un seul paramètre.


Le contexte (qui est un ensemble de circonstances) permet de rattraper les notions d'espace (un lieu) et de temps (un moment) évoquées au début de la réflexion et de les intégrer dans le mécanisme de gestion d'histoire. De plus, il y a des cas où des évènements dépendent d'autres évènements ; ce système de dépendance est aussi géré par les circonstances.

Choix "technologiques" ?

Je me tate entre du C et du C++ car il n'y a pas de réel besoin des concepts objet mais la structuration s'en rapprochant...


Pour ce qui est du stockage, le XML (via la libxml) convient. En effet, il est intelligible et est manipulable au travers d'outils existants. En revanche, il ne sera utilisé que pour le stockage, le chargement se chargeant de les convertir en une représentation plus facilement/rapidement manipulable.


Avancement ?

Sont fait :

À faire :

Moins prioritaire à mes yeux, donc au point mort.