In the first year of my degree at the University of Derby we studied a module named Ludology, which was all about the theory of games and game design. The final assignment for the module was to create a clone of an 8/16-bit era game using Game Maker (urgh) and pitch it to two of our lecturers, who were posing as 80s publishers. Despite having to make the game in Game Maker, choosing a challenging target, and being stubborn enough to use only blocks for the game logic, what I created for this assignment was actually an incredibly faithful recreation of the first level of Sunsoft’s Gremlins 2: The New Batch for NES, including all game mechanics seen in the first level, except for money.
Why do I bring this module up now, a year and a half after the fact? Well, Gremlins 2 is a gem from my past, a huge part of my childhood as a NES gamer (yes I know I’m too young to have been brought up on an NES, but being poor had its advantages I guess), and a game I still enjoy to this day. I’ve played it to death, and previously even uploaded a video of me playing one of its hardest levels without taking a single hit (see below). I distinctly remember other students last year telling me how closely my clone resembled the original game, and having recently come across its exe, I couldn’t help but be proud of how authentic it felt, even if it was made with something so childish.
This brings me neatly on to two issues:
The first is simply the heritage of Game Maker, it’s flaws, misuse, potential, and the fact that it actually is possible to make good, respectable games in Game Maker – people just don’t. I’d like to make a post about this subject later, but in case I don’t get chance, I want you to check out two people: MESSHOF and Remar. In particular I want you to download and play Remar’s games Hyper Princess Pitch, and Hero Core. They’re free, and if you truly have an interest in gaming, you will thank me.
The second is the one I want to discuss now: Video editing. I’ve always found this to be a tricky subject. My experience with the various free software solutions has been poor (no decent export settings, formats, unstable, lost work, poor interface, unintuitive, poor video/audio synchronization), and I have never been able to justify splashing out on something more professional. Add to that I’ve always found it quite difficult to find information on how people managed to capture and compress high quality gameplay videos so effectively, and you’ll begin to see why the video before the previous paragraph is so poor, with the audio gradually drifting out of sync as it runs.
Since making that video, I have discovered VirtualDub. VirtualDub is a simple, linear video editor which is perfect if all you want to achieve is some simple cropping, resizing, dubbing, appending and recompression, however, it does not provide the slick GUI or advanced non-linear features that other editors do. After a little bit of poking around and following a lovely video tutorial for high quality, small file size exports on YouTube, VirtualDub allowed me to create reasonably sharp videos for my recent projects, Battenberg and Pastry3D. However, I ran into a brick wall when I set about my latest video editing endeavours.
Back in January I recorded the two playthroughs seen above, of Gremlins 2, level 1. One of these is running on an NES emulator, while the other is my Game Maker clone, and the point of the video was to position the two side by side so their resemblance was truly put to the test. But the playthroughs were recorded separately, so how would I go about merging them in this manner? VirtualDub is too linear for this – it does not provide functions to merge videos in such complex ways.
The answer, as it turned out after three to four hours of research and work, was to download Avisynth and VirtualDubMod. Avisynth, as best it’s creators describe it, “is a powerful tool for video post-production”. As far as I’m concerned though, it just provides a scripting language which can be used to manipulate videos in a non-linear fashion by utilizing a number of simple functions, such as StackHorizontal, which fitted my purposes to a tee. Again, as far as I’m concerned, VirtualDubMod is simply VirtualDub with added functionality, and integration for Avisynth, including syntax highlighting.
The short story is, the solution to the problem was simple, but the information I needed was so buried, and so tricky to put to use that it took a considerable amount of effort to achieve my end goal. Still, it was interesting to see how programmatic a solution to a problem such as video editing could be (seems obvious now I write it down), and I’m considering laying down a nice tutorial if I find the time – though a tutorial on merging videos like this may be too specific, and I’m no general master of the tools involved.