Monday 13 February 2012

Q3 Modding: The Q3A Engine

Quake 3 Gold
While this first post is about Quake 3 Arena, this blog isn't dedicated to it. However, I am planning this as a first but not the last, and what I hope this will result in is an eventual tutorial to modding visual aspects of Q3A (textures, models, skins, sounds, vfx) because there are tutorials out there for modding the engine already yet there is nothing for building models in particular, and Q3A seems to be the most difficult to do it for out of the Quakes before it. So I hopefully will have a basic tutorial on how to do this using nothing but open source software.

Intro:
One of my favourite software developers is "id Software". I consider John D. Carmack to be a genius in software development and he has basically revolutionised gaming on multiple occasions. Originally back when id was being published under "Apogee" (another favourite of mine, now known as "3D Realms") Carmack, being the genius he is, discovered a trick for smooth side scrolling, which later resulted in the "Commander Keen" games.
What's all this got to do with nothing? I don't know. But! id Software would later release the game series such as Quake and Doom, which would and did revolutionise and raise the standards of gaming, taking us from 2D side scrollers and pixel art to 3D first person shooters and meshed graphics.

id Tech engine:
"id Tech" is basically a family of game engines. Excluding it's predecessors it goes:
  • Doom Engine
  • Quake Engine - also used for Half-Life
  • id Tech 2 - Quake 2
  • id Tech 3 - Q3A & TA, Return to Castle Wolfenstein, Wolfenstein: Enemy Territory
  • id Tech 4 - Doom 3, Quake 4, Wolfenstein
  • id Tech 5 - Doom 4
When Carmack finishes with an engine he usually releases it under a GPL licence, and this has happened from the Doom Engine right through to the Tech 4 Engine. As a result, the engines are usually ported to every operating system and device you can think of. This also means you are able to use that engine without paying royalties, but you must release your modified source code with your game. This doesn't make everything free though, companies who have bought the engine prior to it becoming GPL do not have to release their source, and it also doesn't make the game free to download, only the engine, none of the graphics.

An Open Source Engine:
An open source engine results in:
  • Easily hacking the game (rapid fire rockets, infinite ammo, etc)
  • The game being ported (linux, bsd, android, html5, etc)
  • People creating their own games (next Q3 post will be about this)
  • People extending and improving the engine (that's what we're going to talk about)

id Tech 3 - the Quake 3 Engine:
There are actually 2 versions of this due to id releasing the code to two different games. These are:
  • Quake 3 Arena & Team Arena: version 1.32. This is the source code to how it plays in Q3A. So basically, if you were to replace all content it would still play exactly like Q3A. It was derived from Q2 yet a large portion was rewritten. I am not going to bother to link to it because it is always hard to find and for other reasons yet to come.
  • Wikipedia
  • Wolfenstein: Enemy Territory: This is a heavily modified version of the Q3A engine and game-play. And if you play both games you will notice the extreme difference. The source code to this was released a long time after Q3 and as a result I don't think much has been done with it. W:ET was eventually released as a free game, so you are able to download the game and play, however it is only a multi-player game, so if you have no friends...
Every game built on the id Tech 3 engine would've heavily modified it to suit what they were after. So if you try to run all the contents of W:ET under the Q3A engine, it does kind of work, but not properly. Some of the games might work depending on what they modified and how, but for games that don't they can be reverse engineered which was done for Star Trek: Voyager Elite Force. Somebody basically found what was modified possibly through studying variable changes while playing, and re-entered those back into the source. That doesn't leave you with the original source, but it leaves you with a compatible version.

Where does this leave us?
This leaves us knowing that there is free open-source source-code for these games. Which means that we can make our own game without having to build an engine OR it means we can add more functionality and/or improvements to Quake 3. Which to the second statement we are not going to do, because it's already been done.

The "ioquake3" project has done just that (ioquake3.org). There is a full list of improvements on their website. ioquake3 has already had a few quite good games built off of it.
There are two options when building a game using ioquake3 and that is:
  1. Take the latest development or stable source code and build your game from it, modifying it, which will mean you will be responsible for maintaining it.
  2. Build a mod on top of it, which means any update to ioquake3 will then be able to be applied to your game.

The last bit:
That's about all for this post, but as I mentioned earlier more id engines have been released as open-source, and people have improved on top of them, so I will just list a couple here for the latest ones.
Next I will be looking at some Stand Alone games and some Mod Games.