Half-Life

Half-Life

184 ratings
GoldSrc Cinematography (No DemoEdit)
By oxcjae.
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.
2
   
Award
Favorite
Favorited
Unfavorite
0. Table of Contents
  1. Introduction
    • 1a. Summary
    • 1b. About Me

  2. Learning the Console
    • 2a. About the Console
    • 2b. Toggling the Console

  3. Using the Console
    • 3a. Enable Cheats
    • 3b. Enter Commands
    • 3c. Enter Cheat Codes
    • 3d. Bind Commands to the Keyboard
    • 3e. Create/Alias Commands

  4. 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

  5. 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

  6. Utilizing Save/Loud (Singleplayer)
    • 6a. Advantages
    • 6b. Commands
    • 6c. Savepoint Directories

  7. 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

  8. 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

  9. Adjusting Movement Mechanics
    • 9a. Free Movement
    • 9b. Adjust Movement Physics
    • 9c. Adjust Friction
    • 9d. Adjust Bobbing
    • 9e. Adjust Tilt Range
    • 9f. Adjust Mouse Input

  10. Positioning the Camera & Frame
    • 10a. Framing Tips
    • 10b. Align Camera Position with Map

  11. Utilizing Demos/Replays
    • 11a. About Demos
    • 11b. Record Demos
    • 11c. View Demos
    • 11d. Demos' Directories

  12. Exporting Video/Audio
    • 12a. With Vanilla GoldSrc
    • 12b. Game Directories
    • 12c. With Half-Life Advanced Effects (HLAE)
    • 12d. With Other External Programs

  13. Conclusion
1. Introduction
1a. Summary
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.


1b. About Me
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.

2a. About the Console
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.


2b. Toggling the Console
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.


3a. Enable Cheats
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.
  1. Save your game (singleplayer)
  2. Press ~ to open your console
  3. Enter: sv_cheats "1"
  4. Enter: map c1a0 (or map ba_tram1 for Blue Shift) [singleplayer]
  5. Load/return to your initial save (singleplayer)

3b. Enter Commands
Here are some general commands for you to practice and use at your disposal:

Command
Description
map *
Console prints list of maps (single/multiplayer) found in your game's directory.
map "X"
Loads the map of your choice, "X".
save "X"
Saves your game with the name of your choice, "X". Useful for checkpoints and multiple takes.
load "X"
Loads the save name of your choice, "X".
version
Console prints information about the version of your game.

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.


3c. Enter Cheat Codes
Once you've enabled cheats (read: section 3a), the following examples can be used to your advantage:

Command
Description
god
Toggles invincibility but still physically responsive to trauma.
noclip
Toggles the ability to fly and pass through any material.
notarget
Toggles invisibility from all NPCs.
impulse 101
Gives you all guns. Repeated use gives more armor and ammo.


3d. Bind Commands to the Keyboard
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:

Command
Description
bind "X"
Displays command(s) (if any) attached to your selected key, "X". (ex: bind "W")
bind "X" "COMMAND"
Attaches a command to your preferred key, "X". (ex: bind "Y" "+forward")
bind "X" "COMMAND; COMMAND"
Attaches multiple commands to one key, "X". (ex: bind "Z" "noclip; god")
unbind "X"
Unbinds all commands from your selected key, "X".


3e. Create/Alias Commands
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:
alias "NEW COMMAND" "COMMAND; COMMAND"

Example:
alias "cleanscreen" "hud_draw 0; r_drawviewmodel 0"
or
alias "+forwardup" "+forward; +lookup" alias "-forwardup" "-forward; -lookup"

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.


4a. Adjust Video Resolution
Option #1 (In-Game):
  1. Open the game menu
  2. Go to Options > Video
  3. Select your desired stock resolution under Resolution
The game will restart, so cheats will have to be reenabled again.

Option #2 (Steam):
  1. Go to your game list
  2. Right-click on desired GoldSrc game
  3. Select: Properties > General > Set Launch Options...
  4. Enter: -w # -h #
  5. Select: Ok > Close
  6. Launch game

