news forum live chat wiki

Archive for the ‘ioquake3’ Category

We’re Updating ioquake3’s Graphics Renderer

Sunday, September 11th, 2016

Quake3 tango

The Short Version

Our OpenGL 2 renderer will be the default starting this November. You can skip the rest of this post or read on for why we’re making this change, a timeline for the change, and instructions for trying it out today.

Why we’re changing the default.

If you want to play Quake 3: Arena, make your own games using the absolute best free-software FPS engine, run your own dedicated game server, or play other great games then ioquake3 is for you.

ioquake3 was founded on the notion of retaining the great gameplay and technology of id software’s Quake 3: Arena, while keeping the code portable, clean, and operational on modern platforms for players, developers, and server administrators.

That goal has put our team, and so many more contributors, to work for over a decade.

ioquake3 introduced a pluggable rendering subsystem in response to the desire for graphical renderers to support new technologies for new and updated platforms.

This allows a great degree of flexibility that isn’t found in most game engines. It also meant that we could retain the original OpenGL rendering pipeline alongside more modern rendering processes.

James Canete took up the challenge of putting together what has become the OpenGL 2 rendering system in 2010. These days it requires OpenGL 3 for the latest features but the name has stuck. James’ OpenGL 2 renderer has become the most obvious big feature we can point to when people aren’t wowed by a 17 year old game working on their computer anymore.

When Quake 3: Arena shipped in 1999 I picked up a copy of the game at Linux World Expo in New York City after chatting with the old Slashdot crew and played it with a 3DFX Voodoo graphics card.

It’s been 17 years since Quake 3: Arena shipped, over a decade since the source code was released by id, and my son will probably never know what a 3DFX Voodoo 3 3300 is or why his dad once thought about flying to another Linux convention just to win a Voodoo 5 5500 in a rigged contest run by a (now) defunct software developer. Those cards have less rendering potential than the phone in my pocket.

Why do we still maintain an outdated graphics rendering system that was written with that era of graphics accelerator in mind when we have a better alternative that fits the original goal of supporting modern systems while still offering optional new features to players and developers?

We must enjoy maintaining twice the code and making it more challenging for people to access the newer features of ioquake3 by adding additional barriers.

That’s going to change. In early October we will begin the transition to a default OpenGL 2 renderer.

This is a big change for a project that has sought to always deliver a vanilla experience by default. We’re giving everyone some extra time to get used to this change, and to give us feedback about it.

October 1, 2016: The default for new ioquake3 installs is OpenGL 2.

November 1, 2016: Disable the original renderer in configuration files for all ioquake3 installs.

Get Involved

This will get more players enjoying our improved rendering engine, which will be better for everyone as we continue to develop improvements to it. As with so many free software projects, it is by no means finished, we are aware that performance may suffer with certain hardware configurations, but it is capable of displaying Quake 3 as you see it today and improving that look.

By default OpenGL 2 does not include any intentional changes to the look of ioquake3, those will remain optional. Although contributions will focus on the new rendering system. the old rendering code will remain in source control. It’s not going away and you will continue to be able to use the old renderer after we change the default.

We still have much more that needs to be done with ioquake3, but if you have any questions or comments about this change please let us know now. The month of September is your opportunity to give us your feedback before we start the transition to the OpenGL 2 renderer, and we hope that by the end of October you will be as happy with the new renderer as we are.

If you would like to try the new renderer out now, then please follow these instructions for installing ioquake3 and a test build, these instructions for enabling the new renderer, and these tips for how to enable or disable the new rendering features. You can connect to our server at to play with others or play locally using the /map and /devmap console commands with regular Quake 3 maps like q3dm17 or third-party maps and mods. Some features of the new renderer are cheat protected because they might give players an advantage, so you will need to use the /devmap command to see them.

Servers don’t have to make any changes to support the new renderer. Developers making their own games should read the OpenGL 2 readme and contact us via the forums, live chat, or via reports on Github or Bugzilla with any feedback. Pull requests are particularly helpful 😀.

If you’d like to help ioquake3 out, please check out the Getting Involved page on our wiki.

The id Master Server is Back Online (Updated)

