Dernière mise à jour : 22/06/2017 à 15h37

Current Project : ...

Index des tutoriaux

Les cartes scriptées


Je parle souvent de cartes scriptées pour parler des cartes de jeu en solo très linéaires, ou pour les cartes multijoueurs comprenant de nombreux éléments fortement planifiés.

Les cartes scriptées sont en général des cartes linéaires, où de nombreux événements entourent le joueur : des choses se passent, des objets se déplacent, des gens meurent, des bruits se font entendre. Le problème des cartes scriptées est que la surprise, au rendez-vous lors de la première partie, n'est pas présente les fois suivantes. D'où l'importance d'avoir des événements vraiment éphémères et spectaculaires afin que le joueur ait envie de refaire la carte en revoyant les mêmes choses, en assistant aux mêmes éléments. Le meilleur moyen de coller le joueur au fond de son siège reste malgré tout de prévoir de nombreux événements extérieurs optionnels : lorsque vous scriptez lourdement une carte avec un très grand nombre d'événements, le joueur traverse généralement la map, déclenchant les événements les plus nécessaires qui sont sur son passage et permettent le déroulement de la partie, mais en ratant en général les subtilités de votre niveau. C'est là qu'il faut être fin.

La différence entre votre carte et celle d'un mappeur moins sourcilleux se fera au nombre d'éléments optionnels que le joueur pourra déclencher s'il prend le temps d'explorer la map. Les événements scriptés sont très peu employés dans les jeux comme UT2004 ou UT99, mais ils peuvent être tout de même implémentés, à condition de servir le jeu : leurs modes multijoueurs sont si rapides que les joueurs ne prennent pas la peine de s'arrêter lorsqu'ils déclenchent des événements optionnels. C'est la raison pour laquelle les parties les plus fortement programmées des maps de UT2004 sont en général les conséquences des objectifs dans les maps Assaut : le bombardement aérien de AS-Convoy, l'explosion des tubes de données, accompagnée de force particules et effets sonores dans AS-RobotFactory... Ces événements sont inévitables et doivent donc être très impressionnants.

L'une des meilleures cartes scriptées qui ait vu le jour sous Unreal est Liberation of Na Pali (Episode 1), par Steve "Roswell" Farrow, en 1998.

Dès le lancement du jeu, le joueur est pris dans un tourbillon d'événements dont va dépendre sa survie immédiate : débutant à bord d'une navette en perdition, il s'écrase sur une plage, se blesse, s'extrait de l'épave. Le traducteur universel l'informe que son matériel est hors-service. Une navette étrange, visiblement à sa poursuite, survole la carcasse de son véhicule, l'illumine de ses phares, mitraille l'épave d'une volée de roquettes, puis s'échappe.
Il s'agit d'un des rares éléments indispensables de la carte. La majorité des événements suivants ne sont qu'optionnels. Le joueur peut décider ou non de s'approcher d'un arbre, auquel cas il verra à l'horizon une autre navette s'écraser dans la mer, d'où s'échappera un cadavre. Il peut décider ou non de déclencher les cantines extra-terrestres, auquel cas il verra la fabrication d'un pack de santé : un NaliCow est amené sur un tapis roulant, pulvérisé, haché, puis disparaît dans un convertisseur d'où tombent des packs de soins. Mais ce n'est pas tout : lorsque le joueur répète la séquence, un message l'informe que les suppléments ne sont pas autorisés. Prenons un autre exemple :


Séquence scriptée

Le joueur débute la partie en haut à gauche, entre les caisses et la falaise. Devant lui s'ouvre un passage menant aux mercenaires ainsi qu'au pistolet à dispersion. Ce dernier occupe le champ d'une gâchette qui déclenche le passage d'un vaisseau dans le ciel, qui va à sont tour bombarder une partie du champ de bataille. Cette séquence est parfaitement inutile et si le joueur baisse un peu la tête, il se peut même qu'il ne la remarque pas. Tout autour de lui, des messages destinés au traducteur universel sont éparpillés sur les caisses, les ordinateurs de campagne, les cadavres, les armes qu'il ramasse. Il est à parier qu'il n'en verra que la moitié. Derrière les caisses devant lesquelles il commence, trois mercenaires discutent activement devant un ordinateur planté.

Un peu plus loin, le passage d'un bombardier mercenaire sera, lui, d'une importance capitale :


séquence scriptée capitale