4b. Adjust Frame Rate
For those recording with demos (or videos above 60fps), you'll want to apply these settings through the console:

Command
Default
Description
fps_override "1"
"0"
Overrides engine's FPS cap.
gl_vsync "0"
"1"
Disables v-sync to allow FPS above 60.
fps_max "X"
"72"
Sets the max FPS higher to allow more frames to be recorded (for both .dem and .avi).
sys_ticrate "X"
"100"
Rate per second at which players' positions are updated on the map. (Multiplayer only.)


4c. Adjust Gamma/Brightness
Read: section 5b.


4d. Adjust Anti-Aliasing
There are no available settings to change your anti-aliasing settings in-game. Instead, you have to override this option through your NVIDIA settings.
  1. Open NVIDIA Control Panel
  2. 3D Settings > Adjust image settings with preview
  3. Select: Use the advanced 3D image settings > Apply
  4. 3D Settings > Manage 3D Settings
  5. Under 1. Select a program to customize
    • Select Half Life (hl.exe) in the dropdown list
    • If not found, select the .exe through Add
  6. Under 2. Specify the settings for this program:
    • Antialiasing - Mode > Override any application setting
    • Antialiasing - Setting > Select preferred setting (higher = better)
    • Antialiasing - Transparency > Off
  7. Click Apply
  8. Start/restart game
If you wish to disable anti-aliasing (regardless of NVIDIA settings):
  1. Go to your game list
  2. Right-click on desired GoldSrc game
  3. Select: Properties > General > Set Launch Options...
  4. Enter: -nomsaa
  5. Select: Ok > Close
  6. Launch game
To re-enable anti-aliasing, simply remove -nomsaa from the target line.


4e. Adjust Texture Filtering
Command
Default
Description
gl_texturemode "X"
"GL_LINEAR_MIPMAP_LINEAR"
Affects texture filtering. "GL_NEAREST" disables it.


4f. Toggle Model Quality
Command
Default
Description
_sethdmodels "X"
"1"
"0" toggles original NPC and weapon models. "1" toggles "HD" models.


4g. Adjust Audio
In order to keep your audio from sounding worse than what the game already provides, take the following options into consideration:

Command
Default
Description
hisound "X"
"1"
Toggles highest render of sound in-game. "0" decreases quality.
s_eax "X"
"0"
Toggles EAX sound rendering. "1" enables. (Pre-Steampipe versions only.)
volume "X"
"1"
Adjusts loudness of each sound generated in the game (except suit and music).
suitvolume "X"
"0.25"
Adjusts loudness of each suit sound generated in the game.
mp3volume "X"
"?"
Adjusts loudness of background OST.
s_show "X"
"0"
Toggles detailed log of sounds currently being played in-game. "1" enables.
nosound "X"
"0"
(Buggy.) Supposed to disable all sounds from playing. "1" enables this option.

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.


5a. Select a Map/Scene
Where do you want to record?

Command
Description
map *
Console prints list of maps (single/multiplayer) found in your game's directory.
map "X"
Loads the map of your choice, "X".
load "X"
Loads the save name of your choice, "X" (singleplayer).
disconnect
Disconnects you from current map.


5b. Lighting
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).

Command
Default
Description
gamma "X"
"2"
Adjusts your game's gamma. Higher value = brighter.
brightness "X"
"2"
Adjusts your game's brightness. Higher value = brighter.
lightgamma "X"
"2.5"
Adjusts the gamma of light sources on the map. Higher value = higher contrast.
r_dynamic "X"
"1"
Toggles dynamic lighting, mainly glowing from bright objects. "0" disables.
r_fullbright "X"
"0"
Toggles shading on the map. "1" disables.
impulse 100
Toggles interactive flashlight.


5c. Spawn/Hide/Remove NPCs
To properly spawn an NPC:
  1. 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.
  2. 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.
