Slashdot Mirror


Duke Nukem 3D Code Review

alancronin writes "Similar to Fabien Sanglard's previous code reviews of other games such as the Quake and Doom line of games comes a review of the code base of Duke Nukem 3D (split out over 4 pages). This will be a very good read for anyone interested in understanding the mechanics of a highly addictive game or anyone that wants to learn more about game design."

25 of 128 comments (clear)

  1. duke nuken by Anonymous Coward · · Score: 5, Funny

    duke nuken

    1. Re:duke nuken by Sockatume · · Score: 4, Funny

      "I'm here to use my bubble-gun and kick some asps. And I'm all out of bubbles."

      --
      No kidding!!! What do you say at this point?
    2. Re:duke nuken by nedlohs · · Score: 3, Informative
    3. Re:duke nuken by Mister+Whirly · · Score: 5, Interesting

      Duke Nukem 3D was the first FPS to inject a healthy dose of humor into the game. That is what stands out in my mind over actual gameplay mechanics.

      --
      "But this one goes to 11!"
    4. Re:duke nuken by hairyfeet · · Score: 4, Informative

      Duke was okay but frankly IMHO it wasn't the best the Build engine had to offer. If you haven't played Blood or Redneck Rampage then you haven't seen what the Build engine could do, huge levels with tons of secrets, plenty of bad guys that would give you a good fight, and while the visuals of course couldn't match Quake you could play the Build games without a graphics card which at the time was NOT cheap.

      so if anybody hasn't tried them GOG has both Blood and Redneck Rampage and since they are running in DOSBox you can play them on just about any OS. If you really want to see what the Build engine could do those are the ones to play. besides who can't enjoy a game where you shoot a titty gun while drinking beer and listening to Mojo Nixon or go through classic horror sets like the Phantasm mortuary while spouting one liners like a cross between Clint Eastwood and Bruce Campbell?

      --
      ACs don't waste your time replying, your posts are never seen by me.
    5. Re:duke nuken by Guspaz · · Score: 4, Informative

      You couldn't run either Quake or Blood without a graphics card, there wasn't onboard video support back then. Presuming you mean a 3D card, neither Quake nor Blood originally supported 3D cards, and so both ran fine without it.

      Quake did later get a 3d-accelerated version (glquake), but it was by no means required, and was sort of unofficial (Id Software released it, but it was unsupported).

    6. Re:duke nuken by Tarlus · · Score: 4, Informative

      Duke 3D was waaay more sophisticated than Wolfenstein. While it did employ similar dated rendering techniques and the need for sprites, it did offer full range of motion along all three dimensions, actual floors and ceilings, interactive environments, the ability to look around using a mouse, and the ability to have passages that could overlap one another. Doom couldn't even do that.

      The Quakes were technologically superior, by far. Three dimensional rendering in the truest sense, greater lighting effects, antialiasing (I think that came about with Quake 2, but correct me if I'm wrong). Network play out the wazoo. Even the audio capabilities were incredible. (I used to love putting different CD's in the drive to change up the soundtrack. Megadeth's "Rust in Peace" goes very well with Quake.)

      But despite all that, I always had more fun with Duke 3D than I did with Quake. It just had a more colorful personality and it had more creative levels. Quake was always so... brown and gray.

      --
      /* No Comment */
    7. Re:duke nuken by VGPowerlord · · Score: 4, Informative

      Duke Nukem 3D was the first FPS to inject a healthy dose of humor into the game. That is what stands out in my mind over actual gameplay mechanics.

      DN3D also had a wide variety of weapons, some of which were... standard FPS weapons, some which weren't.

      Some of these were pioneered by DN3D, such as:

      • Remote controlled pipe bombs
      • Laser Trip Bombs
      • Freeze gun (which also bounces off walls)
      • Shrink Ray
      • Microwave gun (causes enemies to expand until they explode)
      • Holoduke (or distraction target)
      • Usable item Medkit (as opposed to the ones that are used when you walk over them)

      I should note that I'm focusing mainly on multiplayer things here.

      --
      GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
    8. Re:duke nuken by isorox · · Score: 3, Funny

      Duke 3D was waaay more sophisticated than Wolfenstein. While it did employ similar dated rendering techniques and the need for sprites, it did offer full range of motion along all three dimensions, actual floors and ceilings, interactive environments, the ability to look around using a mouse, and the ability to have passages that could overlap one another. Doom couldn't even do that.

      The Quakes were technologically superior, by far. Three dimensional rendering in the truest sense, greater lighting effects, antialiasing (I think that came about with Quake 2, but correct me if I'm wrong). Network play out the wazoo. Even the audio capabilities were incredible. (I used to love putting different CD's in the drive to change up the soundtrack. Megadeth's "Rust in Peace" goes very well with Quake.)

      But despite all that, I always had more fun with Duke 3D than I did with Quake. It just had a more colorful personality and it had more creative levels. Quake was always so... brown and gray.

      The amount of weekends I spent with a friend, 2 computers, and a null modem cable, so much fun. We even built a map of our school with build. And we showed it off during open evenings. Probably get arrested nowadays.

      Laser trip mines.Oh yes.

  2. Duke Nuken by digitalmonkey2k1 · · Score: 5, Funny

    Cone get sone!

    --
    My sausage tree didn't grow, does that make me a bad mommy?
  3. Oh, you're going to get an F on that one for sure! by crazyjj · · Score: 4, Informative

    Most methods have "void" parameters and return "void". Everything goes via global variables.
    Methods naming does not use camelCase or NAMESPACE prefix.

    Somewhere, my CS professor just had a simultaneous heart attack/stroke.

    --
    What political party do you join when you don't like Bible-thumpers *or* hippies?
  4. Re:Nuken... Really? by Hatta · · Score: 4, Funny

    For shane.

    --
    Give me Classic Slashdot or give me death!
  5. Duke Nukem Forever by KPU · · Score: 4, Interesting

    I'm more interested in a Duke Nukem Forever code review. Imagine how horrible it must be.

    1. Re:Duke Nukem Forever by Sockatume · · Score: 4, Interesting

      It'd be interesting to date various components of the code by technological improvements or software development trends.

      "Here we see a portion from the early 2000s, by which point the developers had discovered primitive particle effects. It is built upon the ruins of an older epoch developed in the Quake II engine."

      --
      No kidding!!! What do you say at this point?
    2. Re:Duke Nukem Forever by Anonymous Coward · · Score: 5, Funny

      When it's done!

  6. Re:Fuck, it's a 5 word title by stepdown · · Score: 5, Funny

    Don't be so hard on tinothy, he got 60% of the words right!

  7. Re:Fuck, it's a 5 word title by damn_registrars · · Score: 5, Funny

    Find a job more suited to your lack of ability already (though I admit it's going to be hard to find a job that requires less).

    Timothy has been with slashdot for so long that he is no longer qualified to do anything else.

    --
    Damn_registrars has no butt-hole. Damn_registrars has no use for a butt-hole.
  8. Re:Oh, you're going to get an F on that one for su by Murdoch5 · · Score: 3, Insightful

    The difference is most CS prof's don't program for the real world and would get a F if they tried.

  9. The appeal of DN3D by RogueyWon · · Score: 5, Interesting

    DN3D came out when I was in my late teens, about 18 months before I went off to university and got a net connection good enough for online gaming. At the time, it was DN3D, rather than Quake, that was the LAN multiplayer game of choice for my friends and I.

    Partly that was because of the actual gameplay. While Quake was a better twitch-shooter, DN3D had a real, nasty, sneaky dimension to its multiplayer. You could use the pipebombs and holoduke in particular to make traps for opponents that were just like something out of Spy vs Spy. Much more potential for hilarity than a simple rocket to the face.

    But it was also the ease of level creation. Once we were bored of the levels that came with the game, it was trivially easy to fire up the bundled level editor and make new maps. We'd been doing that before with Doom and, if anything, despite having "2.5d" levels (as opposed to Doom's straightforward "2d" levels), DN3D level creation was even easier due to the quality of the tool. By contrast, creating "3d" Quake levels was massively more difficult and time consuming.

    Once I went to University, of course, it became much easier to download new maps from the internet and the superior network infrastructure underpinning Quakeworld, Quake 2 and eventually Half-Life multiplayer moved my gaming in that direction instead.

  10. Sequel by Nick · · Score: 5, Funny

    When I first created my account on /. I remember getting excited about the sequel that was going to be released soon.

    --
    Fuck Ajit Pai
  11. Re:Oh, you're going to get an F on that one for su by BasilBrush · · Score: 5, Insightful

    The engine was written by an 18 year old. You've got to forgive the lack of college CS education and work experience, and marvel at the talent to actually make the best featured and performing 3D game engine of it's day.

  12. Re:Yeah by telchine · · Score: 3, Funny

    Piece of cake!

    That's a lie!

  13. Re:Oh, you're going to get an F on that one for su by h4rr4r · · Score: 5, Informative

    Which is not what 99% of code does.
    I was speaking generally, and generally globals are a bad idea.

  14. Re:Oh, you're going to get an F on that one for su by MrSteveSD · · Score: 5, Funny

    At my old job I was once writing a while loop and decided to use "i" as the name of a counter variable I was incrementing. After a while I noticed that I had not declared the i and was perplexed as to why there was no compile error. Then to my horror I discovered that someone was using a global variable named "i".

  15. Re:Oh, you're going to get an F on that one for su by Namarrgon · · Score: 4, Funny

    Had a similar problem; couldn't figure out why I kept getting surprising compiler errors in some of my perfectly legal loops. Even more surprisingly, I got similar errors in some basic expressions, despite identical expressions using different variables compiling just fine.

    Surprise was no longer adequate, and I had to resort to astonishment when I found a colleague had #defined the letter "r" to a constant.

    --
    Why would anyone engrave "Elbereth"?