Forgot your password?
typodupeerror
Games Entertainment

Quake 2 Source Code Released Under The GPL 371

Posted by chrisd
from the thanks-again-john dept.
Masem (and many others) writes: "The source code for Quake 2 is now available until the GPL license. The .plan file for John Carmack has the details." The Id Software site is of course slammed with demand for the code. Hopefully other mirrors will be available.
This discussion has been archived. No new comments can be posted.

Quake 2 Source Code Released Under The GPL

Comments Filter:
  • by peripatetic_bum (211859) on Saturday December 22, 2001 @01:05AM (#2740316) Homepage Journal
    You have to hand to Carmack to be a real good guy.

    Sure he cant show you everything he's doing right now,

    but by releasing, under GPL, the source code,

    I think he letting people really learn how a true master

    programs.

    This is just a Good Thing
  • Gotta love Carmack (Score:3, Insightful)

    by I-man (95468) on Saturday December 22, 2001 @01:07AM (#2740321)
    This, among many other reasons, is why I admire John Carmack.

    Some may grumble that he only releases old products, no longer commercially valuable, in this fashion. To that I say "shush!". I for one look forward to browsing through the code of such a lovely 3D engine. The learning opportunity alone is grand, to say nothing of what will be done with the code now that it's out there.

    Thank you, John.
  • mirror (Score:1, Informative)

    by dsmey (193342)
    http://expert.cc.purdue.edu/~meyerds/quake2.zip
  • by DarkZero (516460) on Saturday December 22, 2001 @01:09AM (#2740332)

    id Software, as always, is being responsible and generous to its fans. Instead of keeping its source code under wraps until the game is released to the public domain by copyright law some time in the year NEVER, id Software has decided to release the source code for a game that it is no longer using so that the fans may tinker with it and learn from it.

    If any of the people from id Software are reading this (which there is a chance of): Thank you. You rock.

  • by Hangtime (19526) on Saturday December 22, 2001 @01:09AM (#2740334) Homepage
    I admit, I'm not a good programmer. I am a code monkey who is working to be a good programmer. One of the ways you become one is looking at good code. I have peaked at both Doom and Quake to just see what goes on in the head of one of the best programmers in the world. In doing so I have picked a few pointers without even realizing it until I did it. So thanks Mr. Carmack, you have given me a Christmas present, the gift of better programming.
  • I have the source (Score:5, Informative)

    by thekernel32 (240428) on Saturday December 22, 2001 @01:10AM (#2740335) Homepage
    Go to my box at linuxhost.cc [linuxhost.cc]and you can download the quake2.zip file containing the source.

    I got it before the slashdot story hit...
  • And its now in cvs (Score:5, Informative)

    by _generica (27453) <slashdot@whaBOYSENtevz.net minus berry> on Saturday December 22, 2001 @01:11AM (#2740341) Homepage
    You can find the code in the quakeforge [quakeforge.net] cvs:

    cvs -d :pserver:anonymous@cvs.quakeforge.net:/cvsroot/qua ke login (just hit enter)

    cvs -d :pserver:anonymous@cvs.quakeforge.net:/cvsroot/qua ke co quake2
  • by linzeal (197905) on Saturday December 22, 2001 @01:11AM (#2740342) Homepage Journal
    quake2.zip [ed2k]

    If you don't already have Edonkey [edonkey2000.com] its got linux clients as well. :)

  • Cheating. (Score:5, Insightful)

    by Oily Tuna (542581) on Saturday December 22, 2001 @01:12AM (#2740343) Homepage Journal
    ID software are totally correct about the cheating aspects of releasing the code.

    There will always be people who try to cheat, and some who succeed. Releasing the source makes it significantly easier to make a cheating client.

    However,

    i) The benefits of having the source to an extremely successful games outweighs the disadvantages of increased cheating (unless you're a victim of the cheating ... try a lan party instead of the internet next time).

    ii) By seeing what the cheats come up with, perhaps the next generation of client-server games will have better cheat avoidance in the server and/or the protocol - we can learn from past mistakes or oversights.
    • By seeing what the cheats come up with, perhaps the next generation of client-server games will have better cheat avoidance

      Yes, especially if the cheat coders release their cheats as Open Source also. ;-)

      Hey now, if a cheat applied to GPL'ed source doesn't follow the GPL itself, we can just sue all the cheat coders out of existence! Perfect.

      Free The Cheats!
      • This was a problem we had when the Quake1 and Quakeworld source code was released.

        A "group" released the cheat "Quake World Radar Edition" that put autoaim and a radar into a standard client. It was done actually very nce. They released no source code for anything that they did.

        It was even "better" when, a year later, that same group came forward and told everyone "Hey, remember that QWRE we put out? It was trojaned. It has been reporting your ip, name, (other info), and even your WINDOWS CD KEY to us!" -- and they released logs to prove that it was true (pas the cdkey).

        Hmm.. it was a huge uproar because EVERYONE and their mother demanded the source code for this from them.

        This let me know something in particular... while the GPL "should" be valid -- it can ONLY be enforced by the copyright owner. Lemme tell you: Carmack didn't feel it was necessary to go after these people.

        Anyways. . . you say that you can get the cheats from them and fix them. I am guessing thats not true. They will have closed source cheats that somehow make it around the net, and if you are lucky enough to find out who made it they will say "We wont give you the source code" or (my favorite) "we GAVE the source code out. Its not OUR fault that the people YOU got it from didnt give it to you" -- and since it would be snaking its way across the net who can be sure that it wasnt true?

        Ah well, huh?

        (And I am sure I stated SOMETHING wrong with the GPL and people are going to say "nuh-uh" -- thats fine. End of the matter is that cheat mods for these games will be closed source.. that just wont change...)
  • now I have to learn C, so I can write 3.21, so I can keep my quake2 server from being hacked! :)

    Merry Christmas to me!
  • by Some Dumbass... (192298) on Saturday December 22, 2001 @01:20AM (#2740364)
    While everyone's busy downloading the Quake II source code, maybe I can mange to download kernel 2.4.17!
  • Lint (Score:4, Interesting)

    by Oily Tuna (542581) on Saturday December 22, 2001 @01:25AM (#2740370) Homepage Journal
    Someone needs a copy of Lint

    gamex86.dll - 0 error(s), 332 warning(s)

    Flamebait maybe - but if a build of my project generated 332 warnings I'd be fired.
  • by Ndr_Amigo (533266) on Saturday December 22, 2001 @01:27AM (#2740373)
    Ever since the Quake1 source release two years ago, a lot of intresting (and a lot of unintresting mind you) ports of the Quake engine have shown up. www.quakesrc.org reports on these new engines, as well as hosting some projects and a large set of tutorials. If anyone is intrested in coding off a quake-based engine, this is a good place to start. No Quake2 content yet, but give it a few days... www.open-quake.com is also a good site reporting on news in the Quake engine scene. End plug :)
  • I'm gonna be pissing on the parade here but this GPL release is not going to change the state of linux gaming. Currently the biggest issue with linux gaming is a lack of easily configurable 3D which translates to a lack of decent 3D games.

    Don't get me wrong I appreciate this Christmas gift from ID as much as the next nerd but I doubt this will have much of an effect on Open Source gaming as a whole.... But it's cool nonetheless :)

    Thank you IdSoftware.

    • by jslag (21657)
      I'm gonna be pissing on the parade here but this GPL release is not going to change the state of linux gaming.


      Probably won't end world hunger either. So? Let's appreciate what JC does, not complain that he doesn't solve all our problems for us.

    • I'm gonna be pissing on your parade here too, but I honestly don't think the intention was to change the state of linux gaming. Believe it or not Quake2 isn't a Linux only game. This also might surprise you, but it's been out for a while too... What you just said would be like saying releasing the doom source was for the purpose of improving linux gaming. That wasn't the idea.
  • by tunah (530328)
    Break my computer [tunah.net]
  • I would say something like, "I wish more game companies would open source their old games."

    But I can't say that because Quake II isn't that old yet.

    Instead I'll just say a big, "Thank you," to ID. It's darn, darn cool to open the source on this.

  • first impressions... (Score:4, Interesting)

    by markj02 (544487) on Saturday December 22, 2001 @02:31AM (#2740510)
    Looks like nice, clean, readable C code. It's not all that large--175kloc. Memory management via functions wrapping malloc, using some kind of zone strategy. It's interesting that there don't seem to be that many complex data structures--that's probably why this code can still be written reasonably nicely in C with manual storage management.

    This code looks very different from what CS courses teach you or expensive OOP consultants recommend. It's kind of reminiscent of the traditional UNIX code: very concrete and just tries to get the job done.

    • by kreyg (103130) <kreyg&shaw,ca> on Saturday December 22, 2001 @05:13AM (#2740823) Homepage
      I thought it looked almost exactly like typical CS code, actually not too different from my style.... until I saw line 577 in ref_gl/gl_light.c:

      "store:"

      WTF? Search "store"....

      Line 488:

      "goto store;"

      And the style Nazi in me went: NNNOOOOOOOO! :-)

      This must be a remnant of something, an "else" would have sufficed. :-)
  • by matt-fu (96262)
    http://matt.fluxcapacitor.net/quake2.zip
  • 3.16 -vs- 3.20 (Score:2, Interesting)

    by mojo-raisin (223411)
    Looking at quake2/changes.txt it looks like the version of Quake2 that was GPL'd was 3.16. But id has released binaries of version 3.20.

    Anyone know if there are major differences between these versions?
    • Re:3.16 -vs- 3.20 (Score:3, Informative)

      by GiMP (10923)
      I am pretty sure Zoid was working on Quake after 3.16, who has since left iD Software. I do not know any details, but this may be related to why the source is older..

      Doesn't matter much anyway, after it gets hacked for a month or two.. it will have the current bugs fixed, and of course a bunch of new ones to worry about :)
      • Here's some of the changelog entries from 3.19 and 3.20 that would be kinda important to compatibility and general goodness. Hmmm... and even if Zoid worked on Quake after 3.16, wouldn't that be considered work-for-hire, and thus the ownership of the code revert back to id software?

        - "Water surfing" that was present in 3.17 has been fixed (holding jump while
        on the surface of water let you swim at full speed).
        - Environment maps (env) are now autodownloaded (if allow_download_maps is set).
        - Spectator support added.
        - New server cvar: sv_airaccelerate. This controls the optional air
        acceleration facility. [esp. if you want QuakeWorld physics!]
        - Fixed the long standing Quake2 bug of where you would occasionally spawn
        or teleport and find yourself either looking straight at the ceiling or
        down at the floor.
        - ... flowing transparent textures now works. [in software renderer]
        - Fixed a case where a person joining a server could be invisible
        - Linux: Complete rewrite of the OpenGL library handling. [!!]
        - Railgun shots now go through gibs as well as other players.

        Most of them should be fixable by various people, but some might take a while (like the OpenGL rewriting). Also, I'm guessing that most of those bugs would be relatively obscure and could be tricky to fix (Carmack obviously didn't get it correct the first time, and he _wrote_ the damn thing!).
  • by NanoGator (522640)
    Any chance somebody will set up a Q2 community for improving/modifying the code? I'd really like to monitor what happens here. I can see some really cool potential here.

    My personal interest in this project is that some independent game makers make some free, yet good quality games for Dreamcast. Wouldn't that be cool? The DC is $50, and can play burned CD's, which makes it an ideal candidate for this type of thing.

    In any case, if the GPL licensing of Q2 sparks some quality spin-offs, this could be a welcome evolution of cross-platform games.
    • Quakeforge [quakeforge.net], a project improving the original quake, already has the quake2 source in CVS.. you can find them in #quakeforge on OPN [openprojects.net].

      I did some work on quakeforge a while back, did some cool things.. but I've moved on, however.. myself and others have come back, although I may or may not make any changes.. as I am busy with some other small project [kernel.org] at the moment.
  • by Anonymous Coward
    this should definatly help mods such as Reaction Quake3 [reactionquake3.com], which are ports of popular Quake2 mods such as Action Quake2. In order for them to be good ports, they had to recreate q2 physics. This was nearly impossible until now with the source code :).

    Of course, there are still games with quake2 and quake1 code (especially halflife, which is a quake1-based game with quake2 features). I wonder how id's licensing plans with companies like Valve (who made halflife/counterstrike), interfere with the opening of source code.
  • by GrouchoMarx (153170) on Saturday December 22, 2001 @04:01AM (#2740737) Homepage
    THIS is how a company makes money producing Free Software. Don't, at least not at the beginning. I'm sure RMS would have my head for this, but it's the truth.

    Consumer-oriented retail software and GPL code are simply incompatble as a business model. If Id released the source for RtCW today, they wouldn't make a penny on their retail sales. Somone would get the source code, edit one line, stick it on an FTP server, and make it available to the world free (as in beer), and most people would get it from there. There would be no legal reason to stop them, and every financial reason for them to do so. That goes for any consumer-targeted application, game, utility, or whatever. You just can't make money with consumers that way. (Consumers aren't interested in "selling support". If they need you to support it, then it was a bad program to start with in their minds.)

    Now here comes Id. They develop excellent code, and sell it and license it commercially like any other company. Then, once they've made their money back with a nice comfortable profit and moved on to bigger and better things, they open source the code. They're not doing anything more with it, so why should they prevent others from enjoying it? It's the original idea behind copyright in the first place! Author(s) get limited monopoly for a limited time so that they can make a living producing content, then it goes to the public domain. (OK, that would be more BSD license than GPL, that's a minor issue.)

    For the FSF and its supporters, economics aren't the issue, it's all principle and philosophy and idealism. That's all well and good, I agree with their ideals for the most part. But idealism must be tempered by reality to produce pragmatism sometimes. The Id model is the best way I've seen to make money in the consumer space while still supporting Free Software / Open Source (take your pick).

    Unless someone else has a better suggestion on how to make money in the consumer space with FS/OS code (remember, after the cash register the consumer doesn't want to ever have to talk to you), we should all bug companies to follow Id's excellent example. If they balk at the "lost revenue", just show them Carmak's twin Lamborginis. ;-)
    • Well, there's always the option of releasing the source code, but not the game media. Kind of like how you can always download the doom executable for free, but without the WAD files, no luck playing the whole game. This would work with many companies, but unforunately not id - a huge percentage of their income comes via engine liscensing. Of course, by formulating a decent liscense (I doubt the GPL would work for this), they could release the source code and prevent people from profiting off of it. This could conceivably make id a good deal more money as companies and individuals could experiment with using/modifying the code on their own before deciding to create a full product with it and paying id. A problem still pops up with this model though, as mod authors could instead make standalone games, claim them as non-profit, and id would then lose out on the money they get from mods' requirement of having the original game. It's definitely a tricky issue, but it's not impossible to release up-to-date code and still profit greatly from your efforts.
    • by ChaosDiscord (4913) on Saturday December 22, 2001 @01:56PM (#2741652) Homepage Journal

      If Id released the source for RtCW today, they wouldn't make a penny on their retail sales. Somone would get the source code, edit one line, stick it on an FTP server, and make it available to the world free (as in beer), and most people would get it from there. There would be no legal reason to stop them...

      Of course, RtCW is pretty worthless without levels to play through. The engine without levels is of no value to your average gamer. Just because you open source your engine doesn't mean you need to open source your levels, models, textures, sounds, and other data.

      There are risks of making your engine open source (As you point out, Id makes money selling its engine to other developers, open sourcing their current engine would kill this model. Also, competing companies could take the engine, saving software development time and focus on developing levels, effectively allowing your competition to leach your work.). But the threat that no one would buy your game isn't there. I buy a game for well crafted, fun levels. The engine is just the foundation that those levels are built on.

      I definately agree I'd love to see out of date source made available. I have a number of games I own that I can't play because they're too old (MS-DOS based). I'm perfectly willing to take a stab at updating them, but it's practically impossible to do without the source. There is a risk that this would hurt sales (as I spent time playing old games instead of new games), but I suspect the drop is sales would be minimal (I like shiny new games too much to just stop buying them).

  • The zip includes the platform specific files for irix, linux, solaris, unix, windows, and even rhapsody!@ Yet there's not a glimmer of MacOS code, either for X or classic.

    I'm guessing this is because ID software didn't port it to Mac, rather Logicware did the classic port and OmniGroup did the OS X port. However, this doesn't explain why the code for so many other OS' is included... Did ID Software actually port Q2 to rhapsody, for example?

    Oh well, it would be really nice if Logicware or (more probably) the OmniGroup could donate their mac specific code. Do either of the above two companies actually own their Mac specific source code? Is this why ID Software is hesitant to include it in this package?

    Oh well, I have no idea, I'm just thinking out loud.
  • by XoXus (12014) on Saturday December 22, 2001 @04:29AM (#2740768)
    Here's a patch to get the source to compile under linux -- Carmack forgot to use cl_newfx.c!

    http://members.optushome.com.au/davidsymonds/q2m ak efile.diff
  • by Jagasian (129329) on Saturday December 22, 2001 @04:46AM (#2740789)
    Hip hip HORRAY!!!!

    I wish more game developers would adopt his model.
    1. Make awesome game.
    2. Sell awesome game.
    3. Make lots of money in the process.
    4. Gamers love game, gamers play game, gamers have fun for many years.
    5. Instead of letting a game die ("bit rot", ala Darklands and many other great games), release game as open source to the community (this is true public service people).
    6. Coders learn from one of the greatest.
    7. Community grows.
    8. Repeat ad infinitum.


    Sure the hardcore open source fanatics will give a thumbs down to the fact that Carmack wants to make money, but then again, they are fanatics.

    I also love how Carmack does it during Christmas... kind of puts a tear in your eye :-) Oh, and I also heard that Carmack does more traditional charity works like buying toys for poor kids during Christmas.

    Well, I have bought every game that Carmack has made since Wolf3D... and I am going to buy the new Doom game too. Its important to support the greats.
  • All of those other guys copy Carmack, make clones of his games... so why don't all of those other guys open source their games like Carmack does? Really, it would be a good thing for the game industry... let the next generation learn from the last.
  • I have been waiting for this for a very, very long time. I purchased Q2 for Windows many moons ago, and it is one of the games I miss under Linux. Guess it is time to compile it now.

    BTW - does anybody know whether _everything_ works, like sound, joystick, mouse, etc - or is it just the graphics engine and game code (ie, playable with keyboard and pretty gfx, but no sound or joystick support)? Just curious how well this thing really runs...

    Hmm - now I am wondering if I should try basing my future VR system on this code...
    • Well, you could have bought a linux copy of the game if it was that important to you!

      Chris

      -completed quake2 under slackware

      • It wasn't that important to me - plus, I already had the data files - why pay again? I suppose you could argue "to show the want for the Linux version" but had I (and everyone else, let's say) bought the Linux version - how would that have helped it being GPL'd (ignoring the fact that JC was inevitably going to do this anyhow)?

        JC has shown a way to make money, and still open source your product after it has enjoyed a long success. I hope others follow in his footsteps.
    • Oh, re: the joystick, sound, etc...

      While I haven't gotten around to compiling it yet, I did download the source, and saw that there was code for the Linux version for sound and joystick support, among other things. I guess I answered that question myself...
  • by DarkHelmet (120004) <mark AT seventhcycle DOT net> on Saturday December 22, 2001 @06:18AM (#2740897) Homepage
    And I'm sure somewhere in the code is hidden:

    3d realms and epic megagames are weenies

    :)

  • fast mirror (Score:2, Informative)

    http://www.siliconinc.net/quake2.zip [siliconinc.net].

    Enjoy, and happy fragging.
  • by BigJimSlade (139096) on Saturday December 22, 2001 @09:59AM (#2741117) Homepage
    Dear Lord, how will I be able to startup ComanderKeenForge.net without the source code to Comander Keen!?!?!?!?! It's just not fair to leave us hangin' like this!!! :)
  • by gonerill (139660) on Saturday December 22, 2001 @11:14AM (#2741280) Homepage
    First, like every other sensible person here I think it's terrific that Carmack and ID have this strategy for releasing older code under the GPL. I've noticed that a lot of comments have argued that this is a strategy that many or all software firms should adopt with the GPL --- develop commercially and profit in the short run, release source to community when development cycle has moved two products down the road.

    I wonder, though, whether ID find it much easier to pursue this strategy because they're in the game market? Games (and *especially* FPS/Multiplayer games) are a market segment where most buyers want the newest engine, best graphics, etc. Could a company that made Wordprocessors or Spreadsheets pursue this model as easily and still make profit like ID? I'm not saying it would be impossible, but it seems to me that many users would have a much higher tolerance for using a free, three-year-old version of their wordprocessor than using a pricely new version (assuming the company didn't do nasty things like change the .doc format, etc). This isn't true of games. So while I like this "Develop-Sell-Wait-GPL" approach, I'd bet that the "Wait" time of a company like ID is amongst the shortest of any software market segment.

  • "Hey, we're not making much off the Quake II engine anymore now that we've shifted everything to Quake III. Should we mothball it, maybe even lose the source so no one could even compile it anymore, just like every other game company does with their code?"

    "Hell No! That doesn't match my master plan!"

    "Master plan?"

    "You must be new here. I want all programmers to either learn from my masterful code, or bow before me acknowledging my skill."

    "How you gonna do that?"

    "Same way Linus did. GPL it! My code shall never die! I will forever be known as the father of thousands of computer games. My code shall outlive the very civilization in which we live. Through my GPLed code, I shall achieve immortality! Mwhahahahahaha."

    "Yeah. OK. I'll put together a tarball and drop it on the FTP server."

    To himself: "Besides, if I give my brother and sister coders enough samples of my work, sooner or later they'll design the tools necessary fro me to move off of Windows once and for all, and do all my coding under Linux. They'll have to, just so they can continue to hack and improve my own work. Soon, very soon I'll be able to launch Afterstep and compile to Win32 with the click of a button."

    (Dramatic Pause)

    "And then I'll never have to use Windows again! Mwhahahahahahahahahaha!"
  • Thanks (Score:5, Interesting)

    by John Carmack (101025) on Saturday December 22, 2001 @03:40PM (#2741917)
    Thanks for the kind comments, it helps me brace a bit for some of the really vile hate mail that is already starting to come in from the people worried about cheating.

    Bill Heineman is preparing the mac source code for Q2 for a release.

    We will see about getting the 3.21 changes we missed into an updated release.

    I am also happy to say that another old game's code will be released under the GPL soon. We can always hope that it becomes a trend...

    John Carmack
    • Re:Thanks (Score:2, Funny)

      by dadragon (177695)
      I am also happy to say that another old game's code will be released under the GPL soon.

      Please tell me it's Commander Keen... :)

      • Re:Thanks (Score:2, Insightful)

        by Art Tatum (6890)
        Ditto. Q2 is cool and all but CK, written for really low end hardware, has to be a tour de force of ingenious coding. Oh, and BTW RtCW rocks, John. ;-) I like the teamwork aspect of the multiplayer a lot and think that taking the FPS genre in a more intellectual direction in the future is a great angle--maybe even integration of Adventure/Role-playing and FPS or adding combat flight-sim/tank-sim components? Could be cool....
    • Re:Thanks (Score:4, Informative)

      by raduffy (319858) on Saturday December 22, 2001 @06:44PM (#2742307)
      3.21 Will be out soon, Timothee located it and repacked the zip. Should be up soon.

      robert...
  • Now someone can finally make a version of the sims that allows you to kill your neighbors easily and quickly and that has netplay

To do nothing is to be nothing.

Working...