Command
Description
give "X"
Spawns a precached NPC, replacing "X" with your desired NPC. (List below.)
impulse "203"
Removes the NPC that you're pointing at.
r_drawentities "0"
Hides all of the map's entities, including NPCs. "1" re-enables.
mcache
Supplies a detailed list of precached models in the console.

NPC List:
monster_scientist monster_barney monster_gman monster_headcrab monster_zombie monster_alien_slave monster_bullchicken monster_gargantua monster_human_grunt monster_alien_controller monster_houndeye monster_snark monster_cockroach monster_apache monster_osprey monster_human_assassin monster_tentacle monster_barnacle monster_bigmomma monster_babycrab monster_nihilanth // Opposing Force only: monster_op4loader monster_alien_voltigore monster_baby_voltigore monster_shocktrooper monster_shockroach monster_blkop_apache monster_male_assassin monster_cleansuit_scientist monster_otis monster_human_grunt_ally monster_human_torch_ally monster_human_medic_ally monster_recruit monster_drillsergeant monster_pitworm monster_geneworm monster_zombie_barney monster_zombie_grunt monster_gonore
(Ex: give "monster_barney")


5d. Manipulate NPCs
  • 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.

5e. Show/Hide Decals & Gibs
Command
Default
Description
r_decals "X"
"300"
Determines max amount of visible decals (blood, bullet impacts, etc.). "0" disables.
violence_ablood "X"
"1"
Determines visiblity of blood/decals from Xen/alien NPCs. "0" disables.
violence_agibs "X"
"1"
Determines visiblity of gibs from Xen/alien NPCs. "0" disables.
violence_hblood "X"
"1"
Determines visiblity of blood/decals from human NPCs. "0" disables.
violence_hgibs "X"
"1"
Determines visiblity of gibs from human NPCs. "0" disables.

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.


5f. Show/Hide Map Entities
Command
Default
Description
r_drawentities "X"
"1"
Toggles visibility of map entities, including NPCs. "0" disables.


5g. Show/Hide Map Triggers
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.

Command
Default
Description
showtriggers "X"
"0"
Determines visibility of map triggers. "1" enables visibility.
6. Utilizing Save/Load (Singleplayer)
If you're not already familiar, singleplayer games on the GoldSrc engine typically feature a save/load feature.


6a. Advantages
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

6b. Commands
Command
Description
save "X"
Saves your game with the name of your choice, "X".
load "X"
Loads the save point of your choice, "X".


6c. Savepoint Directories
Save points are stored in your game's directory as .SAV files:

Game
Directory (Default)
Half-Life
...Steam\steamapps\common\Half-Life\valve\SAVE
Opposing Force
...Steam\steamapps\common\Half-Life\gearbox\SAVE
Blue Shift
...Steam\steamapps\common\Half-Life\bshift\SAVE
7. Adjusting the "Lens"
Most concerns regarding the lens can be fixed with the options below.


7a. Adjust Zoom / Field of View
In the GoldSrc world, changing your zoom means changing your field of view.

Command
Range
Default
Description
default_fov "X"
"10" - "150"
"90"
Adjusts the zoom / field of view. The smaller the value, the more zoom.


7b. Hide HUD
Command
Default
Description
***hud_draw "0"
"1"
Hides the HUD, weapon menu, chat, and death alerts. Excludes crosshair.
crosshair "0"
"1"
Hides the crosshair.
hud_saytext "0"
"1"
Hides the chat.
hud_deathnotice_time "0"
"6"
Hides the death alerts from your screen (multiplayer).
mirv_movie_separate_hud "1"
"0"
(HLAE users only.). Separates HUD (including credits) from footage.

*** This command does NOT work in Opposing Force. To keep the HUD hidden, read Option #3 in section 7d.


7c. Change Point of View
Command
Default
Description
firstperson
(N/A)
Changes your view to first-person.
thirdperson
(N/A)
Changes your view to third-person.
cam_idealdist "X"
"64"
Adjusts camera's distance from you in thirdperson.
cam_idealpitch "X"
"0"
Adjusts camera's vertical position in thirdperson. "90": above you. "-90": below you.
cam_idealyaw "X"
"90"
Adjusts camera's horizontal position in thirdperson. "0": behind you. "180": in front of you.


