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.
Timeline 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.
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.
The subdomain to access the forums has changed from community.ioquake.org to discourse.ioquake.org. Please update your bookmarks and note that you might see some error messages in your browser during the transition if you visit the old URL. We’re still working out the best method to redirect old traffic to the new site.
Back in 2013 we moved our forums to the new open source forum software on the block, Discourse.
It has been easier to maintain these forums than our old ones which used phpbb 3. With phpbb we got so much spam that we had to routinely shut down registration, manually approve users, and resort to bringing new moderators on board to team up for spam account deletion parties.
With Discourse, we get so much less spam, practically none in the almost 3 years since we switched.
Discourse forums are also much easier to read on modern browsers and mobile devices. It’s a flat design that doesn’t overwhelm new users with categories at first glance. Replies can be in the topic or you can create a new topic if you don’t want to derail the current one. Topics update in real-time so you are less likely to post the same thing as somebody else. Replies to an individual post can be read without losing your place in the topic.
The news today is that we’re in the process of moving from our self-hosted installation to Discourse’s official hosting. It took just a few moments to pull the levers to upload our backup from the old forums and switch. The forums should be more reliable, faster to access, and despite the transition we have retained all of the posts on the forums since we moved to Discourse in 2013. We are extremely thankful to the Discourse team for providing this service to our project as well as other open source projects.
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.
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 master.quake3arena.com has been offline and that is why there is an error displayed instead of a list of servers.
We operate a master server at master.ioquake3.org 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 phobos.ioquake3.org in the console. This same methods works for connecting to other servers when you know their address.
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.
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!
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.
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 phobos.ioquake.org
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.
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 (irc.freenode.net #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.
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 icculus.org 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.
ioquake3.org 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 server.ioquake3.org for some baseq3 fragging when you get a chance!
Here are your top-ten all-time contributors, by number of commits:
Ryan C. Gordon (he beat me by 3 commits!)
Zachary J. Slater
Tony J. White
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.
The virtual machines system and the associated toolchain that altogether account for 30% of the code released. Under this perspective idTech3 is a mini operating system providing system calls to three processes.
The elegant network system based on snapshots and memory introspection.
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.