Quake Capture

Quake Capture is a patch that adds capture functionality to modified Quake1 and Quake2 engines. It was written for machinima purposes, but could also be used for engine mod demos, and other fun and games.


Project information

See the project page for relevant details.

Latest Downloads


Documentation for patching and/or using a patched engine.

The appropriate documentation is also included in the downloads above.


New Release: adds capture_dir, and support for Quake2 timescale
Posted by anthony_bailey on Sunday, August 1 2004

The latest releases (the ones linked above) incorporate two small improvements mentioned in the catch-up news below.

The docs have been updated too. I'll snip the relevant changes to them to explain the changes:

[A new console variable] capture_dir: Base directory relative to the current working directory into which to write captures. The directory separator is the Quake/Unix "/" rather than the Windows "\". Dot directories ("." and "..") are not supported, but the empty string (default value) indicates the current working directory. Using drive letters (like "c:") should work OK.


In the original Quake2 engine, using fixedtime negates the effect of timescale (the usual relationship between gameclock time and real time.) Quake2 machinima sometimes uses timescale, either for slow-motion or as part of a hack to clip "swoosh-pan cut frames". From August 2004, QuakeCapture applies a small patch to qcommon/common.c intended to allow timescale to continue working under use of fixedtime, and thus to enable capture of such machinima.

Backdated news
Posted by anthony_bailey on Sunday, August 1 2004

It has been almost a year since the last update. Here's the little that has gone on since.

I failed to pimp the patch on return from holiday, so to the best of my knowledge it hasn't been officially folded into the trunk codebases of any of the various engine mods. Some users have independently patched engines, though - I've heard the expected success stories concerning e.g. Tenebrae.

The Machinima Production Kit is a worthy but under-resourced project to package together tools and docs for people who want to try making machinima. It contains a version of the Quake2Max engine patched with QuakeCapture, slightly extended with a feature I've just rolled into a new release. (It also contains a separate MFC app to provide a form GUI for the process of batch capture. I threw it together very hurriedly, somewhat under protest - the command-line is no more confusing right now, I think.)

I had some talks with Ivan Daniluk about Linux support, and/or linking against codec libraries such as ffmpeg. He did something along those lines. We never managed to get free / organised enough to work together on anything, though.

I had a minor bug report from Nolan Pflug of Speed Demos Archive - he found his extremely old (buggy?) 3D card had trouble with the QuakeCapture's double API call of glCopyPixels. (Nolan could reproduce the same problem by taking screenshots.)

I had a more serious issue reported by Doc Nemesis of Binary PictureShow. He used the code to capture Episode 3 of his Bouncer Please series and found it reintroduced "sliding cuts" that he had suppressed using a timescale-based trick.

I was aware of this problem since I'd seen it when testing QuakeCapture on Hardly Workin' - the first movie to use that trick to avoid the problem with Quake2 interpolating camera angles across the 0.1 seconds between two frames of a cut.

Somewhat annoyingly, I believe it was me who originated the trick in question - hoist with my own petard. For those who understand the details, the problem is that Quake2's fixedtime - used by QuakeCapture to get a constant framerate and non-realtime capture - overrides timescale.

This bad interaction seemed unnecessary, so I made a tiny change to the engine to persuade the two effects to play nice together, and this seems to work fine. So, I'm putting out a new release of QuakeCapture.

Public Release
Posted by anthony_bailey on Thursday, September 25 2003

I've finally released files (see the downloads section above), and also published the usage and patching documentation.

These have actually been ready for a while, but I've been busy at work, as has my beta tester: thanks to Hugh for his comments, which have at least improved the documentation.

I am on holiday for a week soon, so I probably won't pimp this release around or dress up this site any more until I return. But everything should be good to go - if you've gotten here, please try my patch out!

Down time
Posted by anthony_bailey on Wednesday, August 27 2003

SourceForge suffered about the first outage I've ever been aware of. This project appears to have been one of those whose web content was on the disk that failed - but nothing much has been lost since the last back-up, just a news update where I mentioned I'd finished testing and was halfway through documentation.

In the mean time everything has been finished off. I'm beta testing the whole package including documentation by asking a friend to see if they can without further help take an arbitrary modified engine, apply the patch, and capture an AVI of some machinima from said engine. Following this test, I'll publish for real.

Local success story
Posted by anthony_bailey on Wednesday, August 20 2003

As you can see, code hasn't made it to the repository yet. But I have local copies of Quake1 and Quake2 engines supporting capture of AVI and of a series of TGA screenshots, using minimal diffs to the original engines plus a set of files to implement the capture and some intervening patch glue.

All of the differences between the Quake1 and Quake2 glue are found in a single file, so I expect I'll be distributing both patches as a single download.

I just have to find some time to run some final tests, commit, document, package and upload. (Real-world work is a bit busy right now, alas.)

First Post
Posted by anthony_bailey on Sunday, August 3 2003

As per the SourceForge project summary, in general this project is about publishing modifications to the id Quake engines to enable capture of video and audio output. I have previously written code for AVI output in both engines under Win32 and that's the first thing I'll be presenting here.

So far I have:
- set up the project here on SourceForge
- imported as-yet-unchanged baseline copies of the id Quake1 and Quake2 codebases
- installed a CGI script for publishing these news items

Powered by Coranto