15
\$\begingroup\$

A lot of people asked for a trailer for my game, because screenshots do not do it justice. I have tested PlayClaw, Fraps, CamStudio, VirtualDub, and some other minor tools; none have produced a viable result. My game uses vector graphics and is designed to run at 60fps, so lossy compression of a regular screen capture video destroys the graphical appeal.

How can I record gameplay without blurring my graphics and slowing down the framerate?

\$\endgroup\$
12
  • 2
    \$\begingroup\$ fraps is too slow for you? make sure you've set it to record at 60fps not the default 30fps. \$\endgroup\$ Jul 26, 2010 at 18:00
  • \$\begingroup\$ Could you make your question a bit wider ? i think it would be interesting to know not online about recording the game itself for a simple trailer but aswell for producing videos that will be diplayed in the game, the so named Cut Scenes or even trailers with addition for more visual effects to it like switching parts of the video etc... Suggesting it to your question since there inst any question alike around i belive... \$\endgroup\$
    – Prix
    Jul 26, 2010 at 19:37
  • 1
    \$\begingroup\$ Prix that would be too different... Making Cut Scenes is whole another field of work! \$\endgroup\$
    – speeder
    Jul 27, 2010 at 3:17
  • 3
    \$\begingroup\$ I think you should really reconsider fraps. Of all the solutions I've seen it has the best quality, and there is no logo for a small investment. (You didn't say free, in your question) \$\endgroup\$ Jul 30, 2010 at 20:36
  • 3
    \$\begingroup\$ I stand with my previous answer. If you can replay input and force (or even replay) the timestep, you can record raw frames and do with them as you please without any quality loss. \$\endgroup\$
    – Kaj
    Aug 2, 2010 at 0:45

15 Answers 15

22
+50
\$\begingroup\$

Make your game framerate independent, so you can set it to play with a fixed timestep. Play your game, record the input. Replay with fixed timestep, recorded input and write every frame to a file - since you replay with fixed timestep it doesn't matter how long writing out a frame takes. That way your source footage is uncompressed and you can decide on quality later without having to sacrifice speed, or having glitches because of a capture program. After that things like After Effects come in - at least you'll have crisp source material.

Edited to add: yeah, I know, making it framerate independent to play back at a fixed timestep is silly. Duh. Well, if it's framerate independent fraps might be less of a problem as well ;o) Games should be framerate independent anyhow!