7d. Give Yourself Weapons
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:
  1. Open your console (~)
  2. Enter impulse 101
  3. Repeat command numerous times to max out suit and ammo.
Option #2 (excludes HUD/armor):
  1. Open your console (~)
  2. Enter give "X" (replacing "X" with any weapon from list below)
  3. Repeat command numerous times to max out weapon's ammo.
Option #3 (keeps HUD hidden in Opposing Force):
  1. Open your console (~)
  2. Load desired map with map "X" (replacing "X" with desired map)
  3. Enter give "X" (replacing "X" with any weapon from list below)
  4. Repeat command for a second weapon (if needed)
  5. Use the lastinv command ("Q" key by default) to switch between the two)
Weapons List:
weapon_crowbar weapon_glock weapon_357 weapon_mp5 weapon_shotgun weapon_crossbow weapon_rpg weapon_gauss weapon_egon weapon_hornetgun weapon_grenade weapon_satchel weapon_tripmine weapon_snark // Opposing Force only: weapon_pipewrench weapon_knife weapon_grapple weapon_eagle weapon_m249 weapon_displacer weapon_sniperrifle weapon_sporelauncher weapon_shockrifle
(Ex: give "weapon_357")


7e. Show/Hide Weapons
Command
Default
Description
r_drawviewmodel "X"
"1"
Toggles visibility of the weapon you're currently holding. "0" hides it.


7f. Unholster Weapons
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:
  1. Switch to your desired weapon.
  2. Switch once to a random weapon.
  3. Open the console.
  4. Enter: r_drawviewmodel "0"
  5. Enter: bind "Q" "lastinv; r_drawviewmodel 1"
  6. 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):
alias "lastinv_a" "bind q lastinv_b; lastinv; r_drawviewmodel 1" alias "lastinv_b" "bind q lastinv_a; lastinv; r_drawviewmodel 0" bind "q" "lastinv_a"


7g. Fast-Switch Weapons
Command
Default
Description
hud_fastswitch "X"
"0"
Toggles fast-switching of weapons. "1" enables.

This feature doesn't work if you have more than one weapon in the same number slot, so:
  1. Switch to the weapon that you'll be holding first.
  2. Then select to your to-be second weapon.
  3. 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.


8a. WASD Movements (Dollies & Trucks)
Affects the camera's position, relative to the map.

Command
Default Key
Description
+forward
W
Moves/Dollies camera forward.
+back
S
Moves/Dollies camera backward.
+moveleft
A
Moves/Trucks camera leftward.
+moveright
D
Moves/Trucks camera rightward.


8b. Up/Down Movements (Pedestals)
Affects the camera's position, relative to the map.

Command
Default Key
Description
+moveup
'
Moves camera upward
+movedown
/
Moves camera downward.


8c. Freelook Movements (Tilts & Pans)
In other words, mouse movement. Affects the angles of your frame, relative to the camera.

Command
Default Key
Description
+lookup
PGUP
Tilts camera upward.
+lookdown
PGDN
Tilts camera downward.
+left
LEFTARROW
Turns/Pans camera leftward.
+right
RIGHTARROW
Turns/Pans camera rightward.

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).


8d. Roll Movements
The only way to make your camera "roll" is by looking straight up or down:
  1. Use noclip (if needed)
  2. Modify cl_pitchup or cl_pitchdown to "90" (read section 9e)
  3. Look straight up/down with +lookup or +lookdown
  4. Perform +left or +right movements

8e. Third-Person Movements
Applicable when using thirdperson (read: section 7c).

Command
Default Key
Description
+camin
(None)
Moves camera towards subject.
+camout
(None)
Moves camera away from subject.
+camdistance
(None)
Allows you to adjust camera distance from subject using mouse input.
+campitchup
(None)
Vertically wraps camera upward around subject. Also affects subject's tilt.
+campitchdown
(None)
Vertically wraps camera downward around subject. Also affects subject's tilt.
+camyawleft
(None)
Horizontally wraps camera clockwise around subject.
+camyawright
(None)
Horizontally wraps camera counter-clockwise around subject.
+cammousemove
(None)
Allows you to wrap camera vertically/horizontally from subject using mouse input.


