Didacticiel : créer un niveau
Chapitres de cette page
Etape n°1 - Plan directeur du niveau
Etape n°2 - Modelisation des salles
Etape n°3 - Le sol et le plafond
Etape n°4 - Les linedefs
Etape n°5 - Assigner les textures
Etape N°1 : Le plan directeur du niveau
Pour commencer, nous allons créer un niveau avec deux salles séparées par une porte qui souvrira lorsque le joueur sera à côté tout en appuyant sur la touche d'activation (généralement, c'est la barre espace). J'utiliserais Doom 2 comme version de référence, mais la seule différence avec les autres version de Doom sont les sprites (parfois) et les types de textures; la modélisation de niveau étant identique pour tout type de version de Doom (1 ou 2 ou final Doom); libre à vous de choisir une texture associée au fichier WAD. En dessous, je vous donne le plan en vue de dessus.
L'idéal,pour commencer un nouveau niveau, est de faire une ébauche sur papier, histoire d'avoir assez de recul pour la modélisation. Ce n'est pas vraiment nécessaire ici puisque le niveau est somme toute très basique et que je mettrais des images le plus souvent possible pour vous aider à vous repérer tout au long du didacticiel.
La structure d'un niveau de Doom, ce sont des objets intéragissants avec le jeu (sprites (par exemple): position de départ du(des) joueur(s) (jusqu'a quatre joueurs)), les vertex qui sont des noeuds reliant des murs entre eux; les linedefs (ou mur qui contiennent des textures variées) et les sectors qui sont les salles entourées de différents linedefs et vertex et dont les attributs sont la hauteur du sol et du plafond, les textures sol et plafond.
Vous avez peut-être remarqué que pour chaque mode (things/vertex/linedefs/sector), WinDEU affiche un "post-it" qui donne pour chaque élément sélectionné et associé au mode d'édition les informations relatives à l'objet. Pour le mode "Things", on peut voir le numéro de la sprite, ses coordonnées, le type de sprite (joueur 1, fusil, ennemi, kit médical, etc...). Pour le mode vertex, le numéro du vertex et ses coordonnées. Pour le mode linedefs, beaucoup d'informations (je ne vais pas en expliquer le sens maintenant, ce serait trop long; j'expliquerais progressivement les information du post-it; les principales dans ce tutorial, puis un approfondissement des dernières infos dans des annexes). Pour le mode sector, également des informations assez fournies, j'y reviendrais. Si vous ne voyez pas de post-it, c'est que l'option de son affichage a été désactivée. Pour ce faire, cliquez "Window" puis "Show info windows" ; ou plus court : Alt-F7.
Etape N°2 : La modélisation des salles/sectors - l'architecture de tout niveau
Pour l'ordre des étapes de création d'un niveau, il faut commencer par la structure. D'abord les vertex qui relient les murs entre eux. Puis après avoir placé les vertex on créer directement et en même temps à la fois les murs et la salle (respectivement linedefs et sector). Pour placer les éléments, WinDEU fourni comme option une grille comme repère. Pour jouer sur ses différents pramètres, cliquez sur Window dans la barre des tâches. Vous pouvez voir les paramètres avec les différentes touches de raccourci associées. L'option Snap to grid permet de placer TOUT les éléments du niveau sur la grille exactement. Pour afficher la grille: Show grid. Pour pouvoir ajuster la dimension de la grille : Increase grid scale et Decrease grid scale. Toutes les informations sur les réglages de la grille sont affichées en bas à droite de la fenêtre de WinDEU. Les quatres modes d'édition (souvenez vous du chapitre précédent sur les quatres modes d'édition de WinDEU) sont accessibles par le menu Modes avec en regard les touches de raccourci.
Commençons avec la salle numéro 1. Voici ci-dessous la capture d'écran tel quel lorsque les vertex sont placées. Pour placer un vertex, placez le curseur de la souris où vous voulez qu'il soit et appuyez sur la touche "inser". Notre niveau n'est pas très grand, donc on peut d'ors et déjà placer toutes les vertex. Ci-dessous une capture d'écran de ce que à quoi ressemble notre niveau, vertex toutes placées (pour passer en mode vertex appuyez sur la touche V).
Maintenant, créons les linedefs. Pour ce faire, il faut d'abord sélectionner seulement les vertex qui seront utilisés pour la salle. Un point important : Il faut sélectionner les vertex dans le sens des aiguilles d'une montre. Un exemple ci-dessous:
Une fois les vertex sélectionnés, appuyer simultanément sur les touches SHIFT INSER et vous devriez avoir quelque chose à l'écran comme ci-dessous à gauche. A ce stade les linedefs sont créés mais pas la salle. Appuyez alors simplement sur INSER et vous avez maintenant une salle ordinaire (ci-dessous à droite). Entre le SHIFT INSER et INSER, il ne faut pas faire d'autre action (cliquer ou appuyer sur un touche).
Il faut ensuite faire de même avec les 2 autres salle (y compris la porte qui reste une salle. Sélectionnez les vertex de la porte dans le sens des aiguilles d'une montre (image ci-dessous N°1), faites de même c'est à dire : SHIFT-INSER puis INSER. A la fin vous devriez avoir un niveau tel la troisième image ci-dessous.
Etape N°3 : Le sol et le plafond
Le sol et le plafond donc; Pour régler ces paramètres, il faut passer en mode sector. Appuyez sur la touche S, ou dans la barre de menus : "Modes" puis Sector. Placez le curseur par exemple sur la salle qui accueillera la position de départ du joueur 1 (celle de gauche). Vous avez sur le post-it le numéro de la salle; le niveau du sol Floor height fixé à 0, ce qui est bien (on y touchera pas); la hauteur du plafond Ceiling height... bon également. Les deux lignes suivantes : respectivement la texture du sol puis celle du plafond. En dessous, le niveau de lumière dans la salle. Après le type de salle (une salle dite secrète ou une salle qui fait perdre quelques points de vies au joueur à une intervalle régulièrement, comme une salle qui possède une texture de poison ou une salle dont la lumière clignote). Et enfin l'étiquette pour relier la salle à une Linedef (pour par exemple relier à une linedef qui possède une texture de bouton/d'interrupteur à la salle en question pour que l'on ait un bouton (la linedef) permettant d'ouvrir une porte (le sector en question).
Comme je vous l'ai dit, il n'est pas nécessaire de toucher au niveau du plafond et du sol... sauf pour la porte. La porte sera ici fermé, donc le niveau du sol Floor height sera de 0 et celui du plafond Ceiling height de 0 également. Une fois dans le jeu, lorsque vous ouvrirez la porte le niveau du plafond augmentera progressivement pour atteindre le niveau du plafond. Pour régler le niveau du plafond de la porte, passez en mode sector. Par défaut, WinDEU attribue le niveau du sol à 0 et celui du plafond à 128. Ce sont généralement des réglages corrects qui ressemble à des sectors/salles équivalent à une pièce de votre maison par exemple. Pour la porte, c'est différent comme je vous le disais quelques lignes plus haut. Faites un clic droit sur le sector de la porte et cliquez sur "Edit sector" dans le menu contextuel. Ensuite repérez la case "Floor height" (niveau du sol), qui est normalement fixé à 0. Si ce n'est pas le cas, mettez 0 (et par suite logique, vous allez devoir faire de même avec les autres secteurs:tout les "Floor height" à 0). Puis dans la case Ceiling height remplacez la valeur par défaut (qui doit être de 128) par 0 (Assurez vous que vous êtes en train d'éditer le sector de la porte, sinon le niveau du plafond dans notre exemple doit être fixé à 128. Puis, pour valider les changements cliquez sur OK.
Attributs des linedefs et textures
Avant d'aborder ce chapitre, je tiens à expliquer certains aspects des linedefs et leurs foncionnement dans les niveaux:
Dans les niveaux de Doom/WADs et plus précisement les textures des linedefs, il y a trois types de positionnement pour les textures des murs:
Le normal wall
L'upper wall
Et le below wall
Voyons ces trois catégories en détail:
Le plus courant est le normal wall. Ce type de mur se rencontre à chaque fois qu'il délimite une salle et une salle seulement. Donc un mur entre matière insondable et vide d'une pièce. Le normal wall est aussi utilisé pour afficher des textures semi-transparentes qui font la jointure entre deux sectors /salles, comme une grille ou un mur de végétation. Sur l'image du dessous, on peut voir les 3 types de positionnement : En vert, le Upper wall, en bleu le Below wall et en jaune, un Normal wall
Below wall et Upper wall
Parfois, la différence du niveau du sol et/ou du plafond entre deux sectors voisins, induit une marche au sol ou au plafond. Le Below wall est donc la texture du bas qui lie deux textures du sol de chaque salle contigües. Le Upper wall est donc l'équivalent du plafond.
Si vous regardez la fenêtre d'édition d'une Linedef (Mode linedef et clic droit sur l'une d'entre elles puis Edit linedef(s) dans le menu contextuel), vous pouvez voir qu'il y a deux colonnes de textures, chacune disposant de ses propres Upper, Normal et Below wall. Pour un mur ou une linedef assigné à seulement une salle, il n'y aura qu'une colonne de mur/wall different : First ou Second sidedef. Voici ci-dessous, une capture d'écran d'une fenêtre d'édition d'une linedef à deux côtés:
Et voici en dessous une capture d'écran à l'image de la fenêtre d'édition des linedefs
En mode linedef, il est recommandé d'orienter la tangente d'un mur vers le côté le plus important. Par exemple, pour un pan de porte, on préférera avoir le First sidedef ayant une texture de porte dans l'emplacement Upper wall de la First sidedef. Pour les murs/linedefs n'ayant qu'un côté, il y a moins de souci car, lors de la création d'une salle (SHIFT-INSER puis INSER), les linedefs sont automatiquement orientés comme il faut, soit la tangente qui pointe vers l'espace de la salle. Si par hasard, vous voulez retourner la tangente d'une linedef, passez en mode Linedef et cliquez avec le bouton droit de la souris sur la linedef et choisissez dans le menu contextuel Flip linedef. Ah oui, les touches importantes pendant l'édition d'un niveau : Pour basculer en mode Things, appuyez sur la touche T; pour le mode Vertex :V.Linedefs : L et sectors, S
Assigner les textures
Ceci étant expliqué, nous allons maintenant assigner les textures aux murs/linedefs de notre niveau. Nous allons directement prendre un raccourci, c'est à dire que nous allons assigner une même texture à un groupe de linedefs. Pour cela, nous allons sélectionner plusieurs linedefs puis choisir dans le menu de ce mode d'édition la texture qui s'appliquera à tout le groupe. Mettez-vous en mode Linedef et sélectionnez une linedef en cliquant dessus avec le clique gauche. Ensuite en maintenant la touche SHIFT enfoncée, cliquez sur tout les murs de la salle sauf le linedef de la porte. Vous devriez avoir quelque chose comme l'image ci-dessous:
Remarquez, sur le post-it First SideDef, que le Normal texture nous indique qu'il y a déjà une texture qui s'appelle GRAY4.
En fait, à chaque fois que vous créez un sector, WinDEU assigne directement la texture par défaut. Vous pouvez modfier ces options en allant dans le menu suivant : Edit >> Preference. Vous pouvez notamment changer également les textures par défaut du sol, du plafond, la hauteur du sol et du plafond par défaut etc...
Revenons-en à nos linedefs: cliquez avec le bouton droit (groupe de linedefs sélectionnées) dans une partie de la zone de modélisation et sélectionnez Edit Linedef(s) dans le menu qui apparaît. Pour l'instant, ce qui nous intéresse dans la fenêtre LineDef Edit, c'est le Normal wall de First Sidedef. Ce doit être GRAY4. Pour changer de texture, nous allons sélectionner une texture par son appellation dans la colonne à droite de First SideDef. Le souci, c'est qu'en effet on a que le nom, pour choisir la texture. Double-cliquez sur une nomination de la texture, et hop, magie ,la texture apparaît dans une fenêtre. Par exemple, j'ai sélectionné la texture BIGBRIK1 ci-dessous. Pour parcourir la liste assez longue des texture, vous pouvez agencer les fenêtres avec l'image texture un peu à gauche et la fenêtre d'édition des Linedefs à droite, et recliquez sur le nom de la texture dans cette dernière et avec les flèches haut et bas parcourez la liste pendant que l'image change.
Sélectionnez une texture de votre choix puis cliquez sur le double chevron surligné en rouge sur l'image ci-dessous:
Cliquez sur OK et normalement, une autre fenêtre devrait apparaître:
En fait, comme cela est mentionné dans l'en tête, cette fenêtre apparaît à chaque fois que l'on sélectionne un groupe d'éléments associés au mode d'édition (Plusieurs sprites pour le mode Things, ou plusieurs sectors en mode sector, etc...). Dans notre cas nous voulons assigner la texture Normal wall à tout les Linedefs sélectionnés. Donc cochez First Sidedef dans la zone Linedef attributes puis NormalTexture dans la zone First Sidedef Data, puis cliquez sur OK. Maintenant, en vous baladant de Linedef en Linedef dans la zone de modélisation vous pouvez vérifier sur le post-it référence qu'en effet toutes les linedefs précédemment sélectionnées ont bien votre texture personnelle en Normal Wall. Maintenant, vous pouvez pouvez réitérer avec la deuxième salle et puis, mettre une texture à la porte, attention cette fois-ci, il faut mettre la texture de la porte dans la zone Above wall et non pas Normal wall. En basculant en mode sector, vous pouvez aussi changer les textures du sol et du plafond de la même manière (à certaines choses près). Voilà pour les textures. Avant de passer à l'étape suivante vérifiez que le niveau du sol et du plafond sont appropriés. Pour ce faire, passez en mode sectors et baladez votre souris sur les 3 sectors et verifiez sur les post-it que pour les salles principales Floor height est 0 et Ceiling height à 128. Pour la porte Floor height et Ceiling height doivent tout les deux être fixés à 0.
La fin du niveau simple pour didacticiel
Maintenant que nous avons modélisé notre niveau; la forme des salles (vertex), les textures (linedefs et sectors), la hauteur du plafond et du sol; nous allons par exemple dire à WinDEU que tel lindedef actionne tel sector pour qu'il y ait une porte qui s'ouvre (le niveau du plafond part de 0 et atteint le plafond le plus proche, c'est celui des deux salles, elles doivent normalement avoir le même plafond). Pour notre niveau, qui est somme toute très basique, nous allons assigner une fonction spéciale à la linedef qui a la texture de porte (ou celle de votre choix). Passez en mode Linedef et Editez la linedef avec une texture en Above wall (le pan visible de la porte). Dans la fenêtre d'édition de la linedef, sélectionnez Doors en haut et pas tout à fait au milieu, puis dans l'espace de sélection (le plus grand de la fenêtre), sélectionnez [1] DR Open door,closes after 4 seconds, ce qui veut dire, vous l'avez sans doute deviné que lorsque le joueur appuiera sur la barre espace près de cette linedef, le plafond du sector de la porte montera jusqu'au niveau de la salle ayant le plafond le plus proche et puis 4 secondes plus tard, se refermera. Faites de même avec l'autre côté de la porte. C'est tout pour... ce niveau. Pour un niveau assez complexe, ce sera plus long et élaboré. Mais passons maintenant au placement des sprites...
; Passez en mode Things pour placer des sprites et vous allez voir c'est un jeu d'enfant. J'ai ressorti l'image du début de la page précédente avec les indications de sprites:
Commençons par la position du joueur 1 (Il y a jusqu'a 4 joueurs dans Doom en mode coopérative ou en deathmatch). Placez la souris à l'endroit ou vous voulez placer la position du joueur 1 et appuyez sur INSER ou bien faites un clique droit puis Add object. Puis faites un clic droit sur la sprite et sélectionnez Edit thing(s).
Dans la fenêtre qui apparaît, vous pouvez changer le type de sprite. Tout a été classé par catégorie:
Player position pour les points de départ des 4 joueurs, les points de départ en mode deathmatch et le Teleport exit (une sprite un peu spéciale, j'en parlerai plus tard).
Enemy pour les ennemis, Weapon pour les armes, etc...Vous pouvez même choisir une des 8 orientations pour les sprites, ce qui peut-être utile par exemple pour qu'un ennemi vous tourne le dos et que de cette manière, il ne puisse pas vous voir avant que vous ne fassiez feu.
Une fois que vous avez au moins placé le point de départ du joueur 1, vous pouvez sauvegarder votre niveau: menu File puis Save as. WinDEU, vous avertira qu'il manque peut-être au moins 4 points de deathmatch start et la position de départ des 3 autres joueurs , ignorez ces avertissements. Choisissez le classement de votre niveau (Map01 pour Doom 2 ou Episode 1, niveau 1 pour Doom 1); et acceptez la dernière option : "DO YOU WANT TO REBUILD" etc, c'est nécessaire pour pouvoir jouer au niveau ensuite.
Voilà, c'est la fin du didacticiel du niveau de base. Il y a d'autres explications pour aller plus loin dans les chapitres suivants où je ne vous propose pas de faire un autre niveau, mais où je vous détaille des ersatz de fonctions et autres astuces.