[HN Gopher] Black Art of 3D Game Programming (1995) ___________________________________________________________________ Black Art of 3D Game Programming (1995) Author : stefankuehnel Score : 111 points Date : 2023-09-03 08:03 UTC (1 days ago) (HTM) web link (archive.org) (TXT) w3m dump (archive.org) | ivolimmen wrote: | I owned a copy of this book. I tried a few lines of code but at | that point in time it was too difficult for me to fully grasp it. | I was still programming in basic at the time and the leap to a | different language was too big. I do regret throwing it away... | i_c_b wrote: | Andre LaMothe's prior book, Tricks of the Game Programming Gurus, | was literally life changing for me. | | I was in my late junior or early senior year of high school when | it came out. My stepfather had a 386/20 and then later a 486/33, | a Borland C compiler, and a generic 700 page "Learn C" book at | home, and I had worked all the way through the book. But I | couldn't for the life of me figure how in the world to bridge the | gap between the extremely slow, "high res" 16 color graphics | libraries that came with the compiler, on the one hand, and what | Wolfenstein and Doom were doing, on the other, both of which I | was utterly entranced by. | | And then I saw LaMothe's book on a random shopping trip to... | Software Etc, I think? I'd never seen anything like it. And I | knew I had to have it, immediately. | | After getting that book, I was diving headlong into relatively | fast VGA C programming in mode 13h (320x200x256 color). I spent | the afternoons of my senior year of high school writing | relatively fast texture mapping routines and trying to get full | screen 30+ fps interactive scenes and levels running, which I | think I mostly did. I had to write my own paint program, too, for | 256 color palettized textures. It was thrilling. | | Thanks largely to my time with that book, later when I was | introduced to the internet the first week I started a Computer | Science program at college, I was primed to dive into all the | awesome C open source game libraries and tools (like Allegro and | DJGPP) that I found online, and I was making commercial games and | working in the guts of the Quake and Quake 2 code bases two short | years later. (The book and then the internet were not, however, | great for my college career) | | I know there are corny parts of the book, and maybe things that | weren't as cutting edge as they claimed to be. It doesn't teach | you how to actually write actual Doom, of course. | | But prior to the widespread roll out of the internet, it's hard | to get across just how inaccessible most of the knowledge in the | book was, at least for a high school kid like me. It really was | like turning on a light switch when I got it. Sometimes something | is just at the right place at the right time for someone, and | that's what that book was for me. | herodoturtle wrote: | Loved reading this, thanks for sharing. | | And a shout-out to mode13h. In my case it was BBS and Denthor's | tuts that changed my life. | | Good times. | pixelpoet wrote: | As someone who grew up in similar circumstances in the 90s | but in South Africa (no home internet, no books, no friends | no help at all) and then finally found Denthor of Asphyxia's | tutorials (as well as PCGPE and eventually Huge), I was super | gutted to find there wasn't really a South African graphics | coding scene, it was basically just him :/ | | Mode 13h changed my life and set me on the course to being a | graphics coder today (along with an email from John | Carmack!), it's been such an amazing ride with hardware | getting exponentially faster every year (RIP to that). I | ought to get mov ax, 13h; int 10h tattooed along with | 0xa0000, 0x3c8, 0x3c9 or something :) | gdubs wrote: | I have such nostalgia for that particular moment in time, and | for me it was the Renderman Companion and Advanced Animation | and Rendering Techniques. The web was still small, and the | information density contained in Borders Books or Barnes & | Nobel was just completely immersive. Lots of snowy Saturday | trips to the mall with my parents and negotiating the purchase | of another hefty computer book. | SnowProblem wrote: | Very similar story here. I was in middle school when the | follow-up Tricks of the Windows Game Programming Gurus came out | [0]. I read it cover to cover and proceeded to buy as many | Premier Press books I could get using money I'd save from doing | chores around the house. This wasn't pre-Internet but the best | material was by far still in books. My dad would pay $5 per | hour so if I worked hard I could buy another book after a | weekend of yardwork. Those middle and early high school years | were incredible. You could still understand the cutting-edge | and a single person could still make something big like | RollerCoaster Tycoon or Doom. I made a bunch of games, | isometric ones, worlds in D3D and OpenGL, physics sims, learned | CS algorithms, made pixel art and 3d models in 3ds max, and | even made my way to a game developer's conference as an awkward | teenager. The only downside to all this is it pulled me away | from schooling. I probably could have gone to a better | university and had an easier time the first few years of career | had I put just a little more effort into classes, but that's | life. No regrets. | | [0] https://theswissbay.ch/pdf/Gentoomen%20Library/Game%20Devel | o.... | NBJack wrote: | Oh, man, the nostalgia. I remember borrowing this. It taught me | the basics, mode 13h, direct memory access (0xA0000000 anyone?), | palette swaps, the works. I remember getting a wave file extract | from Duke Nukem 3D playing in my primitive cyclic buffer. | | I never went in to game dev, but I did learn a lot from the | experience. | creeble wrote: | Andre LaMothe, my counterpart writer for Waite Group Press. I | wrote "The Black Art of Windows Game Programming" in 1994. Mitch | (Waite) loved those "Black Art" titles. | | Edits for spelling and year, which I'm still not sure about. | digitalsin wrote: | Man I LOVED the Black Art of Windows Game Programming! I was in | high school when that book came out and I grabbed it as I was | curious about game development and development in general. | Although it was over my head at the time, 25+ years later into | my development career and I credit this book in having had a | huge impact on that as it really furthered my interest in | programming. Thank you! | b3d wrote: | Not to speak ill in any way of your guys' works, I really enjoy | these books for their nostalgic qualities - both LaMothe, | yours, as well as a few other ones like the RTS Game | Programming (1997?) from one of the AoE developers. I have a | physical collection of majority of the "greatest hits" from 90s | and early/mid 2000s - mostly Engine/Graphics type stuff. It's | nice to read and see how people solved issues having fewer | abstractions and layers than we do now, potentially solving | things "on the fly" as it were, not really knowing the One True | Way but making things work one step at a time all the same. In | hindsight, these books were written at a time where hardware | acceleration was taking off, so it adds to the nostalgia | somewhat. | | The most recent holy grail of a book for me has been Luna's | D3D11 tome. I haven't kept up since. | mysterydip wrote: | Thanks for giving me (and others) such a great/fun resource! I | recall at least in LaMothe's at the end there was a contest to | make the best mod/improvement off of the book's engine. Do you | know if those actually happened and if the winners are | accessible anywhere? | massifist wrote: | This brings back some fond memories. I still have a copy of the | book "Tips and Tricks of the Game Programming Gurus", though it's | not in very decent condition. It has this ray traced image on the | front cover (with a crazy monster) that is very characteristic of | the early 90s. Though, I could never help but notice what | appeared to be an error on the staircase banister where it looked | like the normals were facing the wrong way. So it looked hollow. | Or maybe the (object's) matrix was wrong. Anyway. The book really | had me hyped up to create some virtual worlds. Like DOOM. | | I learned a lot from the book but some of the topics where a | little too advanced for me at the time, as I was still learning C | and grappling with x86 assembly language. | | However, I rediscovered the book several years ago and | implemented something similar to the ray caster (which had really | impressed me at the time) in DOSBox. I tried to optimize the | algorithm and add a few enhancements. It was lots of fun! A | genuine (early 90s) retro experience! I think I even had to fire | up Turbo Debugger to solve a few problems. | kevinsync wrote: | I still have this on my shelf and worked through it cover to | cover more than once in middle and high school in the 90's. | LaMothe was a massive inspiration and, while I'm not totally | convinced that these types of project-based instructional books | are as relevant in the 2023 world of Github / blogs / etc, I | really miss being walked through a complex piece of software from | beginning to end with commentary and supporting code in a giant | book that you can touch and feel and flip through the pages of. | | Also very much worth shouting out Mark DeLoura's 'Game | Programming Gems' series -- I'm not sure how it even happened, | but I got a chapter published in the first volume while being a | 17 year old kid who had zero professional experience in any | industry of any kind lol (I just replied to a call for | submissions on Gamasutra, was told 'ok code it up and write a | paper' and I did. And they printed it!) | endgame wrote: | > I'm not totally convinced that these types of project-based | instructional books are as relevant in the 2023 world | | I got a lot out of Crafting Interpreters, typing in the | bytecode VM by hand and working slowly through the book. | Stitched a lot of things together in my mind which previously | had only been half-understood research papers. | sourthyme wrote: | I grew up with this book in elementary school. I remember | learning how complicated 3d graphics were at the time and | eventually helped me with graphics in university. | ImPleadThe5th wrote: | Is this book still applicable? Anybody have some other good | computer graphics textbooks to recommend? | richardjam73 wrote: | If you want to make a game in 2023 you should just use an off | the shelf game engine. If you want to understand how older 3D | games were made then this will help. If you are writing a game | in DOSBox with an old C compiler then it would be useful. Some | of the book will deal with issues that machines of the time had | and no longer exist so you probably would need to discount | those for modern machines even if you wanted to write a | software renderer. | | Examples of the stuff that doesn't apply today are | | * Graphics using VGA | | * fixed point math for speed | | * input output routines under DOS (keyboard, joystick, mouse) | | * Sound under DOS | | * Networking under DOS (null-modem) | | * DOS interrupts | | * 32bit stuff | | * 80387 floating point | | The parts of the book that discuss the maths are quite good. | [deleted] | projectileboy wrote: | This pops up on HN every few months, and I don't even mind. At a | minimum, read the last couple chapters on the development of | Quake. So fun. | wk_end wrote: | Pretty sure you're thinking of Abrash's Graphics Programming | Black Book (understandable). Abrash was a developer on Quake | and the GPBB has a couple of chapters on it at the end IIRC. | | Whereas: this book was written by Andre LaMothe, who did not | work on Quake. It predates Quake and AFAIK doesn't mention it. | projectileboy wrote: | Oh no you are right! My mistake - my first "real" programming | job was at a game studio in 1997, and I devoured both of | these books (well, and more, including Expert C Programming | by Peter van der Linden). Great books. | pengaru wrote: | Also worth noting is Abrash's Black Book is pretty | specialized for the x86 PCs of the 90s. It's not really all | that applicable to game programming today, unless you're | deliberately doing retro development for 486/pentium class | machines w/VGA. | jbverschoor wrote: | This was a very good book. Together with the code on the cob | series by Chris Hargrove of 3DRealms, it gave a great insight | into 3d engine programming, account, memory management etc ___________________________________________________________________ (page generated 2023-09-04 23:00 UTC)