\$\endgroup\$
10
  • 5
    \$\begingroup\$ Framerate independence and deterministic playback are also useful for testing too. Noel Llopis has a good article here: gamesfromwithin.com/back-to-the-future-part-1 (there's a second part linked too). \$\endgroup\$
    – celion
    Jul 27, 2010 at 7:08
  • \$\begingroup\$ So... your idea is recode the entire engine (that I don't made btw) to make it support some way of recording input and replaying that mentioned input perfectly? Sorry, but this don't work, specially because although the game is deterministic (the only random are in visual effects) the physics engine can fluctuate, and it would not work properly... I am asking about marketing stuff, not programming stuff. \$\endgroup\$
    – speeder
    Aug 2, 2010 at 19:58
  • \$\begingroup\$ If the physics engine can fluctuate it's not deterministic. Input recording (in most engines) plugs in in one spot, it's hardly 'recoding the entire engine'.....anyhow, I hear ya.<b> Video encoding is a fairly expensive operation, lossless yet good compression is more expensive. If harddisk access is indeed the issue though, you could consider setting up a ram disk if you have the memory to spare. As for your comment about marketing, sorry, I thought you were looking for a solution - this would set you up for future as well (what if you need hi-res?). If it's out of scope, then..try ram-disk. \$\endgroup\$
    – Kaj
    Aug 2, 2010 at 20:26
  • \$\begingroup\$ Why is "making it framerate independent to play back at a fixed timestep is silly"? In order for the fixed framerate output to contain the sequence you recorded, it must be framerate independent when recording. \$\endgroup\$
    – falstro
    Aug 3, 2010 at 12:51
  • \$\begingroup\$ Not necessarily. If the frame runs at a guaranteed fixed framerate (relatively unlikely, but if) you can just replay feeding in the keys as they came in and assuming the same timestep. Besides, it just sounded silly :op \$\endgroup\$
    – Kaj
    Aug 3, 2010 at 13:50
8
+100
\$\begingroup\$

This article on Pixel Prospector may be what you need:

How To Record And Edit Gameplay Videos

The game used in the video is NeonPlat 2, which also uses vector graphics.

The article covers everything, from capturing to editing.

\$\endgroup\$
3
  • \$\begingroup\$ Ok, I am awarding the bounty for this one, that is the one that actually was MOSTLY correct... Anyway, thanks to Kaj for mentioning ram drives (solved the problem of disk slowness), but I cannot award a... half-bounty to each answer. \$\endgroup\$
    – speeder
    Aug 5, 2010 at 18:18
  • \$\begingroup\$ No prob. Hope you managed to get something grabbed properly! \$\endgroup\$
    – Kaj
    Aug 6, 2010 at 5:32
  • 2
    \$\begingroup\$ The archived page is here. They updated the page it seems as big list of screenrecording software \$\endgroup\$
    – bobobobo
    Dec 15, 2012 at 2:51
4
\$\begingroup\$

For recording your game footage, you could try CamStudio, which is free. I find that it doesn't work with games in full screen mode though, so you'll want to run your game in a window.

As for making the actual trailer, you'll want some video editing software. There are several expensive commercial options, but if you're looking for something free, your choice is more limited. You could try Windows Movie Maker, or iMovie if you have a Mac, but the best free video editor I've found is Blender, more widely known as a 3D modeling and animation tool. The UI isn't intuitive, but if you spend some time to learn it, you'll also get your hands on a pretty good video editing tool.

\$\endgroup\$
3
\$\begingroup\$

My best experience is with Fraps but I used the full version (it seemed like a small one-time prize to pay for a great utility) which has no limits or logo. You can set the framerate beforehand, as David Young suggested in his comment. Like many video capturing tools, Fraps uses a low-cost compression during while it's recording which then can be converted to a higher compression format of your choice. For this i usually use VirtualDub.

I had no problem running Fraps behind my game at full speed (50fps in my case) getting high quality captures.

The key issue here is that capturing requires some performance, and you should always try to to it on the best computer available. More specifically, the capturing tool makes substantial and continual disk writes so choosing to store the file on a fast hard drive is key. Laptops often come with slower-access hard drives so this may affect performance a lot. Using a smaller frame size during the capture gives the hard drive an easier time and could keep your framerate up. Fraps allows you to set half-size frames.

In the case of Fraps, the quality of the final movie is greatly affected by what compression you use when converting the FPS1-encoded capture AVI to a distributable format. If you don't consider lossiness here it will of course not matter how well the capture tool performed.

I seriously don't think that the programs you mention are generally that bad, but need some configuring before they perform optimally together with you specific game.


Saving every individual frame in PNG is probably not a good idea if you already have problems with speed. It would likely eat more CPU and disk time because it would need every frame to be stored with all its information. When encoding and storing a movie many encoders use a number of key-frames which are complete and let successive frames after them be defined as the difference between one frame an the next. This can be a huge reduction in size but it does not let you take out one frame and read it without the key-frame.

Not only will the size of each frame be larger if you try to dump them to separate files, but you will also get an overhead from the file access itself. This is because you must open a new file handle for every frame instead of holding on to and streaming to one file like in the movie case.

Your best bet is still with recording a lossless movie and extracting the frames from it, OR to capture a finite number of frames like screen-shots during play.

\$\endgroup\$
3
  • \$\begingroup\$ Fraps also has a lossless recording mode. Of course, it requires even more disk throughput and RAM. If you buy the full version (which I recommend) the logo and time limit go away. \$\endgroup\$
    – BRaffle
    Aug 1, 2010 at 0:56
  • \$\begingroup\$ Why I would extract frames? I want all frames! @Banana I know that Fraps has lossless mode, it is the mode that I mentioned that make Fraps get slow and cause the gameplay to get wonky (seemly Fraps when slow instead of dropping frames it somehow slow-down the game) \$\endgroup\$
    – speeder
    Aug 2, 2010 at 0:29
  • \$\begingroup\$ Ok, sure, but my point is that you get even less speed if you try to dump every frame to individual image files. \$\endgroup\$
    – Staffan E
    Aug 2, 2010 at 5:24
2
\$\begingroup\$

Devices like these are super cheap, and I bet you can get a hold of a second computer to run it on (it doesn't need anything special) so you can capture your game from your game running machine (be sure to have a computer with S-Video out for this cheap version). There is also something like this for higher quality capture - http://www.blackmagic-design.com/products/intensity/ but requires USB 3 and is more expensive, but you can capture HDMI and higher resolution. I really see no better option than either of these two.

\$\endgroup\$
1
\$\begingroup\$

I've used Windows Media Encoder a couple of times to record videos of my games and tools - it's free and produdes good quality videos.

Although, I've wondered the same question too, because recording a video is only half the process (if that). The other half is editing it, adding effects, etc. Windows Movie Maker kinda works but it's fairly simplistic... and crashy.

\$\endgroup\$
1
  • \$\begingroup\$ because recording a video is only half the process Good point i am aswell wondering that as stated on the comment of the initial question... \$\endgroup\$
    – Prix
    Jul 26, 2010 at 22:24
1
\$\begingroup\$

If on Windows, record using PlayClaw if you want a game video without barely slowing down your computer. On Linux you have glc.

\$\endgroup\$
1
\$\begingroup\$

I haven't used it, but you might want to try Taksi.

\$\endgroup\$
1
  • \$\begingroup\$ For some reason it refuses to "hook" on my game :( \$\endgroup\$
    – speeder
    Aug 3, 2010 at 19:45
1
\$\begingroup\$

Basically, the issues were:

Quality on a vector-based game. CPU amount taken. I/O bottleneck.

What software to use for editing.

To solve quality, I needed a lossless codec, or no compression. The lesser the compression, the more I would have I/O problems, but the more CPU I took, the more I would have CPU problems (doh).

The solution, was use a RamDrive to solve the I/O bottleneck, thus now I was left mostly with how much CPU I wanted to take (ie: the smallest as possible). Thus theoretically the best would be no compression at all, but no compression at all on a ramdrive hit space available problems...

So I researched, and found that the fastest lossless codec (don't matter how much it actually compress), and it was CamStudio Lossless

The software I used, was VirtualDub (CamStudio itself cannot capture the window contents, it capture the entire window, thus wasting space).

Now editing software: Well, noone here gave a good awnser, and neither I will do, but other lists can be found in other places.

\$\endgroup\$
1
0
\$\begingroup\$

You might want to try vnc2flv, but it won't do audio itself (you can add in an audio track later though). Not sure if your CPU will hate you trying to do realtime FLV encoding alongside a running game though.

\$\endgroup\$
0
\$\begingroup\$

It probably sounds obvious, but... Don't full-screen your game while you're recording the video otherwise it will 'obviously' be incredibly slow because it captures your screen resolution. I'm guessing this is what you're being bit by.

FRAPS will take care of this just fine. So will many others but I found FRAPS the most convenient and easiest to use.

I used FRAPS to record and Windows Movie Maker to put together some maps I made in Starcraft II -- example.

\$\endgroup\$
1
  • \$\begingroup\$ Actually... I don't even tried in fullscreen, all my tests was in windowed mode. \$\endgroup\$
    – speeder
    Jul 31, 2010 at 6:09
0
\$\begingroup\$

Here's what I've done in the past to make video-only trailers:

  1. Make your game runnable with a fixed time step. That means passing in the time between now and the last frame explicitly rather than calculating it internally to your game loop.
  2. After rendering a frame, dump it out to a lossless picture format such as .tiff with the frame number as its name. This makes it easy for another app to encode a series of pictures into a movie.
  3. Dump into the appropriate video encoder (I wrote a simple one using DirectShow) to convert to .avi or whatever video format you want.
\$\endgroup\$
0
\$\begingroup\$

the best way is make your game self recordable. Easy way is just save every frame with fixed framerate. With SSD it takes "no" time. Harder way is to make your own "fraps". If You do it. You can directly communicate with your game.

\$\endgroup\$
0
\$\begingroup\$

I've made a trailer recently for my game. I was somewhat helped by the engine, that allows for screenshots fast enough to actually animate. What I did:

  • Although I did not fixed the framerate, the captures were made at fixed intervals, 25 per second. I recorded my game session, which generated thousands of images on the drive.
  • I then imported these images into a clip in kdenlive
  • Added some titles, music, logos, fades in and fades out to give it a more pleasant look

Actually capturing the images directly meant that I could not get the sounds from the game, but got a much better quality of images. Adding some music more than made up for it.

\$\endgroup\$
-6
\$\begingroup\$

If you have two PCs use skype's screen sharing feature. Play the game in one PC then use the other to capture the video. This way you won't affect your game and resources won't be scarce for the video capture program.

Conversely you can buy a video capture card for your PC.

\$\endgroup\$
3
  • \$\begingroup\$ wut... .. . . . \$\endgroup\$ Jul 30, 2010 at 17:57
  • 3
    \$\begingroup\$ Skype can't magically send video without encoding it, which is what will take the CPU time away from the program. \$\endgroup\$
    – user744
    Jul 30, 2010 at 19:21
  • 1
    \$\begingroup\$ This is the worst idea I've ever seen. \$\endgroup\$ Jun 20, 2011 at 9:21

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .