This article is a fragment of the book Game Engine Black Book: Wolfenstein 3D - a detailed study on the history, code and development had a huge impact on the gaming industry first-person shooter about the destruction of the Nazis.This chapter describes the origins of the game and describes how it was built on the foundation of the success and technology of the game Commander Keen
, which itself was built from the remains of an unsuccessful attempt to sell the Nintendo Mario 3
port for PC.The complete book written by the author and programmer Fabien Sanglar can be purchased in paper or digital form .')
In 1990, a small Softdisk company from Shreveport (Louisiana) successfully conducted business in the shareware market.
By providing video game distribution services by subscription, Softdisk created and every month sent new games to its subscribers. The business went well, but some of the company's employees were more ambitious.
They thought that they had enough skills to increase the scale and they wanted to prove it. They created a new way of programming side-scrolling and called this technology adaptive tile refresh. She allowed to perform hardware scrolling (scrolling the screen) on the PC, so that the computer could compete with the NES. In the early 1990s, they worked ceaselessly on weekends to recreate
Super Mario 3 on a PC to demonstrate their Nintendo skills.
The team "Ideas from the Deep", as they called themselves, was able to make a clone of
Mario , but unfortunately, she failed to convince Nintendo to give them a contract. No matter how impressed the Japanese company was, it wanted the
Mario series to remain only on Nintendo consoles.
“We sent a demo to Nintendo of America, and she in turn forwarded it to the head office in Kyoto. Top management watched the demo and was very impressed. However, they did not want their intellectual property to be on any other devices besides their equipment, so they just praised us and said that this was impossible. ” - John Romero, programmer
Mario on the PC. The abbreviation IFD stands for Ideas from the Deep.This episode was enough for them to convince themselves that not only did they have talent that matched their ambitions, but also a well-coordinated team with a work ethic that could potentially open up opportunities for them. In February 1991, four Softdisk employees made a "leap of faith" and founded their own company, id Software.
Founders of id Software.(You can read more about this in the book by David Kushner
Masters of Doom ).
They immediately used the technology developed for the PC version of
Mario 3 to start producing their own games and building intellectual property. Without wasting time, the team released at least three games in a year.
- Commander Keen Episode 1, 2 and 3: Invasion of the Vorticons (December 14, 1990)
- Commander Keen Episode 4, 5, and 6: Good Bye Galaxy (December 15, 1991)
- Separate game Commander Keen : Aliens Ate My Baby Sitter (December 1991)
These games, published by FormGen, instantly gained success and sold very well. The team also continued to write games for the Softdisk edition, most of which used adaptive update of tiles:
- Commander Keen in Keen Dreams (1991)
- Dangerous Dave in the Haunted Mansion (1991)
- Rescue Rover (1991)
- Rescue Rover 2 (1991)
- Shadow Knights (1991)
- Hovertank 3D (April 1991).
- Catacomb 3D: A New Dimension (November 1991)
In the spring of 1991, a new generation of id Software technology began to emerge. In the game
Hovertank 3D player was inside the tank. There was no texture overlay yet, and the pace of the game remained rather slow.
Catacomb 3D marked the appearance of textures and increased the level of immersion in the game: the player now controlled the wizard with a first-person view.
In November 1991, the team put an end to all obligations to SoftDisk. Her next game will use the 3D technology created by the guys and will be released under the name
Wolfenstein 3D . Due to the scale and ambitiousness of the game, four more people accepted the team and now it had eight employees.
“Jason (Jason Blochowiak) was part of the id from the very beginning, but in the process of developing Wulff, our paths diverged.” - John Carmack, programmer.
Photo of the team from the Easter eggs in Spear of Destiny. The inscription below: "we are without pants."In fact, the pants are still on them.Organization
In September 1991, guided by Tom and Jason’s school memories, the team moved from Shreveport to Madison, Wisconsin. The guys settled their office in a two-story brick building of The Pines residential complex on High Ridge Trail, 2622. They all lived within walking distance of the office, with the exception of Carmack, who was not disturbed by inconvenience: he settled right on the second floor of the office.
The development of
Wolfenstein 3D began in January 1992. The temperature fell and snow fell from the sky, so the team plunged into work and rarely left the office. Development lasted four months.
Wolfenstein 3D was released in May 1992.
During these four months, organization of teamwork was fairly standard for gaming studios of that era: four guys sitting in the same room, support for the fast pace of development and a strong sense of camaraderie (and a lot of noise due to the John Romero and Tom Hall communication).
The map below shows the angle from SNES, where countless games were played in
F-Zero , and the zone for Dungeons & Dragons, often referred to in the Masters of Doom. The fact that one of the team members (John Carmack) lived right above the studio was quite a commonplace condition.
“We started with data migration on floppy disks, but in the end we created a Novell network based on coaxial Ethernet *. We did not have a version control system. Surprisingly, we didn’t have it even before Quake 3, during the development of which we started using Visual Source Safe. ” - John Carmack, programmer.
* John Romero comment: “While living in Madison, in November 1991, we bought Novell Netware 3.11 for $ 7,000. It included a file server, cables and network cards. ”
Everyone worked on the best PCs that could be bought for money: the most powerful 386-DX 33MHz with 4MB of RAM.
Programming
The development was carried out in the Borland C ++ 3.1 environment (but in the C language), which by default worked in the VGA mode 3 mode: a 80-by-25-character text screen.
John Carmack worked on the runtime code. John Romero has programmed many tools (TED5 map editor, IGRAB resource packager, MUSE music packager). Jason Blokhovyak wrote important game subsystems (input manager, page manager, sound manager, user manager).
The Borland solution was an all-in-one system. An IDE called BC.EXE, despite some instability, provided clumsy multi-window editing of the code with a pleasant syntax highlighting. The compiler and linker were also part of the system and were named BCC.EXE and TLINK.EXE.
However, it was not necessary to switch to command line mode. IDE allowed to create, collect, execute and debug the project.
To compensate for the small size of the CRT screen, some developers used two monitors. (John Romero's note: “Both John Carmack and I worked with the Turbo Debugger on small 12-inch monochrome monitors with an amber screen”).
Game graphics resources
All graphic resources were created by Adrian Carmack (Kevin Cloud created several textures, and also worked on the design and structure of the booklet of the
Wolfenstein 3D manual). All work was done in Deluxe Paint (written by Brent Iverson of Electronic Arts) and stored in ILBM (InterLeaved BitMap) files (proprietary format of Deluxe Paint).
Since the VGA mode is based on the use of palettes (colors were set not by 24-bit RGB values, but by indices indicating a 256-color table), the creative process was complex. First of all, Adrian had to make a key decision - which colors would fall into the palette (in some games, for example,
Monkey Island used several palettes that changed depending on the part of the game. Id Software chose a simpler solution and used one palette for the whole game) and then draw everything just with these flowers.
Wolfenstein 3D palette. Everything in the game was drawn using these 256 colors.The coordinates of the palette vary from 0x00 to 0x0F horizontally and from 0x00 to 0xF0 vertically. The horizontal blue gradient below starts at 0xF0 and ends at 0xFE. 0xFF (denoted by pink) is a special color that is considered a transparent engine and is always skipped during rendering.
All resources were drawn by hand. Since the VGA mode stretched it when displaying the frame buffer on the screen, Adrian had to be careful and draw everything in the resolution in which the game was supposed to work (320x200).
“Adrian and Kevin worked directly at Deluxe Paint, at that time we didn’t have any scanning tools.” - John Carmack, programmer.
Graphic resources are divided into two categories:
- 2D menu items that come with the game in VGAGRAPH, VGAHEAD and VGADICT files
- Elements of 3D-mode (walls and sprites) supplied in the VSWAP archive
Resource production process
After generating graphic resources, the IGRAB tool packaged all ILBM into one archive and generated a header file C with resource identifiers. The engine refers to the resource directly using these IDs.
Pipeline creating resources for 2D menus.In the engine code, the use of resources was rigidly spelled out in the listing. This enum is an offset in the HEAD table from which the offset in the DATA archive is taken. Thanks to this indirect link layer, resources could be re-generated and reordered without modifying the source code.An interesting fact: this system led to problems after the publication of the source code. The header .h in its bundle did not match the resource files from the shareware version or earlier versions of
Wolfenstein 3D . Published headlines were taken from Spear of Destiny. You can see what graphical chaos this led to in the article “Compile as if it were 1992” on fabiensanglard.net [
translation of the article in Habré].
The
Wolfenstein 3D official guide , published in 1992, explains the creative process. It contains many drawings by Tom Hall and shows a bunch of sketches made by Tom and translated into pixels by a team of artists.
“When creative director Id Tom Hall came up with the idea of ​​the screen, he gave a sketch to Adrian Carmack. The following are examples of some screen saver screenshots made by Tom. For the game was chosen third sketch. - “Official Wolfenstein 3D Guide”
The guide also contains several photos of the team of those times; I advise you to read it to understand the context.
[The design of the manual was created on the NeXT ColorStation. This was the only case of using Steve Jobs' machine to create
Wolfenstein 3D , despite the fact that id bought it in December 1991. Later, in 1993, the NeXT series of workstations became a key element of the
Doom production pipeline.]