Ici, le joueur verra soudain un vaisseau émerger de derrière les montagnes et bombarder la tour qui explosera violemment en projetant les restes de ses occupants dans les environs. Le joueur ne peut pas manquer cette scène puis qu'il est obligé de passer par cet endroit. De plus, il peut être tué par les débris de la tour si ceux-ci l'écrasent. Quel intérêt ? La scène est impressionnante. Si le joueur rejoue cette carte, il cherchera dans le ciel d'autres événements de ce genre. Les événements importants doivent servir à mettre le joueur en éveil.


Script simple

Ce genre de petite scène est très facile à mettre en place sous UnrealEd 1.0 : deux Skaarjs sont en face d'ordinateurs. Grace à une simple propriété (bButtonPusher : Vrai), ils semblent manipuler les données à l'écran. Le joueur a peu de raison de s'approcher de la tour, mais s'il le fait et qu'il regarde par l'une des meurtrières impénétrables, il verra à l'intérieur des Skaarjs en plein travail : ils sont animés, parlent entre eux etc. Ces événements montrent au joueur que le monde évolue autour de lui sans qu'il n'y soit pour rien et ajoutent du réalisme.
Dans AS-RobotFactory, pour UT2004, plusieurs vitres laissent voir des chaînes de montage sur lesquelles des pièces de robots (des particules émises par un MeshEmitter), sont alignées sur des tapis roulants (de simples static-meshes à texture défilante). De nombreux mappeurs parmi les plus attentifs ne remarquent ces petits détails que lorsqu'ils la lancent en joueur unique pour observer la construction. Ce sont ces événements qui font de la carte un tout à l'air vivant et non pas seulement un ensemble de pièces sans but dans lesquelles les guerriers se battent.

Une autre solution simple pour ajouter de la vie réside dans l'utilisation des sons scriptés. Très simple à mettre en place, ce système permet de donner un air vivant au niveau. Dans UnrealEd 1.0 et 2.0, le meilleur moyen était de placer quelque part un DynamicAmbientSound qui déclenchait aléatoirement un des sons qui lui étaient attribués.
Dans UT2004, ce genre de chose peut être fait également : la meilleure solution est de placer un trigger activant une scripted sequence qui jouera à chaque fois un son différent. La scripted sequence remplace en effet un grand nombre d'actors des anciennes versions du moteur en permettant de gérer soi-même les conditions et les effets du déclenchement. Voici des exemples :


Scripts Sonores

Voici la liste d'actions de la Scripted Sequence:


Actions Sonores

Ce genre de séquence permet d'anticiper le passage du joueur et de définir à chaque passage un son différent. Par exemple un son d'oiseau différent à chaque fois que le joueur passe à proximité d'un même arbre. En définissant assez de sons et en ajoutant une dernière action qui relance la séquence à zéro, on peut obtenir un résultat qui a l'air complètement aléatoire mais qui est en réalité très planifié.

Sous UnrealEd 1.0 et 2.0, cela se passe de manière plus simple. Le DynamicAmbientSound activera tout seul une suite de special events :


DynamicAmbientSound Sonores

Tout les X secondes, X étant compris entre 5 et 10 dans notre exemple, le DynamicAmbientSound aura 60% de chances de déclencher l'un des 9 sons de sa liste. À chaque son lancé, il passe au suivant. On peut d'ailleurs faire en sorte qu'il soit activé par défaut et qu'il revienne au premier son une fois le dernier lancé.

En résumé : prévoyez toujours de nombreux événements « inutiles » ou discrets dans vos maps, cela permet de redécouvrir le niveau à chaque partie en entretenant l'intérêt. Un jeu comme Unreal ne serait pas intéressant sans la grande quantité d'événements optionnels et de salles cachées qui le caractérisent. Ces éléments créent une ambiance et l'impression d'un monde dans lequel vous interrompez la vie quotidienne de personnages crédibles, au lieu de parcourir un labyrinthe dans lequel de nombreux robots vous attendent en embuscade de manière incompétente. De même, un jeu comme Deus Ex pourrait s'en tirer grâce à son scénario, mais les nombreux choix différents, les nombreuses sous-quêtes qui marquent la progression, lui permettent d'accéder à la quasi perfection.


Note : le niveau visible sur les screenshots n'est pas Liberation of Na Pali : Il s'agit d'un de mes travaux personnels, abandonné depuis.

2005-2016, by Hellkeeper.

Valid XHTML 1.1 CSS 2.1