[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)