Hacker News new | ask | show | jobs
by bexsella 2746 days ago
I think they key difference here is sheer speed. At the time, Ultima Underworld may have been the more technically impressive game in terms of graphics, but the id's focus on framerate and simplicity over graphical complexity had something over Ultima Underworld's slow-paced dungeon crawling, a pace mandated by the 10-20fps that it ran at.

Both are fantastic games, but Doom's speed was a marvel for how good it looked.

1 comments

There's one man who doesn't get enough credit:

Michael Abrash.

In 1991, I owned a Commodore Amiga, which was generally regarded as one of the best computers for audio-video work at the time. Abrash had stumbled across something amazing at the time:

He figured out that you could just 'invent' your own displays on the IBM PC.

So he took the IBM PC, which was really optimized for high resolution work like spreadsheets, and he hacked the display modes so that you could have LOW resolution and HIGH refresh rates.

It was completely brilliant. When I first saw what Abrash was doing, it was a revelation. If it wasn't for Abrash, gaming would be very very different today.

At the time, there were high performance video cards for the PC. The thing that was brilliant about Abrash's work was that it worked on any ol' PC. He was just taking the existing video modes and changing them. For instance, instead of having a video mode of 640x400 with 16 colors, Abrash figured out that you could have a video mode of 320x200 with 256 colors and most importantly, a buffer. It was that buffer that was absolutely critical; it changed the game completely. It allowed programmers to draw a screen, flip a bit, and change the entire screen in a millisecond. Until Abrash came along, IBM PC graphics were sloooooow. The key to all of this is that the amount of memory did not change, the only thing that changed was the resolution and the number of colors.

If you're a Linux dude and you're over 40, you may recall hacking video modes to get the UI to work. A lot of that was based on Abrash's work also.

Abrash continued to work alongside Carmack for his entire career, and is currently at Oculus.

https://doomwiki.org/wiki/Michael_Abrash

Nitpick: 320x200 in 256colors is a standard VGA mode, but what Abrash came up with was "Mode X" - which added a higher resolution (320x240), 1:1 square pixels(!), and doublebuffering. There were also even higher resolutions available based on the same concept (up to at least 360x480) by (others?)

https://en.wikipedia.org/wiki/Mode_X https://web.archive.org/web/20160425075841/http://www.gamepr...

> He was just taking the existing video modes and changing them. For instance, instead of having a video mode of 640x400 with 16 colors, Abrash figured out that you could have a video mode of 320x200 with 256 colors and most importantly, a buffer. It was that buffer that was absolutely critical; it changed the game completely. It allowed programmers to draw a screen, flip a bit, and change the entire screen in a millisecond.

To be more specific: 320x200x8 was a standard documented VGA video mode (13h), but it lacked the ability to page flip. There were other video modes that did allow page flipping - the idea itself dates back to some of the earliest text-only modes - but none of them were 8-bit color.

Mode X (which Abrash discovered) allowed page flipping while retaining all 256 colors.

Page flipping is different from double buffering, though. Double buffering is when you render to an offscreen buffer, and then bulk copy the resulting pixels into video RAM (usually with vsync to avoid visible tearing). This could be done just as well with regular mode 13h, and it was pretty common for games to do exactly that. Page flipping made things much faster by avoiding the need to copy anything - everything is in video RAM, you just switch which parts of it are currently visible on screen.

Hey Microsofties, did DirectX trace its naming back to Mode X at all?
http://craig.theeislers.com/2006/02/20/directx-then-and-now-...

"Since multimedia on Windows had a bad reputation back then, we were adamant not to have our stuff associated with “multimedia” and so we called the first beta the “Game SDK”. We got the idea to name it DirectX because some reporter made of fun of how we had DirectDraw, DirectSound, and DirectPlay – Direct “X” they wrote. We took it and ran with it, and so every set of functionality became DirectSomethingOrOther (Direct3D, DirectInput, DirectSound3D all followed)."

And "direct", of course, was in a sense of direct access to the hardware (more direct than GDI, anyway).

No, the X in DirectX is used as a sort of variable with X referring to the many subsystems of DirectX (e.g. DirectDraw, Direct3D, DirectInput, DirectSound, etc).
What a great question!

I know that the xBox is named after DirectX.

If DirectX is named after Mode X, then the Xbox owes it's name to Abrash.

Abrash's Black Book of Graphics Programming is an absolute classic. I devoured it when I was a young programmer at video game shop in '97. Although outdated, it's still gold. If nothing else, read the stuff at the end where he talks about the development of Quake, working with John Carmack at id.

http://www.drdobbs.com/parallel/graphics-programming-black-b...

Abrash definitely doesn't get enough credit. That guy has worked for a lot of big tech companies: Microsoft, id, radgame tools, valve, oculus.