Demos
 

Les démos



Avant de commencer...


Il n'est plus à prouver que Doom est le précurseur du FPS moderne. Nombreuses de ses features lui ont permis de s'imposer comme un standard encore utilisé aujourd'hui. L'une d'entre elles, et non des moindres, consiste à enregistrer une séquence de gameplay, et la relire à tout moment. C'est ce que l'on appelle les démos.
La méthode décrite ici est celle de PRBoom, elle fonctionne aussi pour ZDoom. Les démos de l'éxécutable d'origine en revanche demandent une approche différente.


Sommaire



  • 1°) Qu'est-ce qu'une démo?
  • 2°) Comment enregistrer une démo?
    • 2°)-1 Le raccourci
    • 2°)-2 Le .bat
    • 2°)-3 Les commandes
    • 2°)-4 Exemples
  • 3°) Lire une démo
    • 3°)-1 Ligne de commandes
    • 3°)-2 Cliquer/Déplacer
    • 3°)-3 PRBoom+
  • 4°) Pour terminer...


------------------



1°) Qu'est ce qu'une demo ?
Une démo est un fichier de type .lmp qui consiste en l'enregistrement d'une séquence de mouvements du joueur. La séquence est enregistrée sous la forme d'inputs à chaque tic (frame). La lecture textuelle de la séquence de mouvements permet de déceler une éventuelle tricherie (avoir un angle de rotation élevé d'une frame à l'autre par exemple), mais ne permet pas de la retoucher de façon brut.


(Cliquez pour agrandir)



L'avantage principal des démos au format .lmp est qu'elles ne pèsent que quelques Ko pour plusieurs minutes de jeu. D'autant plus qu'elles se compressent très bien et offrent le rendu le plus vrai, puisqu'elles utilisent le moteur du jeu.

------------------



2°) Comment enregistrer une démo?
L'enregistrement de démos est la partie complexe du processus. Plusieurs commandes sont disponibles et bien les utiliser/paramétrer n'est pas toujours évident. La première tâche à effectuer pour enregistrer une démo est le choix de son éxécutable:



2°)-1 Le raccourci
La procédure de création de raccourci est la procédure propre à Windows; Effectuez un clic droit sur le port puis cliquer sur "Créer un raccourci". Pour différencier l’exécutable originel et le raccourci, une flèche apparait sous l'icône du raccourci. Ensuite, vient l'étape de paramétrage de celui-ci, pour se faire, faites un clic droit sur le raccourci et cliquez sur "Propriétés".
C'est dans le champ cible que nous allons entrer les commandes qui nous sont nécessaires.


(Cliquez pour agrandir)



Si vous en arrivez à cette étape, vous êtes prêt à passer à la suite.

2°)-2 Le .bat
Si vous choisissez d'utiliser le raccourci, passez au chapitre 3.
Le .bat est en fait un fichier texte simple que l'on masque en éxécutable DOS. Inutile de s'alarmer en lisant DOS, puisqu'il fonctionne très bien sous environnement Win32. Pour créer un fichier .bat, créez un nouveau fichier texte simple et ouvrez-le.
N'ayez crainte de l'angoisse de la page blanche, les commandes à inscrire sont très simples. Commencez par:
  • del <demoname>.lmp ; Ou <demoname> est le nom de la démo que vous allez définir plus tard.
  • Chemin complet de l'exécutable ; Par exemple "C:\PRBoom\GLBoom.exe"

Comme pour la technique du raccourci, voici un exemple:


(Cliquez pour agrandir)



Pour transformer ce fichier texte en ficher de commande, il vous suffit de renommer son extension .txt en .bat. Cependant, étant donné que le fichier est prêt mais pas encore configué, je vous suggère de ne pas renommer son extension à ce stade.

2°)-3 Les commandes

Une fois les exécutables créés, il est temps de les paramétrer. Nous allons pour cela utiliser des commandes qui seront notées sur une ligne, d'où l'expression "Ligne de commandes" ou "Command Line" en anglais. Nous allons les découper sous plusieurs catégories pour plus de clarté. La syntaxe obligatoire est la suivante:
Code TEXT :
"Chemin de l’exécutable" -Commande1 -Commande2 -Commande3 Argument1 etc...

