Celà fait longtemps que je veux réaliser un jeu du royaume, c'est à dire un jeu où l'on gère un domaine quelconque (oui, c'est le nom originel de ce genre de jeux). Eh bon, après environ 25 ans, me voilà à l'ouvrage.

dimanche 5 février 2012

Faire accepter les mods par le jeu

Vu le travail de cette semaine (un seul jour de congé : Aujourd'hui dimanche, et encore pas mal de boulot "à la maison" - et noté, qui plus est), j'ai fait très court.

Un de mes buts principaux est de rendre Ratsodie parfaitement modable. Vu que javascript n'a jamais été prévu pour lire ou écrire des fichiers (il y a bien les activeX, mais sous Linux, c'est un coup à invoquer un démon sous ma chaise).

Le principal problème que je rencontre est que je voudrais que le script en cours lise des données du genre "carte=oui" dans le fichier ciblé, et mette ça dans une variable pour que la suite du script l'utilise (un autre problème est d'obliger le script js à attendre que la lecture du fichier externe soit terminée, et là c'est comme demander la lune apparemment).

Je suis en train de jeter un oeil à AJAX/JSON. Après tout, si JS peut demander une action à un serveur, il me semble logique qu'il puisse se contenter de demander un fichier texte déjà créé, non ?

Grr.

Enfin, quoiqu'il en soit, La "modabilité" de Ratsodie commence par le plus simple : Il est désormais possible de charger des graphismes différents selon le mod.


D'abord, j'ai commencé par concentrer tout ce qui concerne précisément les données du mod au début du script, avant le moindre calcul : Cartes des terrains, des forêts, liste des fleuves, taille nord-sud et est-ouest de la carte, et taille désirée pour l'affichage de la carte.

Ce sont toutes ces données que je cherche à mettre dans un fichier à part, que Ratsodie chargerait au début du jeu.


Ensuite, une variable indiquant le nom du mod désiré :

var mod="nomdumod";

(tiens, Blogger ne met plus le code de mise en forme autour du texte, mais directement le résultat. C'est bien plus pratique, faut admettre).

nomdumod correspond au nom du répertoire où se trouve le mod. Le jeu "standard" livré avec Ratsodie s'appelant simplement "Ratsodie", le répertoire où il se trouve s'appelle également "ratsodie".


Ensuite, le code de Ratsodie proprement dit.

Pour forcer Ratsodie à aller chercher les images dans le bon répertoire, les lignes indiquant le src (source) ont été modifiées comme suit :

case1[i3+"*"+j3].src=mod+"/terrain/"+ncase;

En clair, devant "ncase" (qui contient le nom de l'image à afficher), je rajoute la variable "mod", qui contient le répertoire du mod en question, et le texte /terrain/, qui ajoute entre les deux le nom du sous-répertoire du même nom.

Je préfère, en effet, ranger les différents graphismes dans des sous-répertoires distincts, afin d'éviter d'avoir au final des milliers d'images différentes au même endroit.








Aucun commentaire:

Enregistrer un commentaire