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."

128 comments

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

    duke nuken

    1. Re:duke nuken by GeekWithAKnife · · Score: 0

      You spelled that wrong, twice! Dumbass.

      --
      A 'singular oddity' is an event that cannot be explained and only happens when you are alone.
    2. Re:duke nuken by sharkey · · Score: 2

      Pfft. I know a genuine Panaphonics when I see it. And look, there's Magnetbox and Sorny.

      --

      --
      "Outlook not so good." That magic 8-ball knows everything! I'll ask about Exchange Server next.
    3. 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?
    4. Re:duke nuken by Anonymous Coward · · Score: 1

      Always bet on Duke. Dunbass!

    5. Re:duke nuken by Anonymous Coward · · Score: 0

      I feel like going to some Asian marketplace and playing "spot the genuine artifact"

    6. Re:duke nuken by xxxJonBoyxxx · · Score: 2

      "Dam toes, ale in bass 'tards argon happy forts 'ooting up my right. "

    7. Re:duke nuken by din0 · · Score: 1

      I'd like the follow up to be Mew Super Nario Bros. for the Wii-V

    8. Re:duke nuken by Anonymous Coward · · Score: 1

      Hey, he's just quoting the title to the summary (did they fix that typo?). As to the actual topic which nobody is yet on, personally I found 3D to be not nearly as fun as the previous two Nukem side scrollers. It might have been because I was too eager for it and my hopes were too high, it might have been because I'd already been playing Quake 2 and even Quake 1 was technically better than Duke Nukem; DN3d was barely above Wolfenstein.

      It may have been because the actions of the people I was playing Quake against was what made that game so fun, and DN3D had no internet play. I'd be far more interested in seeing the Quake code.

    9. Re:duke nuken by Anonymous Coward · · Score: 0

      Sorny sucks, I only use quality SQMY-products.

    10. Re:duke nuken by nedlohs · · Score: 3, Informative
    11. 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!"
    12. 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.
    13. Re:duke nuken by Anonymous Coward · · Score: 2, Interesting

      It stood out for me because of how interactive the environment was, that there were many things that could be used or destroyed, etc. It was something I found missing from later games for some time too. This is not to say Duke Nukem was the first game to do any of that, but it was the first one I played and remembered for doing that. That was more memorable to me than the humor, which considering how crude it is at times, can be really hit or miss depending on the player's particular sense of humor.

    14. Re:duke nuken by asylumx · · Score: 1

      I guess that's why they need a code review.

    15. Re:duke nuken by Mister+Whirly · · Score: 1

      Crude or not it was the first FPS to even attempt humor. The whole "gritty realism" thing in FPS games wasn't quite there due to graphics limitations at the time, but the sense of humor definitely made it more enjoyable for me. And if you thought DN3D humor could be crude, did you ever play Shadow Warrior?

      --
      "But this one goes to 11!"
    16. 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).

    17. 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 */
    18. Re:duke nuken by Megane · · Score: 1

      Maybe it was just a case of really bad keming.

      --
      #naabhaprzrag, #sverubfr-000, #agi-fcbafberq, negvpyr[pynff*=' negvpyr-ary-'] { qvfcynl: abar !vzcbegnag; }
    19. Re:duke nuken by Mister+Whirly · · Score: 1

      Yeah Blood took what was good about DN3D and multiplied it times ten. For a long time that was my favorite FPS, probably until Half-Life came out and I got my first Voodoo 3DFX graphics card.

      --
      "But this one goes to 11!"
    20. 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
    21. 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.

    22. Re:duke nuken by Tarlus · · Score: 1

      And the pipe bombs. Oh man, I loved those.

      --
      /* No Comment */
    23. Re:duke nuken by Anonymous Coward · · Score: 0

      Quake 2 could use voodoo cards for rendering whcih provided AntiAliasing. I have a Canpus Pure 3D with 6 meg of ram versus the normal 4! I was cool back then.

    24. Re:duke nuken by SolitaryMan · · Score: 1

      RR was helluva fun! The levels were unnecessarily complex though. I mean in "I have no idea where to go now" way.

      --
      May Peace Prevail On Earth
    25. Re: duke nuken by Bluecobra · · Score: 1

      They most certainly had onboard graphics by the time these games came out. My Packard Bell POS 9000 with a 75mhz pentium had one. The onboard Cirrus Logic card took away 1mb out of my 8mb of system memory. Quake was the reason behind my first computer upgrade - - it needed at least 8mb to run.

    26. Re: duke nuken by sa1lnr · · Score: 1

      Even farther back, I had a 286-12MHz motherboard with onboard Western Digital Paradise EGA and an IDE controller too.

    27. Re:duke nuken by hairyfeet · · Score: 1

      When I say "graphics card" I assumed since we were talking about 3D gaming everyone would understand I meant a 3D accelerating graphics card or chip, even the lowest intel chip does several orders of magnitude more than what the chipsets back then did.

      And did you ever try running Quake on a 486 with no 3D chip? yeah sure it would "run" if you count sub 15FPS as "running". Unlike the Build games you had to have a pretty damned beefy PC for the time to run Quake without 3D and even with 3D it was quite the piggy, the Crysis of its day. I remember getting a nice 100MHz P1 because it wouldn't run quake and Hexen worth a damned and the guy promptly went out and spent over a grand on the then cutting edge 233MHz with a 3D card just to play those 2 games, so I know all about what Quake could and couldn't do back in the day. That same PC played the Build games just great, which is how I ended up finding out about them as I liked to play shooters then as now.

      so just because you can run Quake on a $50 cellphone now does NOT mean most could run it when it was first released, if it weren't for the Voodoo 1 frankly a lot of the PCs at the time would have never run that beyond a slideshow.

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

      There were no consumer 3D cards on the market when Quake originally shipped, and certainly not when Duke3D shipped... It predates those things. They came later. So of course, despite your claims, you most certainly COULD play Quake with cards that didn't exist at the time. In fact, because 3D cards were so rare even after they did come out, most people played Quake without 3D cards.

      3D cards were not required to play Quake games until Quake 3 came out. I certainly didn't have one when I played Quake 2. Those were the days when it was a big deal when a 3dnow version of the Quake 2 software renderer was released, because it got an extra 10% FPS.

    29. Re:duke nuken by Guspaz · · Score: 1

      Considering that there were no consumer 3D cards on the market when Quake came out, let alone Duke3D, your assumption is faulty. Not only did Quake not require a 3D card, it did not even support 3D cards until the very end of 1996. That was when vQuake was released, which added support for Verite chips, and then later glQuake came out to support OpenGL. But those came later, and since very few people had 3D cards, they were not the norm at the time.

      Quake games did not require a 3D card to play until Quake 3.

    30. Re:duke nuken by Guspaz · · Score: 1

      Considering that there were no consumer 3D cards on the market when Quake came out, let alone Duke3D, your assumption is faulty. Not only did Quake not require a 3D card, it did not even support 3D cards until the very end of 1996. That was when vQuake was released, which added support for Verite chips, and then later glQuake came out to support OpenGL. But those came later, and since very few people had 3D cards, they were not the norm at the time.

      Quake games did not require a 3D card to play until Quake 3.

      Excuse me if this is being double-posted, Slashdot keeps eating the comments and I'm not sure if they're actually being posted.

    31. Re:duke nuken by hairyfeet · · Score: 1

      Oh you didn't double post, you TRIPLE posted, congrats. But that doesn't actually change a thing as again Quake was the Crysis of its day and on release frankly most PCs just couldn't run it well. i wouldn't be surprised if the first 3D cards were used more for taking some of the load off the practically melting CPU than for 3D, and yes i know GLQuake came out later but that doesn't change the fact that Quake had fully 3D characters which without a card seriously pimpslapped the shit out of the systems in their day.

      Also remember that Intel was one of only IIRC 5 vendors and frankly wasn't even the most popular and most of those other chips? Couldn't run Quake AT ALL without some sort of assistance. The reason being that Quake was floating point heavy and most of the chips back then didn't have floating point support As I said I ended up with a 100MHz PC back then for less than $100 (IIRC it was either an AMD or a Cyrix) simply because it couldn't play Quake and Hexen. those two games were THE games to play at the time and frankly most systems wouldn't run them at more than 10FPS until 3D cards came along to share the load.

      --
      ACs don't waste your time replying, your posts are never seen by me.
    32. Re:duke nuken by lnunes · · Score: 1

      Lo Wang to a naked lady taking a bath: Do you want to wash Wang? Or do you want to watch Wang wash Wang?

    33. Re:duke nuken by aiht · · Score: 1

      Yeah Blood took what was good about DN3D and multiplied it times ten. For a long time that was my favorite FPS, probably until Half-Life came out and I got my first Voodoo 3DFX graphics card.

      My sentiments exactly; Blood was my favourite until Half-Life.
      I used to love the voxel sprites in the Build engine. Ken Silverman was my hero.

    34. Re:duke nuken by MadKeithV · · Score: 1

      And did you ever try running Quake on a 486 with no 3D chip?

      Back at uni I ran Quake 1 and Quake 2 on Windows NT4 machines without 3D hardware acceleration, for many, many hours as part of a Quake clan. There was nothing wrong with Quake's performance on standard machines without 3D cards in those days.
      I ran D3D an awful lot too, because it was great fun in multiplayer.

    35. Re:duke nuken by csirac · · Score: 1

      Quake was very nice with a 3D card. But at least where I was at school, most players enjoyed the game without one.

    36. Re:duke nuken by Anonymous Coward · · Score: 0

      We all played it in 320x200.
      And from non I will treat your other posts on ./ as going from uninformed old retard.

    37. Re:duke nuken by Anonymous Coward · · Score: 0

      I remember running Hexen *flawlessly* on an old i80486DX/2-66MHz and Quake was almost perfect on my Pentium 100MHz without any 3D acceleration (as others have said, there was no such thing back then). My roommate back then had a Pentium 133MHz and he could run Mechwarrior 2 at 1024x768 smoothly (again, no 3D acceleration existed at the time).

      Basically, you don't know what you're talking about. You even claimed you were running a "P1" 100Mhz and now say that it was an AMD or Cyrix, neither of which made "P1" CPUs. The CPUs that AMD and Cyrix made in "competition" to the Pentium were just their 486 stock at slightly higher clocks and a few additional instructions (ie. Am5x86) to make them compatible with some Pentium only software. They still performed at 486 level, especially with floating point.

      Also, *all* 486DX and Pentium CPUs had FPUs.

    38. Re:duke nuken by hairyfeet · · Score: 1

      I'm sorry Ms AC but not only are you full of shit but you can't even read before posting. I said VERY CLEARLY that "Intel was one of 5 VENDORS and that the other vendors had NO FLOATING POINT which Quake relied heavily upon" so what do you write? "My INTEL CPUS ran it just fine!"

      Well no shit retard, the whole selling point of Intel was FLOATING POINT which is also why their chips cost more, because you had the X87 FP units and X86 main CPU until Pentium came and combined them. Try reading before posting otherwise you just look like an idiot. Oh and its called "PR rating" look it up. They ALL used PR rating back then and it was based on the P1 so they were all called "P1" based on rating. Cryix had a P1 rating of 66MHz-125MHz, AMD had a P1 rating up to 300MHz, it was all based on PR rating.

      --
      ACs don't waste your time replying, your posts are never seen by me.
    39. Re:duke nuken by Anonymous Coward · · Score: 0

      You're a fucking idiot. Am5x86 had an FPU and so did ALL 486DX CPUs, regardless of manufacturer.

      Seems like you're the one who needs to learn how to read, junior.

    40. Re:duke nuken by Anonymous Coward · · Score: 0

      Oh and BTW, it was the "PR" system, not "P1" system and there was no such thing as a "P1" rating within the PR system because there was never a CPU that ran equivalent to a 1MHz Pentium. Clearly you were either trying to mislead or you don't know what you're talking about. I'm betting it's the latter based upon how much bullshit you regularly spew when it comes to computer technology.

    41. Re:duke nuken by hairyfeet · · Score: 1

      Did you need to be bitchslapped with a citation, fine bitchslapped you are. I quote the very first fucking sentence under PR rating which says, and I quote "The first use of the PR system was in 1996, when AMD used it to assert that their AMD 5x86 processor was as fast as a Pentium running at 75 MHz."

      Guess what sparky? They didn't make P2s at 75MHz, that was the P1 hence the P1 PR rating dumbass. Nothing I hate more than children that don't know their fucking history, I was in the biz building and selling systems at that time so i knew damned well what the chips were called because I was ordering them every fucking day. You had Cyrix and WinChip and AMD and they all used the PR P1 rating because people knew WTF a Pentium 1 was and could do, not a Cyrix or WinChip or AMD, hence the WHOLE FUCKING POINT OF A PR RATING!!!

      How fucking sad that /. has sunk so low its filled with puppies like fucking Reddit, it just turns my stomach how damned clueless everyone here is becoming. No damned wonder all the greybeards are moving away while the site gets taken over by AC dumbasses such as yourself, none of you have the guts to even stand by your posts because deep down you know you don't know WTF you are talking about!

      --
      ACs don't waste your time replying, your posts are never seen by me.
    42. Re:duke nuken by Anonymous Coward · · Score: 0

      Your 100Mhz 486 processor almost certainly got a FPU, it was just slow. A Pentium 75Mhz FPU would beat it easily. If it didn't have one, Quake wouldn't even run!

      And please, stop bitching and get your facts straight: the original Quake executables had NO USE WHATSOEVER for a 3d card. It didn't know even that they were present.

    43. Re:duke nuken by Anonymous Coward · · Score: 0

      The 486's had FPUs too, dumb asshole.

  2. Nuken... Really? by Anonymous Coward · · Score: 0

    For shame /.!!

    1. Re:Nuken... Really? by Hatta · · Score: 4, Funny

      For shane.

      --
      Give me Classic Slashdot or give me death!
  3. Duke Nuken by digitalmonkey2k1 · · Score: 5, Funny

    Cone get sone!

    --
    My sausage tree didn't grow, does that make me a bad mommy?
  4. Fuck, it's a 5 word title by nedlohs · · Score: 2

    And you can't get it right. 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).

    1. 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!

    2. 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.
    3. Re:Fuck, it's a 5 word title by Desler · · Score: 1

      Firmly mediocre. Yep, that describes Slashdot to a T.

    4. Re:Fuck, it's a 5 word title by Desler · · Score: 1

      Men's room attendant?

    5. Re:Fuck, it's a 5 word title by Anonymous Coward · · Score: 0

      Would you hire someone who had "Was Slashdot editor 'timothy'" on their resume?

      Shit, I'd rather hire someone straight out of prison.

      I just said, "I'm going to change your name to timothy" to my dog.

      He came over and pissed on my leg.

    6. Re:Fuck, it's a 5 word title by Anonymous Coward · · Score: 0

      Men's room attendant?

      Fluffer in gay porn studios?

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

      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.

      He never had any abilities, how do you think he got the job in the first place?

    8. Re:Fuck, it's a 5 word title by hedwards · · Score: 1

      Yeah well, Tirnothy tends to miss things like this.

    9. Re:Fuck, it's a 5 word title by Anonymous Coward · · Score: 0

      He had the largest micropenis of all the applicants?

    10. Re:Fuck, it's a 5 word title by Anonymous Coward · · Score: 0

      He already moonlights as that.

    11. Re:Fuck, it's a 5 word title by Anonymous Coward · · Score: 0

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

      It's like saying: "Statistically everyone eats one bread every day, when actually one person eats two breads every day and the other one is starving to death".

    12. Re:Fuck, it's a 5 word title by Nyder · · Score: 1

      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.

      I don't think anyone would hire him, the example of his work is on the internet for everyone to see, and he fails way too often.

      --
      Be seeing you...
  5. 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?
  6. 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 SrLnclt · · Score: 2

      So anyone have an ETA for the Duke Nukem Forever source code?

    3. Re:Duke Nukem Forever by 91degrees · · Score: 2

      There's probably several working but incomplete versions. Different iterations apparently used 3D Realms home grown "Build" engine, the Quake 2 engine and the Unreal engine, and while I guess the engines may have been designed with some compatibility but it's rarely easy to just switch.

    4. Re:Duke Nukem Forever by Anonymous Coward · · Score: 0

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

      Of all the bad things I've heard about DNF, "buggy as hell" strangely wasn't one of them. Care to elaborate?

    5. Re:Duke Nukem Forever by Anonymous Coward · · Score: 2, Interesting

      What I love about DNF is that you can spot the bits where, over the years, they looked at the hot FPS du jour and thought 'shit we better put that in'. Like the eerily empty Half-Life 2 bits.

    6. Re:Duke Nukem Forever by Anonymous Coward · · Score: 5, Funny

      When it's done!

    7. Re:Duke Nukem Forever by Anonymous Coward · · Score: 0

      The Build engine wasn't exactly home grown. It was a personal project by Ken Silverman, which ended up a lot more advanced than most commercial engines at the time. I believe 3DRealms bought up Ken and his engine after it was considerably complete.

    8. Re:Duke Nukem Forever by locopuyo · · Score: 1

      It probably wouldn't be quite as bad as you think. They scrapped a lot of the old code when they switched engines. In the end they used a modified version of the Unreal 2 Engine so they were at least building off of something good.

  7. Re:Oh, you're going to get an F on that one for su by Anonymous Coward · · Score: 0

    The method names are more preference. Libraries should use a namespace prefix sure, but it's less of a problem for an application. And case typing is entirely a user-preference.

    But I agree with you on the voids/globals.

  8. Resource limit reached by Anonymous Coward · · Score: 0

    Resource Limit Is Reached
    The website is temporarily unable to service your request as it exceeded resource limit. Please try again later.

    Hmm, maybe there will be an update released any day now...

  9. 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.

  10. Re:Oh, you're going to get an F on that one for su by Anonymous Coward · · Score: 0

    Those who can, do.

    Those who cannot, teach

    Those who can't teach, teach college!

    I love professors like that- they never account for all the bad code that is already out there and never realize that sometimes you just have to deal with it.

  11. Yeah by Prokur · · Score: 1

    Piece of cake!

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

      Piece of cake!

      That's a lie!

  12. Re:Oh, you're going to get an F on that one for su by Anonymous Coward · · Score: 0

    those who can't teach become journalists

  13. 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.

  14. 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
    1. Re:Sequel by Anonymous Coward · · Score: 0

      Damn noobz.

    2. Re:Sequel by telchine · · Score: 1

      Slashdot User #101 thought it was going into his room

    3. Re:Sequel by jon3k · · Score: 2

      Excellent use of a three digit UID, I applaud you sir.

    4. Re:Sequel by Areyoukiddingme · · Score: 2

      Nominated for Best of Slashdot 2013.

      That's two so far this year. A banner year in cleverness.

  15. 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.

  16. Re:Oh, you're going to get an F on that one for su by Anonymous Coward · · Score: 0

    Yes! I use to roll me eyes that they things they would spout off about.

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

    Here in the real world using global variables gets you fired. Even worse are the PHP dunderheads who think that turning on register globals is a good idea.

  18. Portals by BasilBrush · · Score: 1

    When I used to look at Doom and Duke3D and try to imagine how the engine worked, portals was the concept I imagined. I was surprised and initially rather confused when I found out that Doom actually worked using Binary Space Partitioning.

    I'm rather pleased to see that I was at least right in my theory with regards to DN33. Possibly I came up with the portals theory after seeing DN3D's windows and mirrors, and then imagined that Doom worked the same way.

    Anyhow, the article was a great read.

    1. Re:Portals by BasilBrush · · Score: 1

      ... Mind you I'd only ever imagined portals as complete rooms. But in actuality the borders of portals are everywhere the floor or ceiling height changes. So each chair for example consisted of two portals, one for the seat area, and one for the back.

  19. Re:Oh, you're going to get an F on that one for su by Anonymous Coward · · Score: 0

    ISTR it was well featured but not as fast as DOOM, on my old P60. Fast enough, though, and just way, way more variety in the artwork than DOOM.

  20. Tricks and traps by phorm · · Score: 1

    My personal favourite was:
        laser-tripmine just outside of a door beside a pile of pipebombs...

    Door opens, breaks laser, explodes tripmine, explodes pipebombs. Bonus if you can leave a little breadcrumb trail of pipebombs.

    Also fun to stick at the bottom of mineshafts, steps, etc.

    1. Re:Tricks and traps by Anonymous Coward · · Score: 0

      There was one of the official levels that had teleporters that were right in front of each other allowing players to simply run forward and go in a circle. You could fire a rocket into the teleporter and it would keep going in a circle until it hit something. I would always fire off a couple of them at the beginning of the game at head-height and then duck whenever I used the teleporter. Eventually someone else wouldn't take that precaution and I'd get credit for a kill minutes after firing the rocket.

    2. Re:Tricks and traps by Anonymous Coward · · Score: 0

      I remember you, you little fucker!

  21. Re:Oh, you're going to get an F on that one for su by Murdoch5 · · Score: 1

    Okay, sit down, grab a good embedded C board and write me an entire full featured RTOS without using a global, once you can do that you can slander global variables.

  22. 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.

  23. 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".

  24. Re:Oh, you're going to get an F on that one for su by Murdoch5 · · Score: 1, Troll

    Embedded Code out numbers Non Embedded Code on about a 50 000:1 scale. Every single little micro-controller, power IC, control system and numerous other devices, to many to mention, all run Embedded Code. Desktop code really being the exception should follow Embedded Code.

    Desktop code roughly teaches:
    Global's are evil.
    Goto is the most evil and hated statement ever.
    Loops shouldn't run forever.
    Pointers in general are evil.
    Function pointers are to hard to understand because people are morons.

    etc... etc... etc... Basically all the great features of a languages are considered evil because some dumb ass in the office who doesn't understand programming messed it up. Don't blame the guys who know how to program, blame the guys who don't. If desktop code was designed more like Embedded code you would have computers that run multiple times faster and more secure.

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

    Ha, yeah right. We don't even have secure embedded devices. We have plenty of buggy, crashy, insecure ones though.

    I am not sure what metric you are using, but most programmers are not employed writing embedded systems.

  26. Re:Oh, you're going to get an F on that one for su by Murdoch5 · · Score: 1

    I never said most programmers were embedded programmers, I said embedded code out numbers non embedded code. If you take unit insecurity and compare the desktop to the embedded world then you'd easily find the desktop contain FAR more insecurity then the embedded world. Every door lock, finger lock, bio-meteoric lock runs embedded code. Most cars on the road run embedded code, most airplanes run embedded code. Most military drones run embedded code, all phones run embedded code, all desktop computers even run embedded code in the form of a Bios / UEFI. I can keep going but you should get the point. If you scale embedded code and desktop code to be equal I think you'd find that secure desktop programming is basically non existent.

  27. Re:Oh, you're going to get an F on that one for su by Anonymous Coward · · Score: 0

    There was a coder in our organization that did not understand what the 'var' keyword does in Javascript, and hence never used it for any of their variables, ever. That person is, shockingly, no longer employed here.

    Every so often we come up against a problem as a result of this person's legacy, even a year later. We call such incidents [Name]Bombs. Just goes to show how a bad coder can have a severe negative effect on an organization.

  28. My favorite part by Anonymous Coward · · Score: 0

    Is the genesis of a source port that doesn't engage in a delusional modder's fantasy of sticking in Ted Turner and redundant real-world weapons.

  29. Re:Oh, you're going to get an F on that one for su by hedwards · · Score: 1

    I always love when people post this sort of nonsense. Good luck getting a job teaching if you can't do it first, sure it does happen, but portraying that as the status quo is just ignorance.

    Teachers not only have to be able to do whatever it is, but they also have to be able to teach other people how to do it. The references I see in this thread are pretty much indicative of, we don't actually want to do it correctly, so we'll disparage the folks trying to make our lives easier by forcing the development of good habits. You see that in pretty much any specialty.

  30. Re:Oh, you're going to get an F on that one for su by crazyjj · · Score: 1

    I actually miss goto and I'll admit it. It doesn't NECESSARILY produce spaghetti code, people! [ducking for cover]

    --
    What political party do you join when you don't like Bible-thumpers *or* hippies?
  31. 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"?
  32. Re:Oh, you're going to get an F on that one for su by yincrash · · Score: 1

    I think that would be for most number of devices, not necessarily lines of code written (or even # projects). Most code written today is not for embedded systems.

  33. Re:Oh, you're going to get an F on that one for su by Murdoch5 · · Score: 1

    Even a small update to a micro-controller can cause millions and million of devices to requires updates. Embedded Systems far out number Desktop Systems, even a mobile system is an embedded system. So I would say that most development really is for embedded platforms.

  34. Re:Oh, you're going to get an F on that one for su by Anonymous Coward · · Score: 0

    The no globals thing comes from OO programming. Doesn't matter if it is embedded or desktop, on OO languages you use static class members. These are essentially globals, but they are confined to a namespace. In C you sometimes need globals, but if you are using globals to return the results of a function call, your doing it wrong. You made your API non-thread safe for no good reason.

  35. Re:Oh, you're going to get an F on that one for su by Anonymous Coward · · Score: 0

    Indeed, these Apple iOS programmers must be doing something wrong, with their OS X desktop code running on devices filled with viruses and malware.

  36. Re:Oh, you're going to get an F on that one for su by Anonymous Coward · · Score: 0

    It's not proper spaghetti until there is a jump across functions.

  37. Re:Oh, you're going to get an F on that one for su by petsounds · · Score: 2

    Well it wasn't true 3D; the Build engine was basically 2.5D -- the levels were still 2D, with an added height component -- using a lot of clever hacks to enable Z-axis levels and targeting. It worked well enough, and was a lot faster than the true-3D Quake on machines of the day. Quake needed a Pentium; if memory serves, Duke could run well on a 486.

    I'd disagree that it was the best-featured engine of the day though. Bungie's Marathon engine was 2.5D with free-look and z-axis targeting, but also allowed for higher bit-depth textures, featured a basic physics engine for weapon effects, featured alt-fire modes for weapons, and more advanced networking. And it came out in 1994; Duke arrived in 1996. Ultimately, they're both innovative engines, but I'd give the nod to Marathon as being the best of the time.

  38. Re:Oh, you're going to get an F on that one for su by BasilBrush · · Score: 0

    Thanks for the pointer. Back then I was still on PCs, so I wasn't aware of Marathon. I see it's been ported to the iPad, so I'm downloading it for a look.

    I imagine Macs of the day were better featured than the PCs. So that might account for some of it? Perhaps.

    Did Marathon have angled floors? I remember being impressed with that in DN3D, having been used to Doom's limitations.

  39. Re:Oh, you're going to get an F on that one for su by BasilBrush · · Score: 0

    Oh yeah, destroyable walls, transparent windows and reflecting mirrors were also impressive aspects of DN3D, did Marathon have those?

  40. Re:Oh, you're going to get an F on that one for su by petsounds · · Score: 1

    The Marathon series has also been open-sourced by Bungie, and builds are available for Mac, Windows, and Linux. Probably a better experience than the iPad version (haven't played it), but YMMV. They're actually pretty good single-player games.

    With regards to your questions, Macs of the day did have an edge on graphics as compared to PCs, so that could account for the higher resolutions and higher bit-depth textures. But most of it is just smart people making cool stuff. As for destructible stuff, you know, I don't really remember. I haven't really played through the Marathon games since the 90's -- I should probably download them myself! But yes, Marathon has angled floors, and also features liquids, with different physics for each type.

  41. Re:Oh, you're going to get an F on that one for su by petsounds · · Score: 1

    Bungie has open-sourced the Marathon series, with builds available for Windows, Mac, and Linux, so that may be a better experience than the iPad version.

    You're right -- Macs of the day did have better graphics capabilities than equivalent PCs, so that may account for the higher resolutions and texture bit-depths. But I think most of the innovation just comes from smart people making cool stuff.

    Yes, Marathon did have angled floors. Destructible stuff, I'm not sure -- the last time I played through the series was in the 90's. Guess I should download those games as well!

  42. Re:Oh, you're going to get an F on that one for su by petsounds · · Score: 1

    Bungie has open-sourced the Marathon series, with builds available for Windows, Mac, and Linux, so that may be a better experience than the iPad version.

    You're right -- Macs of the day did have better graphics capabilities than equivalent PCs, so that may account for the higher resolutions and texture bit-depths. But I think most of the innovation just comes from smart people making cool stuff.

    Yes, Marathon did have angled floors. Destructible stuff, I'm not sure -- the last time I played through the series was in the 90's. Guess I should download those games as well!

  43. Settings file by thereitis · · Score: 1

    Duke Nukem was a great game - many hours played over the phone lines and single player. One fond memory I have is tinkering with the Duke Nukem game settings file. IIRC you change all sorts of things like bullet damage, explosion radius, health, etc.. I once set the radius high enough that you could kill all the enemies in the level with one RPG round aimed at the floor. Then walk around and witness the carnage. ;)

  44. You are wrong. THAT GAME DID WHAT I WANTED. by Anonymous Coward · · Score: 0

    I want to cuss at monster and lend my attitude to the game environment. I want to put cash on hookers. I want to shoot my firearms in the city and in the game. The monster is stealing Earth's chicks and I'm still a virgin.... I'm gonna rip your head off and shit down your neck! You are going to pay for that!

    Then there are those LARD ass COPS....

    This game taugh everyone what Los Angeles was all about, built on one of the best fucking WWF wrestlers Roudy Roddy Piper, and it did what we wanted. It's like 3D Realms knows what's in my mind and our minds! Man, that's gotta curt if you were an inspiration for birth control.

    This sucks that games gone FULL ENVIRONEMNTAL 3D not Fast 3D (2.5D as in Duke Nukem 3D).l

    Wait a minute...I thought that game was made for me... It's like the game was written as I played it. You mean it was the same for everyone? ahhhhhhhh ;-( wait a second. You mean there are others that feel like I do? You mean I'm not alone? Fahck year! :-)

  45. Re:Oh, you're going to get an F on that one for su by jones_supa · · Score: 1

    And a recursive call to main().

  46. Re:Oh, you're going to get an F on that one for su by jones_supa · · Score: 1

    I ran Duke3D on P60 and it ran full speed all the times. (Of course the SVGA modes were another story, but that is understandable.)

  47. a.c by CODiNE · · Score: 1

    I noticed in the article that he was working with a decompiled version of the a.c file.

    a.c: A C reverse-engineered implementation of what used to be highly optimized x86 assembly. It works but is a monstruous pain in the ass to read :( !

    A version of it reimplemented in C was released as detailed here.

    08/20/2003: BUILDC.ZIP: Unobfuscated A.C. (that's a .C source file, not an air conditioner : )

    MUCH easier to read.

    That should help with his project updating the engine as well as anyone else wanting to study the code in depth.

    --
    Cwm, fjord-bank glyphs vext quiz
  48. Re:Oh, you're going to get an F on that one for su by MadKeithV · · Score: 1

    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.

    Yeah, C doesn't have methods, it has functions. Argh!

  49. Re:Oh, you're going to get an F on that one for su by LordLucless · · Score: 1

    Really, part of the fault lies with javascript, though. I generally like javascript, but implicit globals - bad idea.

    --
    Just because you're paranoid doesn't mean there isn't an invisible demon about to eat your face
  50. Re:Oh, you're going to get an F on that one for su by Anonymous Coward · · Score: 0

    Which is not what 99% of code does.

    Citation?

  51. Re:Oh, you're going to get an F on that one for su by Anonymous Coward · · Score: 0

    Here in the real world using global variables gets you fired. Even worse are the PHP dunderheads who think that turning on register globals is a good idea.

    Global variables are everywhere. They're just hidden by factory methods that obscure what's going on. So instead of "GlobalConfiguration.debugEnabled = true", we have "GlobalConfiguration.getOnlyInstance().setDebugEnabled(true)".