Demo Badger: Source
By Foozalicious aka joelpt email@example.com
Demo Badger: Source is a demo recording and movie generation utility for Source engine games such as Team Fortress 2, Counter-Strike Source and Left 4 Dead. With Demo Badger you can easily create and 'bookmark' demos while playing any Source game, then turn those demos into standard AVI movie files automatically.
Demo Badger has been tested on Windows XP, Vista, and Server 2008 32-bit. It will probably work on 64-bit or pre-XP systems too.
Demo Badger is freeware.
Never say "I wish I had recorded that" again: Demo Badger is always recording!
Save bookmarks within your demos, capturing your best moments
Automatically generate movie files from your bookmarks and demos
Works with any Source based game
Minimal resource usage: Demo Badger does not hurt game framerates
Ability to keep everything you record automatically, toggleable on the fly
Fine-grained control over movie generation for power users
Novel user interface that talks to you
Launch Demo Badger and a Source game (in either order); Demo Badger will start demo recording automatically once you're in-game.
While playing, type Alt+B, then follow the prompts to save a demo bookmark.
Later, use Alt+G from the game's title screen to generate AVI movie files from your bookmarks.
Alt+B Bookmark Alt+Q Quick Bookmark Alt+C Check Demo Ctrl+Alt+B Bookmark Set Start Alt+L Save Last Demo Alt+Z Toggle Autosave Alt+G Generate Movies Ctrl+Alt+R Trash Demo Ctrl+Alt+Q Reload
Right click Demo Badger in the system tray to access the preferences panel, read the manual, and show the hotkeys tip box.
Demo Badger is a demo recording and movie generation assistant that works with most Source games.
Whenever you're in a Source game, Demo Badger will automatically keep a demo recording at all times. Whenever something happens that you want to "capture on film", Demo Badger lets you instantly create a "demo bookmark" that it will later use to create a movie file from.
When you start Demo Badger, make sure your speakers are on. Using speech synthesis, Demo Badger should announce the list of games it has been installed for (first launch only).
Launch your Source game of choice (only the most well-known Source games will be recognized without editing games.ini). Demo Badger should detect the game window and play an announcement letting you know. Note that Demo Badger can be started either before or after launching a game.
Join a game server. Shortly after entering the game, Demo Badger will automatically start demo recording. It will continue to do this between map changes and game restarts.
DB has several hotkeys that operate in-game. The most important of these is the Bookmark hotkey: Alt+B by default.
Any time during play, press Alt+B. This will set a new bookmark, ending at the moment you pressed the button.
A prompt will appear asking you for a bookmark title and a duration (see below). The duration you enter here determines the starting time for the bookmark.
To understand the purpose of bookmarks and their duration, let's jump over to the movie generator function of Demo Badger.
Demo Badger automates the process of generating movie (AVI) files from your demos and bookmarks. To begin, launch your game of choice. Once it's up, press Alt+G to start Demo Badger's movie generator.
A file selection box will appear. Select one or more previously saved demos (.dem files) to generate movies from.
Here's where bookmark duration comes into play. When you press OK on the file selection box, Demo Badger will start playing back your first selected demo. Once the demo is playing, it will first be fast- forwarded to the starting time of the demo's associated bookmark. The game engine will then be instructed to begin movie recording, and stop it at the bookmark's ending time.
Demo Badger also work with .dem files saved prior to Demo Badger installation as well: it just makes a movie of the entire demo. Also see the "Creating and modifying .dbs files" section for details on editing bookmarks prior to movie generation.
At the end of the movie generation process, the newly created AVI files will be moved to the folder specified in your preferences. (default C:\movies).
Taken together, the "always on" recording, bookmarking, and movie generation features greatly simplify the demo-to-movie creation process in Source games. Have a go and let me know what you think! firstname.lastname@example.org
Play your game in windowed mode if at all possible. Note that many people can run in windowed mode with minimal performance hit by using borderless windowed mode. The movie generator may not work without switching the game to windowed mode.
Take a few minutes to familiarize yourself with the preferences availble (right click DB's system tray icon, then click Preferences). Many aspects of Demo Badger can be tweaked to your liking.
Though Demo Badger has a minimal memory/CPU footprint, demo recording within Source games can cause infrequent framerate hiccups, especially if you have an antivirus program scanning your Steam folder; excluding that folder in such programs can help. Source games will also lag for a bit whenever you restart a demo; this can be avoided by using multiple bookmarks per demo. See "Autosaving and multiple bookmarks per demo" for more.
Movie generation in Source games is still quite flaky and prone to crashes. To maximize your chances of success:
Restart your system before starting generation, and close other unneeded programs. This can prevent crashes, especially if you're generating a lot of movies.
I can generate videos on my box without crashing by using a 1024x768 resolution, but I get periodic crashes using 1280x1024 resolution. So if you are seeing crashes, consider using a lower resolution. This also suggests the crashes may be related to hard disk speed, so trying to write to a faster hard drive may also help (see section on Using a Scratch disk).
It is safe to Alt-Tab while movie generation is running. However running certain programs may cause problems. In particular avoid launching graphical applications and games.
Try downloading and installing the latest Xvid codec. The version packaged with Demo Badger fixes many issues from the codec version installed on most systems, but newer versions may help further. http://www.xvid.org/Downloads.15.0.html
Even after all of this, Source games still crash during movie generation far too often. This may be resolved by a future Valve update to their demo system (currently in the works).
A last resort is to set Preferences->Movie Generation->Movie Type to tga. Source games don't crash using this type, but you'll wind up with one .tga image file per frame of your movies. Tools such as VirtualDub can be used to turn these into regular AVI files.
With the default options, Demo Badger only keeps those demo files which you create a bookmark in. Un-bookmarked recordings are silently discarded. If you would like to instead save every demo recorded (every round you play), enable the Autosave Complete Demos option in Preferences->Saving Rules.
Demo Badger also stores only one bookmark per demo by default. When you create a bookmark, Demo Badger stops the currently recording demo, saves it, then starts a new demo. This minimizes disk space usage. On the downside, your game will be laggy for a few seconds after demo recording is restarted.
As an alternative, you can enable the Multiple Bookmarks Per Demo option in Preferences->Saving Rules. When this is on, Demo Badger will not restart demo recording every time you create a bookmark. Instead, the demo will be allowed to continue recording, and DB will store multiple bookmarks for that demo. Later, during movie generation, if you select that demo to create movies from, each bookmark stored for that demo will be turned into its own movie file.
A related feature is Quick Bookmark. When you press Alt+Q (default), Demo Badger will create a Quick Bookmark. You will not be prompted for a bookmark title or duration; a default title and duration (30 seconds, modifiable in Preferences->Default Durations) will be used. The currently recording demo will not be restarted. This is very useful when you're in the heat of battle and you want to create a bookmark but don't want any interruptions to gameplay.
It is also possible to bind the Quick Bookmark key to a bare key in Preferences, such as the x key, making it very easy to grab quick snippets of gameplay as you play.
For more details on multiple bookmarking, see the section titled "Creating and modifying .dbs files" below.
Demo Badger creates a .dbs file along with every .dem file it saves. It records your bookmarks in this file as a series of simple timestamped commands.
When a .dem file is selected during movie generation, Demo Badger reads the contents of the .dbs file and generates a Source-compatible .vdm file. The .vdm file is used by the game when a .dem of the same name is played, and controls what happens during demo playback. Demo Badger uses this .vdm to control movie recording and fast-forwarding.
The file format is as follows:
duration m:ss m:ss command m:ss command [...]
where m:ss is a time code in minutes:seconds format and 'command' is one of:
start title // start recording a movie with filename 'title' stop // stop recording movie console command // any console command
For example, here we record the last 30 seconds of a 2 minute demo:
duration 2:00 1:30 start lastbit 2:00 stop
Besides 'start' and 'stop', you can insert any normal game console command and it will be sent at that time of demo playback. For example, if we wanted to also record the first 30 seconds of our 2 minute demo at 60 frames/sec (DB defaults to 30 frames/sec), we could use this:
duration 2:00 0:00 host_framerate 60 0:00 start firstbit 0:30 stop 1:30 host_framerate 30 1:30 start lastbit 2:00 stop
You can create new .dbs files for older .dem files that you have recorded. Just give the .dbs file the same name as the .dem file. It is not necessary to include a 'duration m:ss' line.
Demo Badger uses Windows Speech Synthesis to produce voice announcements while you play. It is possible to change the voice that is used:
Go to Start->(Settings->)Control Panel
Double click 'Text to Speech' (Vista) or 'Speech' (XP) in the list.
Select a different voice from the Voice selection dropdown. You can also alter the voice speed here.
Windows comes with a few different voices. You can find more voices online (most are commercial products):
By default, Source games output movie files to the game's root folder within your Steam subfolder (same folder as hl2.exe). This can consume disk space from a hard disk you may not have space on, and (especially if you generate TGA files during movie generation) can also have a negative effect on the movie generation speed.
Under Windows Vista, you can set the Scratch Folder option in Preferences->Folder Settings to have DB use a different 'scratch' folder for this temporary location.
Even when Scratch Folder is not used, DB still moves finished movie files to MovieOutputPath (in demobadger.ini).
Note that this only works under Vista because DB utilizes the mklink command (unavailable in XP) to create an NTFS junction for the scratch folder within each game's folder. The need for this is a consequence of a technical limitation of Source's .vdm file format (can't embed double quotes which would let us specify a full path to startmovie).
It is possible, with some manual configuration and some Windows expertise, to configure Demo Badger to use a scratch folder under XP. To do so, you'll need to download the JUNCTION.EXE utility:
Use it to create a junction folder named 'scratch' within each of your Source game's root folder (where hl2.exe resides) pointing to your desired scratch folder. Once this is done set Scratch Folder in Preferences->Folder Settings to the target scratch folder.
By default Demo Badger just recognizes a handful of the most popular Source-based games. If a game isn't recognized by DB, it will be disabled while in that game.
If you'd like to add new games, see the games.ini file, which has instructions for adding.
0.99b9.01 (2009 08 31)
0.99b9 (2009 08 27)
0.99b8 (2009 08 20)
0.99b7 (2009 08 17)
0.99b6 (2009 08 15)
0.99b5 (2009 08 12)
0.99b4 (2009 08 12)
0.99b3 (2009 08 12)
0.99b2 (2009 08 10)
0.99b1 (2009 08 01)