This article came about due to my experimentation with TF2s in-game video editing. My goal going into it was to make highlight videos about matches, rather than a compilation of player perspective frag clips from different matches. Frag videos are pretty sweet, but that’s not what I’m going for. I’ve reached the point where I have figured out how to make my movies and get what I want done, but there are a lot of obstacles still in the way of making this process easier, faster, and better.
Valve announced quite a while ago that they are looking at re-working how players are able to retrieve demos, and to also add time scrubbing to the demo playback. That’s pretty much all the details they’ve announced, but below are some other changes that I think would be very positive to make.
An example of the video style I’m exploring can be seen: here
Additionally before we get started I’d like to give Kuiper a shoutout for his Steam Forum Post that was an immense help to me and many other players.
Click Read More to see the discussion:
Time Scrubbing and gototick
Right now it is impossible to play a demo backwards, only forwards. If you are trying to record a clip and you miss it, you have to use the demo_gototick command to backtrack the video to a prior moment. The problem with demo_gotick is that it forces a loading screen and a decent wait. Not only is it a nuisance in that regard, but if you try to skip to far forward, there is a large possibility that the program will crash. So in the end, users navigating clips are forced to go in one direction, and can’t jump directly to the end of a long clip.
Valve has mentioned time scrubbing as one of the big features of their upcoming change to the demo format, hopefully the mechanisms behind gototick are also included.
Smoothing in SourceTV Demos
Smoothing, which is the way to position a camera in-game and move it through pre-programmed positions, is the best way to perform complex camera work within a source engine game. It can be a lot of work but the results are worth it. Currently it is impossible to use the smoother tools in a SourceTV demo. Considering that’s the format most match demos are in, it’s a frustrating no-go. Being able to smooth in SourceTV demos would allow movie makers to use complex camera work to record action from top level matches.
Enabling setpos in SourceTV/Demos/Spectator and other commands
The videos I have been working on entail manually “smoothing” within a demo. Basically I’m flying through a competitive match as a spectator and using my viewpoint as the camera. This allows me to quickly smooth a video without having to setup the camera positions and tick timings, although I need to make sure to smoothly control my camera, provide an interesting view of the action, and to not distract the viewer by changing view too quickly. A downside of this technique is that I am basically trying to film a round in one take and must always be following where the action is.
The idea hit me to try and use a variety of stationary camera points throughout the match, granting me the ability to instantly shift to the other side of the map and assist in covering both teams at once. The capability to do this is available within the source engine. I could easily create a bind/script where holding control and pressing 1 would get my current position (getpos) and store it to the number. Pressing 1 without holding down control would instantly shift my camera (setpos) to the correct co-ordinates.
This would also be an incredibly helpful capability for shoutcasters as they could go into the server before the match started (or have pre-programmed locations depending on map) then use those camera points in addition to cycling the camera and switching to specific players.
Unfortunately, the road block to getting such a camera config to work is currently impassable. Setpos is only able to be executed in a live server in which sv_cheats is set to 1. No match is ever going to be run with sv_cheats 1. While in demos, POV or SourceTv, sv_cheats can be enabled, yet setpos does not work. There is no reason that it shouldn’t be enabled in SourceTV demos, and the only difficulties I foresee w/POV demos is that POV demos don’t necessarily record far away action.
Setpos isn’t the only helpful command that is unavailable within SourceTV demos. Valve recently added the pretty awesome “Advanced Spectator Hub”, which also enables players to quickly switch between who their camera is focused on. As mentioned before in regards to shoutcasters, this would be helpful to utilize in a SourceTV demo, whether you are recording it in the fashion I do, or are just trying to watch a match. The ability to switch instantly to a player via “slot1” etc. has been broken since the advanced spectator hub was implemented.
There has to be other commands out there that would be useful for video makers that aren’t currently working in SourceTV. It would be a nice feature if the newly added tf_playergib 0 command would turn all victims into ragdolls, but I believe once the demo is recorded such variables cannot be changed.
Another set of variables that cannot be used unless Sv_cheats is changed to 1 are the commands sv_specspeed and sv_specaccelerate. The two commands change your speed as a spectator and how quickly your camera accelerates. The default levels offer plenty of speed, but are too fast to allow for smooth camera work. My recording cfg sets my speed at 3.75 and my acceleration at 1.5. This gives me a flying speed equivalent to a scout and accelerates smoothly. While recording “shift” is bound to toggle a “turbo” mode where my speed is set at 4.5 and my acceleration is kicked up to 3, allowing me to quickly run the camera to a more interesting location. Since these commands are tied to Sv_cheats, such a config cannot be run during a sourceTV broadcast or as an in-match spectator.
There are definitely commands that would be useful to spectators watching a live match or a demo, but there are currently constraints stopping that from happening.
Ghostviewing a POV demo
Another issue, that seems like there is a fix on the way for, is viewing a demo recording of your own POV from an external camera. Currently this doesn’t work as your demo doesn’t contain information of events happening half-way across the map. With Valve’s hint that demos can be requested from the server after the fact, it only makes sense that these demos will have the full information and can be spectated externally. Even if the full information is not there, an external view would still be helpful and it should be enabled.
Speccing during Pause
One more small but beneficial change, would be to allow the player to move their spectator camera while demo_pause is in effect. Currently you can click through which player you are following and change camera modes, but if you are a spectator ghost, you are stuck in place. Allowing players to move while the demo is paused would help demo recorders immensely. Since you can’t move the camera while the game is paused, you have to be setup well ahead of time. With the lack of time scrubbing, this can be pretty frustrating. This issue should be easy to fix in co-ordination with the other problems.
Addressing Concerns
While ghosting can be a serious detriment to game play, none of these changes would make it easier for devious players to benefit from ghosting. SourceTV games are already on a time delay and anyone trying to feed a team info that is 30 seconds late will probably be more of a distraction than anything. The delay could be increased if needed, it’s already not live due to technical obstacles, so another 30 seconds delay wouldn’t be problematic. Players on a team still won’t have free-look and that’s where ghosting takes place.
These changes would make a big impact on shoutcasters and demo movie makers and seem easy enough to implement. Hopefully Valve can wrap them into the changes they are already planning on making.













