|By PlatformPCPS3Xbox 360Wii U3DSPS VitaAndroidiPhoneiPadOther HardwareEditor's Choiceby Author||By GenreActionAdventureFightersFree-to-playMMOMusicPlatformShootersSportsRPGStrategyMore genres|
After several months of work, I've completed my VRC6 chiptune cover trilogy of the first 3 Mega Man games with Mega Man 2, this time at 60FPS thanks to YouTube updating their site recently:
Mega Man 2 Remade - Bandcamp
The album on Bandcamp is set to "Pay what you want," which means it's free unless you want to pay me.
This is a re-imagining of Mega Man 2's soundtrack using Famitracker, a NES music creation tool. With it, I can use expansion chips used in the Japanese Famicom. This album uses VRC6 and is in stereo- the Famicom (or a modded NES) could play these, minus the stereo.
Edit: Just to mention it, I changed programs this time for the video. I was using Camtasia before, but it doesn't properly support 60FPS and I had all kinds of crazy issues with its timeline editing (want to change an audio file you've already sync'd to the video? Too bad, now you get to redo it, even if the audio is the same length/size).
Instead of that, I switched to AviSynth, which was a lot easier overall. I've done a fair amount of programming so the interface wasn't really that difficult to get used to. I eventually made a template where I could just type in a bunch of frame locations and the different scripts would handle the code automatically. This was great until I had to render the actual video to a file. Upon loading, it took 900MB of RAM, causing it to crash anytime any encoding happened. First I tried to switch to x64 vdub+avisynth, but that crashed for different reasons than memory errors, so I had to optimize my avisynth code.
Here's a fun tip I didn't realize: Every time you use aviSource(), it takes up a lot of RAM- like 50MB, I'm guessing. I had it set up so that every script called this from the importer script, then returned their own video variable which was then "aviSource'd" into the master file for that level, which was then "aviSource'd" into the master file for the entire project. The x64 version of avisynth+vdub showed how inefficient this was- for each of those calls I did, it spawned a new xvid decoder. It was spawning over 100 instances for the master file. I had to rewrite every level to just use variables within one big file, and this reduced the calls to maybe 15 - still a lot, but instead of 900MB it would take 275 or so.
The final weird hurdle was an odd memory leak during playback or compression of the avisynth stream. Every second it would take up another 2-3 MB and eventually crash. Found out that the "experimental" build fixes this - the last "stable" build is from 2008, even though it's far less stable. You'd think 5 years of development and bugfixes might warrant a new release, but apparently not!
I'd probably use avisynth again, especially with the knowledge I gained from trying to make a longer video with it. It's much nicer to use than a graphical editor if you want precision, once you've set it up.
My two nieces, Rowan (5) and Riley (3), come over to our house to play 1-2 times a week usually, and my mom (their Nana) watches them. Sometimes though, they like to go to my room, where they hammer out tunes on the keyboard and get me to go play with their Legos. One time though, I was playing my NES, and they were both pretty interested- Rowan wanted to play and Riley seemed OK with just looking at the colors on the screen, so I started Rowan playing Super Mario Bros (1).
"Why would you want to start with Mario 1?" you might be asking. I had actually thought this through before. I figure that if they were started on newer games, like New Super Mario Bros for Wii, a couple of negative things would happen. First, that game is significantly more complex and would add time to the learning curve for a girl who had never played a platformer before, much less any video game not on a touch-interface / tablet. Second, the newer Mario games always have nostalgic little callbacks to the older games that newer gamers probably miss, and third, if you start people off with that style of graphics, they may not appreciate any previous games as much because they look "worse." That last one kind of stuck with me; if she played a later game first and this happened, she'd have nothing to look forward to past the newer 3D mario games. If she started with the original game, now there are 15+ sequels she can play after that, each one changing the formula a little and adding to it.
I had tried to get Rowan to play this when she was 2 1/2 but she couldn't grasp the significance of what was happening onscreen, just that she could push a button and make Mario jump. I figured that she'd have to wait a couple more years before "getting it," and I also didn't want to try to make her play it before she felt ready.
I started up the game and pressed "start," then handed her the controller. She ran into the first goomba immediately. "That's ok, she doesn't really know the controls," I thought. I showed her how to jump, and that she could jump on enemies. Then I had to show her that she could hit "?" blocks, and that some of them had powerups/mushrooms and some just had coins. Then to explain what the mushrooms DID and why you'd want to get one ("no, they're not the same as goombas, they're good mushrooms"). She also doesn't have a lot of hand-eye coordination/timing built up because she's never really played games that require those things. Man... I didn't realize how much work this would actually be. We take a LOT for granted once we learn things.
Occasionally she'd hand me the controller so she could see how I played. I didn't really teach her how to run because the game doesn't really require that yet (not until later stages), and it was already a big learning curve on top of that. After a large amount of deaths to enemies and falling into pits.. suddenly she had beaten 1-1 and was on to 1-2. She can now play about half of 1-2, but she can't make it over some of the pits in that stage.
She definitely surprised me a couple times. Her dad picked her up later that day, and while she was playing, one of us mentioned to the other that Big Mario can break blocks, which she overheard and just started doing on her own. She intrinsically knew that stars were good (props to Miyamoto there) and also figured out how to go down pipes, though she was a little freaked out the first time she saw that (it makes the same sound as when you get hit after being big; maybe she thought that's what was happening).
All of this has made me realize something - she started out initially trying to approach the first stage as a memory game, kind of like any one of the edutainment games she was playing on iPad at the time. Gotta remember that this goomba is HERE, gotta use the same strategy every time, gotta get the mushroom that is in this specific "?" block, but not explore and see other "?" blocks. Eventually she started to branch out a lot more. Videogames kind of make you do that, at least good ones, because you will get similar situations (it's a goomba!) but in different environments (there's only 1 block to move in, how do I kill it without getting hit?) It makes it interesting to watch and see how a kid learns this stuff for the first time. Hopefully she'll learn even more in the next few months. Maybe I'll get to see her beat the entire game one day.
Oh and the 3-year-old? Press right -> die. Repeat. Forever. She still has a lot of fun watching Mario die though!