Hacker News new | ask | show | jobs
by coroxout 2746 days ago
"The year of 1993 was a magical one ... The engine was revolutionary in that it represented a type of world that no one had seen on a computer screen before. Angled walls and halls that darken in the distance."

(obligatory old-man-shouts-at-cloud post) pfft, nobody who hadn't already played Ultima Underworld II, released in Jan 1993, maybe

but seriously, great game (both of them!), and always interesting to read about

3 comments

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.

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.
I remember being amazed by the 3D first person perspective in Total Eclipse on the Commodore 64 back in the 80's. The framerate was atrocious, and you moved like molasses, but the feeling of immersion that came from being able to move freely in the first person perspective was not matched by games for me until Doom. (Wolf3D's 90 degree movements was very mechanical and did not capture that feeling.)
Well, Wolfenstein 3D and even Catacomb 3D were both before Doom as well.
Neither of those were true 3D. In fact, even Doom wasn't fully 3D.

The view could only ever be at 90 degrees for example (no looking up or down) and the environments couldn't have more than one floor and one ceiling at any given location.

I think the limitations made the genre even more successful because it forced people to "evolve" into 3D by going from Wolf3D > Doom > Quake. Step by step. True immersive 3D was actually a jarring (but undoubtedly fun) experience for the first time. Anyone here remember Descent?

By Heretic, you could look up or down in Doom engine, although the way that was done distorted perspective (it basically kept all vertical lines vertical, while distorting proportions horizontally, to approximate the effect).

I would also add Duke Nukem 3D to your step-by-step list. Reason being, firstly, it had sloped floors. But also, as I recall, it was the first 3D action game to have what was then called "room over room", even though the engine was fundamentally limited in the same manner as Doom - it achieved that by utilizing portals. So actual architecture was still one-level, but portals transparently connected it in a way that simulated multiple levels.

There were also some really crazy hacks to achieve something like that in Doom. Like, bridges that you could walk over or under. The way it was done is by having an invisible platform that was lowered and raised as the player approached the "bridge" from the corresponding direction, combined with a fake middle texture that wasn't actually solid.

All this talk of Id games and I totally forgot about Duke! It definitely should be in the discussion. Now, if they'd only make a sequel... ;)
Descent was another favorite of mine! Really used to get my heart racing at the end of every level when you were close but you had to brave the final room and manage to escape before the countdown.
The point is that Wolfenstein 3D did not have "angled walls and halls that darken in the distance". Ultima Underworld did, although it did not have level geometry as complex as DOOM did.
Yes, that's what I meant, thanks, and I was thinking particularly of the 2nd game - though on closer inspection I think UW2's walls are all only 45 degree and 90 degree just like the 1st game, except the UW2 map is higher res and a lot better at mixing them up so it's less obvious. So Doom does win there after all, but I didn't notice as a kid. Wolfenstein's are all 90 degree bends, I think.

Both Doom and UW2 were essentially still a 2d map but in UW2 I remember going down a descending corridor and swimming under a bridge I'd previously walked over and being amazed. There's another level full of aerial paths which cross over each other too, and a level where you flick a switch and flood the map and open up some walkways above the flooded area iirc. I don't know how it represented these over-under areas internally but even if no more 2d than Doom (though you could look up and down a bit) it was a nice trick.

Then again, Doom has similar tricks - teleports set up to act like lifts, where the top of the tower looks out apparently over where you've already been (actually a facsimile to get round the 2d addressing).

But yes, Doom did win out for speed and sheer frantic joy/terror. I couldn't convert any friends to Ultima but Doom won everyone who saw it over instantly...