Quelques généralités sur la syntaxe de ligne de commandes:
  • Chaque commande démarre avec un tiret " - ".
  • Un espace est obligatoire après chaque commande.
  • Le port considère tout tiret précédé d'un espace comme une commande, vigilance à votre syntaxe!
  • Dans le cas ou il faut ajouter un argument, ne pas mettre de tiret à celui-ci.
  • Précisez en revanche son extension! (.lmp, .wad, .deh...)
  • Si le fichier concerné par l'argument est dans le même dossier, ne noter que son nom.
  • Si le fichier concerné par l'argument est dans un autre dossier, noter son chemin complet.

Si la syntaxe n'est pas respectée, le port ne lancera pas les bons paramètres ou refusera tout simplement de démarrer. Soyez prudents lors de l'enregistrement d'une démo pour une compétition, l'oubli du -complevel annule la validité et la rejouabilité de votre démo!


Options de fichiers:
  • -iwad <IWad name> ; Définit l'IWad utilisé (Doom, Doom2, Plutonia, TNT).
  • -file <Wad name> ; Charge un PWad spécifique.
  • -deh <DEH name> ; Charge un Dehacked externe.


Compatilibité:
Elément critique de l'enregistrement et de la lecture d'une démo., ce paramètre indique quel version de Doom le port doit émuler pour pouvoir être relue sur le-dit port.
  • -complevel <numéro> ; Permet de définir le niveau de compatibilité.


Tableau des complevels PRBoom
0 Doom v1.2 Emule une partie version Doom 1.2
1 Doom v1.666 Emule une partie version Doom 1.666
2 Doom 2 v1.9 Emule une partie Doom 2 en version 1.9 (oiginale)
3 Ultimate Doom Emule une partie Ultimate Doom (originale)
4 Final Doom Emule une partie Final Doom pour TNT ou Plutonia (originale)
5 DosDoom Emule une partie version DosDoom
6 TASDoom Complevel non utilisé.
7 Boom Emule une partie Boom
8 Boom v2.01 Emule une partie version Boom 2.01
9 Boom v2.02 Emule une partie version Boom 2.02
10 LXDoom v1.4.x Emule une partie version LXDoom 1.4.x
11 MBF - Marine's Best Friend Emule une partie version MBF
12 PRBoom v2.03 Beta Emule une partie version PRBoom 2.03 Beta
13 PRBoom v2.1.0 Emule une partie version PRBoom 2.1.0
14 PRBoom v2.1.1 - v2.2.6 Emule une partie version PRBoom 2.1.1 - 2.2.6
15 PRBoom v2.4.0 Emule une partie version PRBoom 2.4.0
16 PRBoom stable Emule une partie version PRBoom actuel
Les complevels en vert, sont les plus utilisés.

Options de jeu:
  • -skill <level> ; Change la difficulté.
    • -skill 1 ; I'm too young to die
    • -skill 2 ; Hey, not too rough
    • -skill 3 ; Hurt me plenty
    • -skill 4 ; Ultra-Violence
    • -skill 5 ; Nightmare!
  • -loadgame <numéro> ; Numérotée de 1 à 7, charge une sauvegarde spécifique.
  • -warp <level number> ; Démarrer au niveau choisi.
    • -warp 4 3 ; Est la syntaxe pour Ultimate Doom, vous commencerez à E4M3.
    • -warp 26 ; Est la syntaxe pour Doom 2, vous commencerez à la Map 26.
  • -respawn ; Les monstres respawnent 8 secondes après avoir été tués.
  • -fast ; Comme en mode Nightmare, les monstres sont plus rapides.
  • -nomonsters ; Désactive les monstres. Impératif pour le Deathmatch.


Options du multijoueurs:

Commandes côté client



  • -net <ip:port> ; Se connecter au serveur. Si le port n'est pas spécifié, celui par défaut sera le 5030.
  • -solo-net ; Lance le jeu en solo mais avec les objets du mode coop.


