Quake 3: Arena Source GPL'ed
inotocracy writes "At John Carmack's Quakecon 2005 keynote he promised that the Quake 3 Arena source code would soon be released-- turns out he wasn't just pulling our leg! Today it was released, weighing in at 5.45mb, it makes for a quick download and a whole lotta fun. Developers, start your compilers!"
How big is the game engine that you wrote? 5 megs is a lot of code.
Take a look at VALVe, at least they released the source of Half-Life 2 before the game was released...
Ohwait...
Which of the engines and why?
Tiny!? I'd like to see you write over 5mb worth of code.
#define cdkey_correct 1
October 2, 2003, if I read my log... er, recall correctly.
If you don't want to register, but also don't want a capped download: Demon FTP.
I wonder what the most bizarre platform this can be ported to now is?
Follow me
Anyone fancy posting a link to the actual download, rather than yet another javascript-implemented, advert-laden bullshit fest, registration required download portal?
http://planetquake3.net/download.php?op=fileid&lid =2214 Mirror--
Remember, http://www.bugmenot.com/ to get the download at more than 50KBps without having to sign up.
every time something gets released for free i loved to gripe and complain about something totally ancillary, like the fact that i cant get it fast enough...
and then i entered the second grade.
Well it was actually released at ftp.idsoftware.com, but since that's overloaded it made good sense to post the link to FileShack, since that can probably take the additional strain of a Slashdotting.
You swear too much.
next week or so?
I've been poking around the source since yesterday afternoon (late as usual slashdot) and it's generally MUCH cleaner than Q2. Things are well organized, categorized, and sensible. The id penchant for clumping a dozen header files into just one continues, but overall it's easy to find the code you're looking for. Hell, it took me 3 days to find the BSP code in Quake 2 because they had called it model_t or some such meaningless thing. I can see why Q3 was so popular for licensing, despite being in C. Indeed, it's some of the cleanest C code I've seen laid out to date. Naturally there are hacks here and there, and a few very weird design things...and the C versions of what would in C++ be inheritance and aggregation are hilarious. Overall though, I think this code is going to go a lot farther than Q1 or Q2 source ever did. Compared to everything else out of id, this source is really quite nice. No stretches of pages of uncommented assembly code. Most functions have documentation if it's not obvious what they do. All of the members of the major engine structs are well commented, for the most part.
In short, I like. 1 thumb up. (Hey, it's still C, and I'm a C++ guy in and out.)
I'd like to get it but don't shop online (I know, I know, I'm being a fool), and I haven't been able to find it anywhere, even second hand. It looks like it was never released on Sold Out or Xplosiv or anything like that. Anyone know if there are plans to do any sort of re-release?
I am trolling
In this day and age of everyone trying to patent this, litigate that, and everything in between, it's refreshing to see a company, that really doesn't have any motive to make any money off of this, AND in an industry where this concept seems somewhat unusual, release its source code, instead of letting this go off into some useless void. Actions like can only help the industry as a whole, as some burgeoning programmer will have many sleepless nights ahead spending his/her own time learning the tips and tricks employed in this source code. Thank you.
Mirror
So what can be done with this? Since it's the Q3 Arena code, are developers limited to similar games of running around shooting each other? Or, could someone use this code and remake some older game such as Ultima Underworld?
Is this documented so that dumb people like me can look at it too? Maybe some third party manual/tutorial?
You're speaking of writing 5 MB code like it's something amazing... It's nothing special really... A product at work is coincidentally 4.9 MB of source code, resources excluded. But yes, it may (or may not) be a bunch of code for a game engine, I'm personally a bit unsure of that. But an impressive amount of code? Not even close.
hejdig.
/OF
>Tiny!? I'd like to see you write over 5mb worth of code.
"5 mb of code." Wow! I guess that is how they make the conductors narrower and narrower in the processors!
Just think of it this way, 5 MB of code turns into a full CD/DVD of gaming.
-----BEGIN PGP SIGNATURE-----
12345
-----END PGP SIGNATURE-----
You know, AMD, P4, etc.
Also, will any builds made by us work with punkbuster?
Actually, it's a 5MB ZIP archive. Expanded, it yields about 23MB, including 10MB of .c sources. Like you said, definitely not "tiny".
Just think of it this way, 5 MB of code turns into a full CD/DVD of gaming.
No it doesn't. The CD contains the game graphics that take a lot more space than the compiled binary. But anyways 5 MB is a lot of code.
WTF does D3 have to do with this, or UE3 for that matter? According to the timestamps in the source, the last time this code was touched by id (not counting preparations for GPL release) was 2002. And the number of games based on Q3 tech...it's a massive portion of the industry. If you play any FPSes, you've probably played a game based on the Q3 engine. Call of Duty, Jedi Academy, and Jedi Outcast, for example, are fairly well known examples.
One might assume that with the source being available, popular Q3 mods such as urbanterror could be released as standalone games. However, most mods depends on the PAK files from the game, which have not been open sourced.
But they've not even released a game using UE3 yet!
Christ...
It's 5MB after it's been compressed into a zip. As you may or may not know, zip compresses text really well.
The uncompressed size of the source is just over 35MB.
That's code we're talking about. There is no map, meshs or textures into this, just the code, no data. So it's basicly 5 megs of text into a zipped archive.
That's not tiny at all.
Compressed 5 MB should be a lot more for text when uncompressed.
Linux is not Windows
Pfft. 5 MB of code turns into *at most* 100MB of game binary, and that's being way, way generous. I haven't compiled it yet myself, but I'm expecting around 20-50MB.
It's the textures and models and sound that drive up the cost of the diskspace with 3D games like Quake 3. Even with texture and sound compression, and some kind of model compression, these are still huge files, and the more compressed they are, the worse your game will perform having to do decompression on the fly. Why else do you think gamers need computers with a gig of ram and a 256 MB video card these days?
"Victory means exit strategy, and it's important for the President to explain to us what the exit strategy is." G.W.Bush
I thought Id always released the source code with their game so people could make the mods for it... What did they release with the game then that people modified for mods? I'm confused....
Actually, sorry. I forgot I did complete builds of all of the build targets. The archive is definitely less than 35MB.
Chances that UE3 will be GPL'd: 0
Chances that Doom3 will eventually be open source (minus that code they had to license or something): 1
Carmack kics Sweeney's ass. By the way, doom3 etc was designed for - you guessed it - doom3, while UE3 is designed to be used as an engine for lots of games, so its not a fair comparision. But hey, if we're going to throw around numbers, how bout you take a guess at how many games have used the Quake engines? It's pretty damn high.
p.s. Ubisoft using your engine isn't exactly a selling point. Most of their games are shit tastical. Maybe if they're not coding the engine they'll be able to focus on not sucking, maybe.
No, id Software doesn't rule because they are open sourcing an outdated graphics engine. There will always be complainers...
They rule because they are open sourcing it to make room for cheap games based on that engine. Carmack and Co know that they don't have to give the engine out, but the people that follow their games religiously, this is kind of 'giving back to the community'. The fact this engine will be open sourced means that it can also be improved upon, free of charge. Indy developers (mind you, id Software is one of the FEW left) get a chance to develop a great game -- albeit one that lacks a bit graphically compared to the D3 and HL2 standards -- to cater to a niche crowd and make a name for themselves.
The sheer price to enter the market for game developing is HUGE. Especially when it costs more money to develop a reliable engine than to buy one from somebody else. Those engines can run into the hundreds of thousands of dollars, and for a small gaming firm, or even a lone developer, that entry fee is too high a price to pay.
id Software should be commended for their efforts to continue supporting open source, make room for solo developers, and help broaden the PC gaming genre as we know it by including those who previously had restraints on their investment into gaming.
And to those of you assholes who continually compare Doom3's engine to the Source engine, and say it sucks... just write an engine that's even half as good as the Q3 engine, and then maybe you can say what sucks, and what doesn't. Doom3 may not have been graphically spectacular in its own instance, but I have a feeling that the engine behind it will do much of what the Q3 engine did -- pave the way for amazing games, and challenge hardware AND software vendors to up their efforts to support the T&L and effects that the D3 engine is spectacular at.
The price is always right if someone else is paying.
Since carmack is choosing the Xbox 360 as his main developmentplatform (Direct3D) does this mean that he will be ditching OpenGL?
Seriously. The last version of Q3A (that I'm aware of, anyway) for OS X has a glitchy, game-crashing plasma gun.
Oh, and the screen dumps I've taken (multihead, radeon9600) are static, as opposed to game content. o.O
5MB of code.... in a zip. Thats like 30mb of code. Also, the code to the engine is alot more complicated then what you do at work (well, at least the odds are it is) and thats why Carmack is a millionaire and builds rockets for fun.
Ok, what I meant was this 5 MB of code, which is the engine for the game, ends up producing a full game, which we all know has graphics and sounds that take up the majority of the space. That its looks so smal against the ending product, but is a lot of code. I guess I was being poetic, but no one picked up on it.
-----BEGIN PGP SIGNATURE-----
12345
-----END PGP SIGNATURE-----
Please submit any source ports to Liberated Games ( http://liberatedgames.org/ ). Thanks.
Curmudgeon Gamer: Not happy
It is flamebait because we all know that Valve sucks. Obviously!
As a minor contributer to that, and a few other Unreal mod projects I think know where there confusion might arise over source density.
As in many other games, there's basically several 'layers' in which to code. The source engine, optimised C, often very small - less than a meg like a kernel. Then the API 'world' interface. In Unreal this is Uscript, which is basically Java with tweaks for concurrent replication and distributed garbage collection. The bulk of any finished game is written here although modders often tweak the engine source, as did TTR, Strikeforce and some of the Unreal1/UT modders.
Actually collision detection is the most tweaked thing here. Lastly, and not always present is the game description, which although an interface to a world editor actually generates code to place the actors etc within a BSP world, so its more than just pure map data. Anyway, there's how you end up with 30+ Meg of code in a game mod. Very little of it is pure C.
I already get my butt kicked every time, but won't this allow server operators to make special hacks for their own advantage?
try { do() || do_not(); } catch (JediException err) { yoda(err); }
Here's a link: http://www.filerush.com/download.php?target=quake3 -1.32b-source.zip
Hell, they havent even GPLd unreal1 or unreal tournament. I don't think they've GPLd anything at all, have they?
Well, it compiles and runs under OSX, but it's not pretty.
So far, there's three pretty major bugs that I've noticed in my limited trial.
1. Trying to ping multiplayer servers crashes the game
2. Several of the 3D models are really messed up, and some are missing. I was playing against a bunch of bodyless people... all that were present was legs.
3. The Quake 3 header on the setup screen is missing.
The odd thing, is that I assumed that since the last build to come out of iD worked great on my G4, that the source would just compile and run without problems... boy was I wrong.
Of course I compiled under 10.4.2, and I think the last time it was compiled under 10.2.x, so the difference in compilers could probably be the difference.
that F/OSS has always been behind in stuff like this(high end 3D engines, well its somewhat high end), I mean the best looking 3D game I know thats F/OSS is based on the Q2 engine. There is just is not enough time, or willing people. Its a big project to make a good game, let alone a good engine, each one with a group of coder the size (i would guess) of the gnome devel team, and unlike gnome, companies like red hat have no need to support it, they aren't going to package it with support and sell it on the server market.
F/OSS Finally has a game engine that looks somewhat decent (its no unreal 2, but it is pretty), and as someone mentioned above, a clean and well written(compared to the Q2) codebase. I would like to see what will come of this, maybe we can see some small groups actually start writting really great opensource games or at least could mod the engine a little so it looks more modern for other to develop on. That would draw more people to the F/OSS community. People are always saying how they would consider switching but the gaming isn't there as much as it is in windows. We could finally respond with look at games X,Y,and Z they are all fairly modern looking and have great gameplay, plus they are free.
just my 0.122687 Denmark Kroners
It doesn't produce a "full game"; no maps, textures, or sounds are included.
Assuming the game source (that's been available for years) is included the EXE and DLLs it produces is maybe 2-3 MB in total (maybe a bit more if you include tools).
mb is a millibit, but I can't make sense of that. I guess the poster meant MiB, or mibibytes, meaning 2^20 bytes.
Leandro Guimarães Faria Corcete DUTRA
DA, DBA, SysAdmin, Data Modeller
GNU Project, Debian GNU/Lin
2005-08-19 21:37:02 Quake 3 Source Finally Released (Games,Quake) (rejected)
Reject submissions, only to post them later...
And the UT source is pretty much the same size (uncompressed).
Everytime some news pops up about a certain 3D engine people come running at the post with their torches bitching about how engine X is better than engine Y and how company Z handles things better.
So what that engine Y hasn't been released under the GPL, they don't have to if they don't want to, period, so stop bitching.
The Quake3 engine is now available, so either start to play with it or stfu.
Exactly how many games have used the Quake 1 or 2 engines? I can think of a few off the top of my head. The real question is how much have we benefited from the source release? I can't recall a single game that used the Quake engines after they were open sourced, though they must exist. Granted there are a bunch of mods, but mods existed well before the engine was fully opened. While opening the source might make you feel all warm and fuzzy inside, I don't really see the practical effects. Most of the good games licensed the code while it was in its prime. Almost nobody wants to use 5 year old tech today. Then again, Tux Racer, FreeCiv, and NetHack are the most succesful Linux games... On the other hand, the source release of Duke3D was pretty beneficial. Native Linux and Win32 builds, hi-res texture updates, POLYMOST (though that was done by the author of the Build engine), etc.
From q_math.c, Q_rsqrt(): // what the fuck?
i = 0x5f3759df - ( i >> 1 );
Always good to know that the engine coders don't know what is going on.
Quake 1 cleanly separated the graphics code from the game code. This means that any Quake 1 mod / total conversion (and there really is no difference between a total conversion and a different game based on the same engine) benefited from every advance made to the graphics code. If you take a look at some of the things being done with Quake 1, you will find that they are quite impressive - particularly when you bare in mind that they are basing it on 10 year old software.
I am TheRaven on Soylent News
It's 5MB after it's been compressed into a zip. As you may or may not know, zip compresses text really well.
The uncompressed size of the source is just over 35MB.
Yes, sir... You are an idiot...
find lcc/src | xargs dos2unix
that's all you need
Dangit, where's text-mode Quake 3 Arena? :P
http://lime.wdc.fileshack.com/fileshack/dl_file.y
Ok I havent given much to /. and its followers so I guess here's a start! If not then blow jo....uh wait, nevermind.
http://download.oceighty.net/quake3-1.32b-source.z ip
Giggidy Giggidy Gigg-a-dy
*runs*
The really interesting thing is that its engine is derived from the "Dark Places" engine, which is (in turn) an enhanced Quake I engine. Over the years, the developers of Dark Places and Nexuiz have done an incredible job of bringing this engine up to date and adding high quality eye candy - it's closer to the Q3 engine's capabilities than its modest roots. Nexuiz is at 1.1 release and is one of those GPL games that really show that OSS gaming can work. It's eaten a lot of my time :-)
10MB, 10MB, 30MBm, who knows, half of it could be comments! How many SLOC (source lines of code) is it? This is the most fundamental metric that can be used to measure the size of an application. can anyone run it through a counter?
Give the Linux port a sound backend that doesn't suck.
Sorry it's not a torrent:
http://geexology.org/dls/quake3-1.32b-source.zip
FLR
Obviously it'd require the use of the proprietary XDK, and for the user to have the PAK files, but (assuming some terrible person uses the XDK without permission), would this allow a version of Q3 to be compiled for the Xbox? I have to admit I don't know enough about the platform to know whether getting OpenGL apps to run on it is practical, or whether it's DirectX or nothing (in which case I imagine a port would be impractical).
Yes, the controller sucks compared to a mouse, but I'm awash in old video cards, laptops and PC's with LCDs -- Halo 2 is the only FPS I've got available, and let's face it: compared to Q3A, it sucks pretty hard.
http://www.filerush.com/torrents/quake3-1.32b-sour ce.zip.torrent
\m/
But how do I actually compile the thing - can I play it once I've compiled it? I've never compiled anything before in my life... :(
zip doesn't compress text very well. From my experience, if you compressed it with 7zip it would be about 2.5MB.
First off, a big thanks to John Carmack for opening doors for developers... again.
The most exciting thing about this release is the GPL'd version of QeRadiant included with it. Radiant is a tool that many professional level designers swear by. For the first time ever, it is now available for independents to use when creating content for their own games. Prior to this, you needed a license from Id Software in order to use it for commercial purposes.
No, I'm afraid that's wrong. As well as the text, there are various binaries in there.
;-)
And it's a 5MB zip archive, not 5MB of text into an archive. That makes a difference.
After you've unzipped it, removed the binaries and the bits that id didn't write, you're left with somewhere over 10MB of code. Which is a fairly respectable lump, it must be said.
Has anyone (partially) developed a game with the GPLed code from id, then decided to purchase a liscense so they didn't have to GPL their game?
They decide to release the source code under an open source community to the free software community, by uploading it to a pay-service FTP server. Genius. Presumably BitTorrent wasn't compatible.
However, putting that aside, this isn't going to be an earth shattering experience for everyone. Q3's source doesn't seem to want to work without the retail version. I compiled my copy on a 1GHz G4 using XCode2, and while I got some binaries really fast, I couldn't use them for anything.
But I'm confused with reading posts of people running their own source code. Perhaps someone should have stuck a line in the README.txt file that read "this is *not* the game!"
Rawr
Tested on a Debian Sarge:
3 2b-source.zip
./unix/cons
/usr/local/games/quake3/baseq3/* ~/.q3a/baseq3/
./linuxquake3
# Get the code
wget ftp://ftp.idsoftware.com/idstuff/source/quake3-1.
mkdir q3a
cd q3a
unzip quake3-1.32b-source.zip
cd quake3-1.32b
# Transformation for UNIX
find -type f -exec dos2unix {} \;
# Compiling
cd code
# Result
cd install
find -ls
# Install the packs
# You needs to original files!
# I do not find them in the source.
cp -a
# Playing
what the modders work with could be called a rulebook. If you rewrite a rulebook, you end up with a different game, no?
The source code is something different, however. I guess you could call it the language that the rules were written in - there are some things you can say in English, for instance, that would be hard to say in Swahili (or, better geek example : Klingon.) Hence, bieng able to change the language that the rulebook is written in allows you even more freedom to change those rules.
Don't be too suprised if six months from now, you start seeing Quake 3 TC's doing all sorts of things that they simply couldn't do before. Aside, that is, from running on the bloody toaster.
or just a little shorter
dos2unix `find lcc/src`
sorter but possibly broken if the number of lcc files exceeds the command line length. man xargs.
SCO said that they found a lot of stuff stolen from unixware in Q3's source.
Results of `grep -ri fuck *':
//NOW close the fucking brush!! // what the fuck? // fuck, don't have a clean cut, we'll overflow // since the cmd formatting can fuckup (amount of spaces), using a dumb step by step parsing // fuck, don't have a clean cut, we'll overflow // vm fuckage // vm fuckage //FIXME: this is a fucking mess // dragged backwards or fucked up // FIXME: this code is a TOTAL clusterfuck // cleaning up after merging and thinks badly fucked up // FIXME: this bend painting code needs to be rolled up significantly as it is a cluster fuck right now
1.
2. i = 0x5f3759df - ( i >> 1 );
3.
4.
5.
6.
7.
8.
9. Note: Unix CR/LF in *.dsw/*.dsp fucks up MSVC++.
10. How the fuck did this happen?
11. some files, and between their revisions and ours we fuck this up.
12. break;
13.
14. {"rem", "Less than half a fucking man."},
15. {"rem", "You're fucking dumb! Suck it down."},
16.
17. this could fuck up if you have only part of a complex entity selected...
18.
I see quite a bit of BSD licensed code in there or usage thereof. Any BSD license with an advertising clausal is incompatible with the GPL (see http://www.gnu.org/licenses/license-list.html) still Quake3 is licensed under the GPL. Wouldn't this be a problem?
Find all "fuck", Subfolders, Find Results 1, Entire Solution, "*.*"
Total found: 17 Matching files: 11 Total files searched: 406
code/renderer/tr_main.c
/* sort the array between lo and hi (inclusive)
FIXME: this was lifted and modified from the microsoft lib source...
*/
void qsortFast (
void *base,
unsigned num,
unsigned width
)
I unzipped the source
:-*
double clicked quake3.sln pressed F5 and it compiled with out a hitch.
Know why John uses Visual Studio? Because it fucking rocks, that's why. It rocks your socks and rocks your blocks.
OSS or no OSS.
Thanks, John!
I hereby dedicate this build to Mike Abrash, may you find the perfect game of life implementation.
http://thepiratebay.org/details.php?id=3372407H TTP=1&NAME=/quake3-1.32b-source.zip.torrentU DP=1&NAME=/quake3-1.32b-source.zip.torrent
http://www.zerotracker.com/download.php?ID=20319&
http://www.zerotracker.com/download.php?ID=20319&
At some point in the past, I found a binary with Athlon-optimized .dll files, that claimed 30% frame-rate improvements.
Now that the source is available, can this be investigated, as far as Intel compilers generating slow code for AMD processors?
Or did Id just put out some code that the Athlon at the time didn't like?
Don't steal. The government hates competition.
Just was doing some searching for funny things in the code comments:
Header comment in all:
You should have received a copy of the GNU General Public License along with Foobar;
aas_map.c; line 295
//NOW close the fucking brush!!
q_math.c; line 561 & 562
// evil floating point bit level hacking
// what the fuck?
cgame.plg; line 75:
D:\quake3\MissionPack\code\game\bg_pmove.c(987) : warning C4189: 'shit' : local variable is initialized but not referenced
tr_Backend.c; line 401:
// do initialization shit
ai_dmq3.c; line 3344:
//if the enemy is invisible then shoot crappy most of the time
ui_shared.h; line 163:
// the benefits of c++ in DOOM will greatly help crap like this
jdmainct.c; line 196-197:
/* Create the funny pointer lists discussed in the comments above.
make_funny_pointers (j_decompress_ptr cinfo)
l_threads.c; line 202, 215:
//Stupid me... forgot this!!!
macosx_sys.m; line 268:
/* Okay, this is a stupid hack, but what the hell, I was bored. ;) */
aas_map.c; line 261:
//there are no brush bevels marked but who cares :)
unzip.c; line 926:
/* various hacks, don't look :) */
vm.c; line 315: :)
it might be better to wait for DOOM 3 before you start porting.
sv_client.c; line 988:
// we basically use this while loop to avoid using 'goto' :)
Heh. This is from the header of basically every file. (Emphasis added).
When is Foobar coming out?
Has anyone made this to work on AMD64?
The source was actually released over 24 hours ago on the id ftp server. Anyhow, does anyone know of any open source projects based off this new code yet, or are developers still just poking around it? I'm interested to see if someone will make a project that updates the renderer, while leaving everything else untouched. Wouldn't that be nice? :)
It would take a fair amount of writing (but less than writing your own engine from scratch), but you could potentially make just about any kind of game you wanted as long as the engine could handle what you wanted to render.
I could easily imagine someone making a isometric/topdown RPG like Freedom Force with the Q3 engine. Even though I doubt the Quake 3 engine could handle the wide-open spaces and poly counts, hell, someone could use it as the base engine for a MMORPG or something.
It's just the amount of additional coding and re-writing you want to do.
We'll probably just get a really bitchin' version of pong though. Having an engine is one thing, having artistic talent is another.
*ahem*
find -type f lcc/src | xargs dos2unix
Don't try to dos2unix the directories.
-- The Funk, The Whole Funk, And Nothing But The Funk
If you want to write $10 games that nobody buys, Torque is just fine. Now, let's move into the real world, where people have mortgages and dental bills. So now you've got an older generation engine sitting right there. You might have to freshen or tweak it a bit to get it looking a little more up to date, so then you've only got to pay for scripting, level design, modelling, animation, textures, sounds, voice work, CGI, management, marketing, accounts sales and support.
Think how much GTA: San Andreas cost to produce, and how little of that was spend on tweaking the engine that they already had (comparable to starting with Torque).
If you were blocking sigs, you wouldn't have to read this.
Which a lot of failing games companies seem to do.
If you were blocking sigs, you wouldn't have to read this.
Although that time was also spend with graphics and sound. I was also a newbie to C. But still, 5MB is code is no bullshit! -Kevin
There are three projects related to Ultima Underworld remakes. Most of them seem to have hit the "running out of steam" phase of development but the code is all there waiting for some new blood.
So before embracing the Quake 3 engine to do yet another remake, you might consider helping one of these projects out. Underworld Adventures has the most recent change date in their news page.
Cheers,
Toby Haynes
Anything I post is strictly my own thoughts and doesn't necessarily have anything to do with the opinions of IBM.
Does anyone know where I can buy the old "Quake Trilogy" package that contained Quake, Quake II and Quake III Arena? (And can ship to Canada)
I see lots of posts about how ugly and inelegant this code is. I remember seeing the same things about id's previous code releases. Why do people who have no hope of seeing a fraction of Carmack's fame, fortune or ability do this?
FreeBSD instructions:
/usr/ports
$ cd
$ curl
http://g-rave.nl/files/ports/games-quake3.tar.gz | tar -xzf -
$ make -C games/quake3 install clean
Good luck!
I am happy to see the source code for Quake 3 released as open source, meaning that developers can compile it and tweak it to their hearts content.
I am now wondering whether anyone actually did something with the Quake 2 source code, other than compile it to get a free copy of Quake 2? For example did anyone build any mods or any other games using the open source code?
Jumpstart the tartan drive.
ftp://131.96.244.6/pub/
ftp://lab753-09.cs.gsu.edu/pub/
ftp://131.96.244.6/pub/quake3-1.32b-source.zip
Note that it only allows about 25 connections since it is an 700MHz Athlon.
I found 124 goto statements in the code.
Screenshot 1, Screenshot 2, Screenshot 3, Screenshot 4, Screenshot 5, Screenshot 6
Huge, huge respect and thanks to John C and the ID guys. I can learn from the master himself, see how such a top class games and engine is put together, how code is arranged etc. This is just fantastic.
Mr Carmack obviously is a guru coder, but I think it still takes guts to open your baby up and put it out there. Some people are so rude saying the code is messy or whatever, man, I hope you just ignore that. I'm so thankful to you for doing this, maybe we outweight the rude people and you'll feel good for taking the time to put this code out.
Thank you!
Which had a fsqrte (floating-point square root reciprocal estimate) instruction since 1996 (PPC 604).
It wasn't specified in the docs I don't think, but fsqrte was accurate to something like 12 or 14 significant bits. After 2 Newton-Raphson iterations I believe the answer was correct to 1 bit less than the number of significant bits in an IEEE double.
At least, that's how I remember it.
http://lkml.org/lkml/2005/8/20/95
Over at http://www.dcemu.co.uk/ they posted news that someone may be considering a port to the Dreamcast, they already had the commercial game released so you never know. Other than that id like to see a PSP Port, we have had Port of Quake but Quake 3 would throw open better mods.
My Uncle, Todd Porter, was constantly looking forward with his games. I beta tested Doom when I was in grade school... didn't know what it was, of course. He no longer works with id, but you can see a lot of his work in the source of the games. He was unpopular for writing gobs of asm code.
Damn that guy could type fast.
Google Todd Porter with id or with Ion Storm, then you'll know who he is.
I got nothin'.
/*
==================
Sys_MonkeyShouldBeSpanked
==================
*/
int Sys_MonkeyShouldBeSpanked( void ) {
return 0;
}
3dnow only boosted the K6's FPU performance to match the P2's. And Quake 3 is 6 years old; it ran a "treat" on my P2 450 with a Voodoo3.
Don't forget the extremly popular Star Wars: Knights of the Old Republic One and Two.
If you take out the .mak/.dsp/.sln etc configuration/build files you'll find it's less than 5mb. If you also take out the stuff the compiler doesn't need i.e. white space, CRLF and comments this will reduce it further.. It's highly unlikely you'll produce a 100mb binary, 1.5mb - 2mb at most!
The Enemy Territory source is available... AFAIK, it uses the Q3 engine. Now the Q3 engine source is also available. Does this mean the complete source code for Enemy Territory is available, or is there something missing?
Seeing the cool stuff modders have done with the ET source, I can't wait to see what client mods will people do... all kind of nice eye candy, I hope. Stencil shadows (for the characters at least) would be cool, for example.
My website
I don't get this... id have their own tracker, why aren't they using it....
-ReK
md5sum -c reality.md5
reality: FAILED
md5sum: WARNING: 1 of 1 computed checksum did NOT match
It sounds like neither of you (bani and PsychicX) have any idea of what you're talking about. Both of you took a 30 second look at the Q3 code and gave different baseless statements shortly after. PsychicX is just a drooling Carmack fanboy, while you're (bani) just an elitist contrarian. It's a shame we can't get any informed opinions of the code, for the time being.
http://www.gamespot.com/dreamcast/action/quake3are na/review.html
/. could also use a way to edit a post, so long as no one has replied to the post.
And here we are.
- "Scientia non habet inimicum nisp ignorantem"
The build scripts are using -Werror when you do a debug build. Debug is also the default build. So those inline assembly constraint warnings cause the build to error out.
./unix/cons -- release
3 2b-source.zip
If you do a release build the -Werror is not used and it should compile. To do a release build the command is
Or you can get past the inline assembly constraint warnings by editing the Construct file in the code directory and removing the -Werror from $BASE_CFLAGS = $COMMON_CFLAGS . '-g -Wall -Werror -O ';
I've successfully compiled using both methods on my Fedora Core 3 box. The gcc -v output is:
gcc version 3.4.4 20050721 (Red Hat 3.4.4-2)
So to recap jcdr's tips with my addition, you have:
wget ftp://ftp.idsoftware.com/idstuff/source/quake3-1.
unzip quake3-1.32b-source.zip
cd quake3-1.32b
find -type f -exec dos2unix {} \;
cd code
./unix/cons -- release
And from there you have the compiled binary in the install directory.
burnin
File Information
File Link
Enjoy!
-WeAz
Emit4( (int )vm->dataBase );
but dataBase here is a pointer to a byte. It seems like he's probably trying to do something like this:
Emit4( *(int *)vm->dataBase );
Is the former line some sort of casting shortcut with the compiler that makes it do the right thing on x86 architecture, or am I missing something?
Can someone with more C-fu than I comment on this?
Better yet.
unzip -a quake3-1.32b-source.zip
Converts all text files to unix while extracting.
Ok, now we'll have showers of patches, ports to architectures etc... coming, but unless there is some organisation here, it will be an unuseable mess. We need somebody to pop up as "open source" maintainer of that blob to collect patches, eventually issue releases, etc...
They might make good games, but I make my living as a programmer and I swear to god this has got to be the worst code I have ever seen. I can't see how people worship these guys at all.
No, and it's a crying shame. I have had major trouble trying to get Unreal I running on either Windows or Linux with proper 3D acceleration, hence the reason I haven't played it since I first got it.
To me, this is one of the main reasons game companies should consider releasing the source to an old game once there is no longer a reason to hang onto it - it lets people fix it up so it runs on modern OSes with modern hardware.
how much of the Q2 code was "reused" in Q3Arena.
Coderz 4 Life
Well i just got everything compiled, and when i tried to run it i got a message saying
"You need to select the installation directory for Quake3 (not any directory inside of it -- the instalation directory)"
and then it gives 2 options "Quit" and "Select Retail Installation"
Since either option does anything, What should i do?
The unzip -a looks to be the most elegant with this code from a post above being a close second. To the person who mentioned dos2unix, this is the preferred way of running it recursively.
# Transformation for UNIX
find -type f -exec dos2unix {} \;
The find -type f is finding all regular files (as opposed to symlinks, directories, ports, etc... in unix, everything is a file so you need to be specific)
The -exec dos2unix {} is executing dos2unix on each file found, inserting the name for the brackets. This method executes as each file is found, as opposed to queueing the job until all the files are found.
The \; terminates the command.. although the backslash is normally an escape code, I think the semicolon is the actual terminator.
The code in the lcc/ directory is under a GPL-incompatible license that seems to be "noncommercial use only" if the code is reused in certain ways. Is this an extra, or is it required to build/run Quake 3?
If it is required, it might be a serious problem, since the license is not compatible with the GPL.
Please mod up the parent post, it's highly informative.
quidquid latine dictum sit altum videtur.
It's 5MB after it's been compressed into a zip. As you may or may not know, zip compresses text really well.
Just to be a dick, I'm going to point out that zip, as any other compression algorithm, is only going to necessarily be able to knock 1/8 of the space required by some text. (For large amounts of text).
Now if the text has an uneven, pattern-containing distribution, as English text or C source does, it'll probably compress a lot better, but just because something is text doesn't mean that it has to compress very well.
Any program relying on (nontrivial) preemptive multithreading will be buggy.
I seem to have successfully commented out some checks from the source so it should be easy to play TCs, without owning the game.
// if ( FS_ReadFile( "default.cfg", NULL )
// Com_Error( ERR_FATAL, "Couldn't load default.cfg" );
.NET files to the old format: http://www.codeproject.com/tools/prjconverter.asp
1. Download the 1.32 Point Release
2. Download the Quake 3 Demo.
3. Download my executable (or compile your own) here
4. Install the Point Release and demo to separate directories.
5. Replace the quake3.exe in the Point Release directory with the one you downloaded / compiled.
6. Move pak0.pk3 from the demoq3 directory in your Demo install to the baseq3 directory in the Point Release install. (This may cause weird problems if you try to play online with the normal game.)
7. Quake 3 should now be able to play with TCs, or just the demo with custom maps, without complaining.
I can't guarantee any of this will work, but it seems to have worked for me. The reason for transferring the pak0.pk3 file is that most TCs are not true TCs, but rather use some basic files such as fonts, etc. that they load from the baseq3 directory.
If you don't have any luck with my executable, you could try producing your own. I only made a few simple changes to files.c. I commented out the following lines:
I also commented out the entire function FS_SetRestrictions and just made it return.
I have not made any changes to cd-key related code, so there may be some more work needed.
If anyone is having trouble with getting the project files to work on VC++ 6, download the following tool to convert the
There's no need to exec dos2unix for each file individually. xargs is preferred for all (non-broken) apps that can take multiple file arguments.
I shy from dos2unix because it's not very portable between *nixes. It's good to memorize the Perl way to do this. The parent actually missed the useful "-i" flag:
find lcc/src -type f | xargs perl -i -pe 's/\r//g'
Like a lot of people, I still play a lot of q3a and its mods. I'm all for GPL, but will this bring even MORE hackers, cheaters, and bots to quake that make it so unenjoyable?
Plenty of peaple get around PB as it is, now they can program cheats RIGHT into their games? I don't exactly know how PB works.
MAKE YOUR TIME
Yes, there was a budget title (Paintball somthing or another) that was developed based on the Q1 source that purchased a commercial license.
We didn't charge much, but I still think they should have just saved the money and released their source.
John Carmack
When will the source code to Quack 3 Arena be released? I hear it has better graphics quality on ATI cards.
But why let facts get in the way of a good rant?
I view trying to prevent people from going into games development as a public service. It's going to be one of the last holdouts to outsourcing because USian and Yerpian games developers are already willing and eager to begger and burn themselves out in return for getting their name on a box.
If you were blocking sigs, you wouldn't have to read this.
List all of the indie games that you've purchased in the last five years, and how much you paid for them.
If you were blocking sigs, you wouldn't have to read this.
Now we can finally see what those mystery fields in the structs mean.
WE DON'T NEED NO BLOG CONTROL.
It's good to memorize the Perl way to do this.
No, it really, really isn't.
It's good to *LEARN* to use the correct tool for the job (in this case, that would be sed.) Memorizing the "perl" way to do something is just one step towards afflicting yourself with the brain damage known as "perl syndrome", wherein you waste time re-inventing the wheel (suboptimally) every time you're confronted with a problem.
Learn Unix, not Perl.
...who's a bit sad that the Dreamcast port is not included?
To compile it under Linux, just do:
0 0)
$ svn checkout http://www.quakesrc.org/svn/quake3(...)
$ cd quake3/code
$ make
(see http://www.quakesrc.org/forums/viewtopic.php?t=54
A free web based PIM: http://myphp.freews.org
I recommend postfix and the Apache 1.3 series. It takes several days to get into the Apache "mindset" but I was quite happy with it. I guess I'm assuming you're familiar with how mail and web servers work - without that background, it would be harder to follow the code.
I find it easiest to learn such a codebase by hacking in printfs - or local equivalent - to understand what variables really mean.
I remember at the time this game was released being impressed, both at the fact that they had taken Quake source and done so much with it (added a whole lot of features, it was probably a Quake 2-level engine or better now) and with the fact that at the time the traditional logic was to go license some expensive game engine, but that they probably got a good deal on the Quake engine.
But I also remember at the time reading about a lot a flak they recieved - their developers had followed a lot of those "tutorials" people had assembled on the Internet and through binary comparison, these sites figured out that Trainwreck had followed their tutorials. Trainwreck admitted to following the tutorials but did not admit to doing anything wrong. This led to the practice of designating that the tutorials were under GPL as well. Trainwreck could indeed have avoided the problems and saved money had they used the GPL for Laser Arena.
The one argument I can see for keeping the source closed is to limit or eliminate cheating. Granted, a budget title with limited popularity isn't really all that prone to cheating but even today the commercial release of Quake 3: Arena has Punkbuster to keep it "safe", which I imagine is outside the realm of most online game developers.
Any ideas on how to prevent this sort of thing in a GPL'd game?
Schnapple
Laser Arena has not been forgotten by the Q1 modding community. Although their crimes are not exactly what you would call heinous (or even crimes, possibly), nobody was happy about what happened. It was bad news in the middle of the blissful orgy of the Q1 source release.
Another Quake-based game was commercially released more recently, although it was under the GPL license. Unfortunately there were issues this time too, mainly concerning non-original content (models used in previous free mods) and the, how do you say, stiffing of many of the people who put time and effort into the game.
If you look at everything though, many enjoyable projects (some of them pretty vast partial or total conversions) have been created using the source, although you could say the community and fanbase is a 'niche' one. If you're looking for the next big game, maybe it won't be on the old Quake engine. But modding is popular, and releasing the engine source is a great way to keep em' rolling.
1st of all, Thanks. That's awesome
2nd of all, your C code from 5+ years is much better than my C code from 5+ years.
You forgot that Torque costs MONEY- while those games prove Torque is battle proven, it still equates to spending money. Even small money can be prohibitive. Q3:A costs NOTHING to field a game and the cost of allowing your engine mods out if you need to modify the engine to accomplish your game.
I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
I just dug up the old reference site we had about this from my backups.
See the Trainwreck Files for the reaction of people at the time!
Speaking of which, the site most of the tutorials were lifted from hasn't had that notice displayed since the half-complete redesign at the beginning of the year.
I must fix that.
So on behalf of all of us here at Slashdot:
Thanks!
"My cat's breath smells like cat food." - The Tao of Ralph Wiggum.
Trainwreck Studios was actually the same company and even the same team that created Medal of Honor:Allied Assault. They would develop games like Laser Arena and CIA Operative:Solo Mission under that mantle and then work on MoH:AA under the name 2015, often simultaneously.
Who? I doubt anyone has ever succeeded in getting very far developing a game with the tools you've listed. Maybe there is some sad sourceforge crap but name one game built with that list of stuff that people have bought. I don't know why you listed q3 either, since it just went GPL _last week._
And of course, the other question is why? If your time is worth even some small fraction of the minimum wage, basing your development habits solely on never paying for anything is pretty stupid. OMG I CAN'T BUY ANYTHING BY MICROSOFT I WILL SPEND FIVE DAYS TRYING TO BUILD MY GAME WITH MINGW.
Now before I get modded down, I be to remind whoever might read this that what I am saying is FACT. - bogaboga
...LGP has shipped HOW many games to date with those tools and Loki Games before them, I do believe your comments are merely uninformed opinion. And comments to the effect that Loki went under will be ignored as it wasn't the tools, but rather Scott's complete mis-management of the company as a whole that did them in. As for LGP, we're encountering problems beyond our control in getting out some of our titles in hand (we've got this vicious 11th hour bug we're tracking down in Ballistics, for example...) but we largely use nothing but those tools to get our titles out- in fact, that's mostly your option if you make a title that runs under Linux. (Uh, Id and Epic seem to be able to use GCC, etc. to make games for the Linux side and they use OpenAL for all platforms for sound support (which is one of those tools you're pooh-poohing...))
You're entitled to your opinions but, please, please don't be parading that about as "facts"- because they simply are nowhere near that.
Tools do not make a game. They can make it better or poorer, but it's the developer themselves that actually MAKES the game. If they can't afford the tools you're insisting are the "only" way to accomplish things- then if they keep to your attitude, then they'd not get anything done.
Some people are talkers. Some are doers. You, sir, sound like a talker- if so, move aside so that the doers can get their doing done.
I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
If any of you id people ever reads this, then I would like to thank you heartedly for all the great job you have done.
Thumbs up! :)
Anyone got it running on a PSP yet? I'm still waiting for the PSP my company gave me instead of a real bonus, but I can't wait to play quake on it.
Dude, you got smacked down by John Carmack. That's awesome. My hat goes off to you.
Join Tor today!