8f. Combine Movements
Thanks to the developer console, the movements explained above can be activated simultaneously and with relative ease.

Option #1, Binding (Recommended):
  1. Bind multiple commands to one key by using alias (read section 3e).
  2. Press bound key to initiate desired movement.
Option #2, Console (Not Recommended):
  1. Type in a command (don't enter).
  2. Add a semicolon ( ; ) at the end of the command (don't enter).
  3. Repeat steps #1-2 if needed (ex: +forward; +lookup).
  4. Enter and return to game.
  5. 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
9a. Free Movement
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.


9b. Adjust Movement Physics
Applies to all movement except mouse input and some noclip movement.

Command
Default
Description
cl_forwardspeed "X"
"400"
Adjusts forward (+forward) speed.
cl_backspeed "X"
"400"
Adjusts backward (+back) speed.
cl_sidespeed "X"
"400"
Adjusts horizontal strafing (+moveleft / +moveright) speed.
cl_upspeed "X"
"320"
Adjusts vertical strafing (+moveup / +movedown) speed.
cl_yawspeed "X"
"210"
Adjusts horizontal panning (+left / +right) speed.
cl_pitchspeed "X"
"225"
Adjusts vertical tilting (+lookup / +lookdown) speed.
sv_maxspeed "X"
"320"
Adjusts your maximum movement speed.
sv_maxvelocity "X"
"2000"
Adjusts your maximum movement velocity.
sv_accelerate "X"
"10"
Adjusts your acceleration for ground movement.
sv_airaccelerate "X"
"10"
Adjusts your acceleration for air movement.
sv_wateraccelerate "X"
"10"
Adjusts your acceleration for swimming.
sv_gravity "X"
"800"
Adjusts your gravity.

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

9c. Adjust Friction
Command
Default
Description
sv_friction "X"
"4"
Adjusts the friction of solid floors. "0" disables this friction.
sv_waterfriction "X"
"1"
Adjusts the friction of water. "0" disables this friction.

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.

9d. Adjust Bobbing
For those who aren't going for handheld action, disabling camera bobbing is recommended for smooth camera movement on the ground.

Command
Default
Description
cl_bob "X"
"0.01"
Adjusts fluidity of bobbing. Greater value = greater bob. "0" disables bobbing.
cl_bobup "X"
"0.5"
Adjusts upward motion of bobbing. "0" disables it.
cl_bobcycle "X"
"0.8"
Adjusts frequency of bobbing. Greater value = higher frequency. "0" disables bobbing.


9e. Adjust Tilt Range
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.

Command
Default
Description
cl_pitchup "X"
"89"
Adjusts max vertical angle (from center) that you can tilt upward (ex: "90").
cl_pitchdown "X"
"89"
Adjusts max vertical angle (from center) that you can tilt downward (ex: "90").


9f. Adjust Mouse Input
Command
Default
Description
m_filter "X"
"0"
Toggles in-game filtering of mouse movement. "1" enables
sensitivity "X"
"3"
Adjusts in-game mouse input sensitivity.
zoom_sensitivity_ratio "X"
"1.2"
Adjusts sensitivity ratio when zoomed in with weapons (e.g. crossbow).
10. Positioning the Camera & Frame
10a. Framing Tips
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).

10b. Align Camera Position with Map
90°-based angle (relative to map)
  1. Decide which 90°-based angle you desire (relative to map).
  2. Eliminate vertical tilt with force_centerview.
  3. Straighten horizontal lines (read: section 10a).
  4. 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)
  1. Decide which 45°-based angle you desire (relative to map).
  2. Push yourself up against a 90° corner that "points" in the direction of your desired angle.
  3. Eliminate vertical tilt with force_centerview.
  4. 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).
  5. 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.


11a. About Demos
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).