Commandes côté serveur



  • -N <numéro> ; Définit le nombre de joueurs, maximum de 4.
  • -skill <level> ; Change la difficulté.
    • -skill 1 ; I'm too young to die
    • -skill 2 ; Hey, not too rough
    • -skill 3 ; Hurt me plenty
    • -skill 4 ; Ultra-Violence
    • -skill 5 ; Nightmare!
  • -e <numéro> ; Pour Ultimate Doom uniquement, changer d'épisode, de 1 à 4.
  • -l <numéro> ; Démarrer au niveau choisi. De 1 à 9 pour Ultimate Doom et de 1 à 32 pour Doom 2.
  • -w <name> <URL> ; Charge un PWad/DEH spécifique. Ajouter l'URL permet de le télécharger automatiquement.
  • -d ; Changer le jeu et passer en mode Deathmatch.
  • -a ; Mode Deathmatch avec réapparitions des objets, power-ups exclus.
  • -f ; Comme en mode Nightmare, les monstres sont plus rapides.
  • -n ; Désactive les monstres.
  • -r ; Les monstres respawnent 8 secondes après avoir été tués.
  • -p ; Choisir un port spécifique, celui par défaut sera le 5030.


Options de démos:
  • -playdemo <demoname.lmp> ; Lance la lecture d'une démo. Ne pas oublier -file si des PWads sont nécéssaires.
  • -record <demoname.lmp> ; Enregistre la partie en format .lmp. Si vous utilisez le .bat, indiquer le même nom.


Options diverses:
  • -nosound ; Désactive les sons.
  • -nomusic ; Désactive la musique.

2°)-4 Exemples


Ce fichier bat démarre Plutonia, Map32 en difficulté Ultra-Violence à la Map32 et définit la compatibilité Final Doom et enregistrera une démo nommé "Mademo". La commande "del" en première ligne permet de la supprimer automatiquement je souhaite recommencer.




Ce raccourci me permettra de démarrer une partie de Ultimate Doom sur la map E4M3.




Ce fichier bat est très cruel. Il lance Doom 2 avec Alien Vendetta sur la Map26. L'émulation de Nightmare! est activée via le -fast et le -respawn. Le tout sera enregistré en démo, nommée Mademo.lmp.





3°) Lire une demo ?

3°)-1 La ligne de commandes

La technique de la ligne de commande est en tous points similaire à celle de l'enregistrement via raccourci, mais nécessite d'être modifiée à chaque lectures. Elle en devient rapidement lassante car peu intuitive. La commande utilisée est la suivante:
  • -playdemo <demo name> ; Lance la lecture d'une démo.



Cette ligne de commandes va lancer TNT en tant qu'IWad et lire la démo "M26UV.lmp".



3°)-2 Cliquer/Déplacer
Cette méthode reste l'une des plus simples et des plus efficaces. Tout simplement, maintenir ctrl, puis cliquer successivement sur chacun des fichiers nécessaires. Une fois la sélection effectuée, glisser le tout sur l'exécutable de votre choix et le jeu démarrera automatiquement.

3°)-3 PRBoom+
L'excellent PRBoom offre une technique de lecture et de prise en charge assez intéressante. Tout d'abord, il faut indiquer à Windows d'ouvrir tout fichier .lmp avec PRBoom. Pour cela rien de plus simple, il suffit de double-cliquer sur une démo quelconque, puis indiquer à Windows d'ouvrir avec l'exécutable de PRBoom+.
A chaque fois que vous lancerez une démo, le launcher de PRBoom+ s'ouvrira. Il ne vous reste plus qu'à choisir le ou les PWads nécessaires et lancer le tout.

4°) Pour terminer...
Ce tutorial couvre aussi bien PRBoom, que PRBoom+. Les démos fonctionnent aussi bien sur un port que sur un autre, et il est à noter qu'elles fonctionnent aussi sous le Doom2.exe originel sous DOS.
La démo désynchronise? C'est certainement un problème de complevel. Vérifiez le et enregistrez à nouveau une démo.