NwScript - Introduction

L'un des aspects les plus intéressants de la réalisation de modules est sans conteste l'utilisation des scripts. Il est en effet possible de programmer l'action des différents PNJs, monstres, éléments de l'environnement, etc. de ses propre modules, sans pour autant obliger le créateur à être le MD de l'ensemble des parties.

Qu'est ce qu'un script?

NWScritp est un langage de programmation spécifiquement développé pour Neverwinter Nights par Mark Brockington, l'un des développeur du jeu. Bien que ce langage soit inédit stricto sensu, il est néanmoins basé sur des principes utilisés de longue date dans de nombreux systèmes de programmation (langage C++ ou Java, par exemple).

NWScript (en tant que langage de programmation) peut être défini comme un "ensemble d'instructions qui ordonnent au moteur du jeu d'effectuer certaines opérations". Un script pourra alors être considéré comme un petit programme développé en suivant les "règles" strictes de ce langage de programmation dans le but de réaliser des actions visibles dans le jeu (par exemple, quand un personnage marche sur un pont piègé, il déclenche le lancement d'un sort de flèches enflammées).

Ainsi, NWScript est un langage dit "orienté objet". C'est à dire que les "objets" (voir le glossaire ci-dessous) sont la base de ce langage de développement. Les scripts peuvent être attachés aux "objets", afin d'interagir avec les autres "objets" de leur environnement.

Le second élément important d'un programme orienté objet est la notion "d'événement". Pour que vos scripts ne se déroulent pas sans cesse ou à un moment inopportun, vous devrez déterminer quand ou dans quelles circonstances votre script doit s'exécuter. C'est le propre de "l'événement". Pour reprendre l'exemple cité ci-dessus, l'événement sera le fait, pour le personnage, de marcher sur le pont. Mais on peut imaginer d'autres types "d'événements", plus temporel. Par exemple, chaque jour à 23h00, les commerçants d'une cité peuvent fermer boutique. L'action d'un personnage n'est pas nécessaire au déroulement du script.

Comparatif

A quoi ne peut on pas assimiler, le langage NWScript :

  • Scripts de personnage de Baldur's Gate I et II : les scripts de personnages que l'on pouvait déjà développer dans Baldur's Gate 1 ou 2 pour personnaliser l'attitude de ses personnages sont également "orienté objet", mais s'avèrent bien moins puissant que les scripts de NWN. Les scripts de BG ne s'applique qu'aux personnages, alors que ceux de NeverWinter Nights peuvent s'appliquer à tous les éléments (objetct ) du jeu.
  • Langage C, C++ : les programmes en C, puis C++ sont totalement orientés "objet" (leurs fonctions premières). Ils intégrent cependant des éléments complexes non accessible dans NWScript. Un programmeur en C, même s'il dispose des bases pour appréhender le système de scripts de NWN pourra être déboussolé par l'absence de fonctions importantes.

A quoi peut on assimiler, le langage NWScript :

  • Java : la programmation en JAVA est une évolution du C++, développé par Grosling, un programmeur de SUN Microsysteme. Pour beaucoup, Java est un langage de développement plus souple et utilisable plus facilement que C, puis C++. D'après Marc Brockington, le créateur de NWScript, son langage est très proche de Java (un certain nombre d'extensions similaires), mais a été simplifié et n'en n'intégre pas tous les paramêtres.

Glossaire 

Evénement : un "événement" est un élément susceptible d'exécuter un script. Par exemple, dans un script qui a pour but de faire dire à un personnage qu'il est heureux de votre PJ, et de lui sourire. "L'événement" sera la rencontre des deux personnages. Dès que le PNJ croise votre personnage, automatiquement et de façon systématique, il lui récitera sa réplique jovial. De même, lorsqu'un personnage déclenche sur un piège, l'événement est le fait de marcher sur la zone réactive qui constitue le piège.

Objet (object ) : un objet est tout élément susceptible d'être interprété par un script. Un 'objet' peut être un parchemin de sort (le script associé pourra être le lancement d'un sort), un personnage non joueur (devant réciter une réplique à un moment prédéterminé, ou toutes autres éléments.

Réactions


Personne n'a encore réagi. Soyez le premier.

Que pensez-vous de Neverwinter Nights ?

127 aiment, 12 pas.
Note moyenne : (147 évaluations | 4 critiques)
8,7 / 10 - Excellent

158 joliens y jouent, 1074 y ont joué.