I used those as examples but I claim that most everything was C by the early 90’s. The statement that C compilers got fast which allowed it isn’t true. When a new compiler came out it was always a couple of percentage points faster than the old version. Meanwhile hardware was doubling in performance every two years.
C compilers didn’t need much optimization because there wasn’t much performance that could be optimized into code on the simple CPUs of 1992 when Doom was being written. CPU’s weren’t the superscalar multi core monsters they are today. A compiler couldn’t take advantage of reordering instructions to use multiple adders because there was only one.
Mainstream application programmers switched to C in the early 80’s. Game developers were slower to switch, because their small teams and focus on performance kept assembly language viable till the following decade. When id Software released DOOM, they surprised much of the industry by having no reliance on assembly code–despite excellent game performance, and by successfully cross-developing the game (in NeXTstep and DOS), then successfully porting it to an astounding variety of platforms.
Wolfenstein 3D is a lot less impressive than Doom. Doom was faster and more complex than other games, where as Wolfenstein had a strong and appealing gimmick but was slower and less complex as a trade-off. In-line with the expectations around compiled languages.
Carmack wrote Wolfenstein 3d in C. Star Control and Dune 2 were C.
> almost
I used those as examples but I claim that most everything was C by the early 90’s. The statement that C compilers got fast which allowed it isn’t true. When a new compiler came out it was always a couple of percentage points faster than the old version. Meanwhile hardware was doubling in performance every two years.
C compilers didn’t need much optimization because there wasn’t much performance that could be optimized into code on the simple CPUs of 1992 when Doom was being written. CPU’s weren’t the superscalar multi core monsters they are today. A compiler couldn’t take advantage of reordering instructions to use multiple adders because there was only one.
Those games didn’t have the splash that Doom did for this sort of thing.
https://web.archive.org/web/20010105180900/http://www.gamespy.com/legacy/articles/devweek_c.shtm
I would say that Wolf3d would certainly count as proof of concept.
Wolfenstein 3D is a lot less impressive than Doom. Doom was faster and more complex than other games, where as Wolfenstein had a strong and appealing gimmick but was slower and less complex as a trade-off. In-line with the expectations around compiled languages.