19 comments

[ 4.2 ms ] story [ 51.3 ms ] thread
Masters of Doom is a great book on the history of id software, which includes the origins of the development of smooth scrolling by Carmack and Romero, which was groundbreaking at the time on PC.
I've been following the Japanese early gaming scene, which had a lot of parallels to the west. They had NEC PCs running DOS, and there were a lot of games for the systems. Some of them had smooth scrolling. Did they come later? Did they copy ID Software's approach?
One thing I was sus from the book and which this post didn't clarify for me was whether Carmack truly invented side scrolling for the PC. He claimed to have done so, and even pitched it to Nintendo for a Mario port that never took off.

Also, the idea that it hadn't been done yet by 1990, when consoles were well in the game, suggests the PC market was behind popular gaming in a big way.

The consoles at the time had dedicated sprite video RAM and hardware and dedicated hardware instructions for background scrolling. The NES for instance had up to 64 sprites (independently moving 16x16 or 32x32 pixel images) supporting up to 8 of those sprites per scanline. The NES background layer was a relatively simple tile map that supported smooth scrolling. All of which was managed by a dedicated hardware Picture Processing Unit [1].

PCs were designed to be general hardware and it didn't seem to make sense to create a generic "PPU" for the PC, so instead game engines at the time (and many game engines to this day) had to emulate one entirely in software. The video RAM of EGA and VGA is just one big blob of pixels, or perhaps two if your system supported double-buffering. At the hardware level it doesn't have concepts like sprites or scrolling backgrounds.

Carmack was one of the first (if not the first; Commander Keen was also among the first commercially successful attempts) to get a software "PPU" renderer on the PC working reliably in real time. Another notable achievement for side scrollers on the PC in that era was Cliff Bleszinski managing to software render the parallax effects similar to Sega's "Blast processor" PPU (notable for "gotta go fast" Sonic games) for Jazz Jackrabbit (in 1994).

It has sort of long been the arc of PC development of eventually doing entirely in software what consoles and arcades were doing with dedicated and/or one-off hardware. (Right up until about the invention of the modern GPU when suddenly the PC was leading graphics hardware in a different way.)

[1] https://www.nesdev.org/wiki/PPU

Jazz Jackrabbit was coded by Arjan Brussee (from Ultra Force demo group). Cliff Bleszinski did the design.
Someone ping Fabien Sanglard! Looks so much like his site!
Lovely book. Skimming through it. One thing that might help contextualize it is a brief discussion of the how contemporary hardware like the SNES rendered sprites so efficiently compared to the PC hardware at the time. It's not obvious to modern readers why a PC with significantly more powerful compute capabilities would struggle to keep up with significantly slower Nintendo hardware at the time for sprite rendering.
It's basically a case of hardware acceleration. Most games consoles and fancier micros have some of dedicated graphics chip that handles the heavy lifting of generating graphics. So for basic game graphics the CPU largely acts as a manager adjusting things like tilemaps and their viewport offsets, and sprite locations (possibly updating things several times mid frame, for fancier effects). The exact setup differs between systems, tilemaps and spites like the SNES is common, though you also have setups with some sort of framebuffer and a Blitter to speed up drawing to it instead.

A traditional IBM PC has a "dumb" framebuffer, where everything is done by the PC. Simply scrolling the background by 1 pixel basically means redrawing a lot of the screen, and you have to keep track of what graphics behind sprite would need to be redrawn after they move etc. As a bonus, on early consumer level 386 and 486 machines you have a mighty processor, but the graphics card is often still on a 16 bit 8MHz(ish) ISA bus. The PC does have an advantage that it's more flexible, so stuff like 3D was easier to do than on a tile-and-sprite setup (especially once we had stuff like VESA and PCI).

Great write up. Reminds me of Cosmodoc, which is similar source but analyzes Cosmo’s Cosmic Adventure instead of Commander Keen.

https://cosmodoc.org

this looks like a copy of fabien's site, plus the topic is very related and likely trampolining on his brand :/
Have LLMs made all arcana about games engineering meaningless?
Would love to hear about the other Apogee and Epic games, like Epic Pinball, Tyrain, Halloween Harry, Jill of the Jungle, Duke Nukem...
Sorry for the "asking for more"-style comment, but it would be amazing if this came in epub and not just PDF.
I was almost tricked into thinking this was a new Fabien Sanglard book and got excited