Slashdot Mirror


Quake 3: Arena Source GPL'ed

inotocracy writes "At John Carmack's Quakecon 2005 keynote he promised that the Quake 3 Arena source code would soon be released-- turns out he wasn't just pulling our leg! Today it was released, weighing in at 5.45mb, it makes for a quick download and a whole lotta fun. Developers, start your compilers!"

485 comments

  1. Re:UT forever. by Anonymous Coward · · Score: 1, Insightful

    How big is the game engine that you wrote? 5 megs is a lot of code.

  2. Ha ! Bit late uh. by 88NoSoup4U88 · · Score: 5, Funny
    Releasing the source several years after the game is released, how lame !

    Take a look at VALVe, at least they released the source of Half-Life 2 before the game was released...



    Ohwait...

    1. Re:Ha ! Bit late uh. by Ruud+Althuizen · · Score: 2, Informative

      Mirrors can be found here and here.
      A FreeBSD port can also be found here, made by the guy who helped with the FreeBSD XBOX port.

      --
      **TODO** Steal someone elses sig.
    2. Re:Ha ! Bit late uh. by noisehole · · Score: 2, Informative

      very nice, compiled just fine, but cant test due no display atm

      heh, guess that native binary runs faster than the official linux one under emulation "RELEASE_CFLAGS=$(BASE_CFLAGS) -DNDEBUG -O6 -ffast-math -funroll-loops -fomit-frame-pointer -fexpensive-optimizations"

      thx for the port!

    3. Re:Ha ! Bit late uh. by yincrash · · Score: 1

      hey man, don't ruin it for the rest of us. businesses need to make money, and if they decide to release something for free once they've made all the money they were going to on it, then i would say that's a very good business practice. unlike some other companies that want hold on to copyrights for years and years after it should already belong to the public.

    4. Re:Ha ! Bit late uh. by Anonymous Coward · · Score: 0

      very nice, compiled just fine, but cant test due no display atm

      Oh, are you trying to run run Fedora Core 4 on a PC with a Matrox graphics card too? Badly corrupted display from the moment X starts up.

      Red Hat, you suck, you knew about this show-stopper in the test releases -- and in a popular card used by lots of FOSS (because of the OS drivers). What's worse, you still haven't fucking fixed it two/three months after the distro was released.

    5. Re:Ha ! Bit late uh. by Anonymous Coward · · Score: 0

      stop posting

    6. Re:Ha ! Bit late uh. by aichpvee · · Score: 2, Funny

      That whooshing sound you hear is the joke flying right over your head.

      --
      The Farewell Tour II
    7. Re:Ha ! Bit late uh. by Baseclass · · Score: 1
      It never ceases to amaze me how incredibly obvious jokes are lost on so many slashdotters.

      After reading the GP, I just knew some dumb ass was gonna bitch about it.

      --
      ^^vv<><>BA
    8. Re:Ha ! Bit late uh. by Anonymous Coward · · Score: 0

      The Quake source code is the full source code. Any source code released by VALVe, whether before or after a game's release, will only be for making mods.

  3. Re:UT forever. by Anonymous Coward · · Score: 0

    Which of the engines and why?

  4. Re:UT forever. by Anonymous Coward · · Score: 1, Insightful

    Tiny!? I'd like to see you write over 5mb worth of code.

  5. My first hack by daserver · · Score: 5, Funny

    #define cdkey_correct 1

    1. Re:My first hack by Anonymous Coward · · Score: 0

      But you'd still have to pirate the game resources, no different that pirating a cracked copy of the game.

    2. Re:My first hack by Shaklee39 · · Score: 1, Informative

      Quake 3 stopped checking cd keys for online play about 2 years ago.

  6. Re:Source Source by The+Ultimate+Fartkno · · Score: 4, Funny

    October 2, 2003, if I read my log... er, recall correctly.

  7. Mirror, sans registration... by Dave2+Wickham · · Score: 5, Informative

    If you don't want to register, but also don't want a capped download: Demon FTP.

    1. Re:Mirror, sans registration... by Anonymous Coward · · Score: 0

      Wow! Downloaded in 10 seconds. That's quite the mirror!

    2. Re:Mirror, sans registration... by ctr2sprt · · Score: 3, Informative

      And if you like BitTorrent: FileRush.

    3. Re:Mirror, sans registration... by cabazorro · · Score: 1

      Thanks Man!. T hat Mercury service is a worthless POS. First the damn pop-ups. Then the freaking conufussion withe effin applet and to cap it. When the dload supossedly started, fails with errno 11. Can't start thread. What a team of bozos! Did a say it? Oh here goes again. Thanks for the file.

      --
      - these are not the droids you are looking for -
    4. Re:Mirror, sans registration... by Andrewkov · · Score: 1

      Sweet, 290 kps! And I'm overseas in Canada! Thanks for the link!

    5. Re:Mirror, sans registration... by hh1000 · · Score: 1

      Thanks - you rock ... what is with that Mercury FTP signup crap?

    6. Re:Mirror, sans registration... by Anonymous Coward · · Score: 0

      Or if you don't give a shit, since its only ~6 meg ...

  8. porting by jaavaaguru · · Score: 5, Insightful

    I wonder what the most bizarre platform this can be ported to now is?

    1. Re:porting by ciroknight · · Score: 5, Funny

      I dunno about you, but I'm firing up the compiler on my toaster just as soon as I get home.

      --
      "Victory means exit strategy, and it's important for the President to explain to us what the exit strategy is." G.W.Bush
    2. Re:porting by Hinhule · · Score: 1

      Hmm I wonder if DOOMs code is out and about. I also wonder how fast that would be or was ported to a pacemaker.

    3. Re:porting by m50d · · Score: 2, Informative

      Doom's been around for ages, and runs on the ipod for starters.

      --
      I am trolling
    4. Re:porting by n3k5 · · Score: 1
      Doom's been around for ages, and runs on the ipod for starters.
      Runs? At 3 to 4 fps, let's say it strolls.
      --
      but what do i know, i'm just a model.
    5. Re:porting by timeOday · · Score: 1

      I don't know, is it the whole playable game, or just the engine? Didn't they in the past release the engine with no maps, textures, or sounds?

    6. Re:porting by Ruud+Althuizen · · Score: 1, Informative

      Mirrors can be found here and here .
      A FreeBSD port can also be found here, made by the guy who helped with the FreeBSD XBOX port.

      --
      **TODO** Steal someone elses sig.
    7. Re:porting by Egregius · · Score: 1, Interesting

      I upgrade a 'fringe OS' to a 'niche OS' as soon as it has Doom and Quake 2 running. For example Amiga, BeOS, RiscOS, Menuet, all niche OSes. Plan 9 would be a fringe OS.

    8. Re:porting by alphaseven · · Score: 3, Interesting

      Carmack mentioned during his keynote that the PSP should be able to handle Quake 3 level graphics, but I'm not sure if that means it would be able to handle a port of Quake 3.

    9. Re:porting by IntergalacticWalrus · · Score: 1

      Sorry, it already runs Windows.

    10. Re:porting by TheoMurpse · · Score: 2, Funny

      I'm waiting for the Dead Badger: Arena.

    11. Re:porting by Gallvs · · Score: 1

      I dunno about you, but I'm firing up the compiler on my toaster just as soon as I get home.

      Of course it runs Quake!

    12. Re:porting by KDR_11k · · Score: 1

      It'd handle a native version of Q3, i.e. one written specifically for the PSP. Might need a few parts of the code rewritten.

      --
      Justice is the sheep getting arrested while an impartial judge declares the vote void.
    13. Re:porting by Satertek · · Score: 1

      It's just the engine. You have to own Q3:A if you want to compile and run the original game in its entirety.

    14. Re:porting by yppiz · · Score: 2, Funny
      You know, I think I'd rather not hear my kitchen appliance say

      Quad toastage!

      first thing in the morning.

      --Pat

    15. Re:porting by Zzyzygy · · Score: 2, Interesting
      There's been a call for coders on the Haiku mailing list to port this to BeOS, Haiku, and/or Zeta:
      Sorry for interrupting your scheduled broadcast . . . we will return
      to your regular program shortly.

      The source code for Q3Arena has just been released under GPL. I'm
      willilng to be part of the team looking into porting this to
      BeOS/Haiku/Zeta (well, I've only got Zeta installed, but
      nevertheless), since I've got some experience with OpenGL. Anyone who
      *seriously* wants to participate in getting this beast building under
      the BeOS family (sorry, no offers to beta test yet), drop me a private
      line and I'll see about setting up a freelists mailing list for this
      project. We need to give Rudolf something other than Q2 to test his
      drivers with, since running the same old timedemo must be driving him
      nuts.

      I can be reached at:
      solaja FUNNY_MONKEY_SIGN gmail FULLSTOP com

      We now return you to your scheduled program...
      This is intriguing, I may sign up.

      -Z
      --
      My other sig is a Glock
    16. Re:porting by typical · · Score: 1

      I wonder what the most bizarre platform this can be ported to now is?

      QuakeC.

      --
      Any program relying on (nontrivial) preemptive multithreading will be buggy.
    17. Re:porting by LuSiDe · · Score: 1

      Well 1.17beta runs on IRIX. It would be nice to have an update to it. It ran quite smooth on my Octane with V8 btw.

      --
      WE DON'T NEED NO BLOG CONTROL.
    18. Re:porting by EvilSporkMan · · Score: 1

      Dreamcast? It had a commercial release of the game; be nice to see it go free now.

      --
      -insert a witty something-
    19. Re:porting by Guspaz · · Score: 1

      Well, Quake 3 compiles for linux, and the dreamcast runs linux, so... shouldn't it just be a matter of recompiling? Or is dreamcast linux missing hardware acceleration?

    20. Re:porting by EvilSporkMan · · Score: 1

      I'm pretty sure Dreamcast Linux is fairly unusable, but I left the scene a few years ago, so that may have changed. I know for a fact it's not "popular" to run things off linux; selfbooting disc images are preferred.

      --
      -insert a witty something-
  9. Real download link by cortana · · Score: 5, Insightful

    Anyone fancy posting a link to the actual download, rather than yet another javascript-implemented, advert-laden bullshit fest, registration required download portal?

    1. Re:Real download link by cortana · · Score: 5, Informative

      Never mind, here's a link for UK readers.

    2. Re:Real download link by QuantaStarFire · · Score: 1

      Try here.

      Unless, of course, the /. effect is upon id's servers.

    3. Re:Real download link by Dave2+Wickham · · Score: 1

      id's FTP server doesn't need to have the /. effect to be really slow, in my experience. I tend to treat it as a last resort, when nobody else has the file I need (which is basically hardly ever).

    4. Re:Real download link by Anonymous Coward · · Score: 0

      There are ways of going about it rather than making a page unusable crap. Besides I'm more likely to click on an ad if I stick around. Rather than saying fuck this and moving elsewhere.

    5. Re:Real download link by beaverbrother · · Score: 1

      Doesn't idsoftware have a direct link?

    6. Re:Real download link by azoblue · · Score: 1
    7. Re:Real download link by legirons · · Score: 1

      Anyone fancy posting a link to the actual download, rather than yet another javascript-implemented, advert-laden bullshit fest, registration required download portal?

      So says cortana, who can't even implement the self-destruct sequence properly on her own starship...

    8. Re:Real download link by cortana · · Score: 1

      I'm actually named after a sword, not an AI. Unfortunatly I didn't count on the fact that Bungie would return to the same mythos to pick names for AIs in future games.

  10. Re:So... by Anonymous Coward · · Score: 2, Informative
  11. BugMeNot by Anonymous Coward · · Score: 5, Informative

    Remember, http://www.bugmenot.com/ to get the download at more than 50KBps without having to sign up.

    1. Re:BugMeNot by Anonymous Coward · · Score: 0

      Heh--I got 400+KBps with a Bugmenot login limited to 250KBps. Life is good.

    2. Re:BugMeNot by Anonymous Coward · · Score: 0
      *smacks self on forehead*

      I'd been using bugmenot for news sites for a while but it never crossed my mind to use it for filefront, etc. thanks

  12. hey can i complain too by Anonymous Coward · · Score: 2, Insightful

    every time something gets released for free i loved to gripe and complain about something totally ancillary, like the fact that i cant get it fast enough...

    and then i entered the second grade.

    1. Re:hey can i complain too by Anonymous Coward · · Score: 0

      crybaby pussy

    2. Re:hey can i complain too by Anonymous Coward · · Score: 0

      every time something gets released for free i loved to gripe and complain about something totally ancillary, like the fact that i cant get it fast enough...

      Not me. Every time something gets released for free, I love to gripe and complain about something relevant, like how annoying all the money-skimming crapvertisement bandwidth-capped registration download sites that don't even work half the time due to activex object plugin bullshit are to wade through. This griping goes all the way back to the days of the likes of headgames publishing, who would rip off hundreds of quake levels from the mod community, strip all the author info (and copyright notices), and then sell them for profit. At least none of the download sites aren't actually trying to charge you for downloading the free content that they themselves leeched. Oh wait, some of them are.

  13. Re:So... by Anonymous Coward · · Score: 0

    Well it was actually released at ftp.idsoftware.com, but since that's overloaded it made good sense to post the link to FileShack, since that can probably take the additional strain of a Slashdotting.

    You swear too much.

  14. So we will see the GBA and PSP version by cybrthng · · Score: 0

    next week or so?

    1. Re:So we will see the GBA and PSP version by FLAGGR · · Score: 1

      try DS, not GBA, unless you want sidescrolling Q3A

    2. Re:So we will see the GBA and PSP version by cybrthng · · Score: 1

      that's what i meant.. ds.. brainfart. not used to working this shift

    3. Re:So we will see the GBA and PSP version by Guspaz · · Score: 1

      Going based on the totally non-scientific method of "how purdy teh games look", I'm going to guess that we're not going to see Quake 3 on the DS.

      From what I understand the DS is somewhere along the lines of N64 caliber. Yes, it is true that Quake 1 ran nicely on the N64. But based on the graphical quality of N64 games, and what I've seen of DS games, I don't think it has the power for the Q3 engine.

      That and I seem to recall the DS having rather limited texture memory.

  15. Hmm by PsychicX · · Score: 5, Informative

    I've been poking around the source since yesterday afternoon (late as usual slashdot) and it's generally MUCH cleaner than Q2. Things are well organized, categorized, and sensible. The id penchant for clumping a dozen header files into just one continues, but overall it's easy to find the code you're looking for. Hell, it took me 3 days to find the BSP code in Quake 2 because they had called it model_t or some such meaningless thing. I can see why Q3 was so popular for licensing, despite being in C. Indeed, it's some of the cleanest C code I've seen laid out to date. Naturally there are hacks here and there, and a few very weird design things...and the C versions of what would in C++ be inheritance and aggregation are hilarious. Overall though, I think this code is going to go a lot farther than Q1 or Q2 source ever did. Compared to everything else out of id, this source is really quite nice. No stretches of pages of uncommented assembly code. Most functions have documentation if it's not obvious what they do. All of the members of the major engine structs are well commented, for the most part.

    In short, I like. 1 thumb up. (Hey, it's still C, and I'm a C++ guy in and out.)

    1. Re:Hmm by Anonymous Coward · · Score: 0

      In short, I like. 1 thumb up. (Hey, it's still C, and I'm a C++ guy in and out.)

      Get with the times, man. In South Korea (and at id) only old people use C++. C is the newer, faster one that every young pers-- oh, wait a minute...

    2. Re:Hmm by Anonymous Coward · · Score: 0
      Get with the times, man. Only old people use that joke, in South Korea...

      oh yeah...

    3. Re:Hmm by LnxAddct · · Score: 1

      Hey, I've never poked around in any quake source, but was thinking of giving this a look. Is this just a graphics engine? Or does it have physics code too? Maybe even code for networking,or any other little tidbits? If its just the graphics engine, I don't need it because I have Ogre, even if its graphics+physics, i could still use Ogre+ODE. I'm just trying to figure out what advantage the quake source gives me and if I should even spend time giving it a go (Oh another big thing is, does it handle terrains well, or just indoor environments?). Thanks.
      Regards,
      Steve

    4. Re:Hmm by FLAGGR · · Score: 1

      It's everything you need to compile all of quake 3 arena, except obviously the datafiles. All the code, physics AI etc.

    5. Re:Hmm by bani · · Score: 3, Interesting
      Indeed, it's some of the cleanest C code I've seen laid out to date.


      Lollerskates.

      Cleaner than q1 or q2 maybe, but it is not really a good example of clean / well written C code in general.

      For example, take a look at CL_DemoFilename() for some real "OMGWTFBBQ".

      I can't tell if that code is serious or a joke. But it's there.

      As for stretches of pages of uncommented assembly code -- it's still there. See BoxOnPlaneSide() in game/q_math.c for example. Or S_WriteLinearBlastStereo16() in client/snd_mix.c.

      I really wouldn't use quake3 source as an example of well formatted / readable code. :-)
    6. Re:Hmm by justins · · Score: 1
      Naturally there are hacks here and there, and a few very weird design things...and the C versions of what would in C++ be inheritance and aggregation are hilarious.

      Any examples? Sounds sort of like BS.
      --
      Now before I get modded down, I be to remind whoever might read this that what I am saying is FACT. - bogaboga
    7. Re:Hmm by Anonymous Coward · · Score: 0

      LOL SOMETHINGAWFUL HUMOUR LOL

    8. Re:Hmm by PsychicX · · Score: 4, Interesting

      Ok, admittedly there are stretches where you can feel Carmack's..."magic" work. They clearly wanted to leverage MMX. But, as a whole, the engine is nicely laid out and the architecture is pretty nice. Ignoring the lower level math code -- which frankly tends to look horrendous on ANY engine, due to the MMX, SSE, and whatnot that's usually involved in production code -- things are easy to find and understand. The renderer could still use a lot more commenting as to why it's doing some of the things it's doing (the sky code, for example), but it's really not that difficult to figure it out. No, it's not the best C code on earth. But it is pretty good C code, and besides which it's probably relatively hack free compared to most production source. (It WAS intended for licensing, after all.)

    9. Re:Hmm by PsychicX · · Score: 1
      The canonical example is a struct that looks something like this (not real source):
      struct somestruct_s
      {
      client_s *client;
      server_s *server;

      //do not change anything above this line! The server expects things in that order!
      //----------------
      //below is game specific, edit as you like.
      };
    10. Re:Hmm by iamplasma · · Score: 2, Funny

      Get with the times, man. Only old people use that joke, in South Korea...
      So in Communist North Korea, does that joke use old people?

    11. Re:Hmm by bani · · Score: 3, Interesting

      The platform independent code is mostly ok (eg server/ and client/), but the platform specific code is an ugly mess.

      While most of the code in game/ cgame/ ui/ etc are ok, most of the code in unix/ and win32/ is really ugly.

      As for ugly low level C math code (game/q_math.c) most of it is actually pretty clean -- its the gobs of uncommented asm that's ugly.

      The doom3 sdk is much better -- the simd asm code is in general very well commented.

      But there's really little reason to use asm anymore, since the autovectorization in gcc is very nice. It also allows the compiler to optimize much better -- inlined asm functions are hard for the compiler to optimize.

      As for hack free... no.. there are plenty of ugly hacks in the quake3 code. It's the nature of the beast :-/

    12. Re:Hmm by bani · · Score: 1

      the reason this is designed this way is because this struct is specific to the binary format of memory blocks shared between the client dll and server engine.

      c++ inheritance doesnt work the way you think it does here.

    13. Re:Hmm by orion2486 · · Score: 1

      The code for Q3 Radiant, is the ugliest code I have ever laid eyes on....lets mix up our formating line after line.....god I cry looking at this....

    14. Re:Hmm by Anonymous Coward · · Score: 0
      void CL_DemoFilename( int number, char *fileName ) {
      int a,b,c,d;

      if ( number < 0 || number > 9999 ) {
      Com_sprintf( fileName, MAX_OSPATH, "demo9999.tga" );
      return;
      }

      a = number / 1000;
      number -= a*1000;
      b = number / 100;
      number -= b*100;
      c = number / 10;
      number -= c*10;
      d = number;

      Com_sprintf( fileName, MAX_OSPATH, "demo%i%i%i%i"
      , a, b, c, d );
      }
      It's not as bad as you make it sound. ; ) I think it generates a somewhat unique filename for textures, based on a number under 10000. Maybe.
    15. Re:Hmm by nimid · · Score: 1

      ...late as usual slashdot...

      Hey listen, you're not the one that has to, verify the story, check the links, correct spelling errors and write a summary... ...oh, wait, my bad.

      --
      A hundred and twenty characters ought to be enough for anyone...
    16. Re:Hmm by k4rm4_p0l7c3 · · Score: 3, Funny


      float Q_rsqrt( float number )
      {
                      long i;
                      float x2, y;
                      const float threehalfs = 1.5F;

                      x2 = number * 0.5F;
                      y = number;
                      i = * ( long * ) // evil floating point bit level hacking
                      i = 0x5f3759df - ( i >> 1 ); // what the fuck?
                      y = * ( float * )
                      y = y * ( threehalfs - ( x2 * y * y ) ); // 1st iteration // y = y * ( threehalfs - ( x2 * y * y ) ); // 2nd iteration, this can be removed

      #ifndef Q3_VM
      #ifdef __linux__
                      assert( !isnan(y) ); // bk010122 - FPE?
      #endif
      #endif
                      return y;
      }

      heh.

    17. Re:Hmm by fugu13 · · Score: 1

      It constructs filenames with certain numbers; if the number is outside a certain range (0 to 9999) it uses a default, but if not, it makes a file named demo#### where #### is the number left-filled with zeros. It does this by using a common rounding trick (based on ints being truncated).

      It only generates the filenames deterministically from information given it, so its just a utility function for constructing names.

      --
      For to end yet again.
    18. Re:Hmm by Anonymous Coward · · Score: 0

      It sounds like John Carmack, like anyone else, learned more as he went along!

      Just from your descriptions of it, in your obviously having compared this to his previous works (Quake II codebase).

      I, for one, am really looking forward to mods being done on this game by others!

      E.G.-> I have always enjoyed mods I saw to the Quake II engine such as Quake II Max &/or Quake II Evolved for instance for Quake II...

      They were BIG steps over the original Quake II imo.

      The same goes for mods to their earlier games such as:

      1.) DarkOne's "NewWolf.exe" OpenGL implementation of the original Wolf3D (return to castle wolfenstein)

      &

      2.) The "DoomsDay Engine" by Jaako Haarkonen... both are REALLY cool! This latter fellow did a TRULY superior job here imo, & is easy to contact & talk to as well... had to note that!

      (This is great, & especially if you are a fan of IDSoftware's games as I have been since 1992 up to the present today).

      I liked what I read in your posting, & it is good to hear your VERY concise evaluation of this game's engines vs. their older material.

      That's coming from a developer (myself) that is more into Info. Systems work (the steady-eddy bread & butter stuff) mostly, & some shareware/freeware work over the last decade or so now.

      BUT, I have not done any gaming development coding here, that is just meant as feedback to you. More into Delphi, VB, &/or Access really as this is where my cash comes from.

      (I do like C, took it before C++ academically, & can function with it, but I have to admit: I am more into Delphi than C/C++... because of what I use programming languages for... I am sure this makes sense to you & you will understand it!)

      Still, I know enough imo about C/C++ (used to think C was the BEST THING since sliced bread in fact in the early to mid 90's, but having taken C before C++ was a "radical change" imo in thinking & design foundations, do you agree?) to understand what you stated above & to see your points from your summary above... lol, not THAT "rusty" @ C/C++ yet!

      I'd bet the mods will appear faster due to your assessments of this engine's design as opposed to their other works from the past!

      * :)

      APK

      P.S.=> Do you think YOU will be "messing around with it" yourself?

      Lastly, above all, It is VERY cool that Mr. Carmack & crew do this imo... they don't HAVE to by any means! This gives others into C/C++ & even Assembler coding a shot @ understanding + learning some tricks from one of the 'great ones' out there today in THIS field, imo... very cool! apk

    19. Re:Hmm by Anonymous Coward · · Score: 0

      SOMETHING AWFUL DOT COM

    20. Re:Hmm by Anonymous Coward · · Score: 0

      But a sane person would have written it like this:

      void CL_DemoFilename( int number, char *fileName )
      {
              if ( number < 0 || number > 9999 )
                      number = 9999;
              Com_sprintf( fileName, MAX_OSPATH, "demo%04d.tga", number );
      }

    21. Re:Hmm by springbox · · Score: 1
      I really wouldn't use quake3 source as an example of well formatted / readable code. :-)

      Seriously. The Quake source is some of the most cryptic stuff that actually works that I've looked at yet. I still think it's interesting that generic objects were called "edicts" or whatever.

    22. Re:Hmm by Anonymous Coward · · Score: 0

      You're seriously retarded.


      struct gentity_s {
            entityState_t s; // communicated by server to clients

            entityShared_t r; // shared by both the server system and game
      // DO NOT MODIFY ANYTHING ABOVE THIS, THE SERVER
      // EXPECTS THE FIELDS IN THAT ORDER!



      That is definitely not designed to implement inheritance. If you want to see how inheritance is implemented in C, might I suggest perusing GObject or POC?

      SWEET MOTHER OF GOD, SLASHDOT, IT'S EFFING CODE STOP TELLING ME TO USE LESS JUNK CHARACTERS WTF

    23. Re:Hmm by Daniel+Phillips · · Score: 1

      the reason this is designed this way is because this struct is specific to the binary format of memory blocks shared between the client dll and server engine

      It is dodgy C though. The part above the line should be in its own struct and declared "packed" if the compiler supports this (gcc does).

      --
      Have you got your LWN subscription yet?
    24. Re:Hmm by Anonymous Coward · · Score: 0

      yeah, try working on MOH Radiant (read: layered hellscape)

    25. Re:Hmm by John+Carmack · · Score: 5, Interesting

      Personally, I think the Q3 code is pretty clean on the whole. It was a commercial product done under time pressure, so it isn't a polished gem, but I consider it good.

      Anyone working on the Q3 codebase today should just delete all the asm code and use the C implementations. Making a commercial game with fairly high end requirements go 10% faster is sometimes worth writing some asm code, but years later when the frame rate pressure is essentially gone, the asm code should just be dumped in the name of maintainability. All the comments in the world wouldn't change this decision a bit.

      >But there's really little reason to use asm
      >anymore, since the autovectorization in gcc is
      >very nice.

      I was pretty much with you until that point. I fully agree that there is little reason to use asm anymore (I haven't written any in years -- Jan Paul did all the SIMD work for Doom 3). Knowledge of asm is good to allow you to manipulate compiler output by changing your C++ code, but there isn't much call for writing it by hand.

      However, autovectorization in gcc is a particularly bad argument against writing asm code. Scalar compiler code is much, much closer to hand codeed asm in performance than compiler generated SIMD code is. Optimized SIMD coding almost always requires significant transformations that compilers can't really do on their own.

      The argument about inline asm hurting compiler optimizations is only true if you are trying to use short snippets of asm, which is generally a bad idea. Asm code that doesn't loop a lot isn't likely to contribute significantly to your performance, with the exception of things like ftol replacements.

      John Carmack

    26. Re:Hmm by bani · · Score: 1
      I should qualify that my autovectorization tests were done in gcc4, which does significantly better than gcc3.x. gcc3 couldn't beat my hand coded SSE, but gcc4 spanked it handily (though I have not yet determined exactly why).

      There is also something to be said about the elegance and readability of being able to do:
      cvec4 = avec4 * bvec4;
      And have the compiler do all the work for you, without having to overload operators in C++ or write functions in C. And have the code immediately take advantage of SSE as well as Altivec. :-)

      I agree anyone using the Q3 code should just go nuke all the asm. The bottlenecks in the Q3 engine - both server and client - are not anywhere close to being FP maths bound at all. Generating snapshots is the server bottleneck, and the client is bottlenecked in GL moving vertices to the card.

      As for the quality of the Q3 engine in general, it still has the best netcode in the industry. Most modern engines seem to have taken a step backwards in netcode compared to Q3 :-/

      Regarding ftol replacements... use lrint and friends. It's (mostly) portable :-)
    27. Re:Hmm by The+OPTiCIAN · · Score: 2, Interesting

      OK - so where *can* someone find good example of C code? I have read that a good way to learn C is to download the source to a program that you respect and then get a feel for that and try and extend that. First three programs I try:
      1) GNU Screen: k&r C, uncommented, undocumented mass of long functions and macros everywhere.
      2) Nethack: k&r C, uncommented, undocumented mass of long functions and macros everywhere.
      3) Vim: k&r C, uncommented, undocumented mass of long functions and macros everywhere.

      Um... is there any application code in C out there that is even written in ANSI C, let alone well commented and understandable to someone new to the program? All the C code I look at seems to be ridden with macros which would seem to be in there for cross platform purposes - but - how do people get a feel for these macros?

      --


      Believe with me, my saplings.
    28. Re:Hmm by Anonymous Coward · · Score: 0

      What about GNU Hello? :-D

    29. Re:Hmm by bani · · Score: 1

      postfix is clearly written and well commented ANSI C, one of the better examples around.

      milter-greylist is also reasonably clearly written ANSI C.

      gnu wget is written in ANSI C and seems reasonably well commented and clearly written.

    30. Re:Hmm by Anonymous Coward · · Score: 0

      That's not autovectorization - autovectorization is the compiler transforming your scalar code into vector code (eg. changing a normal for-loop to process four elements per iteration). Support for this didn't even exist in GCC prior to 4.0.

    31. Re:Hmm by Anonymous Coward · · Score: 0

      "edict" was a contraction of "entity dictionary" IIRC, not like the word edict. Not that that helps a lot.

    32. Re:Hmm by The+OPTiCIAN · · Score: 1

      Thanks! Both postfix and gnu wget are programs I have a high regard for. I'll check them out.

      --


      Believe with me, my saplings.
    33. Re:Hmm by ppatrice · · Score: 0
      Personally, I think the Q3 code is pretty clean on the whole.

      There are still 551 FIXME, 212 TODO and 17 HACK left on the whole source ;)

      I like pretty much the "FIXME E3 HACK" in cg_main.c :)

      But thanks anyway to free my fave game! :)

      --
      A free web based PIM: http://myphp.freews.org
    34. Re:Hmm by XO · · Score: 1

      Try something fairly simple, and written sometime in modern history. Screen, Nethack, and Vim probably predate ANSI. (Not ANSI C, ANSI the standards organization) *grin*

      --
      "Champagne for my real friends - and real pain for my sham friends!" http://ericblade.postalboard.com/
    35. Re:Hmm by DimGeo · · Score: 1

      About CL_DemoFilename() - well it seems pretty obvious (to me at least) that this code adds zeros in front of the number if it's too small, to make it exactly 4 digits. I really doubt it could be written any clearer.

    36. Re:Hmm by Kynde · · Score: 1

      For example, take a look at CL_DemoFilename() for some real "OMGWTFBBQ".

      What planet are you from?

      That's a totally normal way to perform zero-prefixed number printing in the absence of more elegant possibilites like '%04d'.
      And as such it's quite cleanly done.

      --
      1 Earth is warming, 2 It's us, 3 it's royally bad, 4 we need to take action NOW
    37. Re:Hmm by bani · · Score: 1
      Really?

      original:
      void CL_DemoFilename( int number, char *fileName ) {
              int a,b,c,d;
       
              if ( number < 0 || number > 9999 ) {
                      Com_sprintf( fileName, MAX_OSPATH, "demo9999.tga" );
                      return;
              }
       
              a = number / 1000;
              number -= a*1000;
              b = number / 100;
              number -= b*100;
              c = number / 10;
              number -= c*10;
              d = number;
       
              Com_sprintf( fileName, MAX_OSPATH, "demo%i%i%i%i"
                      , a, b, c, d );
      }
      rewritten clearer:
      void CL_DemoFilename( int number, char *fileName ) {
              if ( number < 0 || number > 9999 ) {
                      Com_sprintf( fileName, MAX_OSPATH, "demo9999" );
                      return;
              }
       
              Com_sprintf( fileName, MAX_OSPATH, "demo%04i", number );
      }
      notice the original Id code is buggy and erroneously appends .tga when number is out of bounds. rewritten code fixes the bug, is clearer and more concise, and uses fewer instructions.
    38. Re:Hmm by bani · · Score: 1

      I'm from the planet of C programmers who frown upon needlessly code when elegant possibilities like %04d exist but are not used.

      The code is also buggy, it appends .tga to the filename when it shouldn't.

    39. Re:Hmm by DimGeo · · Score: 1

      I stand corrected.

      I really didn't see the ".tga" bug :( . As for the %04i formatting, it's really neat, but I also didn't know it (that's because I'm writing mainly in another language for a living).

  16. Do stores still have the game? by m50d · · Score: 3, Interesting

    I'd like to get it but don't shop online (I know, I know, I'm being a fool), and I haven't been able to find it anywhere, even second hand. It looks like it was never released on Sold Out or Xplosiv or anything like that. Anyone know if there are plans to do any sort of re-release?

    --
    I am trolling
    1. Re:Do stores still have the game? by FTDFTD · · Score: 2, Informative

      I found it at Walmart, I believe, for $10 a few months back. I'd assume they still have it.

    2. Re:Do stores still have the game? by rmdir+-r+* · · Score: 1
      You can still buy it from iD. In fact, you can buy all of their old games from their website.

      Still, I'm not sure I'd recommend it. I bought it recently, and I dunno. The single player stank (though I expected that :P), and the multi-player experience has already fragmented into ten-thousand little communities, each of which plays it's own special version of the game. Except for the Demon UK servers I suppose, they were the only server I could find that A) had human players on often and B) ran a reasonably vanilla Quake 3 server. And it still wasn't that great, as I stank and had a hard time adjusting to the non-lag adjusted gameplay. (I also live in California so the ping is a tad high) On the other hand, if you can get a LAN party going, it's quite entertaining.

    3. Re:Do stores still have the game? by Anonymous Coward · · Score: 0

      Why bother? You have the source code, just compile the damn thing.

    4. Re:Do stores still have the game? by niteice · · Score: 1

      It's not much of a game if all you have is the code.

      --
      ROMANES EUNT DOMUS
    5. Re:Do stores still have the game? by KDR_11k · · Score: 1

      He wants the datafiles and perhaps a CDKey for online play.

      --
      Justice is the sheep getting arrested while an impartial judge declares the vote void.
    6. Re:Do stores still have the game? by damiam · · Score: 1

      Right here. Or here, minus the actual buying step.

      --
      It's hard to be religious when certain people are never incinerated by bolts of lightning.
    7. Re:Do stores still have the game? by m50d · · Score: 1

      I just want it to play with friends who play the game, so I should be able to find matches, and we're all in the UK, possibly same ISP, so lag shouldn't be too much of a problem. But thanks for the advice.

      --
      I am trolling
    8. Re:Do stores still have the game? by m50d · · Score: 1

      You could download the engine binaries anyway, what I don't have are the .pk3 files with all the data in.

      --
      I am trolling
    9. Re:Do stores still have the game? by Marsala · · Score: 1

      Actually, I managed to snag one from the $10 bin at Wal-Mart back before Christmas. ISTR seeing a couple in the last-minute racks at CompUSA as well.

      I don't think we're going to see a re-release, though. :(

    10. Re:Do stores still have the game? by rmdir+-r+* · · Score: 1

      Ah, see, it's just that there is no lag compensation in vanilla Q3A. Just a heads up ;).

  17. Thank you by __aajwxe560 · · Score: 5, Insightful

    In this day and age of everyone trying to patent this, litigate that, and everything in between, it's refreshing to see a company, that really doesn't have any motive to make any money off of this, AND in an industry where this concept seems somewhat unusual, release its source code, instead of letting this go off into some useless void. Actions like can only help the industry as a whole, as some burgeoning programmer will have many sleepless nights ahead spending his/her own time learning the tips and tricks employed in this source code. Thank you.

    1. Re:Thank you by Frogmanalien · · Score: 2, Insightful

      It does seem ironic, especially since just a few comments above someone asks whether you can actually still buy it in the stores (which, having tried, I can confirm is next to impossible) that there are other companies out there who hold onto their intellectual propetry beyond reason. There are so many classic DOS games that would be great to play, but you can't buy. The games industry may have matured, but it still hasn't reached the critical level where (like movies and music) classic titles are held with such high esteem that it seems shocking to go into a decent CD/DVD store and not be able to get a classic title from twenty years ago...

      As a personal plea to the software co's out there- please let your old games be free... or at least available to buy! What point is owning a product if you don't sell it?

      --
      The only thing that saves us from the bureaucracy is its inefficiency (Eugene McCarthy)
    2. Re:Thank you by Anonymous Coward · · Score: 0
      What point is owning a product if you don't sell it?
      So it does not disatract from the things they do sell. Ain't copyright grand?
    3. Re:Thank you by teh_dg · · Score: 1
      doesn't have any motive to make any money off of this

      Well, they could and likely will do, in a roundabout way sometime in the future. The method is just as you state:

      some burgeoning programmer will have many sleepless nights ahead spending his/her own time learning the tips and tricks employed in this source code

      People like potential future id employees, potential new firms like Splashdamage, potential authors of game-selling modifications. with this release there's more people with an excellent oppertunity to gain some interest, skills and experience of game code - even better, of id's code. Then there's the karma rating.

      Just because there's no direct accountability of how id will eventually make a return on this, doesnt mean releasing code under GPL isnt good business acumen.
      (I realise this is probably more inline with rather than contrary to what you meant and I dont mean to rebuke.)

    4. Re:Thank you by Anonymous Coward · · Score: 0

      Actually they still do stand to make money. Just about anyone now can go and mess up the source and write a game with the GPL'd code. Once the game is finished, Joe-Coder now has something to show a publisher which enables him to secure the money needed to license the engine after the fact, and release a nice closed-source commerical project on top of the modified engine.

      It provides a solid route for unproven developers whom the publishers might deem too risky.

    5. Re:Thank you by AvitarX · · Score: 1

      Except what they released does not let you play Quake III.

      --
      Wow, sent an e-mail as suggested when clicking on "use classic" banner, and got a fast response that addressed my msg
    6. Re:Thank you by GregWebb · · Score: 1

      I've thought for a while that, now with the net so much media can be quickly, easily and relatively cheaply distributed on demand, copyright law should be amended.

      Specifically, once (x) copies of an item had been ditrubuted (x being set by item category but at a relatively low level as we're just trying to block true limited collector releases), it had to remain available for purchase somehow at a reasonable price. If it was removed from commercial distribution for longer than (say) 3 months, copyright would be forefeit.

      I'm aware that, with things like software, third party licensing complicates this - but if that's the copyright law, we'd simply end up with third party component licenses being modified to account for that contingency and deal with it accordingly.

      --

      Greg

      (Inside a nuclear plant)
      Aaaarrrggh! Run! The canary has mutated!

    7. Re:Thank you by el_womble · · Score: 1

      I'm not sure about the x copies bit. Let me rephrase that. Ideologically, I can see your point about the limited number of copies distributed, but I can't ever see it happening.


      But I REALLY like your other idea. A funtion of copyright that means that any commercially released product is automatically public domain once a company removes it from the market. I think a year is probably more practical - but I guess any arbitralily short period of time would do.


      In the case of software, it should be that the source code is released too, or there should be a mandate that states that a company that provides proprietary software, must provide support. If that support is removed or a court accepts a plea that the level of support is too low, then the source must be release into the public domain within x months of the support being removed under the GPL (I think BSD licencing would be too easy for others to profit from the code 'donation') on the request of a licence holding customer (I add this stipulation only as a prediction of the stupid limits that would be enforced).


      I can see the big guns really kicking up a fuss about that as it would hinder their ability to force upgrades. But it would be a huge boon for consumers and competition in the market and has the ring of fair about it.


      • Play the ball or loose it.
      • You can leave the game, but you can't take the ball with you.
      • Break the ball, and suffer the consequences.

      Which politians would we have to buy to make this happen? ;)

      --
      Scared of flying, pointy things snce 1979!
    8. Re:Thank you by aztracker1 · · Score: 1

      I can see the big guns really kicking up a fuss about that as it would hinder their ability to force upgrades. But it would be a huge boon for consumers and competition in the market and has the ring of fair about it.

      I would argue this point only so far as that future versions based on the same codebase, are continued selling of the item... I would also not tie it to "support" constraints as this would escallate the cost of most commercial software to an absurd point.. I would say that if a title is no longer available, or a version with the same functionality/gameplay based on the same source base should be opened/public-domain.

      Then again, I think that software patents should be at least limited to 3-5 years, and copyrights once owned by a company should only last 8-10 years.. these laws were not originally intended to protect companies (they were for people). Software grows at such a phenominal rate, that a 3-5 year lock in should be enough... period.

      --
      Michael J. Ryan - tracker1.info
  18. Mirror without the BS by Anonymous Coward · · Score: 5, Informative
  19. What can be done with it? by Anonymous Coward · · Score: 5, Interesting

    So what can be done with this? Since it's the Q3 Arena code, are developers limited to similar games of running around shooting each other? Or, could someone use this code and remake some older game such as Ultima Underworld?

    1. Re:What can be done with it? by FLAGGR · · Score: 3, Funny

      Someone could turn it into a word proccessing app if they wanted to. Depends on how much effort your willing to spend, and how good at coding you are.

    2. Re:What can be done with it? by Flounder · · Score: 5, Interesting

      I'd love to see a Q3 port of Duke Nukem 3D and Shadow Warrior.

      --

      No boom today. Boom tomorrow. There's always a boom tomorrow. - Cmdr. Susan Ivanova

    3. Re:What can be done with it? by SpacePunk · · Score: 1

      Speaking of Duke Nukem... When is the source for Duke Nukem Forever going to be released?

      Oh wait...

    4. Re:What can be done with it? by intensity · · Score: 1

      Funny you should mention that, I've been checking out 3D engines with the sole intention of starting an Ultima Underworld remake in 3D, maybe the Quake 3 engine would be useful. I'm downloading it now... If anyone else would be interested, say so here or let me know where a good forum to discuss this is... i can be reached at joe AT nerdnet DOT com

      --
      Abuse my rationalization of rhetoric as either metaphor or monotomy.
    5. Re:What can be done with it? by The+Ultimate+Fartkno · · Score: 5, Funny

      "I see that you're trying to write a letter. Would you like me to..."

      baaa-WHOOOM!

      CLIPPY has been killed with a RAILGUN!

    6. Re:What can be done with it? by forkazoo · · Score: 1

      It would certainly be possible. People do strange things all the time.

      That said, it is an engine for a FPS. It's designed to be an FPS, and it is a mature, large codebas with lots of inline assembly, so I would imagine that completely repurposing it would be inconvenient.

      It's like a 5 MB zip. 22 MB uncompressed. I found a few non-text files, but a lot of plain text. Assume that over half of the download is non-text files. That makes about 10 MB of plain text to read before you know what everything does. Uncle Tom's Cabin is about 1 MB. So, about 10 copies of Uncle Tom's Cabin. Except, it's all poorly commented source code.

    7. Re:What can be done with it? by Anonymous Coward · · Score: 0

      dud did you not pay attention on the last 2 release rounds?

      There was a group that used quake II source to make a cart racing game that was an absolute blast. Yes you will get the 10,000,000 versions of Q3 but there are some that use the engine for really cool uses.. and I hope that someone makes a "cars wars" ALA steve jackson games first person kill them all multiplayer in vehicles but also on foot that has tactics and more fun than the crappy twisted metal games.

    8. Re:What can be done with it? by ImaLamer · · Score: 1
    9. Re:What can be done with it? by Anonymous Coward · · Score: 0

      Sticky bomb rike you

    10. Re:What can be done with it? by CaptnMArk · · Score: 1

      >Except, it's all poorly commented source code.

      This is good unless you want to read another 10 copies of Uncle Tom's Cabin that are inconsistent with the first 10.

    11. Re:What can be done with it? by Waffle+Iron · · Score: 1
      It could have an interesting grammar checker. You're typing along...

      We have concerns that they will loose track of the goal.

      The grammar checker interrupts with a huge explosion and shouts "HUMILIATION!"

      Then it shows your document being burned to ashes and puts you back at a blank page one.

    12. Re:What can be done with it? by CaptainCarrot · · Score: 1

      So would I, but do you really need the Q3 source for that?

      --
      And the brethren went away edified.
    13. Re:What can be done with it? by mrseigen · · Score: 1

      The renderer and game code in id software games have usually been in seperate DLLs since Quake 2. I haven't taken a chance to look at it yet, but I'm assuming Quake III is along the same lines.

    14. Re:What can be done with it? by Anonymous Coward · · Score: 0

      Im willing to pay retail for that one ;)

    15. Re:What can be done with it? by cyborg_zx · · Score: 1

      Interesting? Ignorant perhaps.

      The Build engine source has been out for some time, the Duke source less so and the Shadow Warrior source more recently. The JonoF port uses a new render developed by Ken Silverman, the original coder, to render a Build world with polygons rather than rasters. It would seem rather pointless to spend a huge amount of time and effort trying to covert from one engine paradigm to another, especially when they are really quite different. Not to meantion that you can't really have a conversion without the maps and 3DR doesn't like people converting their maps and placing them in other games and has shut down conversions that have done things like this in the past.

      You could try automatic converters but I don't think anyone has written one with any degree of competence. Besides there are things you can do in Build that I imagine would be far harder to acheive in Quake 3 - such as dynamically creating sectors out of nowhere and placing them in the map (which is pretty much how the map editor works and allows for such rapid development).

      Last time I checked Quake engine games required a lengthy compile process to produce lightmaps and BSP trees and such. In Build you just modify the sector/wall/sprite data structures and that's what your game world will be.

      An old engine Build may be but I don't think it's been surpassed in regard to its simplicity of the game world and the absolute power to modify everything in the game world at runtime.

    16. Re:What can be done with it? by StormKrow · · Score: 1


      "Who wants some Wang?"

      Gawd I loved that game.

      --
      Who cares about the ozone layer?...thanks to CFC's I can write my name......IN CHEESE!!!
    17. Re:What can be done with it? by Exner · · Score: 1

      Lol! At least Duke Nukem Forever is doing better than Prey. "yes we have our own Quake killer called Prey, which will be out 6 weeks after Quake".

      --
      -- - Antony Suter (sutera internode on net) "Bonta"
  20. Docs? by northcat · · Score: 1

    Is this documented so that dumb people like me can look at it too? Maybe some third party manual/tutorial?

    1. Re:Docs? by QuantaStarFire · · Score: 0

      From the README:

      This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.

      In other words, no documentation. Sucks, 'cuz they could probably use GPL Q3A as an excuse to create a new section to idDevNet.

    2. Re:Docs? by carnivore302 · · Score: 1

      Not really an answer to your question, but if you're interested in these things: read ShaderX2: Introductions and Tutorials with DirectX 9.0. Although the technology presented in this book is way ahead of that used in quake 3, it will give you both a nice introduction and some hands-on examples how to do things, as well as some more in-depth stuff. I liked it very much.

      For a true annotation of what's going on in the code, newsgroups will probably be buzzing about it in a short while.

      From what I've seen, the code is pretty well documented. You'll definetely need some basic understanding of graphics programming (amongst others), and C might not really be your cup of tea, but all in all browsing the code will not make you any dummer :-)

      Mark

      --
      Please login to access my lawn
  21. Re:UT forever. by Anonymous Coward · · Score: 0

    You're speaking of writing 5 MB code like it's something amazing... It's nothing special really... A product at work is coincidentally 4.9 MB of source code, resources excluded. But yes, it may (or may not) be a bunch of code for a game engine, I'm personally a bit unsure of that. But an impressive amount of code? Not even close.

  22. Re:UT forever. by LosManos · · Score: 1

    hejdig.

    >Tiny!? I'd like to see you write over 5mb worth of code.

    "5 mb of code." Wow! I guess that is how they make the conductors narrower and narrower in the processors!

    /OF

  23. Re:UT forever. by varmittang · · Score: 1

    Just think of it this way, 5 MB of code turns into a full CD/DVD of gaming.

    --
    -----BEGIN PGP SIGNATURE-----
    12345
    -----END PGP SIGNATURE-----
  24. How about optimized builds? by Anonymous Coward · · Score: 2, Interesting

    You know, AMD, P4, etc.

    Also, will any builds made by us work with punkbuster?

    1. Re:How about optimized builds? by LordHatrus · · Score: 1

      Not much of a point; Even Carmack himself mentioned in his QuakeCon keynote that it wasn't going to even be in Q4, so what reason for it to be in Q3A?

    2. Re:How about optimized builds? by statusbar · · Score: 1

      Some questions I had about this:

      * Why bother with punk buster at all? I found it only really gets rid of the 'punks' for at most a couple weeks after a PB update.

      * On the flip side, how would one/how could one write an open source program like punkbuster?

      --jeff++

      --
      ipv6 is my vpn
    3. Re:How about optimized builds? by Anonymous Coward · · Score: 0

      Yeah, we really need better optimized Q3 builds. 700fps just isn't fast enough.

    4. Re:How about optimized builds? by WWWWolf · · Score: 1
      * On the flip side, how would one/how could one write an open source program like punkbuster?

      I've heard legends that there's a game called Netrek that was one of the earliest net games, had heck of anti-cheating protection (based on checksummed binaries...) and is still being played.

      Coincidentally, this was also discussed when Q1 source was released =)

      One possibility would also be to make the client software dumber and the protocol more complex, but iD found that that wasn't lag-friendly or particularly efficient...

    5. Re:How about optimized builds? by iwan-nl · · Score: 1

      I've googled briefly but couldn't find any information on netrack's anti-cheating system.

      I wonder how checksum based protection could work for an opensource game; If security depends on the client sending a hash of itself to the server for verification, one could just hack the client to send some hardcoded checksum, right? Am I missing something here?

      --
      I'm trying to improve my English. Please correct me on any spelling/grammar errors in this post.
    6. Re:How about optimized builds? by Anonymous Coward · · Score: 0
      I've googled briefly but couldn't find any information on netrack's anti-cheating system.

      Maybe because you're spelling it wrong...

    7. Re:How about optimized builds? by Mycroft_VIII · · Score: 1

      There can be methods where when the server asks you to verify you're client they send variable chunk of data('token') to use to calculate your checksum with such that you HAVE to calculate the checksum with the token and not use a pregened checksum(or pregen for every possible token).
          Also they could simply send a random start and finish point within the executable and require a hash of just that range which would also make pregened not work.
          Drawback is that all this verifies is that you have a copy of the prefered executable to run the algo on, not that that is what you're using to play with.

      Mycroft

      --
      https://signup.leagueoflegends.com/?ref=4c3ed6600b6ea
    8. Re:How about optimized builds? by ewe2 · · Score: 1

      I dunno about optimizing, it's yet to work with gcc 4.0.2 on my Debian unstable yet (dies on vm_x86.c). And punkbuster was specifically excluded from the code so that punkbuster servers would be safe from it.

      --
      insecurity asks the wrong question irritation gives the wrong answer
  25. Re:UT forever. by Ann+Elk · · Score: 1

    Actually, it's a 5MB ZIP archive. Expanded, it yields about 23MB, including 10MB of .c sources. Like you said, definitely not "tiny".

  26. Re:UT forever. by Anonymous Coward · · Score: 0

    Just think of it this way, 5 MB of code turns into a full CD/DVD of gaming.

    No it doesn't. The CD contains the game graphics that take a lot more space than the compiled binary. But anyways 5 MB is a lot of code.

  27. Re:Unreal Engine 4 by PsychicX · · Score: 2, Informative

    WTF does D3 have to do with this, or UE3 for that matter? According to the timestamps in the source, the last time this code was touched by id (not counting preparations for GPL release) was 2002. And the number of games based on Q3 tech...it's a massive portion of the industry. If you play any FPSes, you've probably played a game based on the Q3 engine. Call of Duty, Jedi Academy, and Jedi Outcast, for example, are fairly well known examples.

  28. Quake 3 Mods by crache · · Score: 2, Interesting

    One might assume that with the source being available, popular Q3 mods such as urbanterror could be released as standalone games. However, most mods depends on the PAK files from the game, which have not been open sourced.

    1. Re:Quake 3 Mods by FLAGGR · · Score: 1

      In other news, alot of people bought the game, so that doesn't matter. I saw it used at EB games for 10$ the other day. Get off your ass and shell out, jeez.

    2. Re:Quake 3 Mods by Timbo · · Score: 1

      Most total conversions (SUBTLE PLUG: such as http://tremulous.net/) do not rely on the base pk3s a great deal. It's predominantly textures that are the problem, but they're also the easiest to replace.

    3. Re:Quake 3 Mods by mrchaotica · · Score: 1

      More important than the price is the licensing. The engine is GPL now, so there's an advantage to having GPL or Creative Commons-licensed content. That way the whole game can be distributed together, and be entirely Free. You can't do things like, say, package it with Linux distros otherwise.

      --

      "[Regarding the 'cloud,'] ownership was what made America different than Russia." -- Woz

  29. Re:Unreal Engine 4 by JimmehAH · · Score: 1

    But they've not even released a game using UE3 yet!

    Christ...

  30. Re:UT forever. by PsychicX · · Score: 5, Informative

    It's 5MB after it's been compressed into a zip. As you may or may not know, zip compresses text really well.

    The uncompressed size of the source is just over 35MB.

  31. Re:UT forever. by yanos · · Score: 2, Informative

    That's code we're talking about. There is no map, meshs or textures into this, just the code, no data. So it's basicly 5 megs of text into a zipped archive.

    That's not tiny at all.

  32. Re:UT forever. by Taladar · · Score: 1

    Compressed 5 MB should be a lot more for text when uncompressed.

  33. Re:UT forever. by ciroknight · · Score: 1

    Pfft. 5 MB of code turns into *at most* 100MB of game binary, and that's being way, way generous. I haven't compiled it yet myself, but I'm expecting around 20-50MB.

    It's the textures and models and sound that drive up the cost of the diskspace with 3D games like Quake 3. Even with texture and sound compression, and some kind of model compression, these are still huge files, and the more compressed they are, the worse your game will perform having to do decompression on the fly. Why else do you think gamers need computers with a gig of ram and a 256 MB video card these days?

    --
    "Victory means exit strategy, and it's important for the President to explain to us what the exit strategy is." G.W.Bush
  34. I thought.... by dethkrieg · · Score: 1

    I thought Id always released the source code with their game so people could make the mods for it... What did they release with the game then that people modified for mods? I'm confused....

    1. Re:I thought.... by Dave2+Wickham · · Score: 1

      SDKs, which aren't the full source code, are released to allow modders to write mods. This is the full source release. In addition, these aren't released under the GPL.

      I'm sure someone else could give a better description than me though.

    2. Re:I thought.... by petermgreen · · Score: 1

      most first person shooters use some form of scripting language that allows people to make quite a lot of modifications without access to the source code.

      the source is valuable to the community in three ways, firstly for porting to new operating systems/architectures, secondly for making changes to parts that aren't covered by the scripting system and thirdly because it allows true total conversions to be released as standalone downloads.

      --
      note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
    3. Re:I thought.... by Anonymous Coward · · Score: 0

      The code is split into two parts; the engine code and the game code. The game code is enough to make mods, and that source was released years ago. The engine code contains (among other things) the actual 3D engine.

    4. Re:I thought.... by AnonymousCoder · · Score: 1

      Id releases soon after the launch date of the game the sources that contain the game logic for the modders. What has just been released is the *engine* source.

    5. Re:I thought.... by neocrono · · Score: 1

      That's not entirely accurate. Some games now use scripting, but I wouldn't call it "most." Unreal has always used a proprietary language called UnrealScript, and Far Cry uses lua, for example. Quake 1 used "QuakeC," which was a compiled language, I think. However, the Quake 2 and Half-Life engines (which I would call the most prevalent as mods go) call into dynamically loaded libraries containing the game logic, so that mod makers can recompile the DLL or SO without needing the source code for the multimillion dollar bleeding edge (or not) engine. Half-Life 1 used C++ off and on, but still had a lot of Quake in its blood. Half-Life 2 is heavily object-oriented. Up until Doom 3, on the other hand, I think Carmack was steadfast about using pure C.

    6. Re:I thought.... by TheRaven64 · · Score: 1
      Quake 1 used "QuakeC," which was a compiled language, I think

      More or less. It was compiled into some form of bytecode (progs.dat) which was then interpreted. Quite a nice scheme, since it means I've been able to play the same Quake mods on Windows and Mac - even without access to the source code.

      --
      I am TheRaven on Soylent News
    7. Re:I thought.... by iLogiK · · Score: 1

      id released tools for making maps and models....not the source code for the renderer and things like that (until now)

  35. Re:UT forever. by PsychicX · · Score: 1

    Actually, sorry. I forgot I did complete builds of all of the build targets. The archive is definitely less than 35MB.

  36. Re:Unreal Engine 4 by FLAGGR · · Score: 2, Insightful

    Chances that UE3 will be GPL'd: 0
    Chances that Doom3 will eventually be open source (minus that code they had to license or something): 1

    Carmack kics Sweeney's ass. By the way, doom3 etc was designed for - you guessed it - doom3, while UE3 is designed to be used as an engine for lots of games, so its not a fair comparision. But hey, if we're going to throw around numbers, how bout you take a guess at how many games have used the Quake engines? It's pretty damn high.

    p.s. Ubisoft using your engine isn't exactly a selling point. Most of their games are shit tastical. Maybe if they're not coding the engine they'll be able to focus on not sucking, maybe.

  37. And that's why id Software rocks. by HerculesMO · · Score: 5, Insightful

    No, id Software doesn't rule because they are open sourcing an outdated graphics engine. There will always be complainers...

    They rule because they are open sourcing it to make room for cheap games based on that engine. Carmack and Co know that they don't have to give the engine out, but the people that follow their games religiously, this is kind of 'giving back to the community'. The fact this engine will be open sourced means that it can also be improved upon, free of charge. Indy developers (mind you, id Software is one of the FEW left) get a chance to develop a great game -- albeit one that lacks a bit graphically compared to the D3 and HL2 standards -- to cater to a niche crowd and make a name for themselves.

    The sheer price to enter the market for game developing is HUGE. Especially when it costs more money to develop a reliable engine than to buy one from somebody else. Those engines can run into the hundreds of thousands of dollars, and for a small gaming firm, or even a lone developer, that entry fee is too high a price to pay.

    id Software should be commended for their efforts to continue supporting open source, make room for solo developers, and help broaden the PC gaming genre as we know it by including those who previously had restraints on their investment into gaming.

    And to those of you assholes who continually compare Doom3's engine to the Source engine, and say it sucks... just write an engine that's even half as good as the Q3 engine, and then maybe you can say what sucks, and what doesn't. Doom3 may not have been graphically spectacular in its own instance, but I have a feeling that the engine behind it will do much of what the Q3 engine did -- pave the way for amazing games, and challenge hardware AND software vendors to up their efforts to support the T&L and effects that the D3 engine is spectacular at.

    --
    The price is always right if someone else is paying.
    1. Re:And that's why id Software rocks. by justins · · Score: 1
      The sheer price to enter the market for game developing is HUGE.

      No, it really isn't.

      http://www.garagegames.com/makegames/
      --
      Now before I get modded down, I be to remind whoever might read this that what I am saying is FACT. - bogaboga
    2. Re:And that's why id Software rocks. by Anonymous Coward · · Score: 0

      >They rule because they are open sourcing it to make room for cheap games based on that engine.

      Funny, I don't recall any commercial games of note coming out of the opened Q1 and Q2 engine.

      Cut down on the Kool-Aid(tm), kid.

    3. Re:And that's why id Software rocks. by HerculesMO · · Score: 1

      Then you have to look harder. They weren't 'commercial' in the "I can buy it at EBGames!" sense, but there are games that came out of Q2 (at least that much for sure) that catered to a niche crowd making a neat game that appealed to only a handful of people, and did well at that.

      --
      The price is always right if someone else is paying.
    4. Re:And that's why id Software rocks. by Svartalf · · Score: 1

      Yes and no... There IS a price for Torque- it's $100 for an indie license, and if you're actually being successful, it's $400. This is per developer.

      Now, say you're someone who'd like to get a game out. Say you've never done this sort of thing before- and can't really swing even the $100. Torque is good, don't get me wrong. It's a more sophisticated engine from the fact that it was designed for large open-air levels combined with indoors portions or all indoors. I don't know how Q3:A would deal with that part. However, if you're on a tight budget, you have a choice of not doing anything or at least making a try with something like Q3:A or a host of other GPL/LGPL licensed game engines. Q3:A has the distinction of being battle proven in a commercial product over the others.

      --
      I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
    5. Re:And that's why id Software rocks. by idonthack · · Score: 1
      Q3:A has the distinction of being battle proven in a commercial product over the others.
      You seem to be forgetting Starsiege and Tribes.
      ---
      PS - This is what part of the alphabet would look like if Q and R were eliminated.
      Generated by SlashdotRndSig via GreaseMonkey
      --
      Why is it that when you believe something it's an opinion, but when I believe something it's a manifesto?
    6. Re:And that's why id Software rocks. by Anonymous Coward · · Score: 0

      Good job on disproving your own argument.

    7. Re:And that's why id Software rocks. by justins · · Score: 1
      If you can't afford the $100 cost to get torque, you won't have any of the other stuff you need to make a game.

      Q3:A has the distinction of being battle proven in a commercial product over the others.

      "Battle proven," yes. Distinct because of this, no.
      --
      Now before I get modded down, I be to remind whoever might read this that what I am saying is FACT. - bogaboga
    8. Re:And that's why id Software rocks. by Anonymous Coward · · Score: 0

      "And to those of you assholes who continually compare Doom3's engine to the Source engine, and say it sucks... just write an engine that's even half as good as the Q3 engine, and then maybe you can say what sucks, and what doesn't." - by HerculesMO (693085) on Saturday August 20, @11:03AM

      I hear you loud & clear man, & agree 110%: I hate talkers, show me you can do better is my motto as well...

      (You can't please everyone, but those that complain like that often TRULY amaze me, & you have to ask them "Well, show us what you've done that even BEGINS to compare with the likes of the folks @ IDSoftware then")

      You don't usually see ANY results when you ask for them either... again, I am with you here on folks like that/of that nature!

      * :)

      APK

      P.S.=> People like that, the ones you are commenting about? REALLY make me wonder sometimes... results count, not b.s.! apk

    9. Re:And that's why id Software rocks. by appleprophet · · Score: 1

      ID Software = indie? Are you kidding me? They have publishing deals coming out of their ass, games in all sorts of stores, internation distribution, an incorporated company, etc. They are the antithesis to "indie."

      Check out my sig, if you want to see a real indie developer.

    10. Re:And that's why id Software rocks. by HerculesMO · · Score: 2, Informative

      id Software is not owned by anybody. They are INDEPENDANT of other owners. For example, look at Blizzard North (World of Warcraft, etc). They are owned by Vivendi. Epic Entertainment (Unreal Tournament) is owned by Atari.

      These are just a few examples. There are very few "INDY" software shops that turn out a decent game, if any game at all.

      --
      The price is always right if someone else is paying.
    11. Re:And that's why id Software rocks. by appleprophet · · Score: 1

      By that definition, Electronic Arts = Indie :/

    12. Re:And that's why id Software rocks. by typical · · Score: 2, Interesting

      Carmack also rocks for working on XFree's 3d drivers, releasing Linux versions of his games (probably at a loss) to jumpstart the Linux game market, pushing for OpenGL usage, open sourcing many of his other games...

      It's also really cool that id stayed independent. In a day and age when the normal lifecycle of a game developer looks something like "release, release, release HIT, get purchased by EA", it's refreshing.

      --
      Any program relying on (nontrivial) preemptive multithreading will be buggy.
    13. Re:And that's why id Software rocks. by typical · · Score: 1

      Unless you use GNU and other quality free tools instead of the traditional overpriced Windows developer toolchain (some Rational products, a high-end Visual Studio package from MS, maybe a commercial debugger, maybe something like Visual Slickedit...) Then your cost of development tools is $0.

      --
      Any program relying on (nontrivial) preemptive multithreading will be buggy.
    14. Re:And that's why id Software rocks. by Anonymous Coward · · Score: 0

      id Software is not owned by anybody

      Somebody better tell Activision...

    15. Re:And that's why id Software rocks. by Anonymous Coward · · Score: 0

      EA is a publishing company, imbecile. Apples and oranges, please.

    16. Re:And that's why id Software rocks. by justins · · Score: 1
      Unless you use GNU and other quality free tools instead of the traditional overpriced Windows developer toolchain (some Rational products, a high-end Visual Studio package from MS, maybe a commercial debugger, maybe something like Visual Slickedit...) Then your cost of development tools is $0

      The free tools are available on Windows as well. I was thinking more about the hardware. If you can buy a computer, a hundred bucks for some random software product isn't going to put you in the poorhouse. (software pirate rationalizations throughout the history of personal computing notwithstanding)
      --
      Now before I get modded down, I be to remind whoever might read this that what I am saying is FACT. - bogaboga
    17. Re:And that's why id Software rocks. by typical · · Score: 1

      The free tools are available on Windows as well.

      I know. I wasn't suggesting developing on Linux.

      If you can buy a computer, a hundred bucks for some random software product isn't going to put you in the poorhouse.

      No, but it may still be enough to discourage you from starting work on a game.

      --
      Any program relying on (nontrivial) preemptive multithreading will be buggy.
    18. Re:And that's why id Software rocks. by batkiwi · · Score: 1

      I agree with a lot of what you say, BUT:

      And to those of you assholes who continually compare Doom3's engine to the Source engine, and say it sucks... just write an engine that's even half as good as the Q3 engine, and then maybe you can say what sucks, and what doesn't

      This is bullshit. Doom1 was a great game. I could not, from scratch, build an engine as good as doom1. But I am still able to tell you that quake1's engine is MUCH better FOR THE END USER. It looks better, allows more control, etc. This whole "well if you can't write it, you can't judge it" is total and utter bullshit. Can someone who can't cook not complain that (for example) a steak at the outback isnt' as good as a steak at Ruth's Chris?

      How about this, for a spin. IF you cannot, from scratch, create ME, then you cannot complain about me and what I complain about. Like that one?

    19. Re:And that's why id Software rocks. by lorelorn · · Score: 2, Informative
      They are absolutely an independent developer.

      A successful one.

      Perhaps other indie developers should spend less time stroking themselves reading their manifestos, and more time working on sustainable business plans and a product that will sell.

    20. Re:And that's why id Software rocks. by John+Carmack · · Score: 4, Interesting

      Thank you.

      John Carmack

    21. Re:And that's why id Software rocks. by arcade · · Score: 1

      This is bullshit. Doom1 was a great game. I could not, from scratch, build an engine as good as doom1. But I am still able to tell you that quake1's engine is MUCH better FOR THE END USER. It looks better, allows more control, etc. This whole "well if you can't write it, you can't judge it" is total and utter bullshit.

      You're attacking a straw man. Nobody will complain about someone saying "Personally I think the Source engine is superior to the quake3 engine".

      If you're going to say "The quake3 engine sucks!! Look at source!" - then reactions are going to be "Well, let's see if you can build something that's as good as quake3 then .."

      --
      "Rune Kristian Viken" - http://www.nwo.no - arca
    22. Re:And that's why id Software rocks. by justins · · Score: 1

      Yeah. I think if one were to compare the community at someplace like quakesrc.org (which I've been looking at a bit in the past few days) to the community at Garage Games, the $100 would look like money REALLY well spent. A beginner is going to need help and support, as well as an SDK.

      --
      Now before I get modded down, I be to remind whoever might read this that what I am saying is FACT. - bogaboga
    23. Re:And that's why id Software rocks. by IntergalacticWalrus · · Score: 1

      Activision is only their publisher (since Quake 2, IIRC). They don't own them.

    24. Re:And that's why id Software rocks. by cUnNiNg_StUnTs · · Score: 1

      Epic is NOT owned by Atari, in fact just before the release of their XBox title Unreal Championship 2 they left Atari as their "publisher" and signed on with Midway.

      So Atari and Midway are to Epic what Activision is to ID. Saying that to an Epic fan is like saying Activision owns ID to an ID fan.

      Either statement p!5535 me off.

      ID Software is the company that hooked me on PC games, back before the Internet when I used to surf BBS dial ups for downloadable software I remember finding a little game called Commander Keen I had just gotten my first color monitor and that was awesome.

      At the same time Epic is cool too in their own right and I love the work of both companies.

      While I doubt id's next game will be a FPS if they say they're focused on "FUN" than I'm going to be one man with sore cheeks cause I plan to be smiling and LMAO playing whatever they come up with.

    25. Re:And that's why id Software rocks. by Anonymous Coward · · Score: 0

      In light of John's reply, all I have to say is:

      appleprophet sucks down John Carmack's rocket.

    26. Re:And that's why id Software rocks. by Svartalf · · Score: 2, Informative

      If you can't afford the $100 cost to get torque, you won't have any of the other stuff you need to make a game.

      Really now...

      Compiler - GCC. Check.
      Debugger - GDB/DDD Check.
      Network Middleware - Q3:A engine network stack, or OpenPlay, or ADAPTIVE Communications Environment, or... Check.
      Game Physics - Q3:A engine, or Crystal Space, or NeL, or... Check...
      Game Rendering - Ditto...
      Installer - Loki/LGP Installer, Autopackage, NSIS, etc. Check.
      3D Modeler - Blender, etc. Check.
      Sound - OpenAL, FMOD, etc. Check.

      Gee, there seems to be all the tools for someone to make a game in hand for cross-platform development of professional games (HINT: They DO make games with the above stuff and people have bought them- even in recent times...) and all Open Sourced, with no costs whatsoever if you can support yourself.

      Seems to me, you missed the boat somewhere.

      --
      I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
    27. Re:And that's why id Software rocks. by XO · · Score: 1

      I see that this "Torque" has "Award Winning Netcode". Exactly what group of people goes around and gives out awards to Netcode? And what is the name of the award they got? and how does it compare to the other netcode awards that might be out there?

      --
      "Champagne for my real friends - and real pain for my sham friends!" http://ericblade.postalboard.com/
    28. Re:And that's why id Software rocks. by Anonymous Coward · · Score: 1, Interesting

      You can't go around generalizing like that. Not all indie developers are out "stroking themselves reading their manifestos". There are quite a few, actually, that work their asses off to create good game content. It's a hell of a lot of work to create a game. And even more work to create a good game.

      Indie developers have to compete with the cream of the crop that comes out of EA or Activision. Comparisons between a 4 man team and a 400 man team abound when critics write their reviews. It's not always a rewarding effort.

      A company like id might be indie, but they enjoy the clout of a commerical dev. They aren't totally in-touch with the indie crowd anymore. I commend them for releasing their engines to the public, but that's the cutoff line for indie when talking about id.

      I make $0 for my product right now. It's an effort of love and dedication and crapshoot whether it'll make any $$$. Carmack and crew make many more dollars because they have a) money bankrolled from previous successes and b) commerical contracts because -- well, because of their name.

      They may have been indie, but they are much further from indie today than when they started.

      - SphericalCow

    29. Re:And that's why id Software rocks. by justins · · Score: 1

      Didn't Apple get an Oscar for Firewire? It could happen!

      --
      Now before I get modded down, I be to remind whoever might read this that what I am saying is FACT. - bogaboga
    30. Re:And that's why id Software rocks. by aztracker1 · · Score: 1

      Just because he wouldn't give you a job.. heh.

      --
      Michael J. Ryan - tracker1.info
    31. Re:And that's why id Software rocks. by Guspaz · · Score: 1

      EA also is a combination of three things when it comes to game development:

      1) They have their own coders making games
      2) They have child companies making games
      3) They publish games for independant companies

      In at least the first situation they are an indie developer in the grandparent's terms.. They are a company, owned by no-one, creating their own games.

      I agree that when they act as a publisher they're not acting as an independant developer. Because they're then acting as a publisher. But you have to keep in mind that in addition to publishing games for other companies they DO write their own stuff directly. They even have a development studio a few blocks away from where I am right now in downtown Montreal, where several hundred (Up to a thousand now?) employees toil away.

      Certainly, though, I am not making any judgement on if they qualify as an independant developer. I'm just pointing out that they are not ONLY a publisher.

    32. Re:And that's why id Software rocks. by Anonymous Coward · · Score: 0

      My, aren't you just a little comedy genius today?

    33. Re:And that's why id Software rocks. by Anonymous Coward · · Score: 0

      I wish i was so fucking cool that simply saying thank you and following it with my name made me worthy of a comment score of 5

  38. Last OpenGL version ? by Anonymous Coward · · Score: 2, Insightful

    Since carmack is choosing the Xbox 360 as his main developmentplatform (Direct3D) does this mean that he will be ditching OpenGL?

    1. Re:Last OpenGL version ? by Anonymous Coward · · Score: 0

      I hope so. It's about time to choose a single platform and let the others die. Direct3D may not be open and has its flaws, but it has become a de facto standard.

    2. Re:Last OpenGL version ? by Anonymous Coward · · Score: 0

      Doom3 is OpenGL -- even on XBox 1 (supposedly).

      However, if you read Carmack's public statements he's continually bitching about drivers. He might just go Direct3D only because that's what the card makers are dedicated in supporting.

      Right now there's only about 1 major OpenGL game release per year (CoD 2003, D3 2004, Q4 2005...), which means that vendors can ignore OGL 90% of the time.

    3. Re:Last OpenGL version ? by jericho4.0 · · Score: 2, Insightful

      I would be open to that if it was available on other platforms! But it's not, it's only available on windows, and no matter how you feel about OSS, GNU hippies, and the like, that's not good.

      --
      "A language that doesn't affect the way you think about programming, is not worth knowing" - Alan Perlis
    4. Re:Last OpenGL version ? by jonabbey · · Score: 1

      Just so. Sony is supporting OpenGL 2.0 on PS3, so folks will be coding to GL for quite some time to come.

    5. Re:Last OpenGL version ? by homeobocks · · Score: 1

      You can make an engine that allows the user to choose whether to use D3D or OpenGL. Like the Half-Life and Far Cry engines.

      --
      MOUNT TAPE U1439 ON B3, NO RING
    6. Re:Last OpenGL version ? by mrchaotica · · Score: 1

      Oh, well that's nice to know. It certainly makes me hate Sony a little less!

      --

      "[Regarding the 'cloud,'] ownership was what made America different than Russia." -- Woz

    7. Re:Last OpenGL version ? by justsomebody · · Score: 1

      Soooo, how does this standard works on non-MS platforms?

      Something can't become standard if it is not used everywhere

      --
      Signature Pro version 1.13.2-3 release 83.5 beta3try7 after-breakfast edition
    8. Re:Last OpenGL version ? by Anonymous Coward · · Score: 0

      Standard on Microsoft-produced systems (Windows and Xbox) only. For everything else, OpenGL is the standard.

    9. Re:Last OpenGL version ? by Anonymous Coward · · Score: 0

      "He might just go Direct3D only because that's what the card makers are dedicated in supporting."

      Tell that to Nvidia, whose OpenGL support has always been better than their Direct-X support. Plus the graphics card makers would royally piss off people using non-MS OSs (Linux, *BSD, Mac, etc.) if they didn't support OpenGL.

    10. Re:Last OpenGL version ? by MiKom · · Score: 1

      You are sure? So why there are so many games that use only DirectX? Isn't it standard for most of game developers?

  39. Maybe now the OS X version will be fixed? by solios · · Score: 2, Insightful

    Seriously. The last version of Q3A (that I'm aware of, anyway) for OS X has a glitchy, game-crashing plasma gun.

    Oh, and the screen dumps I've taken (multihead, radeon9600) are static, as opposed to game content. o.O

    1. Re:Maybe now the OS X version will be fixed? by phlyingpenguin · · Score: 1

      I haven't noticed that in my OS X copy...

    2. Re:Maybe now the OS X version will be fixed? by solios · · Score: 1

      I have two versions of the OS X q3 executable : 1.31 and 1.3.2.

      1.31 is totally stable, and I haven't had any problems with it.
      1.3.2 has the plasma gun problem, and I've had a few other issues with it.

    3. Re:Maybe now the OS X version will be fixed? by soupforare · · Score: 1

      You might get lucky, there are great OSX versions of Q1/QW/Q2 made by http://www.fruitz-of-dojo.de/ Those guys might not see the need to port it since there's already a version of it out there, but you never know.

      --
      --- Do you believe in the day?
    4. Re:Maybe now the OS X version will be fixed? by Billly+Gates · · Score: 1
      Hmm take a look at this snip from the source...

      macosx_sys.m; line 268: /* Okay, this is a stupid hack, but what the hell, I was bored. ;) */

      Hmm

  40. Re:UT forever. by FLAGGR · · Score: 1

    5MB of code.... in a zip. Thats like 30mb of code. Also, the code to the engine is alot more complicated then what you do at work (well, at least the odds are it is) and thats why Carmack is a millionaire and builds rockets for fun.

  41. Re:UT forever. by varmittang · · Score: 1

    Ok, what I meant was this 5 MB of code, which is the engine for the game, ends up producing a full game, which we all know has graphics and sounds that take up the majority of the space. That its looks so smal against the ending product, but is a lot of code. I guess I was being poetic, but no one picked up on it.

    --
    -----BEGIN PGP SIGNATURE-----
    12345
    -----END PGP SIGNATURE-----
  42. Source ports listing by jvmatthe · · Score: 1

    Please submit any source ports to Liberated Games ( http://liberatedgames.org/ ). Thanks.

    1. Re:Source ports listing by XO · · Score: 1

      Website confusing as all get out between what's a "free game" and what's an "open source game, gotta go buy the data files"

      --
      "Champagne for my real friends - and real pain for my sham friends!" http://ericblade.postalboard.com/
  43. Re:Source Source by Anonymous Coward · · Score: 0

    It is flamebait because we all know that Valve sucks. Obviously!

  44. Re:UT forever. by Anonymous Coward · · Score: 0

    As a minor contributer to that, and a few other Unreal mod projects I think know where there confusion might arise over source density.

    As in many other games, there's basically several 'layers' in which to code. The source engine, optimised C, often very small - less than a meg like a kernel. Then the API 'world' interface. In Unreal this is Uscript, which is basically Java with tweaks for concurrent replication and distributed garbage collection. The bulk of any finished game is written here although modders often tweak the engine source, as did TTR, Strikeforce and some of the Unreal1/UT modders.
    Actually collision detection is the most tweaked thing here. Lastly, and not always present is the game description, which although an interface to a world editor actually generates code to place the actors etc within a BSP world, so its more than just pure map data. Anyway, there's how you end up with 30+ Meg of code in a game mod. Very little of it is pure C.

  45. News oppt'y for cheating? by ch-chuck · · Score: 2, Insightful

    I already get my butt kicked every time, but won't this allow server operators to make special hacks for their own advantage?

    --
    try { do() || do_not(); } catch (JediException err) { yoda(err); }
    1. Re:News oppt'y for cheating? by op51n · · Score: 1

      In the keynote he said they've taken all the punkbuster stuff out, so it can't connect to a punkbuster protected server (not entirely sure how punkbuster works but I can guess). He also said he doesn't know if there will be unforeseen circumstances this way, but they are ready and willing to deal with it if this does cause an influx of cheating.

    2. Re:News oppt'y for cheating? by bani · · Score: 1

      Server operators could always do this without the q3 engine source. All you need is the mod source sdk, released ages ago.

      The release of the q3 engine source doesn't enable server operators to cheat. They could already do that.

  46. Filerush.com torrent by rg3 · · Score: 5, Informative
  47. Tip for compiling on linux by jayslambast · · Score: 5, Informative
    While most of you probably know this, you have to do one thing before compiling the code. The '.md' files in the lcc/src need to be converted to unix end of line characters, otherwise one of the lcc compiler programs will barf. To fix this, jump into the lcc/src directory and run this little perl function on all the files in that directory.
    cd lcc/src
    tcsh
    foreach i (*)
    perl -p -e 's/\r/\n/g' $i.unix
    mv $i.unix $i
    end
    and btw, if there is a nice unix utility that already does this, let me know.
    1. Re:Tip for compiling on linux by Transcendor · · Score: 1

      it's called dos2unix AFAIK and it's compiled (not perl or so)

    2. Re:Tip for compiling on linux by rg3 · · Score: 2, Informative

      While not completelly correct, you can use tr -d '\r' to remove CR characters. Another completelly correct way of doing it is to use sed -e 's/\r\n/\n/g'.

    3. Re:Tip for compiling on linux by Anonymous Coward · · Score: 0
      Just use
      dos2unix filename
      to convert line endings.
    4. Re:Tip for compiling on linux by blaksaga · · Score: 1

      When I needed to do a similar task and couldn't find a utility to do it for me I made my own python script. While I didn't take the time to make it use command line arguments it wouldn't take much.

      #!/usr/bin/python

      import os

      #The extensions of the files in which you want to replace text
      use_types = [ ".html", ".htm" ]

      #The folder to recursively replace text in files
      rfolder = "/home/blaksaga/replaceme"

      #The text to replace
      replace = "cat"

      #The text to replace with
      replacewith = "dog"

      #Should the script replace in directories recursively?
      recursive = 1

      def DOreplace ( rfolder, use_types, replace, replacewith, recursive ) :
              for f in os.listdir ( rfolder ) :
                      if ( os.path.splitext ( f ) [ 1 ] in use_types ) :
                              print "Replacing in " + f
                              outfile = open ( rfolder + os.sep + f + ".bak", "w" )

                              for text in open ( rfolder + os.sep + f , "r" ) :
                                      outfile.write ( text.replace ( replace, replacewith ) [ : -1 ] )

                              os.system ( "mv " + rfolder + os.sep + f + ".bak " + rfolder + os.sep + f )

                      elif ( os.path.isdir ( rfolder + os.sep + f ) ) :
                              print f + " IS FOLDER"
                              if ( recursive ) :
                                      DOreplace ( rfolder + os.sep + f, use_types, replace, replacewith, recursive )

      DOreplace ( rfolder, use_types, replace, replacewith, recursive )

    5. Re:Tip for compiling on linux by Anonymous Coward · · Score: 0

      Try unzip -a quake3-1.32b-source.zip

    6. Re:Tip for compiling on linux by Nasarius · · Score: 1
      Ouch. No offense, but that's a horrible abuse of Python. Take some time and familiarize yourself with common Unix tools so you don't waste all that time writing some ugly script.

      find . -name *.html | xargs sed -i 's/cat/dog/g'
      --
      LOAD "SIG",8,1
    7. Re:Tip for compiling on linux by natex84 · · Score: 2, Informative

      i simply did:

      unzip -a quake3-1.32b-source.zip

      -a auto-convert any text files

    8. Re:Tip for compiling on linux by blaksaga · · Score: 1

      What I was originally trying to do was adapt an old windows webpage on the harddrive to work in linux by changing all \'s to /'s. I couldn't get it to work with perl or sed even with escape characters. If it's possible please enlighten me. :)

    9. Re:Tip for compiling on linux by Vincepb · · Score: 1

      s/\\/\//g

      Would do what you asked for.

      --

      I need a sig.
    10. Re:Tip for compiling on linux by arodland · · Score: 1

      s#\\#/#g

      would do it without looking like ASCII art at the same time

  48. Re:Unreal Engine 4 by bani · · Score: 1

    Hell, they havent even GPLd unreal1 or unreal tournament. I don't think they've GPLd anything at all, have they?

  49. MacOSX Version... by graffix_jones · · Score: 5, Interesting

    Well, it compiles and runs under OSX, but it's not pretty.

    So far, there's three pretty major bugs that I've noticed in my limited trial.

    1. Trying to ping multiplayer servers crashes the game
    2. Several of the 3D models are really messed up, and some are missing. I was playing against a bunch of bodyless people... all that were present was legs.
    3. The Quake 3 header on the setup screen is missing.

    The odd thing, is that I assumed that since the last build to come out of iD worked great on my G4, that the source would just compile and run without problems... boy was I wrong.

    Of course I compiled under 10.4.2, and I think the last time it was compiled under 10.2.x, so the difference in compilers could probably be the difference.

    1. Re:MacOSX Version... by Anonymous Coward · · Score: 0
      Not 64-bit compatible thou... i will get a lot of casting errors!
      warning: cast from pointer to integer of different size
    2. Re:MacOSX Version... by Anonymous Coward · · Score: 0

      any hints on compiling...get stuck after some fixes...

    3. Re:MacOSX Version... by yincrash · · Score: 1

      it is probably because only the source is gpl'd not the textures.

    4. Re:MacOSX Version... by inotocracy · · Score: 1

      It could be because the source was released, not the actual game content.

    5. Re:MacOSX Version... by graffix_jones · · Score: 2, Interesting

      I just opened the Quake3.pbproj file in Xcode (which needed updating for the new build environment), and clicked 'build'.

      I do have the full version of Q3A installed, so I just fired up the resulting binary and noticed all these problems.

      The first thing I noticed is that the Quake 3 header that hovers back and forth over the setup screen (when you first log in) was missing.

      Normally I try to connect to multiplayer servers first whenever I try out a Q3A update, which crashed the game.

      Next I decided to tackle a single player game with bots, and that's when I noticed that the bots had no bodies or heads... just legs.

      The interesting part is that the collision detection was functioning correctly, because if you tried to shoot where the body was supposed to be, you wouldn't hit anything, however going for the leg shot worked... weird.

      So, I can't really offer any tips, since C is a foreign language to me. In this case I just clicked a button.

    6. Re:MacOSX Version... by Thrakkerzog · · Score: 1

      My multi player server browser has crashed ever since 10.3. I use Only Mortal to query servers because of this.

      Now, it will probably be fixed!

    7. Re:MacOSX Version... by Anonymous Coward · · Score: 0

      The models render fine in the G3 build. Its just the G4 build which is having problems. Hmmm.

    8. Re:MacOSX Version... by Suppafly · · Score: 1

      obviously he's using the content from the actual game, otherwise he wouldn't see anything at all.

    9. Re:MacOSX Version... by Anonymous Coward · · Score: 0

      That could be an interesting mod -- shoot the disembodied legs. Do they fire at you in the normal way sans body model though?

    10. Re:MacOSX Version... by Anonymous Coward · · Score: 0

      You shouldn't just click build when opening a project...

      You need to change the build to "Deployment" first (You can find that on the Build Results Window).

      I have absolutely no problems with the build other than seeing a bunch of the following while playing:

      Com_sprintf: overflow of 250 in 144
      Com_sprintf: overflow of 242 in 144
      Com_sprintf: overflow of 249 in 144
      Com_sprintf: overflow of 254 in 144
      Com_sprintf: overflow of 260 in 144
      Com_sprintf: overflow of 248 in 144

      I even // comment out the lines in the source for showing those errors and they still pop up.

    11. Re:MacOSX Version... by Anonymous Coward · · Score: 0

      Yes, the hit testing works fine.

  50. what makes this really cool is... by blinksilver · · Score: 1

    that F/OSS has always been behind in stuff like this(high end 3D engines, well its somewhat high end), I mean the best looking 3D game I know thats F/OSS is based on the Q2 engine. There is just is not enough time, or willing people. Its a big project to make a good game, let alone a good engine, each one with a group of coder the size (i would guess) of the gnome devel team, and unlike gnome, companies like red hat have no need to support it, they aren't going to package it with support and sell it on the server market.

    F/OSS Finally has a game engine that looks somewhat decent (its no unreal 2, but it is pretty), and as someone mentioned above, a clean and well written(compared to the Q2) codebase. I would like to see what will come of this, maybe we can see some small groups actually start writting really great opensource games or at least could mod the engine a little so it looks more modern for other to develop on. That would draw more people to the F/OSS community. People are always saying how they would consider switching but the gaming isn't there as much as it is in windows. We could finally respond with look at games X,Y,and Z they are all fairly modern looking and have great gameplay, plus they are free.

    just my 0.122687 Denmark Kroners

  51. Re:UT forever. by Anonymous Coward · · Score: 0

    It doesn't produce a "full game"; no maps, textures, or sounds are included.

    Assuming the game source (that's been available for years) is included the EXE and DLLs it produces is maybe 2-3 MB in total (maybe a bit more if you include tools).

  52. millibits? by leandrod · · Score: 0

    mb is a millibit, but I can't make sense of that. I guess the poster meant MiB, or mibibytes, meaning 2^20 bytes.

    --
    Leandro Guimarães Faria Corcete DUTRA
    DA, DBA, SysAdmin, Data Modeller
    GNU Project, Debian GNU/Lin
    1. Re:millibits? by Anonymous Coward · · Score: 0

      Hey congrats, you win the pedantic asshole prize

    2. Re:millibits? by Anonymous Coward · · Score: 0

      Anyone who seriously uses those "binary prefixes" needs to be smacked.

      That said, it is true, if a bit pedantic, that "mb" is "millibit". But "MB", and calling it a "megabyte", is fine... everyone knows it's 2^20, we don't need special prefixes that sound like Porky Pig (mebibibibibi that's all folks).

    3. Re:millibits? by Anonymous Coward · · Score: 0

      I hate you and everything that you stand for!

      *ahem*

    4. Re:millibits? by Antibozo · · Score: 1
      mb is a millibit, but I can't make sense of that.

      A millibit is 1/1000 of a bit. This may not be something you can give your mom for her birthday, but it is a meaningful quantity when talking about cryptographic concepts such as entropy, where you end up with fractional statistical quantities, measured in bits.

      Also, wouldn't MiB be "mebibytes"?

      While I understand why people wanted to distinguish between base-2 and base-10 prefixes, the specific scheme chosen doesn't work because debi- is not distinguishable between base-2 deka and base-2 deci.

    5. Re:millibits? by leandrod · · Score: 1
      wouldn't MiB be "mebibytes"?

      Quite right, you're bloody well right.

      the specific scheme chosen doesn't work because debi- is not distinguishable between base-2 deka and base-2 deci

      References? You just talked over my head.

      --
      Leandro Guimarães Faria Corcete DUTRA
      DA, DBA, SysAdmin, Data Modeller
      GNU Project, Debian GNU/Lin
    6. Re:millibits? by stoph+ct · · Score: 1

      he refers to the nonexistant debibyte

    7. Re:millibits? by Anonymous Coward · · Score: 0

      the specific scheme chosen doesn't work because debi- is not distinguishable between base-2 deka and base-2 deci.

      Lucky for us that no one's tried to define either, then. Think about it: What the hell is a "dekabinary" byte? 10 bytes? 8 bytes?

  53. Slashdot late as usual :-/ by bani · · Score: 1, Funny

    2005-08-19 21:37:02 Quake 3 Source Finally Released (Games,Quake) (rejected)

    Reject submissions, only to post them later...

    1. Re:Slashdot late as usual :-/ by Anonymous Coward · · Score: 0

      lol someone's account is about to get bitchslapped :)

    2. Re:Slashdot late as usual :-/ by WhiteBandit · · Score: 1

      2005-08-19 21:37:02 Quake 3 Source Finally Released (Games,Quake) (rejected)

      Reject submissions, only to post them later...


      Yes... but to make up for it, they will post the article twice!

  54. Re:UT forever. by Anonymous Coward · · Score: 0

    And the UT source is pretty much the same size (uncompressed).

  55. It's getting old by El_Muerte_TDS · · Score: 1

    Everytime some news pops up about a certain 3D engine people come running at the post with their torches bitching about how engine X is better than engine Y and how company Z handles things better.

    So what that engine Y hasn't been released under the GPL, they don't have to if they don't want to, period, so stop bitching.

    The Quake3 engine is now available, so either start to play with it or stfu.

    1. Re:It's getting old by Anonymous Coward · · Score: 0

      Given that I haven't seen any such comments in this article, maybe you're the one who should stfu.

  56. Re:Unreal Engine 4 by Anonymous Coward · · Score: 0

    Exactly how many games have used the Quake 1 or 2 engines? I can think of a few off the top of my head. The real question is how much have we benefited from the source release? I can't recall a single game that used the Quake engines after they were open sourced, though they must exist. Granted there are a bunch of mods, but mods existed well before the engine was fully opened. While opening the source might make you feel all warm and fuzzy inside, I don't really see the practical effects. Most of the good games licensed the code while it was in its prime. Almost nobody wants to use 5 year old tech today. Then again, Tux Racer, FreeCiv, and NetHack are the most succesful Linux games... On the other hand, the source release of Duke3D was pretty beneficial. Native Linux and Win32 builds, hi-res texture updates, POLYMOST (though that was done by the author of the Build engine), etc.

  57. Nice by Gloume · · Score: 2, Interesting

    From q_math.c, Q_rsqrt():
    i = 0x5f3759df - ( i >> 1 ); // what the fuck?
    Always good to know that the engine coders don't know what is going on.

    1. Re:Nice by jericho4.0 · · Score: 5, Informative
      That's Carmacks magic number! Of course it doesn't need commenting!

      It's the first guess for finding an inverse sqare root using Newtons method. We're still waiting for a mathamatitian to tell us if it's the best choice, but it works. That's one of Carmack's claims to fame in the CS world.

      --
      "A language that doesn't affect the way you think about programming, is not worth knowing" - Alan Perlis
    2. Re:Nice by Anonymous Coward · · Score: 1, Informative

      See here for a nice explanation.

    3. Re:Nice by jericho4.0 · · Score: 5, Informative
      (replying to my own post)

      float InvSqrt (float x)
      {
      float xhalf = 0.5f*x;
      int i = *(int*)&x;
      i = 0x5f3759df - (i >> 1);
      x = *(float*)&i;
      x = x*(1.5f - xhalf*x*x);
      return x;
      }
      It runs much faster than math.h, and it's very usefull.

      This paper says that it was first found in the Quake 3 source. I guess it's in the SDK somewhere?

      I wanted to add, too, that this is an example of why companies don't release code. They view things like this as secrets to be kept. Kudos to Carmack for having the confidence.

      --
      "A language that doesn't affect the way you think about programming, is not worth knowing" - Alan Perlis
    4. Re:Nice by edwdig · · Score: 1

      I'd like to know why this line:

        x = *(float*)

      isn't just:

        x = (float)i;

    5. Re:Nice by ryants · · Score: 1
      Suppose i is 0x3F800000.
      x = *(float*)&i
      That says "take the bits that make up i and consider them a floating point number now". After this statement, x is 1.0f.
      x = (float)i;
      That says "take the integer i and convert it to the equivalent float". After this statement, x is 1.06535e+09f.
      --

      Ryan T. Sammartino
      "Ancora imparo"

    6. Re:Nice by Gloume · · Score: 1

      To be clear, the "what the fuck?" comment is actually in code. It's good to see that someone knows what is going on though :D

    7. Re:Nice by TheRaven64 · · Score: 3, Interesting

      I'm intrigued. If this method is faster than the `standard' one, then why isn't it in libc? After all, math.h only defines the interface, and the C standard only defines the input-output semantics, not the implementation. Is it just laziness / ignorance on the parts of libc developers, or are there disadvantages associated with this approach (other than assuming a 32-bit float size and a specific format for floating point values)?

      --
      I am TheRaven on Soylent News
    8. Re:Nice by bani · · Score: 4, Informative

      the reason why this code isn't in libc is because this code is an approximation (but a good one). suitable for games but bad for scientific purposes.

      there are several reasons why this code exists in quake3:

      1) it was written back before modern FPUs and SSE etc. nowadays doing square roots in hardware is faster, especially if you vectorize. but back in 1999 it wasn't.
      2) it was written for mods to use in the quake vm (quake's bytecode interpreter). an engine trap may have been slower.

    9. Re:Nice by Anonymous Coward · · Score: 0

      I think this method just gives an approximation, and the standard method gives a more accurate value (but takes four times as long).

    10. Re:Nice by Anonymous Coward · · Score: 1, Interesting

      aas_map.c:
      //NOW close the fucking brush!!

      q_math.c:
      i = 0x5f3759df - ( i >> 1 ); // what the fuck?

      ui_atoms.c:
      // fuck, don't have a clean cut, we'll overflow

      sv_main.c:
      // since the cmd formatting can fuckup (amount of spaces), using a dumb step by step parsing

      ui_main.c:
      // fuck, don't have a clean cut, we'll overflow

      ui_shared.c:
      // vm fuckage
      // vm fuckage
      //FIXME: this is a fucking mess

    11. Re:Nice by mellum · · Score: 1

      C does not allow accessing an object of type float via an lvalue of type int. You need to either use a union (still invalid, but supported by most compilers) or memcpy. In fact this code will not work with gcc 4.1, which has improved aliasing analysis.

    12. Re:Nice by Ann+Coulter · · Score: 1

      The last step does look like a Newton iteration. For example,

      x^{-2} - a = 0;
      y = x - (x^{-2} - a) / (- 2 x^{-3});
      y = x^2 + x (x - a x^3)/2;
      y = (2 x^2 + x^2 - a x^3)/2
      y = x (3 x - a x^2) / 2;
      y = x (3/2 - (a/2) x x);

      where the last line is exactly what Carmack had. I would assume that the magic number line somehow performs \yet another\ iteration somehow. If $x$ was initially equal to unity, then

      y = (3/2 - a/2).

      If the integer value |i| is what I think it is (a number that does not cross floating point number field boundaries), then the right shift would effectively halve it. The subtraction would be similar to a subtraction of a/2 from 3/2.

      Again, just my guess.

    13. Re:Nice by turgid · · Score: 1
      1) it was written back before modern FPUs and SSE etc. nowadays doing square roots in hardware is faster, especially if you vectorize. but back in 1999 it wasn't.

      ...Unless you had an AMD K6-2 or K6/III which had 3DNow! which could do it in 1 to 3 clock cycles in hardware depending on the accuracy you needed.

      Q3 ran a treat on my K6-2/500 with nVidia TNT2 Ultra. There were all kinds of 3DNow! optimisations in there.

    14. Re:Nice by Anonymous Coward · · Score: 0

      It is roughly equivalent to c++ reinterpret_cast, the later is a static_cast.

      Have a nice day.

    15. Re:Nice by bani · · Score: 1

      The problem with 3dnow (and using mmx registers in general) is that you have to switch out of mmx mode when done. This is expensive.

      You really want to batch up your sqrt's for 3dnow (and vectorization in general). Using 3dnow for generic 1-off sqrts can be a loss.

      Fortunately SSE doesnt suffer from this problem.

    16. Re:Nice by swit · · Score: 1

      re:
      jericho4.0 (565125) message (#13362103)
      provides a link to a ".ps" file about "float InvSqrt (float x)"

      The link points to
      http://lomont.org/Math/Papers/2003/InvSqrt.ps

      Here's a better link ---

      1. Go to:
            http://lomont.org/Math/Papers/Papers.php

      2. Scroll down to the box ---

      Fast Inverse Square Root
      Feb 2003
      Here a fast algorithm is explained for doing
      inverse square roots on IEEE floating point formats,
      which is slightly more accurate than the code found
      on the web. In particular, the techniques explaining
      the magic constant 0x5f3759df (search for this constant
      on Google) used by John Carmack in the Quake 3 code
      are explained and improved.

      The box contains links to:
            http://lomont.org/Math/Papers/2003/InvSqrt.pdf
            http://lomont.org/Math/Papers/2003/InvSqrt.ps
            http://lomont.org/Math/Papers/2003/InvSqrtCode.zip

      Actually, all of lomont.org (by a Chris Lomont) is pretty interesting!

      SWIT

    17. Re:Nice by rjw57 · · Score: 2, Funny

      It's the first guess for finding an inverse sqare root

      I've got an even faster one: x := x * x

      [Note to /-bots, yes I knew what the original poster meant...].

      --
      Rich
    18. Re:Nice by ryszards · · Score: 2, Informative
      It's not John's. I asked him the same question last April.
      >Hi John,
      >
      >There's a discussion on Beyond3D.com's forums about who the author of
      >the following is:
      >
      >float InvSqrt (float x){
      > float xhalf = 0.5f*x;
      > int i = *(int*)&x;
      > i = 0x5f3759df - (i >> 1);
      > x = *(float*)&i;
      > x = x*(1.5f - xhalf*x*x);
      > return x;
      >}
      >
      >Is that something we can attribute to you? Analysis shows it to be
      >extremely clever in its method and supposedly from the Q3 source. Most
      >people say it's your work, a few say it's Michael Abrash's. Do you
      >know who's responsible, possibly with a history of sorts?
       
      Not me, and I don't think it is Michael. Terje Matheson perhaps?
       
      John Carmack
      I couldn't track down Terje to ask him.
      --
      - 'sup, G?
  58. Re:Unreal Engine 4 by TheRaven64 · · Score: 2, Interesting

    Quake 1 cleanly separated the graphics code from the game code. This means that any Quake 1 mod / total conversion (and there really is no difference between a total conversion and a different game based on the same engine) benefited from every advance made to the graphics code. If you take a look at some of the things being done with Quake 1, you will find that they are quite impressive - particularly when you bare in mind that they are basing it on 10 year old software.

    --
    I am TheRaven on Soylent News
  59. Re:UT forever. by Anonymous Coward · · Score: 0

    It's 5MB after it's been compressed into a zip. As you may or may not know, zip compresses text really well.

    The uncompressed size of the source is just over 35MB.

    Yes, sir... You are an idiot...

  60. eh... no need for perl here by jbellis · · Score: 5, Informative

    find lcc/src | xargs dos2unix

    that's all you need

  61. I'm waiting for TTYL Quake 3 Arena now by Egregius · · Score: 0

    Dangit, where's text-mode Quake 3 Arena? :P

  62. Another Mirror by rufuseddy · · Score: 0

    Ok I havent given much to /. and its followers so I guess here's a start! If not then blow jo....uh wait, nevermind. http://download.oceighty.net/quake3-1.32b-source.z ip

    --
    Giggidy Giggidy Gigg-a-dy
  63. Sounds good, but... by teamhasnoi · · Score: 2, Funny
    does it compile on OSx86?

    *runs*

    1. Re:Sounds good, but... by daeley · · Score: 1

      does it compile on OSx86?

      *runs*


      BRRAZZZZZAAPPPP!!!!!

      teamhasnoi HAS BEEN FRAGGED

      APPL_lawyer: 'n00b!!11!'

      --
      I watched C-beams glitter in the dark near the Tannhauser gate.
    2. Re:Sounds good, but... by Anonymous Coward · · Score: 0

      Screw that - how does it run on Linux/PPC?

  64. Nexuiz is similar... by Lemming+Mark · · Score: 2, Informative
    Take a look at Nexuiz. It's a free FPS arena game, complete with a selection of levels, player models, weapons, music, sound effects and a range of AI bots.

    The really interesting thing is that its engine is derived from the "Dark Places" engine, which is (in turn) an enhanced Quake I engine. Over the years, the developers of Dark Places and Nexuiz have done an incredible job of bringing this engine up to date and adding high quality eye candy - it's closer to the Q3 engine's capabilities than its modest roots. Nexuiz is at 1.1 release and is one of those GPL games that really show that OSS gaming can work. It's eaten a lot of my time :-)

    1. Re:Nexuiz is similar... by justins · · Score: 1

      Too bad the gameplay sucks so hard. I really wanted to like Nexuiz. Oh well.

      --
      Now before I get modded down, I be to remind whoever might read this that what I am saying is FACT. - bogaboga
    2. Re:Nexuiz is similar... by Lemming+Mark · · Score: 1

      Hmmm, I thought I posted a reply but it seems to have got lost somewhere...

      Anyhow, I like the Nexuiz gameplay, although it could certainly be improved with some enhancements (to weapons loadouts, maybe the controls, etc). If you have any specific issues it's worth posting on the forums - since it's OSS you can share constructive feedback directly with the developers.

      Also, you might like to look at Code Red (I don't have a URL but Google Knows). There are several Code Red games, they run on Linux and they're based on an enhanced Q2 engine (IIRC).

    3. Re:Nexuiz is similar... by justins · · Score: 1

      Yeah, I'm pretty sure I could easily tweak what annoys me about the game, since it's all about the speed of various things. Damage of various weapons would then need to be tweaked too. Oh yeah, since it's a multiplayer game, I'd then have to get everyone else to adopt my changes. :(

      They really ought to have just emulated the feel of q3 more. That game pretty much nailed it as far as multiplayer action feel went.

      --
      Now before I get modded down, I be to remind whoever might read this that what I am saying is FACT. - bogaboga
    4. Re:Nexuiz is similar... by Lemming+Mark · · Score: 1

      The easiest way to get everyone else to use the changes is to get them in the next release - lots of people aren't quite happy with the current feel, so that may be possible.

      I have high hopes for Nexuiz but it has a few rough edges that need smoothing off before it's really polished (I think the menu system needs some improvement, for instance).

    5. Re:Nexuiz is similar... by Anonymous Coward · · Score: 0

      A whole bunch of bloom and a few other recent eye-candy features does not a good game make. Nexuiz somehow manages to take Q3 maps and make them look like they came out of Quake 1.

      Not too mention, the gameplay is completely un-fun. There's just something off about it. I (as someone else already said) really wanted to like Nexuiz, but the only thing it's got going for it is that it's completely GPL.

  65. Re:UT forever. by El+Gordo+GJM · · Score: 0

    10MB, 10MB, 30MBm, who knows, half of it could be comments! How many SLOC (source lines of code) is it? This is the most fundamental metric that can be used to measure the size of an application. can anyone run it through a counter?

  66. First order of business by IntergalacticWalrus · · Score: 1

    Give the Linux port a sound backend that doesn't suck.

    1. Re:First order of business by Anonymous Coward · · Score: 0

      Way ahead of you. I downloaded and compiled the thing this morning, and once I managed to get the thing to build (using SCons instead of Cons), I noticed that the sound didn't work at all. I've spent much of today grafting an OpenAL-based sound driver to it. It mostly works (all sound effects present and correct, no music or cutscene audio yet), and it still has a couple of bugs to iron out.

      The code's a bloody mess though. I went into is assuming that the sound engine basically works like Quake 1's, which is a bit wrong. So it has a few rather nasty hacks in it.

  67. Mirror by Cytlid · · Score: 1
    --
    FLR
    1. Re:Mirror by rplacd · · Score: 1

      I believe Walnut Creek's main server handled something like a thousand (maybe more?) users on one box that was slower than yours. Had more RAM, though -- but they needed it for the on-the-fly tar/gzip processes.

  68. xbox version? by sbma44 · · Score: 1

    Obviously it'd require the use of the proprietary XDK, and for the user to have the PAK files, but (assuming some terrible person uses the XDK without permission), would this allow a version of Q3 to be compiled for the Xbox? I have to admit I don't know enough about the platform to know whether getting OpenGL apps to run on it is practical, or whether it's DirectX or nothing (in which case I imagine a port would be impractical).

    Yes, the controller sucks compared to a mouse, but I'm awash in old video cards, laptops and PC's with LCDs -- Halo 2 is the only FPS I've got available, and let's face it: compared to Q3A, it sucks pretty hard.

    1. Re:xbox version? by bani · · Score: 1

      you really, really don't want to play q3 with a joystick. it's unbearable. you really, really need a keyboard + mouse to play.

    2. Re:xbox version? by sbma44 · · Score: 1

      Oh, I donno. I had it on the dreamcast; it wasn't THAT bad. admittedly, I wouldn't want to play it against people who were using a kb/mouse combo...

  69. Not meaning to sound dense..... by php_krisp · · Score: 1

    But how do I actually compile the thing - can I play it once I've compiled it? I've never compiled anything before in my life... :(

    1. Re:Not meaning to sound dense..... by zlogic · · Score: 1

      If you compile the thing, you'll still need the .pak files with all the levels, characters, weapons etc which are STILL not open-source. You can download some third-party levels to be able to test the game or get a CD with the original Quake3 levels.
      Even DOOM1 levels can't be freely redistributed in the Net.
      This open-source release of Quake is intended for developers and not end-users. So if you're not interested in development, you won't really benefit from this release.

    2. Re:Not meaning to sound dense..... by niteice · · Score: 1

      On Windows, you'll need Visual C++ 7 (aka .net), or a tool to convert the projects to Visual C++ 6 format to use that. On Linux, you'll need to perform some hax to get it to compile at all. On Mac OS X, you'll need Xcode, but it doesn't work.

      No, you can't play the game with just this, it's only the source code, not the data (levels, maps, textures, etc).

      --
      ROMANES EUNT DOMUS
    3. Re:Not meaning to sound dense..... by niteice · · Score: 1
      .pak files

      they're pk3s, which are just renamed zips, quake 1 and 2 used paks...
      --
      ROMANES EUNT DOMUS
    4. Re:Not meaning to sound dense..... by pookemon · · Score: 1
      How do you actually compile the code using VC.NET? I have run MSVCVARS.BAT (or whatever it's called), and the batch files to build the VMs as listed in the Readme. When I try to compile in VC.NET I get:
      ------ Build started: Project: renderer, Configuration: Release Win32 ------

      Build log was saved at "file://e:\Source\Msvc\Quake3\quake3-1.32b\code\re nderer\Release\BuildLog.htm"
      renderer - 1 error(s), 0 warning(s)
      For each of the projects. As it states it just creates the build log, which tells me which files were to be included, but there's no indication of what error caused the output to not be created.
      --
      dnuof eruc rof aixelsid
  70. Re:UT forever. by Doppler00 · · Score: 1

    zip doesn't compress text very well. From my experience, if you compressed it with 7zip it would be about 2.5MB.

  71. Radiant by Sludge · · Score: 5, Interesting

    First off, a big thanks to John Carmack for opening doors for developers... again.

    The most exciting thing about this release is the GPL'd version of QeRadiant included with it. Radiant is a tool that many professional level designers swear by. For the first time ever, it is now available for independents to use when creating content for their own games. Prior to this, you needed a license from Id Software in order to use it for commercial purposes.

  72. Re:UT forever. by arafel · · Score: 1

    No, I'm afraid that's wrong. As well as the text, there are various binaries in there.

    And it's a 5MB zip archive, not 5MB of text into an archive. That makes a difference. ;-)

    After you've unzipped it, removed the binaries and the bits that id didn't write, you're left with somewhere over 10MB of code. Which is a fairly respectable lump, it must be said.

  73. Re:Unreal Engine 4 by John.P.Jones · · Score: 1

    Has anyone (partially) developed a game with the GPLed code from id, then decided to purchase a liscense so they didn't have to GPL their game?

  74. Fileshack. lol by matt+me · · Score: 0, Troll

    They decide to release the source code under an open source community to the free software community, by uploading it to a pay-service FTP server. Genius. Presumably BitTorrent wasn't compatible.

    1. Re:Fileshack. lol by Anonymous Coward · · Score: 0

      Sorry, you are wrong. They have put it also in they own FTP server - see tech downloads at idsoftware.com, thougth it can't handle the load very well :/

      Thanks idsoftware for releasing (and creating) such great products :)

  75. Big Step, but... by Kichigai+Mentat · · Score: 1
    I'm actually quite excited and surprised (though maybe I shouldn't be) that Quake 3's source was released. I expected such a thing to remain closed source for as long as the company could hold on to it.

    However, putting that aside, this isn't going to be an earth shattering experience for everyone. Q3's source doesn't seem to want to work without the retail version. I compiled my copy on a 1GHz G4 using XCode2, and while I got some binaries really fast, I couldn't use them for anything.

    But I'm confused with reading posts of people running their own source code. Perhaps someone should have stuck a line in the README.txt file that read "this is *not* the game!"

    --
    Rawr
    1. Re:Big Step, but... by spauldo · · Score: 1

      It's consistant with all other source code releases from id - you get the engine, but you don't get the art.

      I'm not sure with this particular release, but with quake 1 and 2 you could download the demo version and use the files from that. If you can't, then it's only a matter of time before someone makes it so that you can.

      For quake 2, there have been projects to create completely original art for the engine - openquartz is a good example of this. There's a good chance someone will start a project like that for quake 3.

      Of course, the point of all this is so that people can make their own GPL games using this engine.

      --
      Those who can't do, teach. Those who can't teach either, do tech support.
  76. How to compile this on Linux by jcdr · · Score: 5, Informative

    Tested on a Debian Sarge:

    # Get the code
    wget ftp://ftp.idsoftware.com/idstuff/source/quake3-1.3 2b-source.zip
    mkdir q3a
    cd q3a
    unzip quake3-1.32b-source.zip
    cd quake3-1.32b

    # Transformation for UNIX
    find -type f -exec dos2unix {} \;

    # Compiling
    cd code ./unix/cons

    # Result
    cd install
    find -ls

    # Install the packs
    # You needs to original files!
    # I do not find them in the source.
    cp -a /usr/local/games/quake3/baseq3/* ~/.q3a/baseq3/

    # Playing ./linuxquake3

    1. Re:How to compile this on Linux by Anonymous Coward · · Score: 1, Informative
      Well well well... not really
      Install debug-x86-Linux-2.3/Q3/q3_ui/q3_ui/ui.qvm as install/baseq3/vm/ui.qvm gcc -pipe -fsigned-char -g -Wall -Werror -O -DDEDICATED -DC_ONLY -c debug-x86-Linux-2.3/core/dedicated/qcommon/vm_x86. c -o debug-x86-Linux-2.3/core/dedicated/qcommon/vm_x86. o debug-x86-Linux-2.3/core/dedicated/qcommon/vm_x86. c: In function `VM_CallCompiled': debug-x86-Linux-2.3/core/dedicated/qcommon/vm_x86. c:1163: warning: matching constraint does not allow a register debug-x86-Linux-2.3/core/dedicated/qcommon/vm_x86. c:1163: warning: matching constraint does not allow a register debug-x86-Linux-2.3/core/dedicated/qcommon/vm_x86. c:1163: warning: matching constraint does not allow a register debug-x86-Linux-2.3/core/dedicated/qcommon/vm_x86. c:1163: warning: matching constraint does not allow a register cons: *** [debug-x86-Linux-2.3/core/dedicated/qcommon/vm_x86 .o] Error 1 cons: errors constructing debug-x86-Linux-2.3/core/dedicated/qcommon/vm_x86. o
      So, it failed with gcc 3.4.3, who's not happy with the asm inlining. I think i need an old gcc... Let's go back to the 2002 year!
    2. Re:How to compile this on Linux by jcdr · · Score: 2, Informative

      I sucess with gcc 3.3.5:

      gcc --version
      gcc (GCC) 3.3.5 (Debian 1:3.3.5-13)

      Only get 4 smalls warnings.

    3. Re:How to compile this on Linux by Anonymous Coward · · Score: 0

      Sys_Error: recursive error after: User Interface is version 3, expected 6

      I'm getting this error, does it mean that I need to copy the packs from a patched install, not from the cd?

    4. Re:How to compile this on Linux by Anonymous Coward · · Score: 0

      I installed gcc '2.96' hummm...) and it works (Mandriva 2005 LE): ./unix/cons -- gcc=gcc-2.96 g++=g++-2.96

      Now, i need to find a .PAK free as speech/beer (thirsty of new stuff).

      Anyone, a cool link ?

    5. Re:How to compile this on Linux by Richard+Jones · · Score: 1

      I also needed to:

          apt-get install sysutils bison nasm

      Mind you, I've been doing development on this machine for a while, so there might be some other packages too.

    6. Re:How to compile this on Linux by Mitchell+Mebane · · Score: 1

      Sys_Error: recursive error after: User Interface is version 3, expected 6

      I'm getting this error, does it mean that I need to copy the packs from a patched install, not from the cd?


      Most likely.

      --

      The roots of education are bitter, but the fruit is sweet.
      --Aristotle
    7. Re:How to compile this on Linux by Richard+Jones · · Score: 1

      hurm, and:

          x-dev xlibs-dev libxxf86dga-dev libxxf86vm-dev

      *phew*

    8. Re:How to compile this on Linux by Anonymous Coward · · Score: 0

      Actually you want PK3 (zip) files. Try downloading Urban Terror and running it without baseq3 files.

  77. In laymans terms... by KitesWorld · · Score: 1

    what the modders work with could be called a rulebook. If you rewrite a rulebook, you end up with a different game, no?

    The source code is something different, however. I guess you could call it the language that the rules were written in - there are some things you can say in English, for instance, that would be hard to say in Swahili (or, better geek example : Klingon.) Hence, bieng able to change the language that the rulebook is written in allows you even more freedom to change those rules.

    Don't be too suprised if six months from now, you start seeing Quake 3 TC's doing all sorts of things that they simply couldn't do before. Aside, that is, from running on the bloody toaster.

  78. Re:eh... no need for perl here by thrift24 · · Score: 2, Informative

    or just a little shorter

    dos2unix `find lcc/src`

  79. Re:eh... no need for perl here by Anonymous Coward · · Score: 0

    sorter but possibly broken if the number of lcc files exceeds the command line length. man xargs.

  80. SCO? by Anonymous Coward · · Score: 0

    SCO said that they found a lot of stuff stolen from unixware in Q3's source.

  81. Gotta love grep by zeno921 · · Score: 5, Funny

    Results of `grep -ri fuck *':

    1. //NOW close the fucking brush!!
    2. i = 0x5f3759df - ( i >> 1 ); // what the fuck?
    3. // fuck, don't have a clean cut, we'll overflow
    4. // since the cmd formatting can fuckup (amount of spaces), using a dumb step by step parsing
    5. // fuck, don't have a clean cut, we'll overflow
    6. // vm fuckage
    7. // vm fuckage
    8. //FIXME: this is a fucking mess
    9. Note: Unix CR/LF in *.dsw/*.dsp fucks up MSVC++.
    10. How the fuck did this happen?
    11. some files, and between their revisions and ours we fuck this up.
    12. break; // dragged backwards or fucked up
    13. // FIXME: this code is a TOTAL clusterfuck
    14. {"rem", "Less than half a fucking man."},
    15. {"rem", "You're fucking dumb! Suck it down."},
    16. // cleaning up after merging and thinks badly fucked up
    17. this could fuck up if you have only part of a complex entity selected...
    18. // FIXME: this bend painting code needs to be rolled up significantly as it is a cluster fuck right now

    1. Re:Gotta love grep by BlueLightning · · Score: 1

      14. {"rem", "Less than half a fucking man."},
      15. {"rem", "You're fucking dumb! Suck it down."},


      They look like translation strings. I wonder what the original usage was.

    2. Re:Gotta love grep by typical · · Score: 1

      9. Note: Unix CR/LF in *.dsw/*.dsp fucks up MSVC++.

      Yeah, I hate that. Stupid Microsoft.

      --
      Any program relying on (nontrivial) preemptive multithreading will be buggy.
  82. License problem, GPL/BSD mixed code? by hauk · · Score: 4, Insightful

    I see quite a bit of BSD licensed code in there or usage thereof. Any BSD license with an advertising clausal is incompatible with the GPL (see http://www.gnu.org/licenses/license-list.html) still Quake3 is licensed under the GPL. Wouldn't this be a problem?

    1. Re:License problem, GPL/BSD mixed code? by Anonymous Coward · · Score: 4, Informative
      I guess you're referring to this in code/game/bg_lib.c:
      /*-
        * Copyright (c) 1992, 1993
        * The Regents of the University of California. All rights reserved.
        *
        * Redistribution and use in source and binary forms, with or without
        * modification, are permitted provided that the following conditions
        * are met:
        * 1. Redistributions of source code must retain the above copyright
        * notice, this list of conditions and the following disclaimer.
        * 2. Redistributions in binary form must reproduce the above copyright
        * notice, this list of conditions and the following disclaimer in the
        * documentation and/or other materials provided with the distribution.
        * 3. All advertising materials mentioning features or use of this software
        * must display the following acknowledgement:
        * This product includes software developed by the University of
        * California, Berkeley and its contributors.
        * 4. Neither the name of the University nor the names of its contributors
        * may be used to endorse or promote products derived from this software
        * without specific prior written permission.
        *
        * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
        * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
        * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
        * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
        * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
        * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
        * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
        * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
        * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
        * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
        * SUCH DAMAGE.
        */
      The advertising clause was officially rescinded, so it shouldn't be a problem. It should be deleted from that file, though.
    2. Re:License problem, GPL/BSD mixed code? by Anonymous Coward · · Score: 0

      And is that code licensed with an advertising clause or not? I think you forgot to actually check that.

    3. Re:License problem, GPL/BSD mixed code? by Anonymous Coward · · Score: 0

      Even worse, I found many lines lifed directly from SCO code!!!

      Fortunately, I have some licences lying around. Get'em while they're hot!

      love, Darl.

  83. hmmm why not clean the comment before release by Anonymous Coward · · Score: 0

    Find all "fuck", Subfolders, Find Results 1, Entire Solution, "*.*"

    Total found: 17 Matching files: 11 Total files searched: 406

  84. how can this be GPL'ed ?!? ms code inside by Anonymous Coward · · Score: 0

    code/renderer/tr_main.c

    /* sort the array between lo and hi (inclusive)
    FIXME: this was lifted and modified from the microsoft lib source...
    */

    void qsortFast (
        void *base,
        unsigned num,
        unsigned width
        )

  85. Helo loonix weenies! by Anonymous Coward · · Score: 0

    I unzipped the source
    double clicked quake3.sln pressed F5 and it compiled with out a hitch.

    Know why John uses Visual Studio? Because it fucking rocks, that's why. It rocks your socks and rocks your blocks.
    OSS or no OSS.

    Thanks, John! :-*
    I hereby dedicate this build to Mike Abrash, may you find the perfect game of life implementation.

  86. AMD question by coldmist · · Score: 1

    At some point in the past, I found a binary with Athlon-optimized .dll files, that claimed 30% frame-rate improvements.

    Now that the source is available, can this be investigated, as far as Intel compilers generating slow code for AMD processors?

    Or did Id just put out some code that the Athlon at the time didn't like?

    --
    Don't steal. The government hates competition.
    1. Re:AMD question by KillShill · · Score: 1

      the problem with all versions of quake3 was that any non-intel cpu couldn't use the SSE instructions built into the game, even if the cpu had SSE capability. the dll's you found just enabled SSE for all cpus.

      remember back a few years ago when the p4's were "so much better/faster" at quake3? now you know why. when athlons running much slower in clockspeed beat the crap out of p4's using SSE, you could see that quake3 was compiled with an intel compiler.

      that's one of the examples of why intel is going to be fu**ed over by amd's lawsuit and they earned it.

      why carmack didn't fix this simple little problem is beyond me...

      --
      Science : Proprietary , Knowledge : Open Source
    2. Re:AMD question by Anonymous Coward · · Score: 0

      Uh, Quake 3 was compiled with MSVC on Win32 and GCC on Linux and MacOS X. Also any processor that supported SSE took advantage of SSE; AMD's implementation of SSE was just inferior to Intel's. This was plainly visible across multiple game titles, but you could just write some SSE code yourself and test it if you don't believe me. Further, the reason the P4 beat out the Athlon on Quake 3 for so long, was that Quake 3 was highly sensitive to memory bandwidth/SSE performance. This is further reproducible in any stream-processing benchmark, like video encoding, but even other games that made use of SSE. Games (and other program) where the Athlon soundly beat the P4 were far more FPU-sensitive, and the Athlons had much better x87 performance than the P4.

      Basically what you've done is spread completely incorrect babble. Consider knowing what you're talking about before pretending you speak with any authority on a matter.

      Oh, and the performance gain that person was talking about pertained to compiling the game files provided by id years ago. Both of you are confused. I wouldn't expect a 30% improvement in performancee from compiling the binary with optimization flags for the athlon-xp; a lot of time is spent in the graphics subsystem. Implementing better algorithms for reducing the amount of work done per frame would offer much better performance improvement than any compilation improvements.

  87. "Along with Foobar" and other funny code comments by kiddailey · · Score: 1

    Just was doing some searching for funny things in the code comments:

    Header comment in all:
    You should have received a copy of the GNU General Public License along with Foobar;

    aas_map.c; line 295
    //NOW close the fucking brush!!

    q_math.c; line 561 & 562
    // evil floating point bit level hacking
    // what the fuck?

    cgame.plg; line 75:
    D:\quake3\MissionPack\code\game\bg_pmove.c(987) : warning C4189: 'shit' : local variable is initialized but not referenced

    tr_Backend.c; line 401:
    // do initialization shit

    ai_dmq3.c; line 3344:
    //if the enemy is invisible then shoot crappy most of the time

    ui_shared.h; line 163:
    // the benefits of c++ in DOOM will greatly help crap like this

    jdmainct.c; line 196-197:
    make_funny_pointers (j_decompress_ptr cinfo)
    /* Create the funny pointer lists discussed in the comments above.

    l_threads.c; line 202, 215:
    //Stupid me... forgot this!!!

    macosx_sys.m; line 268:
    /* Okay, this is a stupid hack, but what the hell, I was bored. ;) */

    aas_map.c; line 261:
    //there are no brush bevels marked but who cares :)

    unzip.c; line 926:
    /* various hacks, don't look :) */

    vm.c; line 315:
    it might be better to wait for DOOM 3 before you start porting. :)

    sv_client.c; line 988:
    // we basically use this while loop to avoid using 'goto' :)


  88. Look at this gem! by Dwonis · · Score: 1

    Heh. This is from the header of basically every file. (Emphasis added).

    You should have received a copy of the GNU General Public License along with Foobar; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

    When is Foobar coming out?

  89. AMD64 by Anonymous Coward · · Score: 0

    Has anyone made this to work on AMD64?

  90. OS projects yet? by Paralizer · · Score: 1

    The source was actually released over 24 hours ago on the id ftp server. Anyhow, does anyone know of any open source projects based off this new code yet, or are developers still just poking around it? I'm interested to see if someone will make a project that updates the renderer, while leaving everything else untouched. Wouldn't that be nice? :)

    1. Re:OS projects yet? by XO · · Score: 1

      ie, like Legacy for doom? I picked that up last week, and pulled out my old Doom archives, and have just been having a BLAST with it. Aside from the fact that none of the sprites are 3-d, so the monsters and junk all appear flat, it makes the game render a lot like Q2 era (i think, I haven't had my copy of Q2 since like 1998 or so), and makes it feel as good as Q1.. (Q1 plays better than anything else. period. ever.)

      --
      "Champagne for my real friends - and real pain for my sham friends!" http://ericblade.postalboard.com/
  91. Effectively, anything. by OwP_Fabricated · · Score: 2, Interesting

    It would take a fair amount of writing (but less than writing your own engine from scratch), but you could potentially make just about any kind of game you wanted as long as the engine could handle what you wanted to render.

    I could easily imagine someone making a isometric/topdown RPG like Freedom Force with the Q3 engine. Even though I doubt the Quake 3 engine could handle the wide-open spaces and poly counts, hell, someone could use it as the base engine for a MMORPG or something.

    It's just the amount of additional coding and re-writing you want to do.

    We'll probably just get a really bitchin' version of pong though. Having an engine is one thing, having artistic talent is another.

  92. Re:eh... no need for perl here by Billy+Donahue · · Score: 1

    *ahem*

    find -type f lcc/src | xargs dos2unix

    Don't try to dos2unix the directories.

    --
    -- The Funk, The Whole Funk, And Nothing But The Funk
  93. LOLLOSAURUS! by Rogerborg · · Score: 1

    If you want to write $10 games that nobody buys, Torque is just fine. Now, let's move into the real world, where people have mortgages and dental bills. So now you've got an older generation engine sitting right there. You might have to freshen or tweak it a bit to get it looking a little more up to date, so then you've only got to pay for scripting, level design, modelling, animation, textures, sounds, voice work, CGI, management, marketing, accounts sales and support.

    Think how much GTA: San Andreas cost to produce, and how little of that was spend on tweaking the engine that they already had (comparable to starting with Torque).

    --
    If you were blocking sigs, you wouldn't have to read this.
    1. Re:LOLLOSAURUS! by Laser+Lou · · Score: 1
      If you want to write $10 games that nobody buys, Torque is just fine.

      ...

      Think how much GTA: San Andreas cost to produce, and how little of that was spend on tweaking the engine that they already had (comparable to starting with Torque).

      Sure, the economics don't work out for someone who attempts to close GTA using Torque. However, simpler games cost less to make, and there is a large market for them. Someone who focuses on making simpler games should have no problem using Torque to make them.
      --
      No data, no cry
    2. Re:LOLLOSAURUS! by justins · · Score: 1
      If you want to write $10 games that nobody buys, Torque is just fine.

      You might have noted that we were talking about "entering" the game development market, not "creating a successful AAA title". You aren't impressing anyone by pointing out it's a slightly different proposition.

      I wouldn't be quite so dismissive of the indie stuff that's being done lately. Most of the games you'll see at gametunnel or something are at least original, unlike GTA: Part XVII. And as for paying the mortgage or dental bills, just about any kind of development is better for that than making games, never mind whether you're indie or slaving away at EA or some shit. If that's your primary concern 9 to 5 at a bank makes a lot more sense.
      --
      Now before I get modded down, I be to remind whoever might read this that what I am saying is FACT. - bogaboga
  94. Oh, and I forgot testing by Rogerborg · · Score: 1

    Which a lot of failing games companies seem to do.

    --
    If you were blocking sigs, you wouldn't have to read this.
  95. Took me 4 years to write 1.6MB by LBt1st · · Score: 1

    Although that time was also spend with graphics and sound. I was also a newbie to C. But still, 5MB is code is no bullshit! -Kevin

  96. Ultima Underworld remakes... by tjwhaynes · · Score: 1

    There are three projects related to Ultima Underworld remakes. Most of them seem to have hit the "running out of steam" phase of development but the code is all there waiting for some new blood.

    So before embracing the Quake 3 engine to do yet another remake, you might consider helping one of these projects out. Underworld Adventures has the most recent change date in their news page.

    Cheers,
    Toby Haynes

    --
    Anything I post is strictly my own thoughts and doesn't necessarily have anything to do with the opinions of IBM.
  97. Somewhat related question by IntergalacticWalrus · · Score: 1

    Does anyone know where I can buy the old "Quake Trilogy" package that contained Quake, Quake II and Quake III Arena? (And can ship to Canada)

    1. Re:Somewhat related question by I(rispee_I(reme · · Score: 1

      The name of the product was actually "Ultimate Quake"... it was something of a limited edition, I believe, and had a Quake 4 poster included (which is now on my wall.) Hopefully the clarification helps you in your hunt. Amazon has a listing for it and sometimes carries it used, but they're out right now.

  98. Complaining about the quality of code? by Jack+Johnson · · Score: 1

    I see lots of posts about how ugly and inelegant this code is. I remember seeing the same things about id's previous code releases. Why do people who have no hope of seeing a fraction of Carmack's fame, fortune or ability do this?

    1. Re:Complaining about the quality of code? by anekin · · Score: 1

      I agree with you. People are complaing about the code and they don't realize that sometimes you can't write an elegant code because you have a product to sell. I have written inelegant code in some of the products that the company where I work sells. This is not because I am or am not a good programmer but because sometimes you have a product to deliver not matter what. I always try to write a well designed and clean code if possible but sometimes you can't. So people, stop complaining for something that's given to you as a gift and take it as a base to learn, improve or anything else.

  99. How to compile this on FreeBSD by Anonymous Coward · · Score: 0

    FreeBSD instructions:

    $ cd /usr/ports
    $ curl
    http://g-rave.nl/files/ports/games-quake3.tar.gz | tar -xzf -
    $ make -C games/quake3 install clean

    Good luck!

    1. Re:How to compile this on FreeBSD by Anonymous Coward · · Score: 0

      Unfortunately that only compiles i386. The CFLAGS are completely moronic btw (-O6?). I've done some cleanup for AMD64 but there are still some rough edges. As much as I admire Carmack some of platform dependent code I've seen in Q3 is a piece of shit, to put it lightly.

  100. Anything of interest developed with Q 2 source? by Midnight+Thunder · · Score: 1

    I am happy to see the source code for Quake 3 released as open source, meaning that developers can compile it and tweak it to their hearts content.

    I am now wondering whether anyone actually did something with the Quake 2 source code, other than compile it to get a free copy of Quake 2? For example did anyone build any mods or any other games using the open source code?

    --
    Jumpstart the tartan drive.
    1. Re:Anything of interest developed with Q 2 source? by generalleoff · · Score: 2, Informative

      http://www.quake2evolved.com/news.htm Most advanced Quake II port at the monet. They are currently giving the game a full overhual with high res textures and new models plus full real time lighting.

    2. Re:Anything of interest developed with Q 2 source? by typical · · Score: 1

      I bought the game, and I'd like to run it open-sourced, even without improvements, FWIW.

      --
      Any program relying on (nontrivial) preemptive multithreading will be buggy.
    3. Re:Anything of interest developed with Q 2 source? by grumbel · · Score: 1

      There is UFO: Alien Invasion which is based on Q2:

      http://ufo.myexp.de/

      And there is Nexuiz for Quake1:

      http://www.nexuiz.com/

  101. Mirror by Ann+Coulter · · Score: 1

    ftp://131.96.244.6/pub/
    ftp://lab753-09.cs.gsu.edu/pub/

    ftp://131.96.244.6/pub/quake3-1.32b-source.zip

    Note that it only allows about 25 connections since it is an 700MHz Athlon.

  102. You get what you pay for? by Anonymous Coward · · Score: 0

    I found 124 goto statements in the code.

  103. MorphOS port in 5 hours by Anonymous Coward · · Score: 0
    MorphOS (running on PowerPC mobo called Pegasos) version was working only after 5 hours.

    Screenshot 1, Screenshot 2, Screenshot 3, Screenshot 4, Screenshot 5, Screenshot 6

    1. Re:MorphOS port in 5 hours by Anonymous Coward · · Score: 0

      Great, all they need now is OpenGL drivers for cards released this century.

  104. Thank you id! by Anonymous Coward · · Score: 0

    Huge, huge respect and thanks to John C and the ID guys. I can learn from the master himself, see how such a top class games and engine is put together, how code is arranged etc. This is just fantastic.

    Mr Carmack obviously is a guru coder, but I think it still takes guts to open your baby up and put it out there. Some people are so rude saying the code is messy or whatever, man, I hope you just ignore that. I'm so thankful to you for doing this, maybe we outweight the rude people and you'll feel good for taking the time to put this code out.

    Thank you!

  105. or a PowerPC by YesIAmAScript · · Score: 1

    Which had a fsqrte (floating-point square root reciprocal estimate) instruction since 1996 (PPC 604).

    It wasn't specified in the docs I don't think, but fsqrte was accurate to something like 12 or 14 significant bits. After 2 Newton-Raphson iterations I believe the answer was correct to 1 bit less than the number of significant bits in an IEEE double.

    At least, that's how I remember it.

    --
    http://lkml.org/lkml/2005/8/20/95
  106. Hopefully the Dreamcast Will get a Port by Anonymous Coward · · Score: 0

    Over at http://www.dcemu.co.uk/ they posted news that someone may be considering a port to the Dreamcast, they already had the commercial game released so you never know. Other than that id like to see a PSP Port, we have had Port of Quake but Quake 3 would throw open better mods.

    1. Re:Hopefully the Dreamcast Will get a Port by EGSonikku · · Score: 1

      Erm, you ARE aware Quake III is already on the Dreamcast from id themselves right?

      (www.gamespot.com)

      --
      - "Scientia non habet inimicum nisp ignorantem"
    2. Re:Hopefully the Dreamcast Will get a Port by Anonymous Coward · · Score: 0

      Yeah, but a: the framerate can get pretty low, so an ever-lower-graphics mode would be nice, b: it's a old version (ok, the bugs are minor stuff like splash damage tweaks IIRC) and c: you could build in mods like CPMA and akimbo and extra maps.

      It'd be a pain to distribute (legally) though, unless you threw out all the original maps/models/sounds/etc.

  107. Re:Unreal Engine 4 by Ballresin · · Score: 1

    My Uncle, Todd Porter, was constantly looking forward with his games. I beta tested Doom when I was in grade school... didn't know what it was, of course. He no longer works with id, but you can see a lot of his work in the source of the games. He was unpopular for writing gobs of asm code.

    Damn that guy could type fast.

    Google Todd Porter with id or with Ion Storm, then you'll know who he is.

    --
    I got nothin'.
  108. Re:"Along with Foobar" and other funny code commen by Anonymous Coward · · Score: 0

    /*
    ==================
    Sys_MonkeyShouldBeSpanked
    ==================
    */
    int Sys_MonkeyShouldBeSpanked( void ) {
            return 0;
    }

  109. you don't know much, do you? by Anonymous Coward · · Score: 0

    3dnow only boosted the K6's FPU performance to match the P2's. And Quake 3 is 6 years old; it ran a "treat" on my P2 450 with a Voodoo3.

    1. Re:you don't know much, do you? by turgid · · Score: 1

      Nice try, Mr. Troll, but I've actually written some 3DNow! assembly language routines so I think I know a little bit more than you.

  110. Re:Unreal Engine 4 by Koiu+Lpoi · · Score: 1

    Don't forget the extremly popular Star Wars: Knights of the Old Republic One and Two.

  111. 5mb source by Anonymous Coward · · Score: 0

    If you take out the .mak/.dsp/.sln etc configuration/build files you'll find it's less than 5mb. If you also take out the stuff the compiler doesn't need i.e. white space, CRLF and comments this will reduce it further.. It's highly unlikely you'll produce a 100mb binary, 1.5mb - 2mb at most!

  112. Q3 source + ET source = ??? by ggambett · · Score: 1

    The Enemy Territory source is available... AFAIK, it uses the Q3 engine. Now the Q3 engine source is also available. Does this mean the complete source code for Enemy Territory is available, or is there something missing?

    Seeing the cool stuff modders have done with the ET source, I can't wait to see what client mods will people do... all kind of nice eye candy, I hope. Stencil shadows (for the characters at least) would be cool, for example.

    1. Re:Q3 source + ET source = ??? by grolschie · · Score: 1

      Lets frickin' hope it completes it. Expect some kick-ass games now hopefully.

    2. Re:Q3 source + ET source = ??? by bani · · Score: 1

      ET is a modified Q3 engine. It's close, but not the same.

  113. Weird... by ReKleSS · · Score: 2, Informative

    I don't get this... id have their own tracker, why aren't they using it....
    -ReK

    --
    md5sum -c reality.md5
    reality: FAILED
    md5sum: WARNING: 1 of 1 computed checksum did NOT match
    1. Re:Weird... by Dave2+Wickham · · Score: 1

      zerowing.idsoftware.com is TTimo's; he generally only puts up torrents for his things, in my experience.

  114. bullshit? by mnemonic_ · · Score: 0, Troll

    It sounds like neither of you (bani and PsychicX) have any idea of what you're talking about. Both of you took a 30 second look at the Q3 code and gave different baseless statements shortly after. PsychicX is just a drooling Carmack fanboy, while you're (bani) just an elitist contrarian. It's a shame we can't get any informed opinions of the code, for the time being.

    1. Re:bullshit? by Anonymous Coward · · Score: 0

      Did you have a point somewhere?

    2. Re:bullshit? by bani · · Score: 2, Informative

      Actually I've been working on the Q3 code for a number of years. I wrote this and this for example.

      I wrote the Enemy Territory 2.60 Release for Id/Activision under contract with them.

      I've also had the engine source for over a year under contract with Id/Activision so I could write this. You might have heard of this little get together called Quakecon. It was used to broadcast the qualifier and tournament matches.

      Care to tell us what exactly is your experience with the q3 engine code?

    3. Re:bullshit? by Anonymous Coward · · Score: 0

      So your the guy I need to hassle get an OSX build of ET?

      lol.

    4. Re:bullshit? by bani · · Score: 1

      et 2.60 supports osx.

    5. Re:bullshit? by Anonymous Coward · · Score: 0

      Clearly, I'm five months out of date. Thanks for the info Bani.
      Looking forward to being able to play Urban Terror on OSX...

    6. Re:bullshit? by jericho4.0 · · Score: 1

      The crash under linux when topshot and personal stats were large enough to overlap drove me insane. Thank you.

      --
      "A language that doesn't affect the way you think about programming, is not worth knowing" - Alan Perlis
    7. Re:bullshit? by LuSiDe · · Score: 1
      I wrote the Enemy Territory 2.60 Release for Id/Activision under contract with them.
      Thanks a lot for that. I really loved that game! Same with RTCW, but ET was more teamplay. I actually have a question: What are your findings of performance on ET versus ETF? I found out ETF runs better on my machine (AMD Athlon 1000 MHz with Radeon 9800 Pro 128 @ Linux). However especially custom maps on ET seemed to be problematic.
      --
      WE DON'T NEED NO BLOG CONTROL.
    8. Re:bullshit? by A+non-mouse+Cow+Herd · · Score: 1

      That is largely because of the maps. Most of the ETF maps were made with Q3 era system specs in mind. ETF should play slightly better than the equivalent maps in Q3F, because the engine has some improvements. ET maps are MUCH more complex, and q3 engine stuff really seems to bog down at a certian level of complexity.

    9. Re:bullshit? by sillybilly · · Score: 1

      Well, you could be just anyone taking credit for work that you didn't actually do - technically anyone can go around claiming they did all that cool stuff out there - such as the ET 2.60 release, but at least your very first link says banimod, and your slashdot ID is bani, so that's a nice coincidence, or at least enough effort to sustain a deception compared to spouting off a 1 liner post on slashdot goes. Once could always go download and look at the banimod stuff, to see if it's anything of substance, but there is a line to how much one should care. So you get the kudos points for now, that you claim you deserve.

    10. Re:bullshit? by bani · · Score: 1

      if it makes you feel better I can make a post on my forums verifying the authenticity of this slashdot id.

      though if I were an impostor you'd think word would have got round to the "real" bani and there should have been a rebuttal by the "real" bani by now.

      i do think its quite funny that mnemonic_ has called upon his /. buddies to mod all my posts down in retaliation. heh.

    11. Re:bullshit? by sillybilly · · Score: 1

      That's alright. As I said, kudos to you for all that stuff!

  115. URL didnt come out right by EGSonikku · · Score: 1

    http://www.gamespot.com/dreamcast/action/quake3are na/review.html

    And here we are. /. could also use a way to edit a post, so long as no one has replied to the post.

    --
    - "Scientia non habet inimicum nisp ignorantem"
  116. How to compile with warnings by burnin1965 · · Score: 2, Informative

    The build scripts are using -Werror when you do a debug build. Debug is also the default build. So those inline assembly constraint warnings cause the build to error out.

    If you do a release build the -Werror is not used and it should compile. To do a release build the command is ./unix/cons -- release

    Or you can get past the inline assembly constraint warnings by editing the Construct file in the code directory and removing the -Werror from $BASE_CFLAGS = $COMMON_CFLAGS . '-g -Wall -Werror -O ';

    I've successfully compiled using both methods on my Fedora Core 3 box. The gcc -v output is:
    gcc version 3.4.4 20050721 (Red Hat 3.4.4-2)

    So to recap jcdr's tips with my addition, you have:

    wget ftp://ftp.idsoftware.com/idstuff/source/quake3-1.3 2b-source.zip

    unzip quake3-1.32b-source.zip

    cd quake3-1.32b

    find -type f -exec dos2unix {} \;

    cd code

    ./unix/cons -- release

    And from there you have the compiled binary in the install directory.

    burnin

  117. Uncapped Mirror by WeAzElMaN · · Score: 1
  118. Compiling on x86_64 and pointer to int casts by PoochieReds · · Score: 2, Interesting
    I decided to take a swipe at compiling this on x86_64, but the compiler is choking rather regularly with complaints about pointer to int casts of different size. The code seems to do a lot casts from pointers to int. For instance:

    Emit4( (int )vm->dataBase );

    but dataBase here is a pointer to a byte. It seems like he's probably trying to do something like this:

    Emit4( *(int *)vm->dataBase );

    Is the former line some sort of casting shortcut with the compiler that makes it do the right thing on x86 architecture, or am I missing something?

    Can someone with more C-fu than I comment on this?

    1. Re:Compiling on x86_64 and pointer to int casts by Anonymous Coward · · Score: 1, Informative

      No, he's trying to use the 32 bits of the 32-bit address as a 32-bit integer, not take the integer at the address. Since there are now 64 bits (8 bytes) in a pointer, you have to either find an Emit8 or do 2 Emit4s with the high and low parts of the address. Obviously, whatever consumes the emission will have to be modified to accept 8 bytes on the other end.

  119. Re:eh... no need for perl here by Anonymous Coward · · Score: 1, Informative

    Better yet.

    unzip -a quake3-1.32b-source.zip

    Converts all text files to unix while extracting.

  120. We need an Open Source maintainer by Anonymous Coward · · Score: 0

    Ok, now we'll have showers of patches, ports to architectures etc... coming, but unless there is some organisation here, it will be an unuseable mess. We need somebody to pop up as "open source" maintainer of that blob to collect patches, eventually issue releases, etc...

  121. This source code is horrible by Anonymous Coward · · Score: 0

    They might make good games, but I make my living as a programmer and I swear to god this has got to be the worst code I have ever seen. I can't see how people worship these guys at all.

    1. Re:This source code is horrible by Anonymous Coward · · Score: 0

      Yeah? What color is your Ferrari?

  122. Re:Unreal Engine 4 by BlueLightning · · Score: 1

    No, and it's a crying shame. I have had major trouble trying to get Unreal I running on either Windows or Linux with proper 3D acceleration, hence the reason I haven't played it since I first got it.

    To me, this is one of the main reasons game companies should consider releasing the source to an old game once there is no longer a reason to hang onto it - it lets people fix it up so it runs on modern OSes with modern hardware.

  123. What I'd like to see... by RoadWarriorX · · Score: 2, Interesting

    how much of the Q2 code was "reused" in Q3Arena.

  124. Mac error :-\ by Anonymous Coward · · Score: 0

    Well i just got everything compiled, and when i tried to run it i got a message saying

    "You need to select the installation directory for Quake3 (not any directory inside of it -- the instalation directory)"

    and then it gives 2 options "Quit" and "Select Retail Installation"

    Since either option does anything, What should i do?

  125. Re:eh... no need for perl here by harr2969 · · Score: 2, Informative

    The unzip -a looks to be the most elegant with this code from a post above being a close second. To the person who mentioned dos2unix, this is the preferred way of running it recursively.

    # Transformation for UNIX
    find -type f -exec dos2unix {} \;

    The find -type f is finding all regular files (as opposed to symlinks, directories, ports, etc... in unix, everything is a file so you need to be specific)

    The -exec dos2unix {} is executing dos2unix on each file found, inserting the name for the brackets. This method executes as each file is found, as opposed to queueing the job until all the files are found.

    The \; terminates the command.. although the backslash is normally an escape code, I think the semicolon is the actual terminator.

  126. Re:Unreal Engine 4 by Sigma+7 · · Score: 1
    If you take a look at some of the things being done with Quake 1, you will find that they are quite impressive - particularly when you bare in mind that they are basing it on 10 year old software.

    When I was working with Quake-C, I was bumping into limitatons. There were a limit of 600 entities on a map, which made it very dificult to put a waypoint system in some of the larger maps.

    There was also a limit on the number of instructions allowed to be executed before Quake kills the game ("Runaway loop error"), which was low enough to kill what would normally be considered acceptable on a now high end system. Both of these limits get tripped when you try to stress the game (e.g. porting an AI player over to the larger Team Fortress game.)

    Source ports fixed these problems, but not soon enough to do any good.

  127. lcc code not GPL-compatible by Anonymous Coward · · Score: 1, Informative

    The code in the lcc/ directory is under a GPL-incompatible license that seems to be "noncommercial use only" if the code is reused in certain ways. Is this an extra, or is it required to build/run Quake 3?

    If it is required, it might be a serious problem, since the license is not compatible with the GPL.

    1. Re:lcc code not GPL-compatible by Nurgled · · Score: 1

      LCC is a C cross-compiler written by some people at some university somewhere. It's used to compile the game source to the engine's virtual machine. If its licence offends you there's always the option of linking your game code directly or compiling a native code shared library.

  128. MOD PARENT UP by slavemowgli · · Score: 1

    Please mod up the parent post, it's highly informative.

    --
    quidquid latine dictum sit altum videtur.
  129. Re:UT forever. by typical · · Score: 1

    It's 5MB after it's been compressed into a zip. As you may or may not know, zip compresses text really well.

    Just to be a dick, I'm going to point out that zip, as any other compression algorithm, is only going to necessarily be able to knock 1/8 of the space required by some text. (For large amounts of text).

    Now if the text has an uneven, pattern-containing distribution, as English text or C source does, it'll probably compress a lot better, but just because something is text doesn't mean that it has to compress very well.

    --
    Any program relying on (nontrivial) preemptive multithreading will be buggy.
  130. Quake 3 executable without checks by zahntorg · · Score: 2, Interesting

    I seem to have successfully commented out some checks from the source so it should be easy to play TCs, without owning the game.

    1. Download the 1.32 Point Release

    2. Download the Quake 3 Demo.

    3. Download my executable (or compile your own) here

    4. Install the Point Release and demo to separate directories.

    5. Replace the quake3.exe in the Point Release directory with the one you downloaded / compiled.

    6. Move pak0.pk3 from the demoq3 directory in your Demo install to the baseq3 directory in the Point Release install. (This may cause weird problems if you try to play online with the normal game.)

    7. Quake 3 should now be able to play with TCs, or just the demo with custom maps, without complaining.

    I can't guarantee any of this will work, but it seems to have worked for me. The reason for transferring the pak0.pk3 file is that most TCs are not true TCs, but rather use some basic files such as fonts, etc. that they load from the baseq3 directory.

    If you don't have any luck with my executable, you could try producing your own. I only made a few simple changes to files.c. I commented out the following lines:

    // if ( FS_ReadFile( "default.cfg", NULL )
    // Com_Error( ERR_FATAL, "Couldn't load default.cfg" );

    I also commented out the entire function FS_SetRestrictions and just made it return.

    I have not made any changes to cd-key related code, so there may be some more work needed.

    If anyone is having trouble with getting the project files to work on VC++ 6, download the following tool to convert the .NET files to the old format: http://www.codeproject.com/tools/prjconverter.asp

  131. Re:eh... no need for perl here by Furry+Ice · · Score: 1

    There's no need to exec dos2unix for each file individually. xargs is preferred for all (non-broken) apps that can take multiple file arguments.

  132. Re:eh... no need for perl here by Furry+Ice · · Score: 1

    I shy from dos2unix because it's not very portable between *nixes. It's good to memorize the Perl way to do this. The parent actually missed the useful "-i" flag:

    find lcc/src -type f | xargs perl -i -pe 's/\r//g'

  133. The effect on Punkbuster? by MxReb0 · · Score: 1

    Like a lot of people, I still play a lot of q3a and its mods. I'm all for GPL, but will this bring even MORE hackers, cheaters, and bots to quake that make it so unenjoyable?
    Plenty of peaple get around PB as it is, now they can program cheats RIGHT into their games? I don't exactly know how PB works.

    --

    MAKE YOUR TIME
  134. Re:Unreal Engine 4 by John+Carmack · · Score: 4, Interesting

    Yes, there was a budget title (Paintball somthing or another) that was developed based on the Q1 source that purchased a commercial license.

    We didn't charge much, but I still think they should have just saved the money and released their source.

    John Carmack

  135. What about Quack 3 Arena? by Dwedit · · Score: 1

    When will the source code to Quack 3 Arena be released? I hear it has better graphics quality on ATI cards.

  136. I noticed that by Rogerborg · · Score: 1

    But why let facts get in the way of a good rant?

    I view trying to prevent people from going into games development as a public service. It's going to be one of the last holdouts to outsourcing because USian and Yerpian games developers are already willing and eager to begger and burn themselves out in return for getting their name on a box.

    --
    If you were blocking sigs, you wouldn't have to read this.
  137. Go on then by Rogerborg · · Score: 1

    List all of the indie games that you've purchased in the last five years, and how much you paid for them.

    --
    If you were blocking sigs, you wouldn't have to read this.
    1. Re:Go on then by Laser+Lou · · Score: 1

      Indie games that I purchased:
      Space Taxi 2 $15
      Thinktanks(X-Box) $10
      3d-Mahjongg $15?
      Bejeweled $15
      Lovechess $15
      X-Plane 7 $50 (Mail order)
      X-Plane 8 $40 (At a store)

      --
      No data, no cry
  138. Re:UT forever. by robnauta · · Score: 1
    5.5 MB zipped, 22 MB unzipped. It also includes tools like q3radiant and q3map, tools for which others have written replacements, based on guesses what things might mean by studying the q3 binary gamefiles.

    Now we can finally see what those mystery fields in the structs mean.

  139. Re:LOLLOSAURUS! (OT) by LuSiDe · · Score: 0, Offtopic
    LOLLOSAURUS!
    Haha nice word! Or is it an acronym? If so what does it mean? Did you come up with it yourself? Just wondering =]
    --
    WE DON'T NEED NO BLOG CONTROL.
  140. Re:eh... no need for perl here by schon · · Score: 1

    It's good to memorize the Perl way to do this.

    No, it really, really isn't.

    It's good to *LEARN* to use the correct tool for the job (in this case, that would be sed.) Memorizing the "perl" way to do something is just one step towards afflicting yourself with the brain damage known as "perl syndrome", wherein you waste time re-inventing the wheel (suboptimally) every time you're confronted with a problem.

    Learn Unix, not Perl.

  141. Am I the only one... by IntergalacticWalrus · · Score: 1

    ...who's a bit sad that the Dreamcast port is not included?

  142. Compiling under Linux by ppatrice · · Score: 0

    To compile it under Linux, just do:

    $ svn checkout http://www.quakesrc.org/svn/quake3(...)
    $ cd quake3/code
    $ make

    (see http://www.quakesrc.org/forums/viewtopic.php?t=540 0)

    --
    A free web based PIM: http://myphp.freews.org
  143. Good coding examples by crucini · · Score: 1

    I recommend postfix and the Apache 1.3 series. It takes several days to get into the Apache "mindset" but I was quite happy with it. I guess I'm assuming you're familiar with how mail and web servers work - without that background, it would be harder to follow the code.

    I find it easiest to learn such a codebase by hacking in printfs - or local equivalent - to understand what variables really mean.

  144. Re:Unreal Engine 4 by Schnapple · · Score: 1
    I'm not sure if this is the same title Mr. Carmack is referring to but the one that I can remember offhand is 2000's Laser Arena from Trainwreck Studios. Their website is dead, so presumably they are too at this point.

    I remember at the time this game was released being impressed, both at the fact that they had taken Quake source and done so much with it (added a whole lot of features, it was probably a Quake 2-level engine or better now) and with the fact that at the time the traditional logic was to go license some expensive game engine, but that they probably got a good deal on the Quake engine.

    But I also remember at the time reading about a lot a flak they recieved - their developers had followed a lot of those "tutorials" people had assembled on the Internet and through binary comparison, these sites figured out that Trainwreck had followed their tutorials. Trainwreck admitted to following the tutorials but did not admit to doing anything wrong. This led to the practice of designating that the tutorials were under GPL as well. Trainwreck could indeed have avoided the problems and saved money had they used the GPL for Laser Arena.

    The one argument I can see for keeping the source closed is to limit or eliminate cheating. Granted, a budget title with limited popularity isn't really all that prone to cheating but even today the commercial release of Quake 3: Arena has Punkbuster to keep it "safe", which I imagine is outside the realm of most online game developers.

    Any ideas on how to prevent this sort of thing in a GPL'd game?

  145. Re:Unreal Engine 4 by Sajt · · Score: 1

    Laser Arena has not been forgotten by the Q1 modding community. Although their crimes are not exactly what you would call heinous (or even crimes, possibly), nobody was happy about what happened. It was bad news in the middle of the blissful orgy of the Q1 source release.

    Another Quake-based game was commercially released more recently, although it was under the GPL license. Unfortunately there were issues this time too, mainly concerning non-original content (models used in previous free mods) and the, how do you say, stiffing of many of the people who put time and effort into the game.

    If you look at everything though, many enjoyable projects (some of them pretty vast partial or total conversions) have been created using the source, although you could say the community and fanbase is a 'niche' one. If you're looking for the next big game, maybe it won't be on the old Quake engine. But modding is popular, and releasing the engine source is a great way to keep em' rolling.

  146. Dear John, by cttforsale · · Score: 1

    1st of all, Thanks. That's awesome
    2nd of all, your C code from 5+ years is much better than my C code from 5+ years.

  147. No, I didn't. by Svartalf · · Score: 1

    You forgot that Torque costs MONEY- while those games prove Torque is battle proven, it still equates to spending money. Even small money can be prohibitive. Q3:A costs NOTHING to field a game and the cost of allowing your engine mods out if you need to modify the engine to accomplish your game.

    --
    I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
  148. An archive of discussion on Laser Arena by Ndr_Amigo · · Score: 1

    I just dug up the old reference site we had about this from my backups.

    See the Trainwreck Files for the reaction of people at the time!

    Speaking of which, the site most of the tutorials were lifted from hasn't had that notice displayed since the half-complete redesign at the beginning of the year.

    I must fix that.

  149. A simple "thanks" should suffice. by justin_saunders · · Score: 1

    So on behalf of all of us here at Slashdot:

    Thanks!

    --

    "My cat's breath smells like cat food." - The Tao of Ralph Wiggum.
  150. Re:Unreal Engine 4 by Anonymous Coward · · Score: 0

    Trainwreck Studios was actually the same company and even the same team that created Medal of Honor:Allied Assault. They would develop games like Laser Arena and CIA Operative:Solo Mission under that mantle and then work on MoH:AA under the name 2015, often simultaneously.

  151. blender lol by justins · · Score: 1
    They DO make games with the above stuff and people have bought them- even in recent times

    Who? I doubt anyone has ever succeeded in getting very far developing a game with the tools you've listed. Maybe there is some sad sourceforge crap but name one game built with that list of stuff that people have bought. I don't know why you listed q3 either, since it just went GPL _last week._

    And of course, the other question is why? If your time is worth even some small fraction of the minimum wage, basing your development habits solely on never paying for anything is pretty stupid. OMG I CAN'T BUY ANYTHING BY MICROSOFT I WILL SPEND FIVE DAYS TRYING TO BUILD MY GAME WITH MINGW.
    --
    Now before I get modded down, I be to remind whoever might read this that what I am saying is FACT. - bogaboga
  152. Considering that... by Svartalf · · Score: 1

    ...LGP has shipped HOW many games to date with those tools and Loki Games before them, I do believe your comments are merely uninformed opinion. And comments to the effect that Loki went under will be ignored as it wasn't the tools, but rather Scott's complete mis-management of the company as a whole that did them in. As for LGP, we're encountering problems beyond our control in getting out some of our titles in hand (we've got this vicious 11th hour bug we're tracking down in Ballistics, for example...) but we largely use nothing but those tools to get our titles out- in fact, that's mostly your option if you make a title that runs under Linux. (Uh, Id and Epic seem to be able to use GCC, etc. to make games for the Linux side and they use OpenAL for all platforms for sound support (which is one of those tools you're pooh-poohing...))

    You're entitled to your opinions but, please, please don't be parading that about as "facts"- because they simply are nowhere near that.

    Tools do not make a game. They can make it better or poorer, but it's the developer themselves that actually MAKES the game. If they can't afford the tools you're insisting are the "only" way to accomplish things- then if they keep to your attitude, then they'd not get anything done.

    Some people are talkers. Some are doers. You, sir, sound like a talker- if so, move aside so that the doers can get their doing done.

    --
    I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
    1. Re:Considering that... by justins · · Score: 1
      LGP has shipped HOW many games to date with those tools and Loki Games before them

      Uh, no. Make the content for a game with just blender and its open source friends. I dare you.

      The stuff Loki sold was made with real commercial tools. It might have been ported to Linux using free stuff.

      they use OpenAL for all platforms for sound support (which is one of those tools you're pooh-poohing...

      Actually, OpenAL is great. Coincidentally, it's a library, not a content creation tool. The programmer is a lot better off in the "OMG WE CAN'T PAY FOR ANY TOOLS" situation than the artist is. Which is great except, well, you need artists to make any sort of meaningful game.

      You, sir, sound like a talker- if so, move aside so that the doers can get their doing done.

      The pretentiousness meter just pegged. And then exploded.
      --
      Now before I get modded down, I be to remind whoever might read this that what I am saying is FACT. - bogaboga
  153. Thank you, id Software! by rommi · · Score: 1

    If any of you id people ever reads this, then I would like to thank you heartedly for all the great job you have done.

    Thumbs up! :)

  154. PSP C Compiler by Anonymous Coward · · Score: 0

    Anyone got it running on a PSP yet? I'm still waiting for the PSP my company gave me instead of a real bonus, but I can't wait to play quake on it.

  155. Hah... well, wow. by Jerk+City+Troll · · Score: 1

    Dude, you got smacked down by John Carmack. That's awesome. My hat goes off to you.

    1. Re:Hah... well, wow. by Anonymous Coward · · Score: 0

      no he didn't.

    2. Re:Hah... well, wow. by Anonymous Coward · · Score: 0

      according to your posting history you are living up to your username.