Overview
Looking to produce a quality machinima or translate your cinematic skills into the GoldSrc engine? This master guide will show you how to customize a WIDE array of in-game settings and perform basic cinematography with ease to put a little shine into your production.
0. Table of Contents
-
Introduction
- 1a. Summary
- 1b. About Me
-
Learning the Console
- 2a. About the Console
- 2b. Toggling the Console
-
Using the Console
- 3a. Enable Cheats
- 3b. Enter Commands
- 3c. Enter Cheat Codes
- 3d. Bind Commands to the Keyboard
- 3e. Create/Alias Commands
-
Adjusting Passive A/V Settings
- 4a. Adjust Video Resolution
- 4b. Adjust Frame Rate
- 4c. Adjust Gamma/Brightness
- 4d. Adjust Anti-Aliasing
- 4e. Adjust Texture Filtering
- 4f. Toggle Model Quality
- 4g. Adjust Audio
-
Building the Scene
- 5a. Select a Map/Scene
- 5b. Lighting
- 5c. Spawn/Hide/Remove NPCs
- 5d. Manipulate NPCs
- 5e. Show/Hide Decals & Gibs
- 5f. Show/Hide Map Entities
- 5g. Show/Hide Map Triggers
-
Utilizing Save/Loud (Singleplayer)
- 6a. Advantages
- 6b. Commands
- 6c. Savepoint Directories
-
Adjusting the “Lens”
- 7a. Adjust Zoom / Field of View
- 7b. Hide HUD
- 7c. Change Point of View
- 7d. Give Yourself Weapons
- 7e. Show/Hide Weapons
- 7f. Unholster Weapons
- 7g. Fast-Switch Weapons
-
Camera Movements
- 8a. WASD Movements (Dollies & Trucks)
- 8b. Up/Down Movements (Pedestals)
- 8c. Freelook Movements
- 8d. Roll Movements
- 8e. Third-Person Movements
- 8f. Combine Movements
-
Adjusting Movement Mechanics
- 9a. Free Movement
- 9b. Adjust Movement Physics
- 9c. Adjust Friction
- 9d. Adjust Bobbing
- 9e. Adjust Tilt Range
- 9f. Adjust Mouse Input
-
Positioning the Camera & Frame
- 10a. Framing Tips
- 10b. Align Camera Position with Map
-
Utilizing Demos/Replays
- 11a. About Demos
- 11b. Record Demos
- 11c. View Demos
- 11d. Demos’ Directories
-
Exporting Video/Audio
- 12a. With Vanilla GoldSrc
- 12b. Game Directories
- 12c. With Half-Life Advanced Effects (HLAE)
- 12d. With Other External Programs
-
Conclusion
1. Introduction
Looking to bring your cinematography skills into the GoldSrc engine but unsure how to?
This master guide translates cinematography into the digital world, specificially into games powered by the GoldSrc engine (Half-Life, Counter-Strike, Team Fortress Classic, etc.), by explaining how to:
- Perform cinematic tricks and techniques
- Utilize the game’s features, such as the developer console, demos/replays, and saving/loading
- Customize a wide array of built-in controls and cinematic variables (e.g. movement speed)
- Build your “scene” (create and manipulate NPCs, visuals, etc.)
- Modify your “lens” (FOV/zoom, HUD, weapons, etc.)
- Adjust in-game video/audio settings for preferred quality output
- Export your work into a replay/video format
Please note that this guide is for those who already have general knowledge of cinematography, so basic concepts (such as balancing a frame, using rule of thirds, applying headroom, lead room, etc.) will not be covered. This guide also assumes that you’ve played a GoldSrc game before.
As a fan of Valve’s Half-Life series since 1998, I began producing videos with their games in 2006. By utilizing in-game tools that the developers provided, I’ve been able to achieve numerous (yet simple) cinematic shots in GoldSrc, such as the ones featured in this video:
And hopefully, by the end of this tutorial, you’ll be more familiar with the GoldSrc engine and subsequently more flexible with your creativity.
2. Learning the Console
In order to take full advantage of your game, it’s time to familiarize yourself with the game’s developer console if you haven’t already.
The developer console is used to manipulate a variety of in-game controls and graphics by utilizing commands that the developers provided. It is essential for capturing better footage.
The console can be opened by pressing your ~ key at any time while the game is launched.
3. Using the Console
Now that you’ve familiarized yourself with the console, now it’s time to put it to good use. The majority of this guide will delve into further details of other, more useful commands.
Throughout this guide, all console commands will appear bold and italicized.
The first and most important step is to enable commands that the game considers as cheat codes, which can be very useful. Does not apply to multiplayer servers.
- Save your game (singleplayer)
- Press ~ to open your console
- Enter: sv_cheats “1”
- Enter: map c1a0 (or map ba_tram1 for Blue Shift) [singleplayer]
- Load/return to your initial save (singleplayer)
Here are some general commands for you to practice and use at your disposal:
To stop commands that begin with a plus sign ( + ), they have to be retyped with a minus sign ( – ) or bound to a key (read: section 3d) instead.
Once you’ve enabled cheats (read: section 3a), the following examples can be used to your advantage:
To bind means to attach a console command to a selected key on your keyboard. The advantage of binding is that it prevents you from having to interrupt your gameplay/take by opening and closing the console. Here is the blueprint:
Why create a command, or alias? Well, this can simply combine a string of commands when binding them to your keyboard. Sometimes, it’s necessary.
Blueprint:
Example:
or
Once you have created your unique command, it can be bound to a key of your choice (read: section 3d).
4. Adjusting Passive A/V Settings
Before you dive into the production, consider adjusting passive video and audio settings as needed to avoid (for example) footage that’s too dark or audio that’s too loud/distorted.
Option #1 (In-Game):
- Open the game menu
- Go to Options > Video
- Select your desired stock resolution under Resolution
The game will restart, so cheats will have to be reenabled again.
Option #2 (Steam):
- Go to your game list
- Right-click on desired GoldSrc game
- Select: Properties > General > Set Launch Options…
- Enter: -w # -h #
- Select: Ok > Close
- Launch game
For those recording with demos (or videos above 60fps), you’ll want to apply these settings through the console:
Read: section 5b.
There are no available settings to change your anti-aliasing settings in-game. Instead, you have to override this option through your NVIDIA settings.
- Open NVIDIA Control Panel
- 3D Settings > Adjust image settings with preview
- Select: Use the advanced 3D image settings > Apply
- 3D Settings > Manage 3D Settings
- Under 1. Select a program to customize
- Select Half Life (hl.exe) in the dropdown list
- If not found, select the .exe through Add
- Under 2. Specify the settings for this program:
- Antialiasing – Mode > Override any application setting
- Antialiasing – Setting > Select preferred setting (higher = better)
- Antialiasing – Transparency > Off
- Click Apply
- Start/restart game
If you wish to disable anti-aliasing (regardless of NVIDIA settings):
- Go to your game list
- Right-click on desired GoldSrc game
- Select: Properties > General > Set Launch Options…
- Enter: -nomsaa
- Select: Ok > Close
- Launch game
To re-enable anti-aliasing, simply remove -nomsaa from the target line.
In order to keep your audio from sounding worse than what the game already provides, take the following options into consideration:
You may need to adjust your sound (and/or mixer) to avoid audio clipping/distortion. You’ll also have to make sure to have your system sound set to stereo, not surround. If you change such options, restarting your game is recommended.
5. Building the Scene
Lets say the content you’d like to record isn’t traditionally set up in the game. Fortunately, you’re still able to spawn/manipulate particular NPCs and modify some visuals in your scene.
Where do you want to record?
Light sources in maps can’t be moved in-game, but its settings are still adjustable. Your only interactive light source is your flashlight (read below).
Server/map must be reloaded upon changing these commands (except flashlight).
To properly spawn an NPC:
- Its model must be already “precached” or existing somewhere on the map, dead or alive.
- Else, you’ll be disconnected from the server/map if attempted.
- Else, spawn a precached NPC next to a map transition to precache it in the next map.
- It must be spawned below you in a clear, open area.
- Else, it’ll spawn with floating yellow dots/orbs surrounding it due to clipping.
NPC List:
(Ex: give “monster_barney”)
- Using the notarget command via console will toggle your invisiblity to NPCs. This can be used to time when an NPC will react to you.
- Toggling notarget while an NPC is attacking you will make their AI bug out.
- Making a friendly NPC follow you can speed up the process of moving them.
- Friendly NPCs are pushable as long as they’re not in danger or in a scripted animation/dialogue.
- Otherwise, stuck NPCs may become pushable by shooting them with the hivehand weapon first (weapon_hornetgun).
- Threatened, defenseless NPCs will run away to hide whenever possible. Else, they may “dance”.
- G-Men can block other NPCs from running away, since G-Men remain unresponsive.
- Friendly NPCs will talk during calm scenarios, whether to you or other friendly NPCs.
- Savepoints can help predict when friendly NPCs will talk (read: section 6).
- Killing NPCs during scripted movements or dialogue can cause a delayed death, and they may still respond to you when dead.
- Standing on top of a stationary NPC can disrupt scripted movements.
- Shooting spawned G-Men can cause them to face you or walk to certain spots on the map.
Demos sometimes do NOT record decals that are on the map (read section 11). Only ones that are guaranteed to appear have to be freshly made during the recording.
Maps may contain scripted sequences, buttons, and other features that rely on invisible boxes, referred to as triggers, to activate these features. It can be very useful to make these triggers visible for whatever the case.
6. Utilizing Save/Load (Singleplayer)
If you’re not already familiar, singleplayer games on the GoldSrc engine typically feature a save/load feature.
As any filmmaker will come to realize, the save/load feature is excellent for filmmaking. Why?
- Acts as a checkpont when building scenes or predicting A.I.
- Allows you to quickly begin a new take, potentially saving hours of time
- Allows you to come back to a scene if needed
- Your savepoint can be customly named
- Your savepoint can be archived
Save points are stored in your game’s directory as .SAV files:
7. Adjusting the “Lens”
Most concerns regarding the lens can be fixed with the options below.
In the GoldSrc world, changing your zoom means changing your field of view.
*** This command does NOT work in Opposing Force. To keep the HUD hidden, read Option #3 in section 7d.
Need some weapons for some first-person action? There are a few ways to go about this. One way is easier, the other is necessary if you’re using Opposing Force and want the HUD to remain hidden.
Option #1:
- Open your console (~)
- Enter impulse 101
- Repeat command numerous times to max out suit and ammo.
Option #2 (excludes HUD/armor):
- Open your console (~)
- Enter give “X” (replacing “X” with any weapon from list below)
- Repeat command numerous times to max out weapon’s ammo.
Option #3 (keeps HUD hidden in Opposing Force):
- Open your console (~)
- Load desired map with map “X” (replacing “X” with desired map)
- Enter give “X” (replacing “X” with any weapon from list below)
- Repeat command for a second weapon (if needed)
- Use the lastinv command (“Q” key by default) to switch between the two)
Weapons List:
(Ex: give “weapon_357”)
To give the illusion of being unarmed before unholstering a weapon in GoldSrc, you will utilize the “last weapon” feature (Q key by default) and the ability to hide weapons:
- Switch to your desired weapon.
- Switch once to a random weapon.
- Open the console.
- Enter: r_drawviewmodel “0”
- Enter: bind “Q” “lastinv; r_drawviewmodel 1”
- Pressing Q* will now unholster your desired weapon.
* “Q” is the default key for switching to your last weapon, but this can be applied to any desired key.
This can be done more conveniently by applying these commands in console (instead of step 4-5):
This feature doesn’t work if you have more than one weapon in the same number slot, so:
- Switch to the weapon that you’ll be holding first.
- Then select to your to-be second weapon.
- Press Q (by default) or apply lastinv to toggle between the two.
8. Camera Movements
Although somewhat limited, the GoldSrc engine provides a convenient variety of movements for the cinematographer, relative to both the camera and the map.
Affects the camera’s position, relative to the map.
Affects the camera’s position, relative to the map.
In other words, mouse movement. Affects the angles of your frame, relative to the camera.
When typed in the console, these commands remain active even while the game is paused, so bind these commands to your preferred key(s) instead (read: section 3d).
The only way to make your camera “roll” is by looking straight up or down:
- Use noclip (if needed)
- Modify cl_pitchup or cl_pitchdown to “90” (read section 9e)
- Look straight up/down with +lookup or +lookdown
- Perform +left or +right movements
Applicable when using thirdperson (read: section 7c).
Thanks to the developer console, the movements explained above can be activated simultaneously and with relative ease.
Option #1, Binding (Recommended):
- Bind multiple commands to one key by using alias (read section 3e).
- Press bound key to initiate desired movement.
Option #2, Console (Not Recommended):
- Type in a command (don’t enter).
- Add a semicolon ( ; ) at the end of the command (don’t enter).
- Repeat steps #1-2 if needed (ex: +forward; +lookup).
- Enter and return to game.
- To stop commands that begin with a plus ( + ), retype them in console but with a minus sign ( – ) instead (ex: -forward; -lookup).
9. Adjusting Movement Mechanics
Noclip is a useful cheat code that toggles the ability to bypass (most) collisions and other physical interactions. This allows for a much greater variety of shots, whether static or moving.
Applies to all movement except mouse input and some noclip movement.
Some other (limited) workarounds for adjusting movement speeds are:
- Tilting completely up or down to use +forward and +back and their modifiable speeds instead
- Falling/Rising using sv_gravity “X” instead of +moveup/+movedown
- Capturing footage in demo form and playing it at slower speed (read: section 11c).
- Recording video in a higher framerate and slowing it down in post-production
One of the more-useful commands to use. Why?:
- No friction allows for a smooth, constant speed.
- No friction allows you to ramp up your speed whenever.
- Re-enabling friction allows you to slow down your speed whenever.
- Allows you to easily freelook (pans/tilts/etc.) while using WASD (dollies/trucks/etc.)
- Keeping friction disabled, saving your game right at the beginning of a moving shot allows you to reload the shot with the same speed as before.
For those who aren’t going for handheld action, disabling camera bobbing is recommended for smooth camera movement on the ground.
These commands affect how far you can vertically tilt your camera (from vertical center) when using +lookup or +lookdown. The values are measured in degrees.
10. Positioning the Camera & Frame
Framing can be a challenge if you want your camera to look straight ahead or achieve a shot with straight/parallel lines, whether vertical, hortizontal, or both. Here are some tips below:
- Use noclip to your advantage (read: section 9a).
- Center your freelook’s vertical axis with force_centerview.
- Center your freelook’s horizontal axis by paralleling the edges of your frame with a horizontal reference, using +left and +right.
- Adjust +left and +right speeds for better accuracy (read: section 9b).
- Adjust the camera’s zoom (default_fov “X”) for a closer measurement as needed (read: section 7a).
90°-based angle (relative to map)
- Decide which 90°-based angle you desire (relative to map).
- Eliminate vertical tilt with force_centerview.
- Straighten horizontal lines (read: section 10a).
- Refrain from ALL mouse movement to prevent any horizontal/vertical tilt.
- Use WASD, and +moveup / +movedown (noclip required) instead.
45°-based angle (relative to map)
- Decide which 45°-based angle you desire (relative to map).
- Push yourself up against a 90° corner that “points” in the direction of your desired angle.
- Eliminate vertical tilt with force_centerview.
- Line your crosshair up with the vertical line in the corner, using +left and +right.
- Adjust +left and +right speeds for better accuracy (read: section 9b).
- Refrain from ALL mouse movement to prevent any horizontal/vertical tilt.
- Use WASD, and +moveup / +movedown (noclip required) instead.
11. Utilizing Demos/Replays
Before you begin capturing your footage onto video, consider using the demo/replay system to your advantage.
Demos (.DEM files) are essentially replays that record your environment and all movement. They carry several advantages over video files (.AVI, .MOV, .MP4, etc.):
- Preserves footage in a much smaller format.
- Commands/settings can be applied after the fact.
- Allows you to convert your footage into video form at a later time.
- Future-proofs by allowing you to remaster your video footage at a later time.
They can be found in your game’s directory once recorded (read: section 11d).
12. Exporting Video/Audio
Now that you have your footage prepared in demo format (if applicable) and have the desired “lens”, it’s time to translate your efforts into video.
Fortunately, the vanilla GoldSrc engine already features the ability to sequentially capture frames in .BMP format but doesn’t record audio. These frames will also have to be manually combined with an external program, such as VirtualDub[www.virtualdub.org] or Adobe Premiere[wiki.sourceruns.org]. The frames will be found in your game’s directory (read: section 12b).
If you wish to continue using the in-game method but want audio, too, you’ll have to either record the audio with a third-party program (e.g. Audacity[www.audacityteam.org]) or use Half-Life Advanced Effects (read: section 12c).
HLAE is a plug-in for GoldSrc (not VAC-approved) that features more, advanced commands for capturing footage. Since it does not support the latest version of GoldSrc, you’ll have to download GoldSrc Package[forums.sourceruns.org] to acquire an earlier version of GoldSrc that’ll support HLAE.
HLAE IS NOT VAC-APPROVED. USE AT YOUR OWN RISK!
Official Website[www.advancedfx.org]
Useful tutorial to get you started with HLAE.[github.com]
SourceRuns guide for using HLAE in GoldSrc.[wiki.sourceruns.org]
Notable Examples:
- NVIDIA ShadowPlay™[www.nvidia.com]
- OBS Studio[obsproject.com]
- Fraps[www.fraps.com]
13. Conclusion
Now that you’ve learned all of the basic assets to produce a GoldSrc machinima, I leave it to you to explore deeper into the realm of game manipulation and other advanced assets, such as DemoEdit[github.com]. Furthermore, you could always learn how to create your own maps, animations, and other aspects to enhance your machinimas as well.
Since the more-modern Source engine overshadowed the GoldSrc engine when the popularity of machinimas became widespread between 2003-2006, I hope to see more producers utilize the classic, often-overlooked engine that is GoldSrc.
Big thanks to the SourceRuns community ( [link] ) for providing me some knowledge and inspiration for making this guide and further pursuing GoldSrc productions.
Questions or comments for improving my guide? Comment below, and I’ll see if I can address them.