11b. Record Demos
Command
Description
record "X"
Records a demo. Replace "X" with preferred name of file.
stop
Stops recording a demo.


11c. View Demos
Command
Description
playdemo "X"
Plays a demo, "X".
stopdemo
Stops playback of current demo.
viewdemo
Opens menu for opening and controlling playback of demos.
dem_speed
Adjusts speed of demo that's being played with viewdemo.
dem_pause
Pauses demo that's being played with viewdemo.
dem_start
Starts/Resumes demo that's being played with viewdemo.


11d. Demos' Directories
Game
Directory (Default)
Half-Life
...Steam\steamapps\common\Half-Life\valve
Opposing Force
...Steam\steamapps\common\Half-Life\gearbox
Blue Shift
...Steam\steamapps\common\Half-Life\bshift
Counter-Strike
...Steam\steamapps\common\Half-Life\cstrike
Team Fortress Classic
...Steam\steamapps\common\Half-Life\tfc
Day of Defeat
...Steam\steamapps\common\Half-Life\dod
Ricochet
...Steam\steamapps\common\Half-Life\ricochet
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.


12a. With Vanilla GoldSrc
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).

Command
Description
startmovie "NAME" "FPS"
Starts capturing frames with name and FPS. (ex: startmovie "S1T1" "30")
endmovie
Stops capturing frames. (Binding this command to a key is recommended.)


12b. Game Directories:
Game
Directory (Default)
Half-Life
...Steam\steamapps\common\Half-Life\valve
Opposing Force
...Steam\steamapps\common\Half-Life\gearbox
Blue Shift
...Steam\steamapps\common\Half-Life\bshift
Counter-Strike
...Steam\steamapps\common\Half-Life\cstrike
Team Fortress Classic
...Steam\steamapps\common\Half-Life\tfc
Day of Defeat
...Steam\steamapps\common\Half-Life\dod
Ricochet
...Steam\steamapps\common\Half-Life\ricochet


12c. With Half-Life Advanced Effects (HLAE)
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]

Command
Description
mirv_movie_filename "X"
Sets directory and name of frames exported. (ex: "C:\Temp\S1T1")
mirv_movie_fps "X"
Sets FPS of video exported.
miv_sample_enable "X"
"1" enables frame sampling for motion blur. "0" disables it.
mirv_sample_sps "X"
Determines samples per second. Higher value = more motion blur.
mirv_movie_bmp "X"
"1" uses .BMP frames. "0" keeps format at .TGA.
mirv_movie_export_sound "X"
"1" enables sound capture. "0" disables it.
mirv_movie_sound_volume "X"
Determines volume of exported sound.
mirv_recordmovie_start
Begins exporting frames/audio.
mirv_recordmovie_stop
Stops exporting frames/audio.


12d. With Other External Programs
Notable Examples:
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 ( https://sourceruns.org ) 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.
9 Comments
Teeheehee14 17 Sep, 2023 @ 4:00am 
could you put any screenshots in?
Kleiner 22 Dec, 2021 @ 9:42am 
Great guide from a great half life video maker, also sandpit (a mod for half life) can be really good for video making since it has many things that make machinima making more accessible in general.
d0zzy 20 Sep, 2021 @ 6:45am 
GOD :summer2019city:
79alex95 18 May, 2021 @ 4:10pm 
unbelievably useful guide, thank you very much
Eery Jan 7 Oct, 2020 @ 7:24am 
Thirdperson does not seem to work with Deathmatch: Classic, thus I can't use the camera commands, any way around this?
de_nuke 28 Jun, 2020 @ 6:39am 
jopa
chopper 5 Sep, 2018 @ 2:50am 
@Tsarem type restart to console, you need to restart the server after you enable cheats.

Blame ValvE xD
tinajd187 23 Jun, 2018 @ 9:40pm 
>:( i did your steps to enable cheats. nothing happens
no cheats.
Lead 22 Mar, 2018 @ 3:29pm 
This is one of the nicest guides I've seen for Half-Life video creation, very nice guide!