Cet article est un fragment du Game Engine Black Book: Wolfenstein 3D , une étude détaillée de l'histoire, du code et du développement qui a eu un impact énorme sur l'industrie du jeu avec des tireurs à la première personne sur la destruction des nazis.Ce chapitre révèle les origines du jeu et comment il a été construit sur la base du succès et de la technologie du commandant Keen
, lui-même construit à partir des restes d'une tentative infructueuse de vendre le port Nintendo Mario 3
pour PC.Le livre complet, écrit par l'auteur et programmeur Fabien Sanglar, peut être acheté sous forme papier ou numérique .En 1990, la petite entreprise Softdisk de Shreveport (Louisiane) a mené avec succès ses activités sur le marché des shareware.
En fournissant des services de distribution de jeux vidéo par abonnement, Softdisk a créé et envoyé de nouveaux jeux par courrier à ses abonnés chaque mois. L'entreprise se porte bien, mais certains employés de l'entreprise sont plus ambitieux.
Ils pensaient avoir suffisamment de compétences pour évoluer et ils voulaient le prouver. Ils ont créé une nouvelle façon de programmer le défilement latéral et ont appelé cette technologie un rafraîchissement adaptatif des tuiles. Il vous a permis d'effectuer un défilement matériel (défilement de l'écran) sur le PC, afin que l'ordinateur puisse rivaliser avec NES. Au début des années 1990, ils ont travaillé sans interruption le week-end pour recréer
Super Mario 3 sur PC pour démontrer leurs compétences Nintendo.
L'équipe Ideas of the Deep, comme ils s'appelaient eux-mêmes, a pu faire un clone de
Mario , mais, malheureusement, elle n'a pas réussi à convaincre Nintendo de leur donner un contrat. Peu importe combien impressionné la société japonaise, elle voulait que la série
Mario ne reste que sur les consoles Nintendo.
«Nous avons envoyé la démo à Nintendo of America, et elle l'a à son tour envoyée au siège social de Kyoto. La direction a regardé la démo et a été très impressionnée. Cependant, ils ne voulaient pas que leur propriété intellectuelle soit sur des appareils autres que leur équipement, alors ils nous ont simplement félicités et ont dit que c'était impossible. » - John Romero, programmeur
Mario sur le PC. L'acronyme IFD signifie Ideas from the Deep.Cet épisode s'est avéré suffisant pour eux de se convaincre qu'ils ont non seulement des talents à la hauteur de leurs ambitions, mais aussi une équipe bien coordonnée avec une éthique de travail qui pourrait potentiellement leur ouvrir de grandes opportunités. En février 1991, quatre employés de Softdisk ont fait un acte de foi et ont fondé leur propre société id Software.
Fondateurs d'id Software.(Vous pouvez en savoir plus à ce sujet dans
Masters of Doom de David Kushner.)
Ils ont immédiatement profité de la technologie développée pour la version PC de
Mario 3 pour commencer à sortir leurs propres jeux et à développer leur propriété intellectuelle. Sans perdre de temps, l'équipe a sorti au moins trois matchs en un an.
- Commandant Keen, épisodes 1, 2 et 3: invasion des vorticons (14 décembre 1990)
- Commander Keen Episode 4, 5 et 6: Good Bye Galaxy (15 décembre 1991)
- Jeu séparé Commander Keen : Aliens Ate My Baby Sitter (décembre 1991)
Ces jeux, publiés par FormGen, ont connu un succès immédiat et se sont très bien vendus. L'équipe a également continué à écrire des jeux pour Softdisk, dont la plupart utilisaient des mises à jour adaptatives de tuiles:
- Commandant Keen dans Keen Dreams (1991)
- Dave dangereux dans le manoir hanté (1991)
- Rescue Rover (1991)
- Rescue Rover 2 (1991)
- Shadow Knights (1991)
- Hovertank 3D (avril 1991).
- Catacomb 3D: une nouvelle dimension (novembre 1991)
Au printemps 1991, une nouvelle génération de technologie id Software a commencé à émerger. Dans le jeu
Hovertank 3D, le joueur était à l'intérieur du tank. Jusqu'à présent, il n'a pas encore eu de mappage de texture, et le rythme du jeu est resté plutôt lent.
Catacomb 3D a marqué l'émergence de textures et une immersion accrue dans le jeu: le joueur contrôlait désormais l'assistant en vue à la première personne.
En novembre 1991, l'équipe a mis fin à toutes ses obligations envers SoftDisk. Son prochain jeu utilisera la technologie 3D créée par les gars et sortira sous le nom de
Wolfenstein 3D . En raison de l'ampleur et de l'ambition du jeu, quatre autres personnes ont rejoint l'équipe et elle compte désormais huit employés.
"Jason (Jason Blochowiak) faisait partie de l'ID depuis le tout début, mais dans le processus de développement de Wulf, nos chemins ont divergé." - John Carmack, programmeur.
Photo de l'équipe d'oeufs de Pâques à Spear of Destiny. L'inscription ci-dessous: "nous sommes sans pantalon."En fait, le pantalon est toujours dessus.Organisation
En septembre 1991, guidée par les souvenirs scolaires de Tom et Jason, l'équipe a déménagé de Shreveport à Madison (Wisconsin). Les gars ont installé leur bureau dans le bâtiment en briques de deux étages du complexe résidentiel The Pines sur High Ridge Trail, 2622. Ils vivaient tous à distance de marche du bureau, à l'exception de Carmack, qui ne se souciait pas des inconvénients: il s'est installé juste au deuxième étage du bureau.
Le développement de
Wolfenstein 3D a commencé en janvier 1992. La température a chuté et la neige est tombée du ciel, alors l'équipe a été complètement plongée dans le travail et a rarement quitté le bureau. Le développement a duré quatre mois.
Wolfenstein 3D est sorti en mai 1992.
Au cours de ces quatre mois, l'organisation du travail d'équipe a été assez standard pour les studios de jeux de cette époque: quatre gars assis dans la même pièce, un soutien pour un rythme de développement rapide et un fort sens de la camaraderie (et beaucoup de bruit en raison du style de communication de John Romero et Tom Hall).
La carte ci-dessous montre l'angle avec SNES, où d'innombrables jeux
F-Zero ont été joués, et la zone Dungeons & Dragons, souvent mentionnée dans Masters of Doom. Le fait qu'un des membres de l'équipe (John Carmack) ait vécu juste au-dessus du studio était un état tout à fait ordinaire.
«Nous avons commencé par transférer des données sur des disquettes, mais à la fin, nous avons créé un réseau Novell basé sur Ethernet coaxial *. Nous n'avions pas de système de contrôle de version. Étonnamment, nous ne l'avions pas avant Quake 3, pendant le développement duquel nous avons commencé à utiliser Visual Source Safe. " - John Carmack, programmeur.
* Commentaire de John Romero: «En vivant à Madison, en novembre 1991, nous avons acheté un système Novell Netware 3.11 pour 7 000 $. Il comprenait un serveur de fichiers, des câbles et des cartes réseau. »
Tout le monde a travaillé sur les meilleurs PC qui pouvaient être achetés pour de l'argent: le 386-DX 33 MHz le plus puissant avec 4 Mo de RAM.
Programmation
Le développement a été réalisé dans l'environnement de Borland C ++ 3.1 (mais en langage C), qui fonctionnait par défaut en mode VGA 3: un écran de texte mesurant 80 par 25 caractères.
John Carmack s'est occupé du code d'exécution. John Romero a programmé de nombreux outils (éditeur de cartes TED5, pack de ressources IGRAB, pack de musique MUSE). Jason Blohovyak a écrit d'importants sous-systèmes de jeu (gestionnaire d'entrées, gestionnaire de pages, gestionnaire de sons, gestionnaire d'utilisateurs).
La solution Borland était un système tout-en-un. Un IDE appelé BC.EXE, malgré une certaine instabilité, a fourni une édition de code multi-fenêtres maladroite avec une belle mise en évidence de la syntaxe. Le compilateur et l'éditeur de liens faisaient également partie du système et portaient les noms BCC.EXE et TLINK.EXE.
Cependant, le passage en mode ligne de commande n'était pas nécessaire. L'IDE vous a permis de créer, assembler, exécuter et déboguer un projet.
Pour compenser la petite taille de l'écran CRT, certains développeurs ont utilisé deux moniteurs. (Remarque de John Romero: «John Carmack et moi avons travaillé avec Turbo Debugger sur de petits moniteurs monochromes à écran ambre de 12 pouces.»)
Ressources graphiques du jeu
Toutes les ressources graphiques ont été créées par Adrian Carmack (Kevin Cloud a créé plusieurs textures et a également travaillé sur la conception et la structure du livret manuel
Wolfenstein 3D ). Tout le travail a été effectué dans Deluxe Paint (écrit par Brent Iverson d'Electronic Arts) et enregistré dans des fichiers ILBM (InterLeaved BitMap) (format propriétaire Deluxe Paint).
Comme le mode VGA est basé sur l'utilisation de palettes (les couleurs n'étaient pas définies par des valeurs RVB 24 bits, mais par des indices pointant vers une table de 256 couleurs), le processus de création était compliqué. Tout d'abord, Adrian a dû prendre une décision clé - quelles couleurs tomberaient dans la palette (dans certains jeux, par exemple,
Monkey Island a utilisé plusieurs palettes qui changeaient selon la partie du jeu. Id Software a choisi une solution plus simple et utilisé une palette pour l'ensemble du jeu), puis peignez tout avec juste ces couleurs.
Palette Wolfenstein 3D. Tout dans le jeu a été dessiné en utilisant ces 256 couleurs.Les coordonnées de la palette varient de 0x00 à 0x0F horizontalement et de 0x00 à 0xF0 verticalement. Le dégradé bleu horizontal ci-dessous commence à 0xF0 et se termine à 0xFE. 0xFF (marqué en rose) est une couleur spéciale qui est considérée comme transparente par le moteur et est toujours ignorée lors du rendu.
Toutes les ressources ont été dessinées manuellement avec la souris. Depuis lors de l'affichage du tampon de trame à l'écran, le mode VGA l'a étiré, Adrian a dû être prudent et dessiner tout dans la résolution dans laquelle le jeu était censé fonctionner (320x200).
"Adrian et Kevin travaillaient directement chez Deluxe Paint, à l'époque nous n'avions pas d'outils de numérisation." - John Carmack, programmeur.
Les ressources graphiques sont divisées en deux catégories:
- Éléments de menu 2D fournis avec le jeu dans les fichiers VGAGRAPH, VGAHEAD et VGADICT
- Éléments du mode 3D (murs et sprites) fournis dans l'archive VSWAP
Processus de production des ressources
Après avoir généré les ressources graphiques, l'outil IGRAB a regroupé tous les ILBM dans une seule archive et a généré un fichier d'en-tête C avec des identificateurs de ressources. Le moteur fait référence à la ressource directement à l'aide de ces ID.
Pipeline de création de ressources pour un menu 2D.Dans le code moteur, l'utilisation des ressources était strictement prescrite dans l'énumération. Cette énumération est le décalage dans la table HEAD, à partir de laquelle le décalage dans l'archive DATA est pris. Grâce à cette couche de liens indirects, les ressources ont pu être régénérées et réorganisées sans modifier le code source.Fait intéressant: un tel système a entraîné des problèmes après la publication du code source. L'en-tête .h de son ensemble ne correspondait pas aux fichiers de ressources de la version shareware ou des versions antérieures de
Wolfenstein 3D . Les titres publiés proviennent de Spear of Destiny. Vous pouvez voir à quel chaos graphique cela a conduit dans l'article «On compile, comme si dans la cour 1992» sur le site fabiensanglard.net [
traduction de l' article sur Habré].
Un
guide officiel Wolfenstein 3D publié en 1992 explique le processus de création. Il contient de nombreux dessins de Tom Hall et montre un tas de croquis réalisés par Tom et traduits en pixels par une équipe d'artistes.
«Lorsque le directeur créatif d'Id, Tom Hall, a eu l'idée de l'écran, il a donné un croquis à Adrian Carmack. Voici quelques exemples de croquis de la conception de l'écran de démarrage par Tom. J'ai choisi le troisième brouillon du jeu. » - «Le guide officiel Wolfenstein 3D»
Le manuel contient également plusieurs photographies de l'équipe de l'époque; Je vous conseille de le lire pour comprendre le contexte.
[Conception du guide créée sur NeXT ColorStation. Ce fut le seul cas d'utilisation de la machine de Steve Jobs pour créer
Wolfenstein 3D , malgré le fait que je l'ai acheté en décembre 1991. Plus tard, en 1993, la série de postes de travail NeXT est devenue un élément clé du convoyeur de production
Doom .]