We recently released our first ever trailer for our game, Hegemone Pass. What you might not know is that our laptop is not very good at video editing or video recording at 1080p. Everything lags to an unbelievable amount the minute you give it 1080p footage to play around with. And besides… we can’t even record 1080p footage on our small-screen laptop!
Note: This footage isn’t perfect due to file conversions I had to do.
Yet somehow, you can crank this video up to 1080p, and it’s not too blurry! And it’s at 60 frames per second! Just look at the comparison shots! What gives?
Click pictures to zoom in.
Well, it’s a small advantage that small resolution pixel art games have. Essentially, we can blow up each frame from a small recording (in our case, 384×216) to fit 1920×1080 via an external program to keep the pixels as sharp as possible (but it’s not absolutely perfect, and you’ll see why later on)!
Benefits are huge, and you consider this if you fall in certain cases:
- Your screen resolution is smaller than 1080p.
- Your PC is too slow to record 1080p.
- Your video recordings drop a few frames.
- You record footage of the game in Windowed mode.
- Your PC is not fast enough to handle frequent 1080p video editing: making a trailer already uses a lot of your precious time.
- The game you are recording is pixel art. Anything else will give disastrous results. For best results, make sure pixels are not at different sizes in the game.
However, if you can record 1080p and edit it easily, do not use this method, as it’s merely a poorman’s way of getting “HD” footage.
Also, just make sure your game doesn’t slowdown or lag on normal play. Try fixing those slowdowns first and see if you are able to record 1080p. If not, follow on.
Lastly, remember: this only works for pixel art games. Anything else is an adventure into disaster (probably).
Recording the (Low-Res) Footage
This is the most important part, which is very convenient, as any failed footage is not hours wasted.
We used the best video recording software we had, OBS, and configured it to only record your game at it’s native, pixel perfect size: no double pixel size or anything. We assigned Hegemone Pass’ exe file to the Sources as a window capture, and we made sure that when the game ran, the entire picture fit the 384×216 canvas, the same as the game’s native resolution.
For the encoder, we simply used x264.
Most importantly (unless you don’t care about the 16:9 aspect ratio), make sure your game is recorded at a native resolution that can be multiplied to 1080p only with an int, not float. Our game is 384×216, so 384 * 5 = 1920, 216 * 5 = 1080. Check out this list of true 16:9 ratios and do some basic maths to find the multiplier needed to achieve that resolution. I think it’s a bit iffy using something like x1.5 or x2.2, but that’s just me.
Once your footage is done, we can get to the fun and tedious part…
A bit surprised? We’re not upscaling our captured footage right away. The point of this trick is to not be editing 1080p footage, to save on resources. Upscaling every single capture will be a bit mad, seeing how long it takes…
We used Magix’s Movie Edit Pro 2016 for the video editing (it’s paid software), and proceeded with a 1920×1080 project set at 60 fps. All the footage (despited it’s 384×216 resolution) gets inserted, automatically filling the entire canvas… and it’s looking pretty blurry. From here, edit your trailer to your liking.
One word of advice! Do whatever you want with the footage: cut it, resize, etc… But, the more footage you have that fills the entirety of your project canvas, the better: you’ll be saving yourself precious time on rescaling. If you need only a section of the on-screen footage, make sure that it keeps it’s pixel perfect nature (no zoom in). We fell into this trap early on, but there is a solution to this future problem: keep in mind that you’ll be editing a bit of 1080p footage later on if these crops are needed.
When you have finished editing, we highly recommend (if you can) splitting the audio and video apart from the recordings in the timeline. Reason why is that we want to get rid of the low quality video, but we need the audio: something we won’t be getting in our “HD” footage.
Lastly, keep any non-gameplay footage on separate layers.
First Project Export: 384×216?!
With our trailer completed, the next thing to do was to “HD” the footage. In order to do this, we copied the movie project file, and the first thing to do is alter the project resolution: in our case, it’s 384×216, the same resolution as our game footage. In addition:
- We hid anything not gameplay related: overlapping text, title cards, end cards, etc…
- We leave the empty spaces as they are (don’t remove those new blanks, you’ll be needing them), even if something was supposed to be there.
The important thing here is that this new project will be the footage we upscale. Remember, save this footage in the highest quality possible, avoid any pixel artefacts.
Upscaling the footage
You’ll need the powerful VirtualDub to do this.
Important (if true, this could save a lot of time and effort, but I didn’t test it): One method I did not try when making the trailer was opening the footage in VirtualDub, going in Filters->Add->Resize, and then setting the new size to 1920×1080 with the filter mode set to Nearest Neighbor. If the export is to be pixel perfect, use this method and you’ll save a lot of time and hard drive space, and skip this section. If it doesn’t, just do the things listed under.
Open the project export you’ve obtained from your video editor in VirtualDub, then File->Export->Image Sequence. Select a empty directory to store all the 5000+ pictures (for about 1:30 minutes of footage!). We used png as our format.
Next, what we’ll do is download GIMP, install it, open it up to see if it works. Then go download BIMP (Batch Image Manipulation Program for GIMP) and install it. It’s an addon, so open GIMP afterwards and select File->Batch Image Manipulation…
Press Add, and select Resize.
Fill in the form as pictured above, make sure Interpolation is set to None. This is what keeps the pixels crisp.
Finally, select “Add Images”, and select the folder your frames are in. Click on the button near “Output Folder” and select another empty directory. Click “Apply” to start the long procedure.
First thing to do is to immediately check the output folder through your file explorer and verify the frames exported are as expected. If not, abort the procedure early so you don’t waste time, and see if something is wrong with the original frames, or your configuration in BIMP.
If everything’s alright, just let BIMP do it’s job. On a slow machine like mine, it’s going to take a while (it took about 2 hours and a half for my footage, especially for 60fps footage).
When it’s done, close Bimmy and Gimmy. Open up VirtualDub once again, and open the first frame of the resized frames in your output folder. It will load all the footage. The framerate is wrong however, so you’ll need to fix that.
In Video->Frame Rate…, in the Source rate adjustment, select “Change frame rate to (fps)” and set it to 60, and press OK.
Next, go into Video->Compression, and select an encoder that will at least give you a reasonable file size, while still keeping the quality, like x264vfw (look it up on Google). Again, the goal is to keep the pixels as crisp as possible, so the less artefacts, the better.
Finally, File->Save as AVI. Name it whatever you want, and it shall export. It takes a while too. Check your exported file to see if everything’s good.
Go back to your trailer project (the one at 1080p, not the smaller resolution version), delete all the gameplay footage that’s in it (did you keep the audio? If you need it, don’t forget about it, and seperate audio/video before removing the video). Insert your new footage at the very start of the timeline.
Make sure that whatever title, in between graphics or anything already high definition that were not in the small export version overlap the HD footage, as that now has empty spaces in it.
About Cropped Footage
So, you’ve cropped certain footage visually in a manner that didn’t preserve the pixels intended size. That’s okay, it’s just that you’re going to lose more time, like we did: and it’s not going to be as smooth as the rest of the footage.
Open up the small resolution version of your project. Delete anything that isn’t cropped footage. Then, undo the crop for each footage and restore them to their default resolution: if multiple footages are supposed to overlap, place all footage on the same layer, and let each footage play one after the other.
Export this project as another small resolution footage, and repeat the upscaling technique. To save time, make sure you remove all the blank spots in the trailer: this only wastes time in the upscaling process: but if you do this, you’ll be doing more editing in the video editor, so it’s up to you (we did this, and learned that a few frames have been lost this way… if you pause our trailer at certain cropped sections when they appear, you’ll find some blank frames…)
With the new footage in HD, put it in the trailer, and “attempt” to do your cropping once more. Since it’s now “HD”, you might have some performance issues: luckily, it’s not the entire trailer you’re editing, just the cropped sections. But when doing our trailer, we definitely felt the computer struggle.
Export your 1080p trailer and you should be done.
Obviously, our trailer isn’t perfect: the colors are a bit washed out compared to the game, and tiny pixel artefacts show up in mostly unnoticeable areas. I’m going to assume the encoder/many exports of the footage has something to do with this. Strangely, I also feel like there was a frame rate drop in the trailer.
But it’s definitely one way of recording “HD” footage for your game’s trailer. I hope it turns out to be helpful to someone out there.
Thanks for reading. While you’re here, would you mind checking out my JRPG, Hegemone Pass? (Also, spreading the word will help me out a lot…)
If people are interested, I can do from time to time other kinds of gamedev-related tutorials. What do you think?