top | item 37805211

(no title)

gameoverhumans | 2 years ago

Well, it is Carmack we're talking about here. He's well known as a prolific programmer prodigy ;)

But also, some other things to note:

* A lot of "agile" development in corporate environments is anything but agile because of overhead in horizontally scaling human gray meat (until we get neural interfacing between one another or something)

* It was a simpler time back then. Carmack was coding against a much simpler architecture, with significantly fewer variants.

* It was a simpler time back then. Carmack could focus on blitting pixels to the screen as fast as possible, rather than spending 6 months trying to wrap his head around Vulkan.

* It was a simpler time back then. Carmack didn't have to worry about building for Windows, macOS and Linux, and iOS. And Android. And ...

* It was a simpler time back then. Carmack didn't need to worry about accessibility requirements. Web service integrations. Digital distribution complexitities. etc...

Even in the modern day there's still people who get prodigious amounts of work done when they can focus on doing something they like doing, and the stars align. A good recent example off the top of my head in game development is The Witness. Jonathan Blow + 2-3 other programmers IIRC.

discuss

order

bluedino|2 years ago

He was building for at least Windows and Linux, and didn't have OpenGL so he was doing all the 3D manually. Plus assembly code, hardware specific versions like Verite, had to handle all the raw networking code, wrote tools to work with assets and process levels, also wrote Quake C, encryption to unlock the full game on the shareware Cd...

Sure, Cash, Abrash and Romero were helping out

hnthrowaway0315|2 years ago

Everyone serious about gamedev at his age would be well versed in assembly language and such. It's unthinkable nowadays but normal for graphics programmers in 80s and early-mid 90s.

You can do it too if you follow his steps. I mean by programming Apple ][ and then IBM PC in assembly.

winrid|2 years ago

Abrash did most of the graphics related assembly IIRC

gameoverhumans|2 years ago

> He was building for at least Windows and Linux

Are you sure about that? I remember in Doom 3 era Carmack was rocking a fancy NeXTStep computer and doing cross platform development. But before that I'm pretty sure everything was a strictly Windows affair...

Wikipedia seems to suggest in the first line that it was originally released for Linux. But the "Ports" section it mentions that:

> The first port to be completed was the Linux port Quake 0.91 by id Software employee Dave D. Taylor using X11 on July 5, 1996

And on that topic:

> In late 1996, id Software released VQuake, a source port of the Quake engine to support hardware accelerated rendering on graphics cards using the Rendition Vérité chipset.

> and didn't have OpenGL so he was doing all the 3D manually

So in other words he could focus on the fundamentals of doing vector math and rasterizing pixels, rather than worrying about 600 different incompatible OpenGL extensions, pipeline stalls, and memory management bugs?

> Plus assembly code...

Assembly isn't that hard. Pokemon Red/Blue was written entirely in assembly.

> had to handle all the raw networking code

Again, not that hard when all you're doing is blasting out UDP packets on a very simple network. You didn't have to worry about double NAT, people didn't expect your game to work for diverse peers connected from Germany to Belgium.

> wrote tools to work with assets and process levels

I think Romero wrote a lot of the tooling. Side note - have you read Masters of Doom? It goes into a lot of this stuff and is a great read.

> encryption to unlock the full game on the shareware

I couldn't find anything online but I doubt this was anymore more than some xor + rot13, it's not like Carmack was also Daniel J. Bernstein in disguise :) Back then the state of computer security was, well, rather nascent.

I hope this comment doesn't come across as contrarian. I also hope it doesn't sound like I'm trying to diminish the achievements of Carmack. He's a role model for me personally as a programmer. And he and his mates spawned an entire game genre that I have enjoyed for ... an amount of time I'd rather not disclose or think too much about!

The original point I was trying to make is thus: computers, and computing, have steadily become more and more powerful, which results in more and more complexity, and progressively more unwieldy abstractions to deal with all that complexity. Back when Carmack was cutting his teeth, computers were still fairly early on that complexity curve.

baz00|2 years ago

To be fair we don't have 99% of those problems and still manage to deliver fuck all.

tomcam|2 years ago

I like the cut of your jib

livrem|2 years ago

I am not sure I would consider much of what he did very simple (or easy) compared to what most of us are doing today. The last few chapters of Michael Abrash's Black Book is about his work with Quake (he was involved doing some of the graphics code together with Carmack) and it is pretty hardcore low-level advanced things they were doing. Remember they were software rendering everything in the first version.

https://github.com/neonkingfr/AbrashBlackBook

And also they did pretty soon support MSDOS, Windows 95, and Linux (and possibly some more platforms?). In addition to supporting software rendering, 3Dfx, OpenGL, and possibly some more 3D API.

hypercube33|2 years ago

Didn't he code on Solaris or something weird in the workstation family and port quake over to dos? I only remember him having a giant CRT monitor where he'd sit and code for photos back in the 90s