Thursday, May 19th, 2016

Update: the id master server is back online, the in-game server browser is working again. We will continue to look for a way to work around it in the event of future extended downtime. Our original post appears below.

Master server If you’ve tried to play multiplayer Quake 3 using the original id Quake 3 binaries or ioquake3 in the past few months you might have had a difficult time finding a game with the built-in Server Browser. You would have seen the error message in the screenshot above:

No Response From Master Server

The master server is what game servers that you play on talk to, in order to communicate their availability to your copy of Quake 3: Arena.

Since at least March 11th the official Quake 3: Arena master server offered by id software at has been offline and that is why there is an error displayed instead of a list of servers.

We operate a master server at that has been up for years, and fortunately servers using ioquake3 are still reporting in to it, but there isn’t a quick fix for the in-game server browser at the moment. We have repeatedly reached out to id software to notify them of the issue, suggesting resolutions for it, and received no response.

You can watch for the resolution of this issue on Gibhub, but even when we resolve the issue for ioquake3 players, people using the original id binaries will be out of luck unless they switch to ioquake3 or id software brings their server back online.

There are third-party server browsers such as Qtracker and XQF will continue to work if directed to our master server.

Our Quake 3 server is still online and you can connect to manually by typing /connect in the console. This same methods works for connecting to other servers when you know their address.

ioquake3 on OS X El Capitan & Windows 10

Wednesday, September 30th, 2015

El cap win 10

Two major updates have come to desktop and laptop computing recently. OS X 10.11 El Capitan and Windows 10. Big news for users of each platform, and we’re excited that ioquake3 continues to work with both platforms for players updated to the latest build.

Check out our Players Guide and Sysadmin Guide, or just go ahead to the test builds, to get started with playing ioquake3 or running a server today!

If you run into any issues with either this new operating systems or old ones, let us know on our community forums. Thanks to our community of contributors for helping us keep Quake III, mods, and new games going for TEN YEARS now, wow. That is a lot of fragging!

ioquake3… in Docker?!

Friday, June 26th, 2015

The folks from the open platform for building, shipping, and running distributed applications called Docker demonstrated a containerized version of ioquake3 at Dockercon. Not just the server, but also the client. Docker’s Arnaud “icecrime” Porterie even called ioquake3 “The best game ever” in their dockerfile description. I don’t think I could be more proud. They were already my favorite container project when I started using Docker for our Discourse forum installation.

ioquake3 updated to SDL 2

Monday, August 25th, 2014

If you’ve been following along via github, twitter, facebook, and our new discourse-powered forums, you might have noticed that we’ve been working on updating ioquake3 to Simple DirectMedia Layer (SDL) version 2. SDL 2 is already in use in lots of games, and we’ve been using it internally for over a year now, which is why we felt that it was finally appropriate to bid farewell to SDL 1.2.

The SDL upgrade won’t make a huge difference to the experience of playing Quake 3 and the assorted games that have been built with this engine, but if you’ve got a copy of Q3A please try out the new test builds. Your testing will give us a chance to see if everything checks out OK on more systems than the ones we have access to.

Once in-game you can /connect to our new test server at

Please report any issues you find with the test builds on the forums, in IRC, or on bugzilla.

Test Builds are Back!

Thursday, July 18th, 2013

If you’ve been waiting to try out the latest features like the new renderer from our github, you don’t have to wait any longer. We’ve got our test builds page back online and updated with the latest builds from our continuous integration systems.

These builds aren’t tested, but you can file bugs against them on our bug tracker and let us know how they work out for you on our forums.

Go frag somebody today.

Continuous Integration with Travis

Thursday, March 7th, 2013

Ghost of shame

It’s been a long time since I last wrote about any kind of testing, and one of the most basic forms is making sure your build compiles as a step of continuous integration.

This has been added to ioquake3’s github with the Travis service.

What this means is that every time one of your friendly neighborhood ioquake3 team members makes a commit, travis will pull down a copy of the codebase from github to a fresh virtual machine, read our instructions, and follow them to compile our codebase with a script that we’ve created.

If the build succeeds, great!

