!!!Fichier de définition de zone
Une zone du jeu (carte + objets qu'il y a dessus + PNJ placés dessus, etc) sera définie dans plusieurs fichiers XML, chargés par le moteur de jeu. Il y a (dans l'ordre du chargement) :
- un fichier <*>.map, stockant les options de la map.
- un fichier <map_id>.scene, au format [dotScene], contenant les informations du décor, des objets statiques, etc.
- un fichier <map_id>.dynamic, qui liste et définit tous les paramètres changeant : PNJ, items, temps ...
- un fichier <map_id>.physics, qui renvoie vers un ou plus fichiers .structure : ces fichiers contiennent les informations sur les modèles physiques (ceux de la scène statique)
- un fichier <map_id>.dyn.physics : pareil, mais vers les .structure des objets dynamiques de la scène
Les fichiers dynamiques seront mis à jour chaque fois que le joueur sera passé sur la carte - et aura tué un PNJ, ou pris un des objets, ou juste fait s'écouler le temps. Au cours d'une partie, les <map_id>.dynamic et <map_id>.dyn.physics des zones déjà visitées sont stockées dans le dossier tmp/ du jeu.
Une sauvegarde complète, elle, se compose de :
- un fichier <*>.game disant, entre autres, la zone actuelle.
- un fichier <save_id>.player, qui contient la sauvegarde du joueur lui-même (items de l'inventaire, équipement, quêtes effectuées ...)
- tous les fichiers <map_id>.dynamic et <map_id>.dyn.physics des zones déjà visitées
Bien sûr, ce n'est qu'une esquisse.
- <nom>.map:
- taille (Nord-Sud et Est-Ouest, la map étant un rectangle)
- cycle jour/nuit activé ; si non, quelle moment de la journée est activé.
- degré de brouillard
- pourcentage de chances de pluie/neige
- degré de luminosité
- fichier de script utilisé (pour des évènements comme OnEnter() et OnExit() )
- écran de chargement
- musique d'ambiance
- <nom>.scene :
- liste d'objets du décor : arbres, bâtiments, murs ...
- <nom>.dynamic :
- liste des objets dynamiques : coffres, drops, etc. et de leurs propriétés
- liste des créatures et NPC et de leurs propriétés
- liste des zones spéciales : zone d'entrée, de sortie, de piège, etc. et de leurs propriétés
- temps actuel : pluie, neige, rien ...
- heure actuelle
Comments
Moi je trouve ca super
Moi je trouve ca super l'idée d'utiliser le xml et tout.
Mais d'aprés ce que tu dis il y aura un fichier statique et un fichier dynamique.
Or, si l'on change au fur et a mesure le deuxieme en fonction des actions du personnage, comment va faire un nouveau joueur pour avoir le morceau dynamique original pour commencer une partie ?
je pense qu'on peut
je pense qu'on peut simplement envisager qu'un noueau fichier dynamique soit créé en même temps qu'une nouvelle partie, selon un "modèle" sauvegardé lors de la création de la map ?
_baloOo, nain grateur de posterieur
Par exemple, on pourrait
Par exemple, on pourrait envisager de mettre dans un des sous-dossiers du jeu les définitions des zones (fichier statique et fichier dynamique initial).
Ensuite, quand un joueur commence une partie, il se crée un dossier personnel, contenant ses sauvegardes, et donc les fichiers dynamiques des zones qui lui sont propres : ça ne modifie pas le "fichier dynamique de base" de chaque zone.
Enfin, il y a peut-être d'autres solutions plus élégantes ...
Ou alors on crée dès le
Ou alors on crée dès le début n slot de sauvegarde pour le joueur et quand il sauvegartde il choisit un des slots (chaque slot correspondant à un fichier dynamique). Au moins il n'y a pas à créer de nouveaux fichiers. Par contre, le joueur ne pourra pas faire plus de parties que de slots, mais on peut en mettre beaucoup (genre une trentaine).
babycool je préfère la
babycool je préfère la solution de ceacy :
- elle ne limite pas le nombre de sauvegardes
- avec ta solution, il faut quand même créer de nouveaux fichiers, sinon il est impossible d'effacer un slot par la suite
_baloOo, nain grateur de posterieur
C clair mais aussi niveau
C clair mais aussi niveau espace disque ca se gatte.
On peut faire comme ceacy a dit mais ca devra prendre bcp de place quand meme. Peut etre faudrait il reflechir a une solution plus efficace en terme d'espace; mais c sur que ca compliquerais extrement les choses du point de vu programmation.
Ou alors tout simplement, comme les sauvegarde sont censé etre des fichiers texte (xml), on se contente de les compacté en format zip ou un autre fait pour compacter le texte...
Mà J du contenu de la page.
Mà J du contenu de la page.