Je vais essayer de regrouper ici quelques conseils
pour vous permettre de bien débuter votre module et de faire quelque
chose un minimum structuré afin de vous y retrouver facilement.
Pré requis :
En premier lieu, il est important de vous familiariser
avec l’éditeur. Pour cela il y a des tutoriaux qu’on
trouve sur le net, certains sont biens faits, d’autres moins. Je
vous conseille celui de Baldurien qui est très bien fait et assez
complet. Le seul point négatif c’est qu’il est basé
sur l’éditeur en anglais, il est donc nécessaire de
faire un peu de gymnastique pour trouver la correspondance si vous avez
l’éditeur en français, mais rassurez vous, il n’y
a rien d’insurmontable là dedans.
- Tutorial de Baldurien -
Ensuite je vous conseille de lire un tutorial
sur les scripts. Même si à ce niveau il n’est pas indispensable
de savoir scripter, cela vous permettra d’avoir une idée
des possibilités des scripts. De toute manière c’est
quasiment indispensable si vous voulez faire un module intéressant
pour les joueur, alors autant s’y mettre tout de suite. Je ne me
rappelle plus très bien de celui que j'ai lu (qui était
très bien), jetez donc un oeil à celui de Baldurien.
- Tutorial de Baldurien -
Pendant qu’on est dans
les scripts, il y a deux aides lorsque l’on veut scripter :
- La colonne de droite de l’assistant
de script : vous tapé en haut dans la zone saisissable un
mot clé ou un morceau de mot clé et les fonctions
qui contiennent ce mot clé apparaissent, il vous suffit de
double cliquer sur celle qui vous intéresse pour que celle-ci
soit insérée dans votre script. Dans la zone en bas,
vous avez alors l’explication de la fonction (en anglais)
avec la liste des paramètres (c’est bien pratique ça
!).
- La deuxième chose c’est
le Lexicon, c’est un élément indispensable lorsque
vous voulez faire des scripts, en fait c’est une sorte de
bibliothèque de toutes les fonctions et constantes de NWNScript
avec des exemples, des explications, des fonctions similaires ou
complémentaires,… Enfin, un outil indispensable avec
en plus des tutoriaux, un outil de recherche (par mot clé),…
très bien fait mais en anglais !
Cet outil vous permettra en outre de retrouver les #include à
mettre pour utiliser certaines fonctions que l’on ne retrouve
pas dans la bibliothèque de base de NWNScript (zone à
droite de l’assistant de script ci-dessus cité).
Vous le trouverez en ligne sur internet ici ou en version téléchargeable
pour le consulter sur votre PC. Il en existe une version française
en ligne moins complète et moins pratique.
- Lexicon en Anglais -
Préparation du scénario :
Une fois la première
étape passée, vous pouvez vous lancer dans la création
de votre module proprement dit.
Si je peux vous donner un conseil c’est de le préparer
au préalable sur papier pour ne pas vous perdre dans des
zones qui ne servent à rien, des quêtes secondaires
qui interagissent sur la quête principale et pour ne pas risquer
d’avoir des incohérences dans les transitions de zones
et dans le déroulement de vos quêtes.
Je vous propose donc de vous concentrer dans un premier temps uniquement
sur la quête principale.
Cette méthode peut paraître un peu fastidieuse mais
elle vous fera gagner beaucoup de temps après.
Voici donc les étapes
que je vous conseille :
1 – Réfléchir
aux différentes zones en jeu : Quelles sont les grandes zones
à mettre en place (ville, village, caverne, forêt,…)
Il faut en gros définir les zones principales où vont
se dérouler les étapes importantes de la quête
principale. Faire une carte grossière en disposant les zones
les unes par rapport au autres (ça vous permettra d’avoir
une certaine cohérence dans les transitions de zones et d’avoir
un positionnement géographique de celles-ci). Il ne s’agit
pas ici de définir les maisons, les petites cavernes,…
mais uniquement les zones principales.
2 – En parallèle,
préparez les grandes lignes de l’intrigue principale.
Le but de cette étape est d’avoir une trame à
suivre lors de la création du module afin de ne plus à
avoir à se poser de question sur le déroulement de
l’intrigue :
- Comment initier l’intrigue.
- Les lieux à visiter impérativement pour faire avancer
l’intrigue.
- Les grands événements liés à l’intrigue
(mort d’un Seigneur, attaque d’un village par Gobelins,
enlèvement d’une princesse,…) et les étapes
importantes de celle-ci (rencontre avec tel ou tel NPC, découverte
de tel ou tel objet, visite de tel lieu,..). Positionnez ces événement
et étape sur votre carte, pour avoir une idée de la
chronologie « géographique » de l’intrigue.
- A ce moment là vous pouvez aussi réfléchir
succinctement à certaines sous quêtes liées
à l’intrigue (il faut retrouver la fille d’untel
pour qu’il nous aide dans l’intrigue principale, il
faut trouver tel objet pour qu’untel accepte de nous donner
une info,…). Il n’est pas nécessaire à
ce niveau d’entrer dans le détail c’est juste
pour avoir une trame à suivre lors de la création
du module.
- Vous pouvez également identifier ici les personnages principaux
de l’intrigue (Seigneur untel, Grand prêtre,…)
pour les positionner sur la carte (lieu de résidence, différentes
apparitions,…) et déterminer leur lien avec l’intrigue
(aide, méchant, info,…).
Création du module :
1 – Une fois que les
grandes lignes sont en place, vous pouvez commencer le module proprement
dit. Si l’intrigue est un peu complexe, je vous conseille
de vous concentrer uniquement sur celle-ci, sans vous occuper des
quêtes secondaires, ni de l’habillage des zones (plaçables,
créature,…) ça vous permettra ainsi de la faire
en une seule traite et ça vous évitera d’être
perdu dans le cheminement de votre intrigue principale. Ainsi vous
prenez étape par étape votre intrigue principale,
créant les zones et acteurs nécessaires et avancez
dans l’intrigue sans vous occuper de meubler les zones. A
chaque étape de votre intrigue, je vous conseille d’alimenter
une variable « d’avancement » de l’intrigue
par une valeur correspondant à l’étape terminée
(par exemple prendre la même valeur que le numéro de
"l'entrée" du journal) afin de toujours savoir
où en est le joueur, de toute manière vous aurez très
souvent besoin de savoir où en est votre joueur pour déclencher
une action ou une conversation particulière.
Vous vous retrouverez alors avec vos zones principales (assez nues)
et vos acteurs principaux. Ainsi votre intrigue sera aboutie et
bien ficelée.
2 – La quête
principale terminée, vous pouvez reprendre chacune de vos
zones pour les compléter en terme de décor, plaçables,
créatures, sons et quêtes secondaires (que vous pouvez
traiter comme des mini-quêtes : esquisse papier, acteurs principaux,…).
Vous pouvez alors créer de nouvelles zones si nécessaire
mais celle-ci n’étant pas liées à la
quête principale ce n’est pas la peine de les multiplier.
3 – Voilà votre
module est fini, il ne reste plus qu’à bien le tester,
ajouter une cinématique de début, de fin et d’en
faire profiter tout le monde.
Simple non ?
Tout au long votre dur labeur de création,
vous allez vous poser plein de questions. N’hésitez
pas à rechercher sur les forums s’il n’y a pas
la réponse à vos questions et le cas échéant
posez les, il y a toujours des âmes charitables pour vous
aider.
Codification :
Il est important de bien codifier les
noms des différents éléments de votre module
pour pouvoir facilement retrouver un dialogue ou un script quand
vous aurez une centaine de dialogue et deux à trois cents
scripts.
Pour ma part j’ai opté pour la codification ci-dessous :
1 – dialogue :
xx_yyy_prénomNPC
où |
xx
est un diminutif du module (bp pour « Boisperdu » |
|
yyy
est un diminutif de la zone (abp pour « auberge de Boisperdu
») |
|
prénomNPC
est le prénom du propriétaire du dialogue |
2 –
Script lié à un dialogue :
xx_prénomNPC_cn
où |
xx
est un diminutif du module (bp pour « Boisperdu ») |
|
prénomNPC
est le prénom du propriétaire du dialogue |
|
c
signifie « utilisé en condition d’exécution
dans un dialogue » |
|
n
est un numéro chrono |
xx_prénomNPC_an
où |
xx
est un diminutif du module (bp pour « Boisperdu ») |
|
prénomNPC
est le prénom du propriétaire du dialogue |
|
a
signifie « utilisé en action conséquente
dans un dialogue » |
|
n
est un numéro chrono |
3 – Autre script :
xx_yyy_libellé
où |
xx
est un diminutif du module (bp pour « Boisperdu ») |
|
yyy
est un diminutif de la zone (abp pour « auberge de Boisperdu
») |
|
libellé
: libre |
4 – Tag :
tNomObjet
où |
t
signifie que c’est un tag |
|
NomObjet
est soit le PrénomNom d’un NPC, soit le Nom de
l’objet |
tEntreeZone
où |
t
signifie que c’est un tag |
|
Entree
signifie que c’est le tag d’un point d’entrée
dans une zone |
|
Zone
est le nom de la zone |
tSortieZone
où |
t
signifie que c’est un tag |
|
Sortie
signifie que c’est le tag d’un point de sortie d’une
zone |
|
Zone
est le nom de la zone |
5 – Variable d’avancement :
vMissionPréomNPCEtat
où |
v
signifie que c’est une variable |
|
Mission
signifie que c’est lié à une quête |
|
PrénomNPC
est le prénom de l’initiateur de la mission |
|
Etat
signifie que c’est une variable d’avancement. |
Comme valeur je stocke la valeur de l’indice
correspondant dans l’entrée du journal, ainsi il est
facile de savoir où en est le joueur dans la quête
en question.
Codification et Réutilisation :
Il faut également essayer, dans
les dialogues, de réutiliser des scripts déjà
existant (condition d’exécution et action conséquente),
en effet un test sur une compétence, sur le sexe, sur une
quantité d’or, n’est pas spécifique à
un dialogue, on peut le retrouver dans plein de dialogues.
Par exemple, une condition d’exécution
telle que si c’est une femme pourra se coder :
xx_gen_fem_c
où |
xx
est un diminutif du module (bp pour « Boisperdu ») |
|
gen
signifie que c’est un script générique (réutilisable) |
|
fem
indique le type de test |
|
c
indique que c’est une condition d’exécution
|
Une condition sur le fait que le joueur
possède 100 pièces d’or pourra se coder :
xx_gen_100_c
Une condition sur une probabilité
de 25% d’afficher la phrase pourra se coder :
xx_gen_ale25_c
Plus les noms seront explicitent, plus
il sera facile de les réutiliser.
Test du module :
Il est important de tester votre module
afin de vérifier que tout fonctionne bien.
Je me suis longtemps posé la question : « Comment tester
ma dernière modification sans devoir tout refaire depuis
le début ? » En effet on ne peut pas repartir d’une
sauvegarde car sinon les modifications réalisées ne
sont pas prise en compte.
La réponse est toute simple en
fait, il suffit de déplacer le point de départ du
module dans la zone à tester (c’est le cercle bleu
avec une flèche rouge dedans).
Dans le cas où certaines variables
seraient initialisées sous certaines conditions dans une
autre zone, il vous suffit de placer un trigger (déclencheur)
avec un petit script qui met les bonnes valeurs dans vos variables.
Et si le joueur a besoin d’objets particuliers, il suffit
de les poser parterre et de les ramasser dans votre test.
Une fois votre test terminé, vous
supprimez le trigger et les objets posés au sol, et repositionnez
votre point de départ au bon endroit.
Voilà, vous êtes prêt
pour vous lancer dans l’aventure de la création de
module…
- Version word -