Slashdot Mirror


Quake 2 Source Code Released Under The GPL

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.

30 of 371 comments (clear)

  1. Responsible and Generous by DarkZero · · Score: 5, Insightful

    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.

    1. Re:Responsible and Generous by Cuthalion · · Score: 4, Insightful

      I frequently run into it on here, but the notion that programmers are a fungible and reallocatable resource is distasteful and wrong.

      Programmers who are good at a particular task are good at it because they like it and they understand it well. I'm sure that John Carmack could do a perfectly fine job at writing a GUI or the kernel or improving mozilla or whatever, but if he excells at writing 3d engines, and that's what he wants to do who is any of us to say otherwise. I say we're lucky that his talent and interests are aligned such that we can enjoy them at all! Think of all the people who are like John Carmack but instead of writing 3d games write code that is of no interest to anyone but themselves (this is fine too).

      At least you didn't make the claim that open source development is 'wasting its time' with two competing projects. That one REALLY pisses me off.

      --
      Trees can't go dancing
      So do them a big favor
      Pretend dancing stinks!
  2. Merry Christmas to all Programmers by Hangtime · · Score: 5, Informative

    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.

    1. Re:Merry Christmas to all Programmers by tshak · · Score: 5, Funny

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

      And this, sir, is how we get Memory Leaks.

      --

      There is no longer anything that can be done with computers that is nontrivial and clearly legal. -- Paul Phillips
  3. I have the source by thekernel32 · · Score: 5, Informative

    Go to my box at linuxhost.ccand you can download the quake2.zip file containing the source.

    I got it before the slashdot story hit...

  4. And its now in cvs by _generica · · Score: 5, Informative

    You can find the code in the quakeforge 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

  5. um, ok posted it to edonkey as a mirror :) by linzeal · · Score: 4, Informative
    quake2.zip

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

  6. Cheating. by Oily+Tuna · · Score: 5, Insightful

    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.

    --
    Mmmmmmm ... sushi.
  7. Re:Wow, already!? by hexix · · Score: 4, Informative

    heh, actually I think you still do. Doesn't ID just open the source code to the 3D engines but keep the levels only available by buying the game. I thought that was the deal.

  8. Good, a distraction! by Some+Dumbass... · · Score: 5, Funny

    While everyone's busy downloading the Quake II source code, maybe I can mange to download kernel 2.4.17!

  9. Lint by Oily+Tuna · · Score: 4, Interesting

    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.

    --
    Mmmmmmm ... sushi.
    1. Re:Lint by Anonymous+DWord · · Score: 5, Funny

      Not if a build of your project sold 20 gazillion copies, you wouldn't. ;-)

      --
      "If he thinks he can hide and run from the United States and our allies, he's sorely mistaken." Bush on bin Laden
    2. Re:Lint by Oily+Tuna · · Score: 5, Informative

      To be fair, if you drop the warning level back down to 3 (the VC default) you get

      quake2.exe - 0 error(s), 8 warning(s)

      lots of level 4 warnings occur in Microsoft's own headers (yes ... I think this is crap, it makes warning level 4 useless. MS - fix your SDK!)

      --
      Mmmmmmm ... sushi.
  10. QuakeSrc.org - shameless plug. by Ndr_Amigo · · Score: 5, Informative

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

  11. Re:No thanks, John. by xanadu-xtroot.com · · Score: 4, Insightful

    I think that if he really should deserve reverance, he should release the source *as it happens*.

    You haven't had your labotamy re-done lately, right? You imply that someone that is trying to make a $ should release everything they type for free?

    When was the last time M$ released the source for M$ Golf? Oh, wait, they never did. OK, well, when was the last time SquareSoft released the souse for the FF seires. Oh wait, they never did. Hmmm...

    Seems like Mr. Carmack is onto something...

    Wake up, man.

    --
    I'm not a prophet or a stone-age man,
    I'm just a mortal with potential of a super man.
  12. Money and other problems by DragonMagic · · Score: 5, Insightful

    First off, Carmack seems to release the source code after two other complete games come out. Q1 Source came out after Q3A hit the shelves, now Q2 after Return to Castle Wolfenstein.

    But don't forget, that if they released the source code when the game was being created, not only couldn't they make money on the license, but also other companies would be able to compete on the same level without paying a price for it.

    Carmack gets paid for his programming skills, but you're arguing that he should get paid to program *everyone's* game, including his competitor, from one company. All the other companies could release their own Quake 3 Arena clones and make money, without even bothering to do anything with the programming.

    And don't forget, that when Q3A sold for $40+, id didn't get all $40. It goes from id, to Activision, to the distributor, sometimes to the wholesaler or direct to the big name store, and then possibly to a smaller store. By then, after the expenses of doing the packaging and the duplication, you're talking only a couple dollars profit per game direct to id... Split that among their, what, twelve workers now in the proper ratios, and that's not that much. Less than a dollar each, probably.

    Even multiplied by a few million, that's not that much money to pay those huge salaries. How do they make it up? Licensing.

    With licensing, there is *no* middleman. It's a contract between id and the company licensing the engine. In the end, it's probably a larger chunk of change than a first month's release returns.

    And secondly, you have to remember, as with Carmack's .plan update, that when you release the full code, people *will* find the ways they can use to cheat. They can modify the source for themselves, recompile the engine, and have it work for them. Therefore, the rampant cheats would cause multiplayer to go to pot upon release.

    No, what Carmack does is *more* than enough, and these are the factors not only he, but id and other people who can understand the business, realize, and have to protect not only themselves, but their consumers, from these problems.

    --

    Human nature is the same everywhere; the modes only are different. -- Earl of Chesterfield
  13. Re:No thanks, John. by Anonymous Coward · · Score: 4, Insightful
    The problem is, as an academic exercise, it goes against nearly all the "rules" of having others learn about your code. It was once a lovely 3D engine, now it's akin to releasing the hardware schematics for the TI-99/4A.
    huh? the existance of quake 3 takes nothing from the value of quake 2. it's still the same game. it's still the same code. if there is something you don't know that's in the quake 2 code, then there is something you can learn from the quake 2 code. if there is something in the quake 3 code that you don't know, well, that's why carmack is writing it, instead of you, and that's why he gets to drive the (forward-reference) expensive cars you mention.
    If you're going to release the source, why not go whole hog? They already have copyrights stemming back many years.
    the only semi-sound business models that include open-source code involve profiting from support of that code. that business model simply doesn't work in the context of games for consumers. and without a sound business model, there would be no quake, q2, or q3, as the company would've gone bankrupt with doom.
    I think that if he really should deserve reverance, he should release the source *as it happens*.
    i doubt he's after reverance. and it's not reverence that's being expressed in this forum, it's appreciation.
    There is such a small percentage of the population that would actually download and compile the source for Quake 3 Arena. If the copyright laws stand, he could release the code under a heavily-modified GPL (say, the idPL) and basically state you can use the engine, just not the artwork. Those who would argue that they make significant money off licensing the engine are fooling themselves. They are a multimillion dollar company, and every new Quake or Doom game nets them more millions. They're percentages for licensing revenue must be paltry.
    i don't think that the loss of licensing revenue would put them out of business. but increased competition in the marketplace from other companies that get a free (as in beer) engine and only have to pay some artists just might put them out of business.
    Carmack drives expensive cars that very few people can afford -- he could stand to give away the full source code at the time the game is released so that the academic world can study his graphic routines. As such for now, he only seems like the snob I once read about in an interview. Asked if he felt he learned anything from his teachers, he said, "Not much, because I was smarter than they were". Being a decent technological coder doesn't exempt you from hubris.
    so, your real problem with carmack is not that he doesn't give away his source as he writes it, but that he hasn't become a public servant after finding contentment in his expensive cars? or is your problem the fact that he's smart (or had dumb teachers)?
  14. Re:Wow, already!? by FyRE666 · · Score: 5, Funny

    Dude, if you lived next door to me and were playing Quake with the sound up, blasting through a subwoofer at 3AM, it wouldn't just be the game scaring the hell out of you...

  15. first impressions... by markj02 · · Score: 4, Interesting
    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.

    1. Re:first impressions... by kreyg · · Score: 5, Funny

      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. :-)

      --
      sig fault
  16. Hey, every other company in the world, take notes! by GrouchoMarx · · Score: 5, Informative

    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. ;-)

    --

    --GrouchoMarx
    Card-carrying member of the EFF, FSF, and ACLU. Are you?

  17. Makefile fix -- compiling under linux by XoXus · · Score: 5, Informative

    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

  18. 3 Cheers for Carmack! by Jagasian · · Score: 4, Insightful
    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.
  19. Re:nope ~ Re:free data files? by Jagasian · · Score: 5, Insightful

    If you really wanted to be a good person, you could return the favor to Carmack by going out and buying a(nother) copy of Quake2. Its only right to return the favor.

  20. Hidden in the code... by DarkHelmet · · Score: 5, Funny
    And I'm sure somewhere in the code is hidden:

    3d realms and epic megagames are weenies

    :)

    --
    /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i
  21. They Skipped a Whole Generation of Games... by BigJimSlade · · Score: 5, Funny

    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!!! :)

  22. How widely applicable is this release model? by gonerill · · Score: 4, Interesting
    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.

  23. Re:Hey, every other company in the world, take not by ChaosDiscord · · Score: 4, Insightful

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

  24. Thanks by John+Carmack · · Score: 5, Interesting

    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

    1. Re:Thanks by raduffy · · Score: 4, Informative

      3.21 Will be out soon, Timothee located it and repacked the zip. Should be up soon.

      robert...