Quake 3 Source Code to be Released 394
fwice writes "QuakeCon has just kicked off and at the end of the keynote speech, John Carmack made an announcement saying that the Quake 3 sourcecode will be released shortly. "
Those who can, do; those who can't, write. Those who can't write work for the Bell Labs Record.
Let the race to port this begin... (Score:4, Insightful)
Oh yes, and start imagining the Beowulf clusters...
Re:Quake 3 Source Code to be Released (Score:3, Insightful)
Re:Quake engine? (Score:1, Insightful)
Re:Can't wait? Do it yourself. (Score:4, Insightful)
Re:Can't wait? Do it yourself. (Score:5, Insightful)
However...
Quake 3 also runs on Linux & Mac. Not to denigrate your project whatsoever, but it *is* DirectX and thus (depending on how you've organised stuff) might not be straightforward to port.
Re:Payback for banning (Score:3, Insightful)
Re:This is great (Score:5, Insightful)
Yes, really nice of them to do this time and time again. It's worth mentioning though that not only id opensources their previous generation games.
To name a few, Star Control 2 was opensourced and is being developed on Sourceforge. Beneath the Steel Sky sourcecode was also opened. It would be great to see this trend continue and expand.
Re:Quake 3 Source Code to be Released (Score:5, Insightful)
The only practical result from a company selling a game based on GPLed source code is that they couldn't easily do any copy-protection tricks on their game content.
To be fair, it'd be kind of tricky to make any real money from such a project - especially with the large number of fairly decent free mods available for Quake3 engine games. But it's theoretically possible... :)
Re:Will it be modified? (Score:5, Insightful)
However, given source releases of other games (remember descent), they may clean out some expletives from various comments
Re:Can't wait? Do it yourself. (Score:1, Insightful)
Re:Can't wait? Do it yourself. (Score:3, Insightful)
More companies should follow. (Score:2, Insightful)
Id has enough sense to realize that there is a point in a piece of software's lifecycle where their innovation has made "enough money". So, they can release their Quake X engine under GPL to benefit the community, while at the same time their can still license the core engine to commercial product. The release of the GPL engine gets people motivated to use the engine in new, innovative ways. They see the code, they understand the code, then they may use it in their project. No matter if the project is GPL or a commercial venture, Id provides the options! Isn't that great?
The moral of the story is: (Score:5, Insightful)
This is about letting some other (even if they are in the software industry or not) guys learn something from what you have done.
Carmack has been one of the legends of the genre, and even if his usual habit (create the best visual environment possible, and go on) has started to loose it's success (half life vs doom 3) there is no doubt that he is very very good programmer. For a lot of other programmers, it's a good oppurtunity to see what kind of tricks he's been doing.
The release is late, but this makes it fair for the companies who paid to licence the engine. If you can't make money from a source code in 4 years after you've bought it, than you have much more serious problems than this release. It's kinda sad to see all those complaints, since Carmack has no obligation to release code, and he gets complaints instead of thanks when he does it.
I'll possibly never compile the thing since i don't have time for that as an "enterprise developer" (oh god, why did i fail so badly?), but it'll feel good to have source code of quake 3 somewhere around my hard drive.
Whatever, good work Mr. Carmack, thanks..
Keen? (Score:2, Insightful)
Re:punkbuster not included (Score:2, Insightful)
It's crap at that, but it's very good at stopping people using duplicate CD keys. Which is a shame, because I see nothing morally wrong with two people on a LAN using the same copy to play on a server.
I hope this release helps kill off punkbuster usage on Quake 3 servers.
Re:Thanks id (Score:1, Insightful)
Your reasoning (was Re:A reasonable model) (Score:3, Insightful)
Re:The moral of the story is: (Score:2, Insightful)
Or maybe: you can be a nice guy, when you have millions of dollars (and you've gotten over the Ferrari thing).
Re:This is great (Score:5, Insightful)
Modders have always had tools to put their own content on computers.
The problem with the "hot coffee" content was that the game publisher supplied it. The tools were never the problem.
Comment removed (Score:2, Insightful)
Re:Can't wait? Do it yourself. (Score:4, Insightful)
DirectX isn't the end; especially since the two biggest game platforms out there don't support it: Gameboy Advance and Playstation2. Programming in DirectX limits him to PC games.
Re:But it used to be closed source. (Score:3, Insightful)
The problem is that the "open source" nonsense is just fucking irrelevant one way or the other. Make a killer new game engine, something competitive with Doom 3, and release it under the GPL. What have you got? Not much.
The difficulty in getting a killer new game out is in the content and design, not the cost or difficulty of creating a game engine. Look, there are plenty of mod teams that have access to the doom3 engine's features already. They won't match the commercial doom3-based games, and it's not because they have a game engine which isn't competitive. It's because the game engine is largely irrelevant.
To get a "viable open source FPS that competes with, and exceeds, the big-boys" the first thing you need to do is convince professional artists and level-designers to work really hard for free. Good luck with that.
Re:This is great (Score:5, Insightful)
I hope we soon see.... (Score:1, Insightful)
Browser plug-ins based on this engine -- to deliver in reality all they hype that VRML once promised.
Google-map's enhanced with all the abilities of Google Earth through this browser.
KDE or Gnome or some other desktop using this as a core of their 3D interfaces.
Any other possibilities for this engine outside of gaming?
Re:Will it be modified? (Score:3, Insightful)
I think you should understand what exactly moding entails. It is not an addition, it is a modification, of whatever sections of the engine source the company has chosen to make available. In the case of Quake 3, while the low-level network handling code isn't provided, as I understand it the modder has control over what goes over that link.
HL1 and HL2 have excellent netcode, probably the best available on the market. If you are going to claim otherwise you're going to have to give a reason. HL1/HL2 work well in low bandwidth situations, is very adjustable based on available bandwidth server and client side, has good movement prediction, features latency correction, works well even with packetloss, and so on. It is generally quite reliable. And it is most assuredly better than Quake 3, especially from the server side. Unlagged makes a great deal of progress, however, to improving Quake 3's playability under worse than normal conditions. Despite the main feature of the mod being the latency correction, the new movement prediction probably has a greater impact.
UT2003/2004 has "ok" netcode. On a low latency low-loss link, it is rather decent, though the lack of latency correction found in many modern games is a downside. However UT2003/4 don't handle packetloss or high latency very well.
BF1 was horrible. I have very limited experience with BF2, so I can't really comment on it, but from what I've seen it has made at least some small improvements. How small I can't tell without further play.
Re:Will it be modified? (Score:3, Insightful)
True enough, at least now. At one time I wrote a Q3 mod called GibHappy. It was very simple, however. But in reality it matters how the netcode performs for endusers, not how pretty or ugly the code itself is.
Er, no. Companies never make _engine source_ available. Otherwise you'd be able to easily circumvent copy protection, cheat detection, etc.
It depends how you define "engine". If you strictly mean the 3D engine, you'd be right. But in Quake 3's case, a lot of the code that I would call the engine (as in game engine) is contained in what you call the mod source. For example, the Q3 AI system is entirely contained within the "mod source".
The same applies to the higher level netcode; it's not in the executable, it's in the QVMs/DLLs. But netcode is undeniably part of the engine.
My point is is that the engine code is not strictly limited to the executable.
HL1 and HL2 are based off of _quake1_ engine code. HL2 still has a lot of icky quake SDK cruft in it, if you bother to look. It simply is not better than quake3. The only reason why it might "appear" to be good is that it is a very simple engine running very simple mods -- the amount of traffic traveling over the link is very small.
That'd be incorrect, though. HL1 is pretty much entirely Quake 2, with a few lines from Quake 1. So say Valve themselves, and since they're the only ones who truely know how much code they took from each, we should defer to their statements. HL2 was written from scratch, though that is a topic of much debate. Regardless, unless I'm mistaken the "SDK" for Quake 1 was all in Quake C, so it is impossible that any of it made it into HL1, let alone HL2.
If you consider Quake 3 to be complex and HL2 to be simple, well, you'll certainly have an easy time coding in the future. But I disagree with you; Quake 3 doesn't pump nearly as entities down the pipe as HL2, or even some HL1 mods (Natural-Selection anyone?), and without Unlagged it's missing stuff from newer games like client-side movement prediction and latency correction.
quake3 works _excellent_ in high packetloss and high latency situations. i've tested it to eg 80% packetloss and 500ms latency and it was still playable.
Are you referring to Q3 now, or ET? ET doesn't feature the same netcode. For one thing it DOES have latency correction and IIRC, client-side movement prediction. The game (Q3) might play fine for YOU when you have 80% packetloss and a ping of 500, but without client-side movement prediction, the other players will see you teleporting from point to point as your packets come in sporadically.
and er... unlagged doesnt change player movement prediction. it does make a change to serverside extrapolation if clients drop command packets, but that's a different thing entirely.
Re-reading the Unlagged documentation, I'll admit it isn't clear as to if it does the prediction client or server side. If it is really doing it server side, well, then, that remains a particularly crappy part of the Quake 3 netcode even with Unlagged. But then again Neil Toronto was always big on doing everything serverside, so it'd make sense.
In my mind, the lack of latency correction alone is enough to make me consider a game's netcode "unpleasant". But the lack of proper prediction is a big nono. Quake 3 can be forgiven due to it's age, but that doesn't mean it's even remotely good. Ever watch people going over the top jump pads on Q3DM17? Since there is no movement prediction players don't move smoothly in mid-air, they appear to be moving at a much lower framerate than the game is actually moving; they're only being updated for every packet received from the server (Once every 20 seconds by default). Prediction and interpolation go a VERY long way towards a smoother online experience. Quake 3 is lacking in this department. But your experience seems to be with ET, which already features much better netcode... and prediction!