Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!


Forgot your password?
Quake First Person Shooters (Games)

Quake 1 GPL'ed 479

WarSpite was the first of many to write with the news that id has open-sourced the Quake 1 Source Code. This includes WinQuake, GLQuake, QuakeWorld, and GLQuakeWorld. Yes, it's been released under the GPL [?] . id's ftp site got the goods.
This discussion has been archived. No new comments can be posted.

Quake 1 GPL'ed

Comments Filter:
  • A new and better way to kill processes in your system!

    I'm glad that id open sources their games when they have no "value" (read: ability to be sold) anymore.

    Go id!
  • This is sweet. I'm just starting to get the whole "programming" thing into gear, and id gives me everything I need! Thanks tons for the early Christmas gift, Id!
    "You should never have your best trousers on when you turn
  • I think Ill buy a copy of QuakeIII just cause they opened up Quake1. Good of ID to see that they arent going to make any real money from selling quake1 and the best thing to do was to open it and make the world a better place. I wonder what new games will come from the engine.
  • As a student in Computer Science, it's nice to know that we can begin to learn from some well-known games.

    I'm sure there are many other students who are beginning to develop games and would like some form of hint in where to start. Well.. now they have a place.

    Thanks ID.

    Personally I'm not a games person, and I don't have much interest in programming games (I'm more of an OS and server person), but that won't stop me from taking a look at the source to see what I can find.
  • Does anyone know where I can find info and the tools/compilers to mess around with this?
    "You should never have your best trousers on when you turn
  • Will this have any impact for mods such as generations? Is artwork, levels, models etc still considerd to be property of the publisher? It would be nice to see some of the oldy and goody quake1 maps ported to q3 without any legal hangups. We're all in search of the perfect game when it comes to that, and I'd love to have at it on e1m7 with all the new tech of q3.
  • Wasn't Halflife based off a modified Quake 1 engine. Half-life shows that the engine can indeed be used to make specatular games. I've always wished Rainbow Six, Rouge Spear, etc used the Quake engine for multiplayer-- maybe now companies can provide decent multiplayer linux servers for all their FPS games! yay!
  • While its slow to happen, the ability of individuals to freely develop 3d games and apps is increasing. A while back Chex had a doom-based cd-rom game on their site, and they had to pay for it.

    But the GPLing allows anyone with a slight bit of graphics talent to build their own independant game.

    And with Quake now open source, enhancments can be added easier, I.E. the loveable PAIN package (I loved web-swinging like spiderman with the grappling hook and harpoon.)

    Think of the possibilities.

    XBill 3D would be cool.

    Ever seen that episode of the new Jonny Quest where they delete data by shooting it? Make directories into rooms, etc.

    And yes, the process killer will have to be ported too.

    We could easily have selectable 'levels' signifying file management, process managment, wiping windows, network sniffing, and more!

    That's all I want to go on about for now. Hey everyone, please vote for geek number 1 (me!) in the after y2k ( www.nitrozac.com ) look-a-like contest.
  • ...but I wonder if part of their motivation
    for doing this is to increase the number of
    coders familiar with 3D engines. Seeding the
    future labor pool so to speak. But then again...
    maybe it's just because they're good guys(and gals).
  • I was thinking the same thing! I have bough a few ID products, but now I feel like I need to get more.

    What does Q2/Q3 have that Q1 doesn't? Q1 was real 3D and had GL support- Quakeworld had decent network support for online gaming. There are a ton of mods and tournament play games out there.

    Plus, being GPL, RedHat (Debian, etc...) can drop it in their distros...

  • This great news for every multi-OS quaker out there, but how will this effect the Mac port?

    macsoft took time and money to do thier codin, and i really doubt they'll gpl THAT.

    Anyone know more then me?

  • ... but a modified quake 2.
  • Man, if you're *just* getting into programming, Quake's source code is probably a little in the deep end. You might try something a little simpler... like "Hello World". Just kidding, but seriously, Quake's source code is not going to be something you can just jump into.


    "You can't shake the Devil's hand and say you're only kidding."

  • It's rather telling that id have released the source code to Quake free to the public before one of their original Quake-engine licensees has managed to ship. :)

    Oh well. They only need to sell 2 million copies to recoup their development costs, as Todd Porter told us about six months ago.

    - Butcher

  • First one to port it to OpenVMS gets extra credit points.
  • I suppose you could say this is building good-will within the free software community without costing them anymore revenue, and that would be completely true, but this decision is even smarter than just that.

    The way to get hired by a computer gaming company is to "show them the source" -- in particular, demonstrate that you can write cool games. By GPL'ing Quake I, id Software is increasing their pool of potential employees to include those who can develop a good 3D game if only they had a good 3D engine that's less than four years old.

    Christopher A. Bohn
  • I believe its actually based on the Quake 2 engine. Does anyone recall any other games using the Quake 1 engine? None leap to mind right now.
  • Quoth Carmack:
    All of the Quake data files remain copyrighted and licensed under the original terms, so you cannot redistribute data from the original game, but if you do a true total conversion, you can create a standalone game based on this code.
  • Thanks Santa! Many kudos to all at ID for this generous contribution.

    There is an error in the title here though: it's only the source that's been GPL'd. The artwork and such are still the intellectual property of ID

    On another note, Mr Claus, if you know who's been naughty and who's been nice, could you give me a copy of the list of naughty girls? Many thanks.


  • I'd be happier if they'd GPL their level maps, too. They're not really giving away the store...
  • by mecca ( 20061 ) on Tuesday December 21, 1999 @05:32PM (#1454801) Homepage
    I think I will have to buy QuakeIII now just to support a company that is so cool. Doh, Guess I'll have to get a Voodoo3 as well. Come to think of it, this GPL announcement just cost me over 100 bucks.
  • > XBill 3D would be cool.

    Yeah, it would. I wish I had the time to learn about 3D game programming, and the artistic talent to create the models :)
  • by John Carmack ( 101025 ) on Tuesday December 21, 1999 @05:33PM (#1454804)
    Producing a mac version of glquake or glquakeworld should be pretty easy with the existing code now that Apple has real OpenGL support.

    Producing a version of the software renderer with decent performance would be VERY HARD. A huge amount of effort went into the assembly optimization for the PPC, and it still didn't quite measure up to the x86 code.

    John Carmack
  • The reason Generations was pulled, was because they directly copied the levels, textures, and models from Quake 1, as well as the sounds from Quake 1, Doom, and Wolfenstein. These are licenced to GTInteractive, Apogee, and a few others I'm sure I've forgotten.

    The engine is John's to give away, but the artwork is not :-( This is also why the two Descents, as well as Doom and Wolfenstein code giveaways were not available with data files.

    Luckily, all new models and such created for Generations (like the Doom and Wolfenstein models and level recreations) are relatively safe.
  • include any of the many TCs (and the ones to follow, id kicks ass)

    This code was worth, what, $10 million 4 years ago? An interesting point in the discussion of determining the "value" of software.

  • This is why it's so important to (1) indent properly, (2) use meaningful variable names, and (3) provide adequate comments.

    You never know when when your code will be GPL'd and then everyone will know what kind of programmer you really are!

  • Good guys???

    The product no longer made any money. They dont really need to keep it under wraps any longer. IMHO this is just an easy way to get big time media coverage. The sites being /.'d now, tomorrow all the geek trades will have a blurb about it.
    I like id's stuff as much as the next guy, but this sure looks like a press campain around a product that is being decomissioned.

  • Valve originally licensed the source for Quake from id Software and they began working on that code around October of 1996. Between that time and the time they finished Half-Life in October of 1998, they modified/removed/created something like 70% of the code. --Taken from the Official FAQ
  • I see a lot of people already complaining that iD has only released Quake because it wasn't making them money anymore. I find such comments absolutely rude and uncalled-for, iD is doing the open source communitiy a wonderful favor by releasing their code under the GPL. Why don't we concentrate instead on the possibilities opened by this code release...

    Now that a fully 3-D rendering engine, which supports 3-D acceleration is available under the GPL, I can only hope that a few aspiring programmers can take all of that code and begin development on some true Virtual Reality software. With high speed access such as cable and dsl becoming available in more and more areas, such an environment is truly becoming feasible.

    The way that I see it, all that really needed is a large amount of artwork and new networking code. Imagine that each MetaQuake server is a node in the metaverse, each server acting as either a room, a building, or an entire city (based on available bandwidth), where people logged into one server can interact with one another directly, but you use a "subway" system to transfer your information *between* servers, allowing you to enter new buildings, cities, etc. If all of the servers were interconnected similar to the way the internet itself is connected, it could work. There could even be sub-programs written into the engine in which you can pick up a virtual pay phone, and video conference with someone on another server (or not logged in at all) via a direct connection.

    I think that the Quake codebase would certainly be an excellent start, but it's more likely that Quake2 or even Quake3 would act as a better environment to do such programming in. I know that Quake1 modules had to be written in "QuakeC" whereas Quake2 modules could be written in full-blown C, which in my opionion would be better suited to the "videophone applet" or other such modifications. Also, the original Quake networking code wasn't so hot (hence the need for QuakeWorld) whereas Quake2 was much better about it, and Quake3 was actually *designed* for online-only usage.

    Perhaps if a small band of programmers started messing around with this sort of stuff right now, we'd all be ready to take advantage of more advanced engines, such as the Quake2 and Quake3 engines one they become available (which they most likely will, the way that iD has been doing things -- Thanks guys!)

    Can anyone speak from experience if/how well models and skins, and/or maps created for Quake1 can be ported into Quake2 or Quake3? Is there anyway that level designs for a "metaverse" could be later re-used should iD be so gracious as to release the source to their more recent engines?

    --Steven M. Castellotti
  • If you're just starting to get the whole "programming" thing into gear, then the Quake engine is not the place to start.

    Don't get me wrong, the Quake engine being GPL'd is a great thing, and I applaud Id for it. However, 3D-engines are not a good thing to cut your teeth on. Start small. Code a few 2-D games first (my guess is that you're into game programming). Tetris clones and platformers are always popular (heck, my first game was a taste-challenged Barney-killing simulator back in my high schools Pascal class). Then move on to grander things. You can't build a tool shed in the backyard and then move on to a castle right away. It's the same with coding.
  • by Millennium ( 2451 ) on Tuesday December 21, 1999 @05:50PM (#1454833)
    One: MacSoft didn't code MacQuake. Westlake Interactive [westlakeinteracive.com] did. MacSoft only distributed it; they outsourced the development.

    Two: I think Westlake has to Open-Source their stuff now, including all six Quakes they did (software, 3Dfx, RAVE, QWsoftware, QW3Dfx, QWRAVE). They were based off the original Quake source, after all, and probably still contain chunks of it (particularly the QuakeC engine and the file-translation routines).

    I should also point out that the 3Dfx (and, if I'm not mistaken, RAVE) versions were themselves ports of GLQuake with the rendering engine changed as appropriate. So while the Mac doesn't have a "true" GLQuake, it has pretty much the same thing already. A true GLQuake would be nice, though, and shouldn't be too hard since we already have two very similar programs.
  • That should be www.westlakeinteractive.com [westlakeinteractive.com]. Sorry about the mixup.
  • by cje ( 33931 ) on Tuesday December 21, 1999 @05:53PM (#1454840) Homepage
    Open Source Superstar "Nowhere To Be Found," Report Police

    CAMBRIDGE, MA (AP) - Richard M. Stallman, better known as "RMS" by the open source software (OSS) community, has apparently vanished off the face of the planet. After missing several speaking appointments and coding commitments, many of his fans have begun to ask questions about his whereabouts. Stallman is the founder of the GNU project, which is dedicated to providing free, open source software to the computing world.

    Eunice Bleyfeld, Stallman's neighbor, seemed surprised by Stallman's absence. "I hadn't noticed anything out of the ordinary," she commented to the Associated Press. "He wasn't acting strangely or anything like that the last time that I saw him." However, Mrs. Bleyfeld recounted a strange incident that took place in the middle of the night a few days ago. "I woke up and heard what sounded like an altercation at Mr. Stallman's," she said. "He shouted something like 'I'll frag your ass.' Minutes later, I heard him yell something to the effect of 'Eat my pineapple, bitch!'"

    Police psychologists were puzzled by Stallman's alleged ravings. In the meantime, Stallman's apartment door remains locked and phone calls are greeted with a constant busy signal. "We think the phone must have gotten knocked off the hook," explained Cambridge police chief Samuel Breckenridge. "That explains the busy signals. Beyond that, we're not quite sure what to do," continued Breckenridge. "The guy is quite literally nowhere to be found. We're sure that he's not at home, because if he was, you'd think that he would answer the door."

    Police have placed Stallman's picture on the side of cartons of CD-Rs and DIMMs nationwide, along with the caption "Have You Seen This Coder?" The hope is that somebody will recognize the missing open source icon and report a sighting to the authorities.

    Stallman is famous for his refusal to use anything except free software. In particular, Stallman is a fan of his GPL license, which provides for unrestricted modification and distribution of software.

    John Carmack contributed to this story.
  • by John Carmack ( 101025 ) on Tuesday December 21, 1999 @05:58PM (#1454845)
    Heh. You don't know how much trouble it is to convince biz oriented people that this isn't just plain stupid.

    While thinking in terms of money and profit are probably good ways of understanding the way most things work in the world, don't let yourself become so jaded or cynical to think that it is the ONLY way things work.

    I do think The World Would Be A Better Place if all software companies released older code so users still interested could work with it or learn from it. (I'm not holding my breath, though)

    John Carmack
  • by nathanh ( 1214 ) on Tuesday December 21, 1999 @05:58PM (#1454846) Homepage
    You better make gibs, you better get frags
    You better shoot grunts, zombies and scrags
    Santa Carmack G-P... L'd Quake

    He's written some code, debugged it all twice
    Then made it all free, isn't that nice
    Santa Carmack G-P... L'd Quake

    He knows when you've been fragging
    He knows when you've got quad
    He knows when you've just rocket jumped
    'Cause Carmack is Quake God

    So don't you be lame, don't you not play
    Join a net game, I'll frag you today
    Santa Carmack G-P... L'd Quake
  • Nope, westlake is free to keep their stuff propriatary under the license they originally got the code under..
    The owner of the code can release the code to as many different people under as many different licenses as he wishes, and the code stays under the licence it is issued under even if it is issued again to someone else...
    In one of the text files that comes with the source, this was said:
    "If you want to do something commercial and you just can't bear to have your source changes released, we could still negotiate a separate license agreement (for $$$), but I would encourage you to just live with the GPL."
    Typical commercial licenses are still availible, if silly at this point..
  • Kudos for id and Carmack for setting an example of Open Sourcing game and engine source.

    Because of this example, we also have source from many other developers.

    A fine Open HW and SW engine from Genesis :


    Outrage and Toschlog also opened their Desecent 2 source :

    http://descent2.com/ddn/sources/descent2/legal.h tml

    Do support Outrage and Descent 3. It is a fine product.

    Corrinne Yu
    3D Game Engine Programmer
    3D Realms/Apogee

    Corrinne Yu
    3D Game Engine Programmer
  • This is the complete source code for winquake, glquake, quakeworld, and

    The projects have been tested with visual C++ 6.0, but masm is also required
    to build the assembly language files. It is possible to change a #define and
    build with only C code, but the software rendering versions lose almost half
    its speed. The OpenGL versions will not be effected very much. The
    gas2masm tool was created to allow us to use the same source for the dos,
    linux, and windows versions, but I don't really recommend anyone mess
    with the asm code.

    The original dos version of Quake should also be buildable from these
    sources, but we didn't bother trying.

    The code is all licensed under the terms of the GPL (gnu public license).
    You should read the entire license, but the gist of it is that you can do
    anything you want with the code, including sell your new version. The catch
    is that if you distribute new binary versions, you are required to make the
    entire source code available for free to everyone.

    Our previous code releases have been under licenses that preclude
    commercial exploitation, but have no clause forcing sharing of source code.
    There have been some unfortunate losses to the community as a result of
    mod teams keeping their sources closed (and sometimes losing them). If
    you are going to publicly release modified versions of this code, you must
    also make source code available. I would encourage teams to even go a step
    farther and investigate using public CVS servers for development where

    The primary intent of this release is for entertainment and educational
    purposes, but the GPL does allow commercial exploitation if you obey the
    full license. If you want to do something commercial and you just can't bear
    to have your source changes released, we could still negotiate a separate
    license agreement (for $$$), but I would encourage you to just live with the

    All of the Quake data files remain copyrighted and licensed under the
    original terms, so you cannot redistribute data from the original game, but if
    you do a true total conversion, you can create a standalone game based on
    this code.

    I will see about having the license changed on the shareware episode of
    quake to allow it to be duplicated more freely (for linux distributions, for
    example), but I can't give a timeframe for it. You can still download one of
    the original quake demos and use that data with the code, but there are
    restrictions on the redistribution of the demo data.

    If you never actually bought a complete version of Quake, you might want
    to rummage around in a local software bargain bin for one of the originals,
    or perhaps find a copy of the "Quake: the offering" boxed set with both
    mission packs.

    Thanks to Dave "Zoid" Kirsh and Robert Duffy for doing the grunt work of
    building this release.

    John Carmack
    Id Software

  • I think John Carmack is by far one of the most talented programmers in gaming (or perhaps anywhere else) today. This code release only confirms how cool he is, and possibly, what a good marketer he is as well. Consider the following:

    Geeks love games.
    Quake makes Id no more money.
    Geeks respect John Carmack.
    John Carmack GPL's Quake.
    Geeks respect John Carmack and Id 10-fold.
    Geeks watch Id more closely.
    Id releases Quake III.
    Geeks are more likely to buy Id products.
    Id's profits go up.

    Smart move, smart move...
  • Ye gods..
    Data files are NOT code.
    The GPL is also only enforced on the licensee, the licenser is free to GPL or not parts of the original code, if they do not themselves distribute them togeather.
    For example, I could write a program that says, "Hello, world!" and also says "How are you?".
    It would be my perogative to release only the "Hello, world!" function under GPL, and a version under a completely different license with both functions. I am the copyright holder for all the code, and can license it in all ways that I want..
    Whatever codebase I merge other peoples GPL'd code into must all be opened, however, because I am not the copyright holder and cannot relicense the code.
  • There is a Metaverse: Active Worlds [activeworlds.com]. It's a big VRML world; you can visit, buy property, build, hang out, shop, etc. It's been running since 1996. And nobody really cares.

    Interest in VRML peaked in 1997. Even though browsers now come with VRML plug-ins, many machines have 3D graphics boards, and enough people have the CPU power and net bandwidth to use it effectively, VRML is going nowhere.

    There's an attempt to resurrect VRML as Web3D [vrml.org], which is basically VRML97 represented in XML syntax. If you're really bored, you can try Excite's 3D shopping, [excitextreme.com]a Web3D application. It's doing 3D rendering in Java, which is why it's so slow.

    We have the technology. But we don't have the killer app.

  • I doubt we'll see the Quake3 source for a long time to come. Skins are just maped pictures, models are just exported 3d ap output, as are maps, reptty much.
    But I should point out that while Quake was a great engine for its time, it's not as well suited to a "Metaverse" concept as some might think. The rendering eninge isn't tweaked for todays hardware, and has some serious limitations on what you can do in the BSP. Not to mention that it was built specifically to be a singleplayer/multiplayer fragfest, and isn't designed or optimized for less violent interaction. We've seen some Quake mods that tried this sort of interaction out.. but you know what? Fragging people with rocket launchers is alot more fun then having big, blocky, and relatively static (only simple animations are possbile) models get in the way of what is essentially an IRC chat. The real question is- why does anyone care about recreating the physical world? In the forseeable future, we'll can never get it quite right (and I'm sure newer commerical engines will always outstrip what anyone can do with Quake), so why try rehashing nature? Why not try to further develop the sorts of abstract communication/interaction models we're already working on, and leave quake to fragfest.
  • >Two: I think Westlake has to Open-Source their stuff now, including all six Quakes they did
    >(software, 3Dfx, RAVE, QWsoftware, QW3Dfx, QWRAVE). They were based off the original Quake
    >source, after all, and probably still contain chunks of it (particularly the QuakeC engine and
    >the file-translation routines).

    That code was licensed from id separately. The fact that code from the same source tree (or even identical code) was later released under GPL does not affect that licensing agreement; even the GPL is not so viral as to affect licenses already in place when a GPL release is made.

    The only Quake I code that will be bound by the GPL (barring other third-party code later being thus released) is additions and modifications made to THIS particular blob of code and all of its subsequent spinoffs and later versions. The GPLed tree starts here.

    Although it would be The Decent Thing(tm) for Westlake to mirror the gesture, they are under no license-bound obligation to do so.

  • by tap ( 18562 ) on Tuesday December 21, 1999 @06:56PM (#1454906) Homepage
    1. Versions compiled for glibc20 and glibc21.
    2. Support for 24 and 32 bpp modes in the X version.
    3. Support for fbcon instead of the ancient svgalib.
    4. Make the X version change resolution and center the screen before it grabs the mouse.
    5. Use scroll-lock to grab the mouse, ungrab the mouse on pause.
    6. Support for wheel mice.
    7. Sound support using ALSA.
  • by spinkham ( 56603 ) on Tuesday December 21, 1999 @06:56PM (#1454907)
    1st, the GPL applies to Code.
    The levels are data files, and not code.
    Saying ID must open source them is like saying anyone who open sources a text editor has to give you all their text files.

    2nd, id software is the copyright holder, and is free to give away or not give away whatever they want. They can license their property under any license they want. They couldn't link their GPL'd code with non-GPL'd code (but we already established all their code is already GPL'd) but they could issue another version under another license, as long as it is all their copyright. In this version, no GPL'd code at all could be used, however.
  • They licenced the Quake 1 engine, originally. I read an interview with Romero. He said it was hard on the team when Q2 was released because it was code he wasn't familiar with from his id software work, and so they had to start from scratch again (almost). Eitherway, I think Half-Life is more fun ;-) Perhaps we'll see some interesting Quake 1 TFC related work.
  • Even more than that by the end actually- but some of the basic BSP rendering stuff is still the same. Keep in mind that the handful of guys who did it had several years, and it was their day job. And that that engine, though beautiful in its time, is already outdated. And most of the things that made Half-life great wasn't the quake-type engine itself, but rather the animations, linking sound to moving mouths, and the well designed gameplay and content.
  • Maybe I'm missing something, but if Quake 1's source code is only just being released, then what's here?

    http://bluesnews.g ameaholic.com/idgames.d/idstuff/quake2/source/ [gameaholic.com]

    Now, the files look quite small, but what are they if not the Quake 2 source code?

  • by John Carmack ( 101025 ) on Tuesday December 21, 1999 @07:07PM (#1454924)
    Nope. We are the copyright holder of all works, and we can release any part of it under any license we choose.

    Completely aside from that, I think it is still unclear exactly where the GPL wants the separation of code and content.

    Few would argue that every document read by a GPL word processor would be covered by the GPL, and most would place maps entered by quake into that catagory, but things can quickly get murky.

    Quake game mods are written in QC, but turned into data to be processed by the main code. I think the spirit of the GPL would want that code to be released, but it is only a small step from there to saying that every program loaded by a GPL operating system must be GPL, which is clearly not the case.

    John Carmack
  • If you've been programming for 10 years, just buy Steven's Advanced Programming in the Unix Environment to learn how to do basic OS stuff in unix, and get Computer Graphics, Principles and Practice, by Foley, van dam, et al. to learn how to do the graphics. Finally, the OpenGL redbook will round you out as far as graphics APIs go. For sound, go find the Open Sound System tutorial on the web.

    That and some elbow grease (experimenting is the only way to learn) will have you writing games as quickly as is possible.
  • by ewhac ( 5844 ) on Tuesday December 21, 1999 @07:26PM (#1454953) Homepage Journal

    Is the Metaverse nearing practicality?

    I don't think so, due to what I call the Database Problem (I'm sure there's a more formal name for it).

    Basically, for the Metaverse to work, you need a massive, distributed, dynamically load-balanced database. You need near-zero latency between servers to handle synchronization. You need to be able to have servers dynamically hand off clients to one another without the user being able to perceive it happening. You need to be able to support the one guy wandering off by him/herself in the "frontiers" of the metaverse. You need to be able to support the virtual stadium containing 100K independent spectators (plus the 30 or so guys playing Rocket Arena down on the field), and handle collisions and other object/object interactions between all of them ("Oh, no, Bob! A wild grenade just landed in the home field bleachers!" "That means a five point penalty, Dan...").

    IMHO, this problem is insoluble with current technology. Those who point to Ultima Online et al don't realize that they're side-stepping the problem by keeping all the users and data on a given server. Users and objects cannot migrate between servers. To do even this much, you need heap big server iron, which UO has. But to do something the scale of the Metaverse, you can't get one server that's big enough; you must go to a dynamic distributed system. No one has solved this problem yet.

    I suspect advancing CPU and network technologies will eventually make this practical, but I believe we're still several years off...


  • For Immediate Release

    Garland, TX - In the age of free software releases, president of Apogee Software, Scott Miller, has just announced that he will release the source code for one of his most successful shareware title to date, The Adventures of Kroz.

    "People only knows how to make 3D games today", said Miller. "By releasing The Adventures of Kroz to everyone, I hope to share the knowledge of moving ASCII characters around", he said.

    We have been in contact with some very reliable sources from Apogee/3D Realms that there is already some groups working on an updated version of The Adventures of Kroz, supporting Direct3D, OpenGL, and Glide. "This will be an enormous contribution to the open source community", he said.

    The Kroz series is one of the most successful of all times.

  • I have seen a lot of whining about quake1 data file here(an dumb arguement), but no one has addresed the issue of GPL'd quake1 + mods.
    I believe quake1 doesn't directly link with mod code, but has a sort of c interpreter built in.
    The mod code must then be parsed and run on that interpreter.
    Is it legal to:
    1) Use GPL'd quake1 with non-open mods?
    2) Distribue quake1 with non-open mod code files?
  • ;-)
    Why thank you!
    I was actually concerned about playing mods that others have made, not creating non-free ones myself.
  • I'm in the process of trying to get an internal piece of software released open source. It is a very limited purpose application, with no potential to generate revenue. It was written specifically to address a problem faced by a large number of people, and has the potential to generate massive waves of goodwill towards the company where I work. The funny part is that although my bosses agree with the above statements, they are unwilling to move the process forward.

    There seems to be an inherent barrier in business to giving something (especially software) away, even when there are other (non-monetary) potential benefits. This company is capable of spending thousands of dollers on a magazine advertisement, but is unwilling to release a fairly simple script that has the potential to generate a much larger amount of business. I would love to hear from others who have experienced this attitude and especially anyone has successfully overcome it.

  • OK, now that the whole source code is released, I can forsee quite a few more bot problems. Would it be a good idea to implement another master server list that uses the "blessed binaries" system much like netrek does?
    For those not familiar, anyone can get source and mess with their own code, but to play on most servers, you must use one of the binaries that are certified and contain an encrypted key. There would have to be a team that would spend time checking modified code for cheats.. Is this worthwhile, or should I get used to playing with more bot-enhanced lamerz?
  • We've seen some Quake mods that tried this sort of interaction out.. but you know what? Fragging people with rocket launchers is alot more fun then having big, blocky, and relatively static (only simple animations are possbile) models get in the way of what is essentially an IRC chat.

    This is true, but I see the "metaverse" idea as an integration of current UI and communication technologies. Image that each new "user" of the system is given a home somewhere on the metaverse, which is hosted by their own machine (much like an X-Server) either on the net or not, depending on their need. The current "desktop" metaphor could be extended very simply in this way; you have a desk-object somewhere in your home, and when you walk over to it, you can sit down, and your screen pans down and is replaced by your standard GNOME (or whatever) desktop. The Metaverse engine is backgrounded and you use your comptuer as normal.

    Throw in some simple Instant-Messenging technology and a friend of yours who is online notices that you're on the net again. He takes the "subway" to your house and either knocks on the front door, or provides some sort of password and enters. His Metaverse "client" piece becomes a client of your server. Your desktop is minimized, and you can talk to him using lip-synced Speak Freely chat, by connecting to him directly.

    The key is that all of the high-end processing is managed on your end, so your home is as complex or as simple as your computer can handle. The only information going out across the net is the same as a standard quake server (actually less, since in this example moving rockets and other such objects do not have to be figured in) plus whatever communication software is running underneath it all.

    I am by no means saying that the Quake engine would be the optimal underpinnings for such a system, but merely that we seem to be moving in the direction in which it might be feasible. Assuming that the later Quake Engines are someday gpl'd as well, current models and maps could be imported later on.

    I don't know how large gatherings of people (say 50+) would be handled, though if a room/map is relatively simple, then the only thing that would need to be rendered is the actual models, and everything else could be handled by standard IRC protocol.

    We have MUDs that work in this way, why not use the Quake engine to bring graphics to those worlds?

    PS: I for one can recall quite a few IRC session in which I would have *loved* to have had a rocket launcher handy... (c:
  • by cancrman ( 24472 ) on Tuesday December 21, 1999 @08:05PM (#1454977) Homepage
    Sorry for the inane response, but this is the coolist post that I've seen on /. for a long time.

    Yes I have been drinking.
  • Not going to say a word....
  • Basically, for the Metaverse to work, you need a massive, distributed, dynamically load-balanced database. You need near-zero latency between servers to handle synchronization. You need to be able to have servers dynamically hand off clients to one another without the user being able to perceive it happening. You need to be able to support the one guy wandering off by him/herself in the "frontiers" of the metaverse.

    I may be over-simplifying things here, but I don't see why this should be such a problematic issue. (First of all please see this post [slashdot.org] for a few ideas as to how I would see something like this happening) If you considered every game of Quake2 being played right now that is registered with a site on GameSpy, you can see which players are on which server, which map is playing, who else is there, what the score is, etc. Why not throw in hooks for a GameSpy-like server for the Metaverse? That way, you could see where all of your friends are, and enter the server that corresponds to their location in the Metaverse.

    Quake servers already handle where players are in map coordinates, where they are moving, objects they are "manipulating", and especially, clipping between it all. Say you are using the McKinley Revival map from q2ctf as your building. I've played that map with over 30 players with no problems, and there's quite a bit of territory to it.

    You seem to be getting hung up on how to handle scenes like the end-sequence to Snow Crash in which there are 100k people in the same "area" all interacting at the same time. I agree with you that by today's technology that we couldn't handle anything like that, but by the same token, when was the last time you saw 100k people in the same ... say ... irc chat room? If you really wanted to have a "live" event such as the one in Snow Crash, why not have multiple servers running the same map, which is a stage arena, with a small area for seats. The "performers" pick whichever server they want, and all of the "mirror" servers merely have bots mimicking the same actions for you. In this case you simply remove the audience interaction and you're set.

    And as far as the lone person wandering by themselves in the "frontiers" of the metaverse you simply set up some rules in which the "subway" system will move you to a map with a repeating background and wrap-around coordinates (when you walk off one end, you end up at the opposite side, PacMan style).

    The key to tying the whole thing together is the "subway" system, in which the length of your "ride" is merely how long it takes you to log into a particular area's server, plus the time it takes you to download the area's map, if you don't have the most recent version.

    --Steven M. Castellotti
  • Or is this something specific I just haven't read/seen/grokked?

    In terms of recreating reality, I'd much rather go through reality; learning how to fletch, rock climb, rollerblade, make swords, etc, than have an avatar do so. If the metaverse is about doing the impossible, then it isn't much more than a more advanced blending of video games, RPGs, and movies, I think. Life is hard enough, without retreating into an alternate reality to escape our own when our own is already so rich, so beautiful, so powerful.

    Perhaps I'm just missing the point?

  • The creation of "large amounts of artwork" (I just have to laugh every time I read that) is far from trivial. Artists like myself like to get paid for their efforts and don't like their work getting passed around, occasionally being "defiled" by some well meaning person with MS Paint (This happens more than you'd think). Even with extra time on their hands (something artists don't have much of), why would we want to do art for Q1?

    I understand and appriciate your point, but I do however feel that you are wrong. I would consider a project such as the Metaverse a non-trivial attempt at revolutionizing how people interact in an online environment, and that such at project would have to be largly fueled by the work of Open efforts on not only the software level, but the artistic as well. I am in no way attempting to trivialize work of artists, but I am suggesting that many artists would likely be interesting in participating in such a project, and for largely the same reasons - ego boost and sense of accomplishment.

    In order to get such a project off the ground, a near-trivial amount of artwork would have to be done, at least in the short term. In order to test the interaction between servers, one would merely need a simple player model w/skin, and a simple room with a few objects that can be interacted with. I could whip up the interior of my apartment with a Quake Level Editor in just a few hours, and I believe that there are many others that could do a far better job in far less time. The same goes for a simple player model and skin (and I mean *simple*)

    Once a working system could be implemented in which players can meet in one area, travel to other areas, communicate within and across areas, etc. the foundations would be laid for further progress. More attractive models, skins, areas/maps, interactive objects, and communications mechanisms could integrated and expanded upon.

    New users to the system would have to be outfitted with a default room, model, and skin, and I would imagine the artist responsible for those items would feel a certain sense of pride when seeing it used frequently. Also, home-made models, skins, and areas would offer other artists oppurtunities to flaunt their artistic skills.

    Of course, this is all merely my own opinions. (c:

    --Steven M. Castellotti
  • It usually isn't wise to trivialize the art department (unfortunately something that feeds my stereotype of programmers not realizing how much work it really is)

    I agree. I work with artists all the time. They know their G4s pretty damn well. I've seen some amazing stuff, but it does take a lot of work. What would interest artists in a GPL project? Does the credit and (hopefully) widespread distrubution interest you? You get to do whatever you want, basically. Do you guys do "art" in your spare time? (please, feel free to generalize for an entire profession ;)
  • Here's my question/solution from another post I made:
    OK, now that the whole source code is released, I can forsee quite a few more bot problems. Would it be a good idea to implement another master server list that uses the "blessed binaries" system much like netrek does?
    For those not familiar, anyone can get source and mess with their own code, but to play on most servers, you must use one of the binaries that are certified to be cheat free and contain an encrypted key. There would have to be a team that would spend time checking modified code for cheats.. Is this worthwhile, or should I get used to playing with more
    bot-enhanced lamerz?
  • Wrong, wrong, and wrong again.

    Id released their own code. As such, they aren't bound by the terms of the license, only the users are.

    This means that they could GPL every second line of the code, and release the rest under a look-but-don't-use license, and it wouldn't become GPL. Only things you linked to the GPLed bits would be GPL.

    Also, the GPL only applies to the application source. The levels, graphics, and sounds aren't included. They aren't needed to have the application. This is like GPLing a word processor and expecting that any documents produced with it would be GPLed.
  • by Dalroth ( 85450 ) on Tuesday December 21, 1999 @08:45PM (#1454997) Homepage Journal
    ID just released the Quake 1 Source code. That may mean nothing to some of you, but I'd like to point a few things out.

    I'm sure some of you are familiar with the GPL, while some may not be. The GPL is the license which most Linux or GNU software are released under. The whole principal behind this license is to guarantee that the GNU suite of software REMAIN open source. Once Open Source, always Open Source (sure, the maintainer may decide one day to take a later version off of the GPL, but the earlier versions would still be covered by the GPL). I won't get too technical here, I'm not a lawyer, but to further illustrate this point I'll quote the readme file that comes with the Quake1 Source code:

    "The code is all licensed under the terms of the GPL (gnu public license). You should read the entire license, but the gist of it is that you can do anything you want with the code, including sell your new version. The catch is that if you distribute new binary versions, you are required to make the entire source code available for free to everyone."

    That last sentence is what hurts us as a community. If you thought EQ had a bad effect on TF, well you ain't seen nothing yet.

    Right now, as we speak, I'm 100% positive somebody out there is trying to compile a version of QuakeWorld with some special features to give him an advantage (cheating). It's inescapable now. Cheating is now easy and simple. No more hex editing or debugging binary code, no more proxies that use some flaws in the way the game works to give you an advantage. No, now people can create real cheats, powerful cheats, cheats we can't detect and they can do it easily. Wall hacks that work everywhere regardless of the map, real autoaim, workarounds for Concs and Gas grens. The possibilities are endless.

    What really sucks, however, is that because Quake is now GPL, we can't create a special version, controlled by a 3rd party that we can all use and know that nobody out there is hacking it. They by virtue of the fact that Quake is now under the GPL are required to release any modifications they make for Quake to the general public, and guess what that means? There version will be just as easily hacked as regular quake. Not to even mention the logistics of getting a 3rd party working on the game, and getting everybody behind this one version of quake.

    The ONLY possible solution is if somebody were to get special permission from ID software itself to release a version of Quake w/o having to release the code. I find this highly unlikely, however, the GPL has it's purpose and I am fully behind open sourcing Quake. There is a lot that can be learned from the game code, and it will benefit people far more this way.

    TF has been on life support for a while now, but ID just pulled the plug. gg ID. gg TF. It's been fun. Time to move onto a new game however.

    Formerly of
    Dark Shadows
    Formerly of
    Formerly of
    The ShaoLIN Brotherhood
    Formerly of
    The Ministry of Pain
    Formerly of

    See you guys in UT and Quake 3.


    To further expound on that, some people have said that there are people out there who don't cheat, and the majority of players will continue to play honorable.

    I do NOT disagree with that. You see, that's not the problem. It's the social implications that will arise as a result of this. You now know that the person on the other side of the internet has unlimited potential to cheat. Any time you get your ass reamed, you're going to be supicious, wether that person really cheated or not. The few people who do cheat, will cheat like bitches and will only further justify this suspicioun. Soon it'll grow to hostility as everybody distrusts everybody and the scene is torn apart at the seams. You say your clan will play honorable, you say your clan won't cheat. But how do you know player (X) isn't cheating? How do you know player (Y) isn't cheating? You WILL be suspicious. It's hard enough to NOT be suspicious as it is.

    That is going to be our deathknell. We all saw how we reacted to eV. That was mild compared to what can happen with this one.



    If you REALLY care that much, the best thing you can do is send a nice pleasant email to them asking them to allow an exception for somebody to do a closed version of the game with the sole purpose of allowing the community to survive. Spamming them, threatening them, yelling at them and accusing them is the last thing in the world you need to do. That will only shut them off from teh community completely.

    Personally, I think in the short run this really sucks. But indirectly, in the long run, what they have done by releasing the code will far outweigh the death of the Quake community. The projects that grow from teh quake source, and the knowlege people learn by using it and studying it will have an impact down the road, however indirectly it may be. I for one am thankfull ID did this. The game code will benefit me later in life (and boy do I ever intend on studying it and learning things work) than a few more months of TF will.

    HendriX-uNF wrote:
    > while some people might consider this as a ground
    > braking present from ID, its also the death bell of
    > the community that we played TF with. This move that
    > ID just did was nothing more than to push people to
    > play Quake 3, in other words they killed a community
    > to create another one.
    > I will never think in any way that John Carmack did
    > not know this. He knew quite well that if he killed
    > TF, he would gain unbelivable amounts of money while
    > pushing people towards the Quake 3 scene. Although
    > this "push" is not that obvious to some, to our TF
    > community, its going to strike like lightning in the
    > next couple of weeks.
    > Thx ID for creating this community, no thanks for
    > killing it.
    > HendriX-uNF

  • >know why seti@home and distributed.net don't
    >release their source code? It is because the chance
    >of people hacking the code and wrecking the
    >system outway the benefits of letting people have
    >access to the code.


    It is one of the basic rules of producing a secure system that you assume that your code and model is and will be open for anybody to look at. You have to make it secure with this assumption. Things are too easy to reverse engineer for it to be worth your time pretending you have some sort of 'secret' approach.
  • Now that would be cool.

    someone needs to make an X window manager based on the quake engine giving a true OpenGL 3D desktop environment :)

  • For many years, in fact ever since I installed amitcp and learned how to Goraud-shade on my lil ol Amiga, I've been working on various implementations and designs for useful 3D interaction.

    There are a number of people working on projects related to these goals, a short search of freshmeat will reveal a good percentage of them. I have my own code, and I'm sure a fair number of programmers out there have code on this particular ideal at one stage or another.

    From all this time, heres some insights I'd like to share:

    1. OpenGL. Bloody genius. Made my life a hell of a lot easier. Trying to work out complex network protocols as well as keep up with the latest high-speed rendering techniques and maintaining some semblence of cross-platform code was impossible.

    2. Linux. While I'm sure many won't agree, and they're welcome to their opinion, the sheer accessibility of Linux' networking and system functions has made things a lot easier. gcc and Mesa don't hurt :)

    3. Libraries. Lots of them have been useful at one point or another in my planning, specifically Mesa and linuxthreads, and less specifically all the people (Including the GNU guys and various universities) writing embedded language libs (see below)

    We are out of the chaos of bandwidth limitations and CPU limitations that hampered me when I first tried this kind of thing. It wasn't possible to draw much more than 30 triangles/sec without using assembler, and only the very best of the demo scene were doing anything decent in 3D. Now days 20 lines of C will get you a fully lighted, spinning cube with textures, in realtime, and not a hell of a lot more will get you a landscape engine, a model loader and some physics.

    Bandwidth as well, is not as bad is as maintained. You don't need the kind of bandwidth necessary to keep every object and every user in sync, even in big-visibility situations. The simple rule is to only have to sync those items controlled by a human, we're the only unpredictable ones.

    The inclusion of embedded languages allows every object, even those appearing to behave in a random fashion, to be deterministic. At this point, we have the CPU to manage such interactions and processing, and we have more than enough bandwidth available to maintain the state of all the humans, even in a fairly busy scene.

    Obviously I'm glossing over some details, latency being the biggy, and if I knew how to solve 'em all I'd be busy writing the damn thing, but I think that the point is more not whether its possible, but what the hell are we to do with it should we make it?

    As many have pointed out, and I agree, creating 3D chat is worthless. IRC is a far more effective medium for such things, and without VR headgear and voice transmission, the 3D would just get in the way. On the other hand, 3D collaborative environments are already here, at the high end with people like SGI etc. They've found good uses for them, collaborative visual design etc, and such things could scale down nicely into internet applications.

    The one closest to my heart is mapping systems to visual entities, essentially expert-system style bots that control networking and monitoring on machines on a network. Here the bandwidth and latency issues disappear (100mbs is pretty common) and the visual mapping is effective (a single-glance can convey the status of the network).

    There are many other similar concepts which certainly deserve investigation, so I say unto you programmers out there, busy conjouring up RPG worlds the net can access:

    "Not yet. But that don't mean there aint some good stuff to do".

    And to those who haven't tried it yet, get your teeth into OpenGL, it rocks.

    Tools I believe we need before an Open Source effort can be truely effective:

    1. A good, open source, 3d modeller. I love AC3D (http://www.comp.lancs.ac.uk/computing/users/andy/ ac3d.html) but it isn't open-source and I can't add stuff to output to formats I need or new features (script attachment, physics definitions etc)

    2. A platform independant, embeddable, extensible, interpreted language with a bytecode compiler for size, a good method of removing all filesystem/memory access components, regex, and a fast executor. Guile (http://www.gnu.org/software/guile/guile.html) is good, but it doesn't do all of that.

    3. An effective, fast, secure, broadcast-capable combination packet/stream networking library with priority (send this msg NOW, send this message when the queue is clear, this message MUST arrive this message doesn't have to). Should be a fairly easy build on top of udp (with tcp possibly for reliable messages) and a bit of encryption.

    If anyone knows any good implementations of solutions to the above, I'd love to hear it :)

    I've got a lot more to say but I'm far enough off topic as it is, and a long dissertion on expert-system AI would not really be appropriate.
  • If the metaverse is about doing the impossible, then it isn't much more than a more advanced blending of video games, RPGs, and movies, I think. Life is hard enough, without retreating into an alternate reality to escape our own when our own is already so rich, so beautiful, so powerful.

    This is true, and an important point, but the Metaverse metaphor allows more important things than an escape from reality. The Metaverse would allow people all over the planet to communicate in realtime in as close to a "real" environement as possible. This is especially important to people who couldn't do so otherwise.

    How many natural resources (not to mention economic ones) are wasted in flying/bringing together a group of people together for a meeting in the real world? With a tool such as the metaverse, people could comunicate in a visual and physical manner without wasting valuable resources. Granted that nothing will ever replace physical meetings between individuals, sometimes such meetings are either impossible or at least impractical. So the Metaverse concept could be a useful tool for communication and collaboration between people at great distances.

    Also, while it is very nice that you would prefer to go through reality and practice rock climbing and rollerblading, if you were physically disables you could do no neither (in many instances). If I was in such a situation I would certainly enjoy being able to at least simulate such an experience!

    I agree with you that nothing can substitute for a real-life experience, but as for myself, the idea of experiencing things such as 800 mile-an-hour motorcycle races with danger of injury and virutal combat without actually injuring anyone or thing is rather appealing.

    I would consider any technology that could satisfy man's demonstrable thrist for violence and conflict without actually entailing such negative reprocussions would be a Good Thing(tm)


    --Steven M. Castellotti
  • If microsfot was a "cool" company, like id (and thats a loong stick to measure by), they would release their old "useless code". It's the best way not to have to support it. Maybe that should be a law? If you won't support your own software, you have to GPL it, or at least open the source.

    Opening the 5/8 year old Office95/Win3.11 code could be tremendously helpful to (new) developers. At the very least they make great case studies for student courses.

    If these are the "greatest engineering task(s) in human history" then perhaps we should learn how they got there..blah, blah, just pissed at M$ stuff for eating some email.

  • by Anonymous Coward
    I've managed to compile it under FreeBSD in X11 mode, without sound or cdrom support (yet). All you have to do is edit the Makefile so that only X11 binaries are created, modify cd_linux.c and snd_linux.c so that they don't do anything and now you have a native FreeBSD version. No more Linux Emulation.
  • I'm really setting myself up as a target for massive flames here, but this latest development has made a tough personal choice even tougher.

    As you all know, Quake 3 incorporates a new form of copy protection. Each copy of Quake 3 comes with a unique CD key. Basically, when you attempt to play a networked game, your CD key is sent to id Software's authentication server. If it's good, and not already in use by someone else, the server allows you to play. This scheme is to combat unsanctioned copying of their game.

    I have several philosophical problems with this:

    • If id Software's authentication server dies, no one can play a networked game. Designing in a single point of failure is always a poor idea.
    • CD keys can be revoked at their sole discretion. This can theoretically be used to shake down legitimate users by claiming their key was compromised. This vulnerability to users bears consideration. (Note that this is theoretical; id Software's management would never do this. However, how far would you trust -- oh, let's say -- Microsoft with such a scheme?)
    • It's an attempt to impose artificial scarcity in a Universe where it doesn't exist. Digital bits are, and always have been, easily copied at zero cost, which has certain unavoidable economic consequences. Trying to build walls against these consequences is, ultimately, foolish. See my essay, Digital Sculptures [best.com], for a more detailed discussion of why this is so.

    id Software published Quake and Quake 2 without onerous copy protection in place (Quake 2 would check if the CD was in the drive, but that was it), and id Software made a lot of money. Now here we are at Quake 3, and we are suddenly informed that, "software piracy [sic] has become an enormous problem," without any hard data to back it up. To combat this alleged problem, hard-core cryptographic authentication techniques have been devised and implemented, presumably at significant cost to id...

    For a game.

    Moreover, id has been encouraging people to treat their Quake 3 CD keys as a secret as closely held as your credit card number. This analogy is grossly flawed in that the two numbers protect two very different things. Accidental disclosure of your credit card number could compromise your account and credit rating. However, accidental disclosure of your CD key probably won't compromise your copy of Quake 3. Rather, it compromises id's ability to sell more copies. Thus, with this flawed analogy, id attempts to conflate sales projections with personal property and reputation.

    Are we to presume that, if this particular form of copy protection hadn't been implemented, it would have been impossible for id to turn a healthy profit? I find this very difficult to believe.

    For primarily these reasons, I have elected not to purchase a copy of Quake 3. I find copy protection, on general principles, to be an unnecessary inconvenience, and smacks of an attitude of selfishness that has very little place in a Universe where scarcity does not -- and I contend should not -- exist.

    Lest you think I am some kind of W4R3Z M0NK3Y, let me, a legitimate purchaser and owner of Quake and Quake 2, state very clearly and <STRONG>ly that John Carmack and everyone at id Software deserve every last penny they receive from sales of their software, plus more besides. Carmack is an absolutely brilliant man, far above my station and ability, and deserves every Ferrari he can lay his hands on. Same with the artists. They have done an absolutely incredible job of creating compelling new worlds for us to explore. All of them have worked unbelievably hard, and earned all the rewards we might wish for ourselves, were we in their shoes.

    That's why this release of the Quake source code makes it so much harder for me to stick to my decision. By doing this, Carmack, Zoid, and everyone else at id have reinforced their astonishing coolness and deservedness of my support. I have been enriched by this release, which has only strengthened my respect for them. Against all "common business sense" (which is frequently common but rarely sense), these guys dropped one of the best known jewels of gaming history into the Digital Commons and said, "Here ya go." id Software have done virtually everything right.

    ...Except for the Quake 3 copy protection.

    The infinite copyability of digital bits at zero cost forces a new kind of economic model, one that is fundamentally incompatible with the market-based ecomony we know today (which depends on scarcity/inconvenience to survive). I prefer to acknowledge this new economic model, and try to find ways to live and survive in it. Copy protection, on the other hand, is an attempt to deny this reality and impose artificial scarcity/inconvenience. This is, to a very limited extent, necessary if we're going to continue to be able to develop and enjoy monsterously complex games like Quake 3 (I know I couldn't draw all those textures myself). But the fundamental nature of digital media makes this an extremely brittle solution, as any publisher beleaguered by "piracy" will tell you. Once your protection scheme is cracked, natural forces take over.

    I don't even pretend to have a solution to this chasm between our current market-based economy and The (Real) New Economy heralded by digital media. We as a society are still coming to grips with these new capabilities, and have only just started to form new social rules about them. This process of exploration isn't anywhere close to complete yet, so now is definitely not the time to try to bend digital bits into an economically expedient pretzel. (This is true not only for id Software, but also for the RIAA, MPAA, and all the other content providers trying to impose copy protection on the entire digital stream.) If nothing else, it will only make the social shock all the worse when Star Trek-style replicators finally turn up.

    id Software: Please pledge to, at some point, drop the copy protection. It is contrary to the nature of digital media, and your unique position in the industry makes me confident you don't need it, anyway.


  • by ewhac ( 5844 ) on Tuesday December 21, 1999 @10:37PM (#1455031) Homepage Journal

    If you thought EQ had a bad effect on TF, well you ain't seen nothing yet.

    I'm not familiar with 'EQ' and its relationship to TeamFortress. Could you provide a pointer to some historical background?

    What really sucks, however, is that because Quake is now GPL, we can't create a special version, controlled by a 3rd party that we can all use and know that nobody out there is hacking it.

    Complete disagreement. In fact, it is now easier to do this. QuakeWorld in fact implements this to a very limited degree by transmitting checksums back and forth on the models and maps being used by the client and server. Apply these checksums or, if you prefer, an MD5 digest to the client and server binaries and you should be able to build a web of trust fairly easily.

    Set up a Web server containing a known "cheat-free" version of the QuakeWorld server and client. Use GPG to sign the binaries and source archives. Allow peer review of the code, and allow reviewers to co-sign the cryptographic signatures on the archives. Over time, people will come to trust you as a source of cheat-free clients and servers.

    This next step is a bit harder, but it should be possible to come up with an authentication method that a server can use to assure to a very high degree that the client is uncompromised; and that a client can use to likewise verify a server.


  • I managed to get svgalib version of quake/quakeworld working.. but the 3 jmp tables in the source cause a seg fault (my system: p3 450, linux 2.2.13, latest debian unstable branch) First one is in math.s jmp Ljmptab(,%eax,4) I had to replace this with individual tests.. (cmpb/jne/jmp/etc) I don't know whats wrong with the jmp, either it is jmp'ing to a wrong address, or its accessing wrong memory (%eax does have valid values)
  • But the question is still WHY. Why have a 3d representation of a 2d desktop? Why must my friend take the subway over to my house and knock on the door when he can be here instantly with chat/videophone/etc. Why does it have to be connected to a 3d world that only emulates the one we already have? 3d games like quake work because they're based on running around and killing each other- something we can all identify with. But when it comes to communication, we can handle much more abstract, and perhaps much faster and better methods than recreating the look of the "world" around us. It just seems redundant to have me sitting at my computer looking at a monitor display that shows me sitting at my computer looking at an IRC chat. Maybe someday in the future, we'll be able to eliminate the first step- the physical existence, but for now, let's cut out the poorly rendered 3d middleman.
  • They were the real Santa Claus as I recall. I made a quick scan of the article headers and I don't see any mention of them.

    Back when Quake was new, crack dot com had the source on one of their servers. Someone happened to lift it from them.

    Would Carmack still be giving us this official source release today, if that event had never taken place? He seems like the type who would, but you have to wonder if this subject ever came over at id, before releasing this.

    Best regards,

  • Well, there is still a significant different between an illegal copy of the sources appearing on some FTP servers and an official, free for everyone, GPL release... For example to a games developer the warezed version (I think that the right term here) would only be good to take a quick look at and see how a certain thing was done while now you can really do anything you want with it.

    With this legit version id are giving something away that they charged about 1M$ not too long ago. Good karma for them and I again feel nice about buying Quake 3 instead of getting it in some illegal way.
  • But you're not changing the GPL, just the terms of your license.

    Your actual software license is not the text of the GPL, but:

    Copyright (C)

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

    This point is moot, however, because the quake map and pseudocode compiler (the Quake engine) and the data it works on (the precompiled quake-c and the maps) are separate entities.

    A Quote from the GPL:

    These requirements apply to the modified work as a whole. If
    identifiable sections of that work are not derived from the Program,
    and can be reasonably considered independent and separate works in
    themselves, then this License, and its terms, do not apply to those
    sections when you distribute them as separate works. But when you
    distribute the same sections as part of a whole which is a work based
    on the Program, the distribution of the whole must be on the terms of
    this License, whose permissions for other licensees extend to the
    entire whole, and thus to each and every part regardless of who wrote it.

    Thus, it is not the intent of this section to claim rights or contest
    your rights to work written entirely by you; rather, the intent is to
    exercise the right to control the distribution of derivative or
    collective works based on the Program.

    In addition, mere aggregation of another work not based on the Program
    with the Program (or with a work based on the Program) on a volume of
    a storage or distribution medium does not bring the other work under
    the scope of this License.

    "I already have all the latest software."
  • My understanding of the GPL is that it has virus like qualities in that all derived works of a GPL'd code base are also 'infected' with the GPL.

    Does this mean that Quake 2/3 are now also GPL?

    I find it hard to believe that there is NO shared/derived code from one version to the next.

    Or does the GPL allow for cases exactly like this where a derived work (Q2) exists prior to the GPL being attached to the precursor (Q1) means that the derived work is exempt?

  • I would think a little Quake might be just what
    he the thing. Now that Quake is GPL RMS can play.

    http://www.netaxs.com/~esr/geeks-with-guns/rms-e at-lead-software-hoarders.jpeg

    After all would you want to be dealing with this in a dark CVS tree?

    In Service
    Charles Puffer
  • ... worked for HalfLife

    and StarCraft too.

  • How about this:

    Make a closed source program that acts as an exe loader / verifier / proxy for the open source main game.

    John Carmack
  • more pics and the story they came from.

  • If you DO want a fair game, you'll have to invent one that runs off a central server which arbitrates all actions. Then you have a single point of trust-- the server. As long as you are depending upon the clients to not cheat, you cannot guarantee anything.

    To a large degree, Quake already does this. If I remember correctly, the server makes all decisions on collisions and movement. The client simply says "I want to move here, I want to rotate this much, I want to fire a rocket, etc.."

    The biggest problem is the ability to create client that completely ignore the rules on redering the scene. It will be much like the feature in qtest that allowed people to turn off texturing and shading, which, though it made the maps hard to navigate, also made all other players and objects stick out like a sore thumb.

    Now people will be able to play this game with no lighting, or with flat shading, and it will be much easier to see. Of course, it will also be possible to integerate "Stoogebots" into the client, but that's always been a problem, and those people are usually pretty easy to identify. Its the ability to add small, undetectable advantages that will ruin the game.

    I really hope Carmack had altrusitic motives in releasing the source. The proximity to Quake 3's release makes me suspicious. There are a lot of us "old school" Quake players who prefer it to Quake 2, for it's faster response time and less use of system resources. Though releasing the source may spawn a great deal of community creativity, I, like the original poster on this thread, think it is going to the kill the actual Quake "gaming" scene. Now to get my Quake fix, I'll have to play Quake 2 (yeck), or buy Quake 3 and play on those servers. (And also buy a whole new system that will be able to run it!)

    \begin{Homer}Sure Carmack is generous... LIKE A FOX! \end{Homer}
  • This would make a great "budget disc". Loki could put the Quake 1 data + soundtrack on a CD along with Quake 1 for Linux (compiled for several architectures) and the source code. Maybe even toss in a level editor or three. For a reasonable price (~$15 ?) I'd pick it up.
  • I totally agree.

    And instant karma is also unnecessary because the real good stuff usually gets moderated up very fast. I'm always amazed that there must (?) be so many folks with moderation points so that insightful links etc. are going up to five only minutes after the message was posted. How many Slashdot readers with accounts are there?

    To the original poster: If you're interested in all that JC had to say in this forum, simply click on his user info and you get a list of his statements.
  • I have applied for a project at sourceforge. Should get comfirmation within 24 hours..
    In lieu of coming up with a good name, I called it GNUquake. ;-)
  • I have started a project at sourceforge.net called GNUquake that will be aiming to GNUify quake, make building for multiple platforms easier, improve the sound code so it works with ALSA, and whatever else you all want to add.
    The project will remain compatible with the binary quake release, but eventually I would like to add more features that can be used with other GNUquake servers and clients such as a "blessed binary" system to minimize cheats, perhaps protocal improvements, and again whatever is concidered needful.
    I am curently looking for a few people who want to help administer. Email me at "spinkham at users.sourceforge.net" if you are interested.
    Note that CVS hasn't been updated, as the domain isn't quite active yet.. It should be up in the next 4-6 hours...
  • I actually helped port 1.08 to AIX back in 96-97. At the time, we had 1.08 available on the PC, but only .98 on AIX. and we had some pretty high powered AIX boxes. so after doing some searching, I actually managed to find the source free on the net. Anyway, the AIX support was still in there, but broken a couple places. so I patched it up, and wow, it worked! and even better than .98. then we could play against PC's again!

    Anyway, I talked to Zoid about releasing it, but he was very unhappy that I had gotten the source, so I thought it was against my best interest to release it (at the time, I thought the source was legal because I had found it on a regular FTP site). But IBM was still distributing Quake 1 v.98 on their Demo disks (which i'm sure they still are).

    Anyway, maybe i'll see if I can port it again, as my original copies are prolly lost on an old 43P.

  • I don't see any reason why not. It would make a very nice addition to a linux distro.

    My question is: are the pak files also GPL'ed, or just the engine?

    Well, either way, thangs goes to id for the great work they've done. Q1 is still the greatest game of all time! I still remember all of the fun we had my freshman year in college loading it on all of the machines in the computer lab. Ahh, the memories.
  • Well, they released wolf3d and doom. In another 2 or three years, maybe it will be quake 2 89

    Jazilla.org - the Java Mozilla [sourceforge.net]
  • Another culture vanishing is OS/2. Hope IBM will decide to release their sources one day.

    My understanding is that they can't because Microsoft owns part of it too. And, as you can imagine, it would not be in Microsoft's interest for OS/2 to go Open Source. It would make OS/2 more viable and increase the users' number of choices. From Microsoft's point of view, Choice is Bad Thing, so this simply cannot be allowed to happen.

    OS/2 will never be freed from its owners, and therefore is permanently dead, unless IBM changes their mind about marketing it. (BTW, I am typing this on an OS/2 box.)

  • I'm not an expert in VR simulation technology but since the sort of implementation we're discussing is still some way off, I doubt it matters very much. anyway, it seems to me that some parts of your argument are somewhat misdirected.

    You need near-zero latency between servers to handle synchronization.

    This is undoubtedly true, since predictive methods will not be very accurate when dealing with humans in a more or less unrestricted situation.

    You need to be able to have servers dynamically hand off clients to one another without the user being able to perceive it happening.

    It'd be nice but it's hardly necessary. You could have quite a fulfilling time in an extended VR world even without having the option of walking everywhere. It seems unlikely to me that this would be allowed to hold up development. Instead, visitors will put up with virtual subway and elevator rides between locations which stand in for a "windows hourglass" during transit.

    You need to be able to support the one guy wandering off by him/herself in the "frontiers" of the metaverse.

    I don't see any problem there as long as the relevant server is up. The load on the server ought to comparatively low when minimal when serving just one user, so infrequently visited locations could be hosted on small machines or a number of them could share a single server.

    You need to be able to support the virtual stadium containing 100K independent spectators...

    This is interesting. Actually I don't think it will present a huge problem because a member of the audience can only interact fully with his immediate neighbours, can only observe or signal to the next distant ones, and can only observe more distant ones at comparatively low resolution. People on the other side of the stadium won't amount to much more than a colored dot. Also, interactions in such a setting are fairly limited. So, each visitor's environment only contains full information about a handful of neighbours and much less rich data about people further away. The total amount of interaction going on could be less than with say 20 people in a room having a party with conversations, subtle body language etc. If someone sitting three rows behind you recognises your avatar and calls out to you, the system detects this and upgrades your representations in each other's sensoria while communication takes place.

    ...(plus the 30 or so guys playing Rocket Arena down on the field), and handle collisions and other object/object interactions between all of them

    Well, that's just another game of Quake. I believe they already have that working :o)

    Consciousness is not what it thinks it is
    Thought exists only as an abstraction
  • Quake game mods are written in QC, but turned into data to be processed by the main code. I think the spirit of the GPL would want that code to be released, but it is only a small step from there to saying that every program loaded by a GPL operating system must be GPL, which is clearly not the case.

    No, Quake game mods are not required to be under the GPL, at least not if my understanding of the way they work is correct. It's either an interpreter or a JIT compiler, correct? Well, just because an interpreter (like bash) is under the GPL doesn't mean that all the scripts it interprets have to be under the same license. Just because the GCC compiler suite is GPL'ed doesn't mean that the code you compile with it has to be.

    The GPL does apply to both statically and dynamically linked binaries, however, so Quake 2 game modifications would have to be GPL'ed if Quake 2 itself was released under only the GPL. If you released Quake 2 in the future under the LGPL then binary-only modules would be fine.

    The Quake 2 case is interesting, though, since it's already released under a license that (if not explicitly, than by years of practice) allows binary-only DLLs to be released; and rereleasing it under the GPL wouldn't take away that right for people who purchased the original license. So would people who *hadn't* purchased the original game be allowed to write binary-only modules for a GPL'ed Quake 2? I haven't a clue. Ask RMS.
  • Under Redhat 6.1, I compiled qwsv and qwcl. I found that at runtime, I get an error like this:

    Fatal Error: Pak file has 507261234 files

    (or something similar).

    There's a problem in QW/client/common.c when it reads the pak file header. Could be a signed/unsigned issue. I wonder if anyone actually tried running the output after compilation at id.

  • It can think it counts checksums, but you can spoof it all the way. Ever notice? You can do anything with a program by using the ptrace() function call and/or the LD_LIBRARY_PATH environment variable. You can make the loader think it's checksuming one file whereas in fact it's checksuming another, and all sorts of weeeeird things like that.

    Even without getting into ptrace(), there's an obvious race condition in this ``read the binary, checksum and execute only if correct checksum'', since the exec() system call demands a filename and afaik there is no fexec() call which would take an already open fd to exec.

  • The Metaverse is not necessary for group meetings; I hope you realize this?

    At worst VR goggles, sound stages, and arrays of video cameras can do this today. At best you'd use digital whiteboards, teleconferencing systems, videophone solutions, and connected PCs.


"It takes all sorts of in & out-door schooling to get adapted to my kind of fooling" - R. Frost