Digital Antiquarian on 3D Graphics History

That excellent blog The Digital Antiquarian has three posts so far in a history of 3D graphics, starting from the likes of Doom and Quake and so far going as far as 3DFX.

Part 1: Three Dimensions In Software (Or, Quake And Its Discontents):

Quake (All images from The Digital Antiquarian)

“By the middle years of the decade, with the limitations of working with canned video clips becoming all too plain, interactive movies were beginning to look like a severe case of the emperor’s new clothes. The games industry therefore shifted its hopeful gaze to another approach, one that would prove a much more lasting transformation in the way games were made. This 3D Revolution did have one point of similarity with the mooted and then abandoned meeting of Silicon Valley and Hollywood: it too was driven by algorithms, implemented first in software and then in hardware.

It was different, however, in that the entire industry looked to one man to lead it into its algorithmic 3D future. That man’s name was John Carmack.”

Part 2: Three Dimensions In Hardware:

Pro Graphics 1024

“Born in Salt Lake City in 1924, (Dave) Evans was a physicist by training and an electrical engineer by inclination, who found his way to the highest rungs of computing research by way of the aviation industry. By the early 1960s, he was at the University of California, Berkeley, where he did important work in the field of time-sharing, taking the first step toward the democratization of computing by making it possible for multiple people to use one of the ultra-expensive big computers of the day at the same time, each of them accessing it through a separate dumb terminal. During this same period, Evans befriended one Ivan Sutherland, who deserves perhaps more than any other person the title of Father of Computer Graphics as we know them today.”

Part 3: Software Meets Hardware:

The custom version of Quake made for Vérité

“Among these, of course, was the tardy 3Dfx. The first Voodoo cards appeared late, seemingly hopelessly so: well into the fall of 1996. Nor did they have the prestige and distribution muscle of a partner like Creative Labs behind them: the first two Voodoo boards rather came from smaller firms by the names of Diamond and Orchid. They sold for $300, putting them well up at the pricey end of the market —  and, unlike all of the competition’s cards, these required you to have another, 2D-graphics card in your computer as well. For all of these reasons, they seemed easy enough to dismiss as overpriced white elephants at first blush. But that impression lasted only until you got a look at them in action. The Voodoo cards came complete with a list of features that none of the competition could come close to matching in the aggregate: bilinear filtering, trilinear MIP-mapping, alpha blending, fog effects, accelerated light sources. If you don’t know what those terms mean, rest assured that they made games look better and play faster than anything else on the market. This was amply demonstrated by those first Voodoo boards’ pack-in title, an otherwise rather undistinguished, typical-of-its-time shooter called Hellbender. In its new incarnation, it suddenly looked stunning.”

Romhack Thursday: Race Drivin’ using the SA-1

On Romhack Thursdays, we bring you interesting finds from the world of game modifications.

Edit the Frog is back, with a new romhack! And this one’s really amazing.

We’ve mentioned before Vitor Vilela’s hacks that retro a SA-1 (“Super Accelerator”) into SNES games that suffered from slowdown. So far he’s done it with five games: Super Mario World, Gradius III (which really needed it), Contra III: The Alien Wars and Super R-Type. The fifth is the most amazing so far: Race Drivin’.

When the original Hard Drivin’ came to arcades it was pretty incredible, the first 3D racing game that didn’t use scanline tricks to display its track, that rendered it using an actual polygonal 3D engine. It used special custom hardware to make its track and physics possible. Race Drivin’ was less revolutionary, but only because the ground had been broken for it.

It was exactly the worst kind of game to be ported to the Super Nintendo’s infamously underpowered hardware, a 16-bit variant of the venerable 6502 running at about 3.5 mHz, just a bit over twice the speed of the NES. Even from the start, the SNES used in-card accelerators and co-processors to help complex games run: even though launch title Pilotwings made heavy use of the SNES’s “mode 7” graphics to display the game world, it still needed a DSP chip to help it with calculation.

https://github.com/VitorVilela7/SA1-Root/tree/master/Race-DrivinRace Drivin’ doesn’t use any accelerator, despite being one of the games most sorely in need of one. Asking a SNES to perform up to the custom mathbox chips in the arcade game was ludicrous, and so SNES Race Drivin’ is looked down upon by many, and probably unjustly: the coding is perfectly all right, it was just asking too much of the system.

Even with a SA-1 you’d think that Race Drivin’ on SNES couldn’t measure up, but Vitor’s hack does quite a respectable job! The SA-1 is essentially a second of the same kind of chip that runs the SNES, with a number of extra features bundled in. It also has some faster memory included on-die, and runs at triple the frame rate. Imagine if this had come out at the time: the SNES game is less than two years older than the arcade version! An SA-1-powered version that matched the arcade so closely back then would have astounded. I see that in a few places on the Super Stunt Track, it drops to 12 FPS instead of the 30 it holds at elsewhere, but it’s still damn slick.

Here is one of Vitor’s side-by-side comparison videos, demonstrating the old version (on the left) and the upgraded hack (on the right):

SA-1 Root: Race Drivin’ (github)

How Gravity Works in Super Mario Galaxy

Another Youtube video? Yeah I know. This one explains how gravity works in Super Mario Galaxy. It’s 29 minutes long. The basic gist is, there are eight kinds of invisible gravity field objects, based off of simple shapes, in the game, which are used in concert to create the various orientations that Mario switches to as he moves around: Parallel, Sphere, Cube, Disk, Torus, Cylinder, Wedge, Wire (basically an arbitrary path in space), and Cone, which is only used in two places.

An interesting fact from near the end of the video: gravity affects Mario’s shadow! Shadows point towards where Mario will fall, not according to how light strikes him, to give players a sense of where he is spatially in 3D space.

How Spherical Planets Bent the Rules in Super Mario Galaxy (Youtube, 30 minutes)

Video: Make Your Own Raycaster

A raycaster engine is a simple 3D engine that just draws lines from the player’s position to the nearest terrain wall for each horizontal pixel on the screen. It was what was used in one of the foundational 3D action games, id Software’s Wolfenstein 3D.

For those with a coding bent (the word bent seems so suitable when it comes to people who enjoy programming), Youtube account 3D sage demonstrates how to implement a raycaster in a series of three videos. The first one is embedded below:

Here are links to the whole series: Part 1 (17 minutes), Part 2 (14 minutes), and Part 3 (22 minutes)

Later he did another series on implementing the kind of engine that’s in DOOM, but we’ll look at that at a later date.