If the build fails, then, oh no! Somebody screwed up and let me write code again. A bot is dispatched by travis to our irc chat compound ( #ioquake3) to let us know and will let everyone know which commit broke the build. The author will then receive the depicted ghost of shame in the mail within 64-128 weeks.

Currently we’re telling Travis to build for mingw (under Linux) and Linux itself with various options and it takes about 14 minutes to complete the operation.

In the future we hope to figure out a way save the builds Travis creates to the ioquake3 website so that we can offer you more expedited builds.

Travis’ website suggests a method that involves Amazon S3 but we are interested in other storage solutions.

Happy New Year, ioquake3 and github!

Tuesday, January 1st, 2013

Hi All,

This August will be the 7th Anniversary of ioquake3!
Time flies when you’re fragging fools and breaking builds.
We still haven’t had a release since 2009. Don’t worry, we still have another 365 days to go until it has been 5 years since a release!
The real reason for this post is that I wanted to tell you all that we’re moving the project to github.
There is a new organization there, called ioquake.
But most importantly there is a project there that you can clone, fork, and send pull requests.
Bugzilla and other things hosted on will keep going, but the SVN repository is now deprecated and I don’t know if it will remain online or not. If possible, we may set up a thing to automatically slurp in changes from the github project. itself is not going anywhere
Thank you to everyone who has contributed and played ioquake3 since the project started on August 20th, 2005!

Make sure to join us on for some baseq3 fragging when you get a chance!

Here are your top-ten all-time contributors, by number of commits:

  1. Thilo Schulz
  2. Tim Angus
  3. Ludwig Nussel
  4. Zack Middleton
  5. Ryan C. Gordon (he beat me by 3 commits!)
  6. Zachary J. Slater
  7. Tony J. White
  8. Aaron Gyes
  9. James Canete
  10. Coyote

If you have any questions or suggestions let me know in the comments here, on our freenode irc channel #ioquake3, or on our twitter account and facebook page.


ioquake3 and OS X Mountain Lion

Wednesday, August 8th, 2012

10imac27 photo

The latest version of OS X, Mountain Lion has been available for a little while and we have now confirmed that ioquake3’s latest SVN (revision 2306) compiles and runs smoothly on it.

If you already have ioquake3 installed on your intel Mac running 10.6 or greater please try a test build:

It should run fine under Mountain Lion, if you have Gatekeeper enabled with the default setting you will have to right click and then select Open on the .app.

Please let us know if it works well for you.

CVE-2012-3345 symlink attack in ioquake3 >= r1773

Thursday, June 14th, 2012
ioquake3 [IOQ] is a fork of the Quake III Arena (id Tech 3) game engine,
and has become the de facto upstream for that engine since id Software
ceased to develop it. It is also used (unmodified, modified or forked)
in various open-source and proprietary games including OpenArena [OA],
Reaction [REA], Smokin’ Guns [SGN], Tremulous [TREM], Turtle Arena [TA],
Urban Terror [URT] and World of Padman [WOP].
Access vector: local
Authentication required: local system
Impact: overwrite a file owned by the victim with a predictable integer
Since svn revision 1773, ioquake3 has written its process ID to the file
/tmp/ (or in a world-writeable location) under the
following circumstances:
* running on non-Mac Unix and TMPDIR not set, or set to a
world-writeable location; or
* running on Mac OS and FSFindFolder() for a temporary directory fails
or returns a world-writeable location
On a multi-user system, an attacker could create a symbolic link
/tmp/ pointing to any file owned by a user who plays an
ioquake3-based game. When the victim runs ioquake3, the target file will
be overwritten and replaced with the process ID of ioquake3.
The effect of this attack depends on the file being overwritten: it
could be simple vandalism (destroy one of the victim’s files), or it
could have further security implications if knowledge of the contents of
a target file is used for authentication (in a system similar to
pam_dotfile [DOT], for instance).
For the dedicated server, the process ID is written to,
but the attack is essentially the same. For forks of ioquake3, the
filename will typically include the name of the fork, e.g.
Affected versions
* ioquake3 >= svn r1773
* ioquake3 < svn r2253
* OpenArena 0.8.8
* Reaction beta 1.0
* Smokin’ Guns 1.1
* Tremulous “trunk” >= svn r2125
* Tremulous “gpp” >= svn r2140
* Turtle Arena >= svn r204 (all releases named Turtle Arena)
* World of Padman >= 1.5.2 beta
Unaffected versions
* ioquake3 1.36
* ioquake3 <= svn r1772
* ioquake3 >= svn r2253
* OpenArena <= 0.8.5
* Smokin’ Guns <= 1.1b4
* Tremulous “trunk” <= svn r2124
* Tremulous “gpp” <= svn r2139
* Tremulous GPP1
* Tremulous <= 1.1.0
* Turtle Arena <= svn r203
* TMNT Arena 20091211 (former name of Turtle Arena)
* ioUrbanTerror 2007-12-20 client
* ioUrbanTerror 2007-12-20 server
* World of Padman <= 1.5.0
The attached patches have been reviewed by two ioquake3 maintainers.
Please apply them to affected versions on or after the embargo date.
Patch 0001 fixes the vulnerability by writing the pid file into the
ioquake3 user’s home directory (e.g. ~/.q3a/ for an unmodified
engine with default configuration) instead of the temporary directory.
Patch 0002 is recommended, but not strictly necessary to fix the
vulnerability. It removes the functions to get the temporary directory,
as a precaution against other unsafe uses.

Calling all content creators!

Saturday, June 2nd, 2012

Work has started on “baseio“, a project to create a small game to include with the ioquake3 engine download with Creative Commons licensed content. Work has already been started on textures, weapon models, and a player model, but there is still much to be done. Animations, mapping, and audio are most needed, but if there’s anything you can contribute, join the discussion. Any content contributed must be under a Creative Commons nonccommercial-by-sharealike license. The ioquake3 code base and any contributed code will remain GPL. We also need some people who have lead mods before since we’ve run out of beer so now we’re too sober to know what to do.

Ryan “icculus” Gordon speaks on Open-Source gaming

Friday, April 8th, 2011

including the Quake series:

High-Resolution Creative Commons Texture Replacement Pack

Tuesday, August 24th, 2010

Looking for a graphical update to Quake 3?

Check out this new texture pack from Paul Marshall (aka Kpax).

It replaces the original textures in Quake 3 with high-resolution versions, and it is licensed under the creative commons!

Download now: (179MB)

Unzip this file to your baseq3 directory, note that pure servers will need to have the file as well.

ioquake3 (kwaak3) on the Droid & G1

Tuesday, May 11th, 2010

Via Thunderbird’s excellent kwaak3 ioquake3 spin-off, I just tried out ioquake3 on a borrowed Verizon Droid (Motorola Milestone). I’ve also tried kwaak3 on a donated T-Mobile G1 (HTC Dream):

it is truly amazing that ioquake3 can run well on these platforms, not just for first-person-shooters or doom clones, but for new kinds of games to have a stable engine for many, many platforms.

Relnav’s Quake 3 Announcement

Wednesday, March 31st, 2010


San Francisco, CA – After over four and a half years of serving the Quake 3 community, the developers have behind ioquake3 have decided to make some changes. Citing the need to keep with the future and keep up with the community’s demands, the ioquake3 team has teamed up with Relnav of the Relnav’s Quake 2 project. With this, several changes will be made:

  • ioquake3 will be renamed to Relnav’s Quake 3
  • The principal development platform will be Windows 7 and Direct3D 11
  • Legacy suport for Mac OS X and Linux will be provided by the WINE emulation software project.
  • The multiplayer subsystem has been rewritten and a new, written-from-scratch, anti-cheat system has been created.

The first release of Relnav’s Quake 3 will be made available in the next few days. Due to the anti-cheat system, source-code releases have been suspended for the forseeable future.

We’ve already provided a few mod teams with a prerelease version of Relnav’s Quake 3, and we’re excited to see what people can do with it.
One particularly promising mod team has created a mod in the Goldeneye: 007 style but using the CSI: Miami universe! It is really quite amazing.

The Relnav’s Quake 3 team thanks you for your continued support and looks forward to the next five years!