Nathaniel Hoover | Guy Whose Website You're Viewing
  • Home
  • Blog
  • Series Opinions
    • Mega Man >
      • Mega Man Classic >
        • Mega Man 1-6
        • Mega Man 7-11
        • Mega Man Game Boy Games
        • Mega Man Spinoffs
        • Mega Man Remakes
        • Mega Man Sports & Arcade Games
      • Mega Man Sequel Series >
        • Mega Man X1-5
        • Mega Man X6-8 + Command Mission
        • Mega Man X Portable Games
        • Mega Man Zero Series
        • Mega Man ZX Series
        • Mega Man Legends Series
      • Mega Man Spinoff Series >
        • Mega Man Battle Network 1-3 + Network Transmission
        • Mega Man Battle Network 4-6 + Battle Chip Challenge
        • Mega Man Star Force Series
    • Star Trek >
      • Star Trek TV Series >
        • The Original Series (TOS)
        • The Animated Series (TAS)
        • The Next Generation (TNG)
        • Deep Space Nine (DS9)
        • Voyager (VOY)
        • Enterprise (ENT)
      • TOS Films >
        • Star Trek: The Motion Picture
        • Star Trek II: The Wrath of Khan
        • Star Trek III: The Search for Spock
        • Star Trek IV: The Voyage Home
        • Star Trek V: The Final Frontier
        • Star Trek VI: The Undiscovered Country
      • TNG Films >
        • Star Trek: Generations
        • Star Trek: First Contact
        • Star Trek: Insurrection
        • Star Trek: Nemesis
      • Ones That Don't Count >
        • Star Trek (2009)
        • Star Trek Into Darkness
        • Star Trek Beyond
        • Discovery
        • Picard
  • Games
    • Mega Man Fangame Tracker
    • OH JOES! (A Proto Man Adventure)
  • Presentations
  • Writing Samples

OH JOES! Developer Diary #8: The Dream Becomes a Nightmare

9/26/2018

10 Comments

 
Story navigation: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8

Two years. That's how much of my life I devoted to nurturing OH JOES! from some goofy level concept into a full-blown game with original cutscene artwork, an original soundtrack, ​58 randomized disclaimers for the startup screen, 500 words of dialogue, 1500 words of game over hints, multiple language options, multiple paths, multiple difficulties, multiple playable characters, and plenty of Easter eggs. I participated in every aspect of development—planning, spriting, programming, level design and decoration, music composition, writing, translating, and playtesting—learning any necessary skills along the way, including skills that hardly come naturally. Overcoming my aversion to collaboration, I coordinated with 34 people to make the game better than it ever would have been as a solo project. To me, OH JOES! isn't just another Mega Man fangame; it's a remarkable accomplishment that pushed me out of my comfort zone and helped define an entire chapter of my life.

At first, the game was a fun distraction, something I worked on a few times a week for a couple of hours at a clip. After a year, it was a pleasant obsession, consuming as much of my free time as my sanity (and my wife, friends, and family) would permit. By the last few months, OH JOES! was more of a burden than a joy, an obstacle between me and how I wanted to be spending my life, but I was committed to doing it right.

The good days, of which there were many, were the ones in which I conquered some programming problem myself, designed some challenges I felt good about, had productive interactions with the other people involved in the project, incorporated lots of playtester feedback, or finalized basically anything (menu screens and sprites were especially gratifying). I took it as a very positive sign that I frequently found myself humming the soundtrack, and that I didn't get sick of fighting Joes until the last few months—which, considering the impetus for the project, is rather astonishing. When I posted updates on social media, I could rely on at least a few (if not several) supportive responses to validate my work and keep me excited about continuing.
Picture
The mediocre days, of which there were many more, were the ones spent troubleshooting technical issues that didn't make any sense, coming up with creative new ways to use and combine gimmicks I'd grown tired of using, reworking challenges that playtesters disliked without articulating exactly what was wrong, reorganizing menu screens, finessing level graphics, implementing and testing the translations (especially French and German; Spanish I could confirm without too much cross-checking), ​or endlessly adjusting line breaks in the text. These days were productive, but they felt more like work than fun.

The bad days, which became more frequent the longer the project dragged on, made me angry. These were the days where I fruitlessly attempted to solve programming problems above my pay grade. These were the days where a playtester made a reasonable and compelling case to overhaul something that had been completely fine and final for months. These were the days where I sacrificed all my free time to work on this game, for the sake of a release deadline that was always "next month" no matter how much I worked. I took a week of vacation in the summer of 2017, and about the only thing I remember is being glued to my computer for 10+ hours a day in a futile attempt to finish the game that month.

When I set the official release date, I was in a weird place. My need to retake control of my life finally outweighed my desire for the game to be as polished as possible upon release. I knew there were glitches to fix, challenges to playtest more thoroughly, details to streamline, and features to add, but all the most important stuff was in place and reasonably solid. I was happy with it. The game was playable from start to finish. The majority of playtesters enjoyed the game. OH JOES! was more release-worthy than many other fangames I'd played. It was time to hand the game over to the largest group of playtesters yet, take a break, and come back fresh when there was a consensus about what I should focus on for the next update.

The plan for OH JOES! was a soft launch, announcing the game on Twitter, Facebook, Discord, and Sprites INC, where I'd been posting about it during development. It made sense to debut to a smaller audience who knew what to expect, and who was maybe even looking forward to the game. After a week or two of incorporating feedback from the general public, I'd "officially" announce the game on YouTube (to around 12,000 subscribers between both my channels) and on the forums at Capcom Unity, Rockman Perfect Memories, Cutstuff, Talkhaus, and anywhere else I could think of.

Despite all the headaches and hurdles, I was about to fulfill a childhood dream. ​I was nervous but optimistic, relieved but excited. I created a page on this website with information about the game, put together a download package, and played through the game one last time. I uploaded the game to three different file-sharing sites (always have a backup!) and tested that each download worked correctly. Then, I took a deep breath and announced my dream to the world.

It took the world 20 minutes to trample my dream, spit on it, and toss the pieces in my face.

I've been a content creator long enough to know that not everything I produce will be an instant hit with the public. I'm always braced for some measure of criticism, and I've learned to brace myself even more when it comes to level design. I was wholly unprepared for the hostility, ridicule, and indifference my game was about to receive, and I was blindsided by the things people would choose to complain about.

First was that initial ripple of excitement—hey, the game's finally out, congratulations, I can't wait to play it. Next were the first impressions—that cutscene art is fantastic; this music is great. So far, so good. Then came the bug reports—or more accurately, the memes making fun of the shoddy game engine, my horrible programming, and the apparent lack of playtesting. People were getting stuck in walls and crashing the game before even making it to the first checkpoint. Multiple people were outraged by the framerate, as though 30 FPS (more or less the fangame standard until OH JOES! was well underway) was utterly unplayable. Whatever credibility I had as a developer was gone before anyone got to the actual gameplay, by which point OH JOES! was just another no-effort fangame for people to trash. Notwithstanding the remarks about the art and music, the most positive thing I saw anyone say on Discord was that the game overall was "meh."

What a profound waste of my life this game was.

I had to walk away from my computer. I felt sick. What had been a source of tremendous joy and pride 20 minutes prior had rapidly turned into a painful mistake. One might argue that I was being overly sensitive to criticism, interpreting comments as negative when they weren't intended as such. But over the next four months, social media only reinforced the notion that nobody actually liked OH JOES!.

People complained about the lack of infinite lives, the fact that Proto Man loses his charge when hit, and the fact that a couple items require a specific character or weapon to collect—so I was being criticized for staying true to the official Mega Man games. But then people complained about the lack of a stage select or "real" final boss—so I was also being criticized for deviating from the official Mega Man games. I heard that the game was both too easy and too hard, that there were too many power-ups and not nearly enough, and that the game overstayed its welcome but wasn't long enough. There was no shortage of conflicting feedback from the general public.

But it didn't stop there. The lack of original Joes (when the entire point of the game was using tired old Joes in new situations) was disappointing to people. Over 250 screens of challenges, and the game did nothing new or interesting with Joes. Three meaningfully different difficulties, three meaningfully different characters, and a large degree of control over which challenges you face and how to face them, yet the replay value came across as artificial. How was I supposed to work with this feedback? These weren't critiques I could use to improve the game; these were indications that my game was a lost cause.

I'm better at handling the negative when there's some positive to focus on, but there was a gut-wrenching absence of praise for the story, dialogue, level design, tile work, special features, overall execution, and anything else I was responsible for. The only things people seemed to like were the stage music (of course, because Cosmic, Jasper, MiniMacro, and RushJet1 are extremely talented), cutscene art (of course, because Phusion is amazing), and secret character (of course, because she's a silly surprise who completely changes the gameplay nobody was enjoying). A handful of people involved in the project, who had previously stated that they liked the game, reiterated that they still liked it. I appreciated their support, but I also wanted—needed—some affirmation from the general public.

To give some numeric perspective: My initial announcement on Discord, Facebook, and Twitter reached a minimum of almost 600 different people—and depending on how much overlap there was between subscribers across the different platforms, that number could have been as high as 1500. I haven't been able to track the number of downloads from Dropbox and Google Drive, but MediaFire tells me that OH JOES! has been downloaded over 400 times—and I'm not sure whether that's since release, or just since I uploaded the last update. The first playthrough of the game that anyone posted on YouTube had over 1000 views within a few months of release, and my post about the game on Sprites INC had over 30,000 views. Even if, say, 90% of those views were repeat visitors and not unique views, those are still significant numbers.

In short: there were hundreds, if not thousands, if not tens of thousands of people outside the development team who knew about OH JOES!. Of these, five people in as many months said anything to make me feel like I wasn't a total failure as a game designer. With the exception of one glowing and articulate review, the praise was concise and tempered: the game was fun, despite [insert shortcoming]. Meanwhile, I continued seeing hostility, disappointment, and indifference toward the game every day, then every few days, then every week, until people stopped talking about it altogether. Whenever I brought up the game's unpopularity in conversation, secretly hoping that someone would chime in with something nice to say, the response was invariably, "Oh, that's too bad." Pity felt almost like an acknowledgment that there was nothing nice to say. Even on the rare occasion when someone tried to defend my game against criticism, their response was usually something to the effect of, "Well, the problem isn't that bad...".

Emotionally, I was extremely unwell for several weeks after the game's release. There's a sickening bitterness that arises from being so proud of something—something that you devoted years to creating, that other people told you they liked—and then having your self-worth pounded into oblivion when you put your creation on display. After a few days, I no longer had the drive to record an announcement for YouTube. After a week, I was this close to deleting the game's page from my website and killing the download links. After two weeks, I nearly stepped down as a judge for Make a Good Mega Man Level Contest 3. I felt like the game's existence was ruining my reputation in the fan community, and I wanted nothing more to do with it.

The game's few vocal supporters eventually convinced me that maybe, somehow, the game hadn't reached the right audience yet. I worked up the energy to advertise the game on a couple small gaming forums, but by that point, the branding was substantially different. "I'm excited to share my game with you" had changed to "Here's this thing I made; maybe it's not a total waste." The only response I've received on any of those forums is a compliment about the cutscene art. I made an effort to review bug reports and update the game if anything critical came up, but I expended a minimum amount of effort in implementing any changes. I also started writing this series of blog posts—partially for posterity, partially to share some insights about what it's like to design a game, but mostly to try to salvage the memory of this deeply personal project.

I didn't spend two years making a game; I spent two years on a challenging, emotional, eye-opening journey to fulfill a dream I've had since childhood. Looking back on the high points, I can be proud of what I accomplished and happy with the personal relationships that developed along the way. Looking back on the low points, OH JOES! caused me an unprecedented amount of stress and suffering for something that was supposed to be fun. If I could go back and do it all over again...I wouldn't.

I think about how eager I was to make more Mega Man levels, and how I would have gotten my fix if I had just waited a few months for Make a Good Mega Man Level Contest 2 and then a few more months for Mega Man Maker to arrive. I think about how many YouTube videos I could have recorded in the time it took to make OH JOES!—and how much happier both I and my content-starved audience would have been. Most of all, I think about how much it hurt to spend two years crafting a keen blade intended to cut through an afternoon of boredom, only to have my peers use it to carve out my heart.

But hey, at least I got some blog posts out of it.
10 Comments

OH JOES! Developer Diary #7: Playtesting

7/2/2018

2 Comments

 
Story navigation: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8

If there's one thing I learned from "Maze of Death," my contribution to the first Make a Good Mega Man Level Contest (MaGMML), it's that levels need to be playtested by other people—people who think and play differently than you do. People who don't already know what's coming. People who aren't predisposed to thinking that everything is perfect and wonderful. It's important to playtest the heck out of your own creation, but you can't stop there.

In playtesting as in life, there is strength in diversity. Gaming skill varies greatly from one person to the next, and we all have our own ideas about what is and isn't fun. Our expectations are informed by the games we've played and the lives we've led. We differ in how we deliver feedback, and in what we deem important to point out. Some of us are attentive to detail; some of us are oblivious to the obvious. Some of us like to take our time, explore, and think things through; some of us like to barge ahead and rush through challenges. I could go on. The broader and more eclectic the playtesting group, the more bugs you'll catch, and the better your final product is likely to be.

From the beginning, my plan for OH JOES! was to playtest in phases. Whenever I had a substantial amount of new content, I'd send the game for playtesting. Not every playtester was involved in every round of playtesting, and the size of the group depended on the size of the development milestone I'd reached. My rationale was that I'd get better feedback if I had a mix of some playtesters who'd seen several iterations of the game, and some playtesters who came in fresh at various points in development. Rotating playtesters also helped people from getting burned out, and it ensured that the finished product didn't just cater to the tastes and opinions of the same few playtesters.

By the time OH JOES! was released, almost 30 playtesters had taken the game for a spin, and I extend my thanks to all of them. At first, the group was mostly comprised of the people actively helping me with the project—CosmicGem, Entity1037, Jasper Valentine, and Renhoek. Along the way, I roped people I knew (either personally or through years of Internet interactions) into playtesting, including Alice "Mother" Kojiro, B.B. Sting, Dash Jump, Desertskunk, Mr_Cobb, ProcneDevi, Super Adapter, and Zapetroid. A number of folks specifically from the Mega Man fan community either volunteered or took me up on a request to playtest, such as happygreenfrog, IcyTower, Mark in Austin, NaOH, PKWeegee, Quack Man, and Raine.

I thought it was important to get feedback from the people with whom I'd be judging MaGMML3, so I invited Mick Galbani, Pachy, and Shinryu (and ACESpark, but he was extremely busy at the time). For good measure, I recruited Cheez, the MaGMML judge who seemed most likely to appreciate my game, as well as Dolphin, a regular judge of informal Mega Man Maker contests. I wanted input from fellow fangame developers, so I asked for help from Blyka, Lars Luron, SnoruntPyro, and WreckingPrograms. I was also planning on reaching out to the likes of MegaPhilX, MrWeirdGuy, GoldWaterDLS, and YouTuber RoahmMythril, but by then I had a near-excessive number of playtesters for a game that was only four stages long.
Picture
As often as possible, I pestered people to playtest my game in person; otherwise, my preference was a playthrough video with audio commentary. It's easier for me to gauge difficulty, fun, and fairness when I know exactly how the player reacts to each situation, both visually and verbally. Glitches are easier to replicate when I can study a recording for possible causes, too. Some people preferred text feedback via e-mail, Facebook, Discord, or even a PDF, sometimes with screenshots or short video clips attached. This allowed people an opportunity to articulate their thoughts in a way that might be difficult in the middle of a playthrough, plus it cut straight to the heart of what they felt did and didn't work. Getting feedback in a variety of formats kept the playtesting process fresh for me, and I got a well-rounded sense of my game that way.

Whenever I watched someone play through the game, I kept a notepad handy and scribbled a bulleted list of things I intended to change. A playtesting session could yield up to three or four pages of notes, with about two dozen bullets per side. I used plenty of shorthand, so Hammer Joe became just "ham"; I've since discarded all these notes, but I'm sure you can imagine what it was like returning to a list a few days later and trying to remember what things like "ham stuck on ice" meant. I crossed items off the list as I addressed them (in whatever order I felt like); any items I didn't really feel like dealing with immediately got transferred to a Word document to be sorted out later. Many of these, such as native controller support, sat on the list so long that they turned into "nice to have" items to be addressed after the game's release, if there was enough interest in the game to justify the time and effort.

For the most part, I contacted my playtesters individually for their videos and written comments. I've been a playtester for other games where feedback was provided in a group chat, and though there are benefits to that approach, I find it lends itself to derailed trains of thought, people jumping on a bandwagon, and people criticizing your criticism. The individual approach also allowed me to address feedback at my own pace, without feeling pressured to keep up with an ongoing conversation.

Most of the playtesting feedback for OH JOES! was very freeform; I welcomed any and all comments, usually with minimal guidance about what I wanted people to test. To some degree, this was a mistake. Hardly anybody tried the final iteration of Easy Mode, I don't think anybody played the game in French, the glitch-prone Item-2 was largely ignored, and there were a couple paths in the final stage that few people bothered with on Difficult Mode.
Picture
My original plan for the last round of testing was to send my playtesters a questionnaire about their experience. I used to do this after every Dungeons & Dragons campaign I ran for my friends, asking what specific moments and general characteristics of the quest they liked most and least. This questionnaire also would have assessed which game options were selected and which paths were taken, to give me a better idea of the gaps in testing. When it came time for final playtesting, however, I was burned out on being a game developer. I wanted the game out the door. I asked my playtesters to look only for glaring problems and tiny things that were easy to change. So much for the questionnaire.

Keep in mind that, despite the sheer number of contributors to the project, I  was the only one incorporating playtester feedback. Revamping challenges, fixing glitches, adding new features, revising dialogue, correcting graphical mishaps—that was all me. I tried not to outsource changes unless I was utterly stuck. This proved to be exhausting, because the changes required way more programming than I ever wanted to do for this game. Programming was something I tried to get out of the way early so that I could focus on the fun parts, but it kept coming back to haunt me. It was not uncommon for me to spend an entire evening trying to address a single item off my bulleted list. There's a reason why this game took 2 years to make.

It was fascinating to see what kinds of issues each of my playtesters focused on. I could tell who was a programmer, who was a level designer, who had an artistic eye, and who was more accustomed to playing fangames and ROM hacks than the official games. Comments ranged from extremely general (eg, stage 3 is too hard) to extremely specific (eg, here are the particular notes I'd like to change in the music). Some issues were no-brainers to fix (eg, the game crashes when I do this thing); other issues were annoyingly on the cusp between my fault and the player's fault (eg, magnets pulling more strongly when stacked on top of each other, which one playtester misinterpreted as individual magnets having arbitrarily inconsistent pull strengths). Sometimes, I got conflicting feedback (eg, one person said the Chill block sections were brutal and always avoided them; another person said those sections were the best).

Indeed, the hardest and most frustrating part was figuring out when and how to compromise. Incorporating feedback is a balancing act between your vision for the project and what other people want out of it, a matter of filtering out personal preference and bias (both yours and the playtester's) to get to the core of what actually needs to change. Accepting a suggestion doesn't automatically make the game better—in fact, it usually necessitates more playtesting to determine how well the suggestion works.

There are plenty of reasons why you might choose to ignore feedback, but if you start to see a theme in the ideas you've rejected, you can be sure that issue will become a sticking point once the game is released. My MaGMML2 level, "Guts Man's Asteroid," fell short of the top tier because I didn't fully address my playtesters' complaints about the boulder droppers. Despite practically every official Mega Man game having items that are off limits if you come into the stage without the right character, weapon, or upgrade, OH JOES! has received nothing but grief for some of the JOES letters being inaccessible to certain characters. Do yourself a favor and find a way to make a concession, however small or indirect, even if you completely disagree with your playtesters. Especially if your playtesters are unanimous.
Picture
For the most part, though, my playtesters seemed to appreciate and enjoy the game. It was gratifying to hear them laugh and smile (yes, you can hear a smile) in their playthrough videos. One playtester described me as a "potent designer." Another said OH JOES! might be the most fun he's ever had playing Mega Man, which strikes me as something that can't possibly be true, but I'll take it anyhow. There were plenty of critiques about the premise being stretched too thin, the stages being too long, and so forth. At the same time, there was also a lot of praise for the soundtrack, the graphics (especially the intro cutscene), the game's sense of humor, and the quality of individual challenges. The general consensus was that OH JOES!, while certainly not the next Rock Force, was fun enough to be worth a look. That's all I really wanted to accomplish.

A couple playtesters didn't seem to enjoy the game as much as the others, but they all had one thing in common: they had never heard of OH JOES! before I asked them to playtest. My other playtesters had been following the project to some extent, and they had a sense of what kind of game this was. This, in combination with some of the specific criticisms I received, led me to believe that false expectations might be influencing some playtesters' opinions. In fact, after I recommended using special weapons more often and approaching each challenge as a puzzle, one playtester who had given up on the game gave it a second chance and ended up having a blast.

It's like when my friends took me to see Hot Fuzz. "What's Hot Fuzz?" I asked. "It's Hot Fuzz! With Simon Pegg!" my friends responded. And then they stuffed me in the car and drove off to the theater. I had never heard of Simon Pegg. I had no clue what this movie was about. I spent a very long, unpleasant time in the theater suffering through a series of uncomfortably awkward character interactions. Then Simon Pegg kicked an old woman in the face, and I realized, "OH! IT'S A COMEDY!" It was a completely different movie from there on out, and this epiphany allowed me to enjoy the entire thing on a rewatch.

Expectations can radically affect the perceived quality of a thing. Viewed as a serious drama, Hot Fuzz is terrible. Viewed as a traditional Mega Man game, OH JOES! is a poorly designed disappointment. In lieu of overhauling the game to address the broadest complaints, I resolved to set clear expectations on the download page and wherever else I advertised the game.

There's plenty more I could write about the playtesting process, but I'd like to conclude by showing you the process. Culled, with permission, from over 19 hours of footage, I present to you a tiny sample OH JOES! playtesting from March 2017 through April 2018. This casually edited video is by no means comprehensive, balanced, or polished; moreover, it's comprised of footage never intended for anyone's eyes and ears but mine. Still, I hope you find the video enlightening and entertaining.
2 Comments

OH JOES! Developer Diary #6: Writing and Translating

6/15/2018

3 Comments

 
Story navigation: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8

I don't play video games for the story. Story is a nice bit of seasoning you sprinkle on top to give the gameplay more flavor. I'm not opposed to story-heavy games (see: Chrono Trigger, Mass Effect, Star Wars: Knights of the Old Republic), but when it comes to Mega Man, all you really need is an excuse to go blow up robots.

I knew I wanted an intro cutscene for OH JOES!, and I knew I wanted to keep it short. With such a simple premise (Regular Joe steals Proto Man's shield; gameplay ensues), I could afford to devote most of the panels to developing a story that's essentially a tongue-in-cheek explanation of why I made the game in the first place.

Proto Man is always portrayed as a loner in the official Mega Man games, but even a loner needs a place to hang his helmet. I thought it might be interesting if, after rescuing Kalinka in Mega Man 4, Proto Man developed a rapport with the Cossack family. He might have run away from Dr. Light's lab, but maybe he received an open invitation to drop by Dr. Cossack's Siberian citadel anytime. This was a perfect way to get Kalinka involved in the story of OH JOES!, and I like how the situation itself implies some character development without me needing to devote any screen time to it. Sneaking in a little trivia about the origin of Sniper Joes was a bonus.
Picture
In his official appearances, Proto Man is typically casual, concise, and opinionated in his speech; and his moments of silence reflect that he's got more to say than he's letting on. Kalinka, on the other hand, has only a couple lines in one scene of one game—but you can still extrapolate that she's articulate, compassionate, and a little formal. Although OH JOES! isn't always 100% faithful to the source material (eg, fudging the color choices when the NES palette was too restrictive), I wanted to make sure the dialogue fit the established personalities of these characters.

If we assume that Proto Man has been hanging out with the Cossacks off and on for the last several years, it's plausible that Kalinka has adopted Proto Man as sort of an older brother figure, and that Proto Man has grown comfortable being less reserved and aloof around her. Hopefully I captured their distinctive voices in the way the dialogue is written, because the actual content of the dialogue is basically just me having a discussion with myself. Proto Man's complaints are my complaints about the games I've played, and Kalinka's optimism is my optimism for the game you're about to play.
Picture
The last few panels hang a lantern on why Proto Man has this small, random assortment of weapons when the game begins; why the weapons aren't completely accurate to the original games; and why Break Man is a playable character. These aren't things that need to be explained, but they help set player expectations for the gameplay, and I always appreciate it when there's a story reason (however flimsy) for design decisions that have nothing to do with the story.
Picture
Of course, these are the panels as they appeared upon the game's release. The initial draft (and there were really only two drafts, initial and final) used more words to say less:
Picture
I do miss the throwaway joke about the closet full of Skeleton Joes (my wife had some fun "thought bubble" art planned for that), and I'm still amused at the thought of interrupting my own cutscene with the theft of the Proto Shield when things start getting longwinded. Like, "okay, you've had enough plot; go play the game now."

The intro cutscene was one of the first things I finished for the game, and I didn't need to do any other writing for over half a year. By early 2017, the game had expanded to four stages, the last of which contained a secret "break room" where the player could chat with a bunch of friendly Joes. I don't get to do it often, but I love writing NPC dialogue. Most of the break room text is purely for comedic purposes, but Apache Joe and especially Rider Joe break the fourth wall a little to explain why they aren't featured in the game.

Given the increased length of the game, I expected the player to see the game over screen at least a couple times. Influenced by both the randomized game over messages of Mega Man: Super Fighting Robot and the irreverent and occasionally informative death messages of Sierra adventure games, I began writing very helpful gameplay tips that would appear at random upon a game over.
Picture
The hints underwent numerous revisions as the level design evolved and as more gameplay options were introduced. When all was said and done, I had 74 distinct game over messages. That's pretty absurd when you consider the original screen count for this game was half that number.

However, the method of determining which game over message you receive is more complex than simply rolling a 74-sided digital die. This gets into programming territory, but the short version is that a number of variables control which game over messages you'll potentially see. In addition to pulling from a pool of general gameplay tips, the randomizer also considers which character and difficulty mode you've selected, which JOES letters you've collected, and where you died in the level.
Picture
Invisible to the player is a "global.COD" (cause of death) variable that changes every time you start or finish a gimmick path. There's a 1/14 chance that the message you get will specifically pertain to quicksand, magnets, or whatever gimmick was present in the section where you died. Generic sections with no gimmick offer some boring tips that really belong in an instruction manual; I should have been more judicious about cutting weak and superfluous tips. I did sneak in a couple hard-to-find messages—there's a global.COD variable specifically for the final boss, and there are special messages that you will only and always get by self-destructing or by holding your breath underwater too long as the secret character.

Writing good game over messages is hard. You've got to be sensitive to the fact that the player might be touchy or downright angry after dying (and I'm not convinced I entirely succeeded here). Any hints need to be genuinely useful, either by revealing something the player might not have realized or by reinforcing a core survival strategy. Any humor needs to soften the blow, encouraging the player to laugh about their failure instead of feeling like a failure. That's why most of the snarky game over messages don't show up until you've collected some of the JOES letters—by that point, you're probably far enough that you have a handle on the game's sense of humor and need a quick laugh more than you need a hint.
Picture
The space restrictions offered another layer of difficulty. I was able to fit six lines of text in the message box, but the number of characters per line varied because I wasn't using a fixed-width font. I had to scale back my usual verbosity and micromanage the exact wording of certain hints to fit the space. Moreover, I didn't have the programming knowledge to force automatic line breaks, so every line break had to be done by hand. The testing process for this was outrageously inefficient; I programmed a keyboard key to send me to the game over screen, randomly scrambling the variables that affect what messages might display, and I kept hitting the key to reload the screen until I saw the messages I wanted to check.

Keep in mind that the size of the message window changed once or twice during the development process, and that I kept adding and updating messages any time I wanted to work on the game but didn't feel like doing any of the harder tasks. I spent untold hours finessing these messages. When one of my playtesters suggested making it easier to tell when you were entering a new stage, I slapped together a transition screen showcasing some of the game over hints people were less likely to see—which meant completely redoing all the line breaks yet again, and testing them in the same inefficient manner. This was one of the most tedious parts of the development process...and then I decided to do it again in three other languages.
Picture
As the curator of what might be the most comprehensive list of Mega Man fangames on the Internet, I can tell you that the ratio of unilingual to multilingual fangames is at least 200 to 1. Language options are an extreme rarity. If you don't speak English, you're pretty much out of luck. You'll find a handful of games in Japanese, one or two games in Spanish or Chinese, and not much else. I know from personal experience that the Mega Man fan community is an international one, so I had every intention of making OH JOES! accessible to a broader audience.

I went to school to be a Spanish teacher, but I only briefly entertained the notion of doing a Spanish translation for OH JOES! myself. I'm out of practice, and my vocabulary is better suited to ordering lemonade and identifying color-coded farm animals than to advising players that they've been a real pantload. I'd have to do a lot of research and brushing up on grammar, and I'd want to run my translations by a native speaker no matter what. I was willing to put in the effort, but it made more sense from an efficiency and quality perspective to ask a native speaker to do the whole thing. Fortunately, I knew a guy.

Dan Castro and I were on staff together at GameCola for several years, and he had written some articles about video game localization and had done some localization/translation work himself. He was my first choice for translating OH JOES! into Spanish, and he kindly agreed to the project. Around the same time, I put out a call for translators on Discord and Sprites INC—any language you could speak, I'd try to add to the game. Garirry, one of the judges for Make a Good Mega Man Level Contest 2, volunteered to do a French translation. PKWeegee, another MaGMML community dweller, signed up for a German translation. I also received offers for Malay, Russian, and Latin, but nothing ultimately came of them.

Occasionally, a translator would ask me for some context to help them decide how to translate a line. My favorite instance of this was being asked what Scuba Joe meant by saying "Blub." Y'know...blub. It's a way of life. It's the noise you make when blowing bubbles underwater. What cracks me up is that, in French, this translates to "Bloup." I don't know why that's so funny to me, but I laugh every time I see it.
Picture
The translators were the very last people I recruited for the project, because I wanted to ensure the text was absolutely final before getting them involved. I felt it would be a waste of their time to translate anything that was still subject to change, and I didn't want to be That Guy who kept asking for revisions after the work was supposedly finished—and I especially didn't want anybody to bail before the project was over. Spanish notwithstanding, translation was the one aspect of the game I absolutely couldn't finish up myself. I had backup plans if all my programmers, composers, artists, and playtesters jumped ship, but I wasn't about to lean on Google Translate to fill in any gaps.

However, I did use Google Translate to check that the translations did indeed say what I thought they said. "Trust, but verify," as the saying goes. Between Google's translations of the translations, my understanding of Spanish, and my limited recollection of French and German from trips abroad, I got an interesting picture of what my game was like in different languages. Translation isn't a straightforward process; there's a lot of linguistic and cultural context to take into consideration, so literal translations don't always convey the right tone or meaning. As far as I can tell, the translators did a good job capturing the spirit of the text. With the Spanish translation, I was even able to appreciate specific word and phrase choices.

To keep things organized for myself and the translators, I dumped the entire game script and all the menu text into a Word document, organized everything into categories (identifying what was most and least essential to translate, if time/energy/interest became an issue), indicated any length restrictions, and numbered each line of text so I could quickly match up the translations with the original text. As it turns out, OH JOES! contains 8 single-spaced pages' worth of text. For comparison, the dialogue-heavy Mega Man 7 weighs in at only 3 pages. Maybe I'll write a visual novel next time.
Picture
My favorite part was matching up the randomized disclaimer text that appears when you start the game. I felt amusingly insulted to discover that the French translation of "DECOMPILE AT YOUR OWN RISK; MY CODE IS PROBABLY TERRIBLE" omitted the "PROBABLY" part. I laughed out loud at Google Translate's attempts to turn German into English, with such gems as "DECOMPILE WITH CAUTION; MY CODE IS FEARABLE," "IF YOU FIND ERRORS YOU ARE WRONG," and "IF YOU BELIEVE, PRESS 2."

Implementing the translations was tricky. There's a lot of programming involved in changing text from one language to another; it's not necessarily difficult programming, but you need to keep track of everything in the game that displays text, and you need to keep the code organized enough to not get confused when conditional or randomized text comes into play. In my case, I also had to keep track of image files with text as part of the picture. Despite knowing almost from the beginning that I might want to translate the game, I didn't bother making arrangements to accommodate translations until far too late. I knew this was a mistake; I would've saved a lot of time and effort by planning the game around language options from the get-go.

For the most part, I was able to keep revisions to a minimum. There were a few additional requests—for one thing, I had completely overlooked the need to translate "READY." For another thing, several playtesters expressed some confusion over what to do when they reached Dr. Cossack's lab, so I reworked his dialogue to be more direct and instructional. Unfortunately, this meant ditching two lines that I would've liked to have kept. One was the line about mushroom dumplings, pictured above; the other (which I guess I could have kept, but was too tired of programming at that point to deal with it) was in response to playing as Kalinka without having met the conditions for unlocking her: "Oh, Kalinka. I see you've been hacking your save file again. I thought we agreed you'd stop doing that."

I was originally planning on including a digital instruction manual with the game, but I wondered if it would be worth the time. Hardly anybody reads instruction manuals anymore, and anyone downloading OH JOES! probably already has a basic understanding of how to play Mega Man. On top of that, the translators already had a hefty workload, and I was concerned about what might happen if I needed to make revisions in the future and couldn't get all the translators back on board.

In retrospect, the better plan would have been to do an English-only initial release, incorporate feedback from the general public, and then translate the game once things were actually unlikely to change further. Still, I'm grateful to the translators for sticking with me, and I'm very impressed that the entire game was available in four different languages on release day. I'm very confident that's a first for a Mega Man fangame, and I've had at least a couple people express appreciation that the game is available in their language.

OK, so technically not the entire game got translated. A few items (eg, "CHARGE SFX") were deliberately left untranslated per the suggestion of one or more translators. Most notably (for me, at least), the alternate languages only have about a dozen randomized disclaimers, whereas English has...58. Coming up with disclaimers was pure fun, and my brain gravitated toward crafting more whenever I had an idle moment. I didn't think it was fair to keep foisting new disclaimers on the translators, and several of the phrases really only work in English (given that they're often nerdy quotes or riffs on warnings or product slogans in English). I told the translators they were welcome to provide their own silly disclaimers, but none did.
Picture
For posterity, and for people with better things to do than continually refreshing the startup screen until they see the message they're looking for, I leave you with the complete list of English disclaimers for OH JOES!:

  1. FLASHMAN85'S WARDROBE BY WHEREVER THESE CLOTHES CAME FROM
  2. DO NOT NIBBLE ON OH JOES! LEAVE OH JOES! AT ROOM TEMPERATURE
  3. IF YOU FIND ANY GLITCHES, IT MEANS YOU'RE PLAYING WRONG
  4. DECOMPILE AT YOUR OWN RISK; MY CODE IS PROBABLY TERRIBLE
  5. OH JOES! STAYS CRUNCHY, EVEN IN MILK
  6. SOME ASSEMBLY REQUIRED; BATTERIES NOT INCLUDED
  7. NO MATTER WHERE YOU GO, THERE YOU ARE
  8. READING THIS TEXT WILL VOID YOUR WARRANTY
  9. OH JOES! IS SUITABLE FOR VEGETARIANS
  10. DO NOT OPERATE HEAVY MACHINERY WHILE PLAYING OH JOES!
  11. SURGEON GENERAL'S WARNING: DON'T DIE
  12. THE MANAGEMENT IS NOT RESPONSIBLE FOR YOUR SHENANIGANS
  13. MACHINE WASH COLD WITH LIKE COLORS; TUMBLE DRY LOW
  14. PLEASE REPORT ANY UNFAIR CHALLENGES TO SOMEONE WHO CARES
  15. JUST KIDDING; YOU'RE ACTUALLY ABOUT TO PLAY 'MAZE OF DEATH'
  16. NOW LOADING PAIN AND SUFFERING
  17. I HOPE YOU WIN
  18. NINE OUT OF TEN DOCTORS AGREE: YOU'RE ABOUT TO PLAY OH JOES!
  19. THIS SPACE FOR RENT
  20. EXTRA LIVES ARE DONATED TO CHARITY AFTER EACH GAME
  21. NO JOES WERE HARMED IN THE WRITING OF THIS SENTENCE
  22. FUN WILL NOW COMMENCE
  23. SHOUTING 'SIZZLING CIRCUITS!' WILL NOT BE TOLERATED
  24. OH JOES! IS NOT INTENDED FOR WOOZY WATER BUFFALOES
  25. EMPLOYEES MUST WASH HANDS BEFORE PLAYING OH JOES!
  26. OH JOES! HAS BEEN TESTED ON ANIMALS; THEY ENJOYED IT
  27. IF YOU GET BORED DURING NORMAL GAMEPLAY, PRESS 2
  28. BASED ON A TRUE STORY
  29. NO PIZZA UNTIL YOU BEAT THE GAME
  30. HAVE FUN, OR ELSE
  31. OH JOES! IS MADE POSSIBLE BY PLAYERS LIKE YOU
  32. IN THE UNLIKELY EVENT OF A WATER LANDING, OH JOES! CAN BE USED AS A FLOTATION DEVICE
  33. MAY YOU NEVER FIND ROCKS IN YOUR SANDALS
  34. OH JOES! IS THE CANONICAL LINK TO THE OH JOES! SERIES
  35. EXCESSIVE ENJOYMENT MAY RESULT IN A SEQUEL
  36. RETICULATING SPLINES
  37. FREE HUGS; INQUIRE WITHIN
  38. WHEN YOU FALL IN A BOTTOMLESS PIT, YOU DIE OF STARVATION
  39. OH JOES! TASTES SO GOOD, CATS ASK FOR IT BY NAME
  40. HOW APPROPRIATE. YOU FIGHT LIKE A COW.
  41. OH JOES! IS FILMED IN FRONT OF A LIVE STUDIO AUDIENCE
  42. I LIKE SHORTS; THEY'RE COMFY AND EASY TO WEAR
  43. OH JOES! IS MANUFACTURED IN A FACILITY THAT PROCESSES PEANUTS
  44. OH JOES! IS CLOSED DURING NORMAL BUSINESS HOURS
  45. YOU HAVE NO CHANCE TO SURVIVE MAKE YOUR TIME
  46. PLEASE REMAIN SEATED UNTIL THE GAME COMES TO A COMPLETE STOP
  47. ALSO AVAILABLE ON LASERDISC, BETAMAX, 8-TRACK, AND VINYL
  48. HAPPY BIRTHDAY, IF APPLICABLE
  49. IT IS PITCH BLACK; YOU ARE LIKELY TO BE EATEN BY A GRUE
  50. OH JOES! IS NOT GONNA WRITE YOU A LOVE SONG
  51. GETTING STUCK IN A WALL IS A SIGN OF GOOD LUCK
  52. DOES ANYBODY EVEN READ THIS STUFF?
  53. OH JOES! IS CONVENIENTLY LOCATED RIGHT IN FRONT OF YOU
  54. YOU ARE DRESSED APPROPRIATELY TO PLAY OH JOES!
  55. EXTRA LIFE EVERY 6,000,050 POINTS
  56. I HOPE YOU DIDN'T PAY FULL PRICE FOR THIS
  57. SKIPPING THE INTRO CUTSCENE IS A FEDERAL CRIME
  58. DON'T BLOW UP. I MEAN IT THIS TIME.
3 Comments

OH JOES! Developer Diary #5: Graphics

5/22/2018

2 Comments

 
Story navigation: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8

I'm by no means an artist, but I'd like to think I have some measure of artistic ability. I like to doodle from time to time, I know my way around MS Paint, and I'm pretty decent at modifying and adapting other people's pixel art. At the very least, I'm capable of arranging foreground and background tiles in a manner that's aesthetically tolerable.

Unlike music and programming, I knew for sure I could handle the graphics for OH JOES! on my own. Menu graphics? I could keep those pretty minimal and adapt things as needed from the official Mega Man games. Level graphics? I could mix and match from existing Mega Man tilesets. Object sprites? Almost everything was already in the game engine. Really, all I needed were a title screen logo and an intro cutscene. The former was certainly easy enough:
Best Placeholder Title Logo Ever?
I can hear you snickering. This, of course, was only a placeholder...though I was seriously tempted for a while to clean it up a little and abandon any semblance of professionalism. OH JOES! was already going to be a ridiculous, tongue-in-cheek romp; why not embrace the absurdity? I eventually tried to design a more traditional logo, using one of the Mega Man arcade game fonts as a template, but nothing looked right. I held onto this logo for basically the entire first year of development.

It wasn't until a fateful Discord conversation that my haphazard MS Paint logo was formally discarded. Someone I knew passed along an image file of the complete English alphabet in the style of the 8-bit Rockman title screen logos. This person couldn't remember who on Discord gave it to them, but they assured me that I had permission to use the graphics in my game. That was good enough for me. The file originator has been duly credited at the end of OH JOES! as "SOMEONE ON DISCORD WHOSE NAME I NEVER GOT." Thank you, anonymous benefactor. Please don't sue.

With the right title font at my disposal, I started piecing together a logo in MS Paint, manually resizing each letter to create the "swoosh" effect we've all come to expect. I was pretty happy with how it turned out:
Old Joes Logo
Picture
As far as I was concerned, this was a final product. Now I could turn my attention back to the level graphics, which I had been gradually working on. My policy is to have a general idea in mind of how I want a stage to look, but to use placeholder tiles until I'm confident the level design is unlikely to undergo any radical alterations. More time spent refining the gameplay in its purest form; less time wasted on redecorating rooms.

Although the engine I was using already had dozens of (more or less) complete tilesets from the NES Mega Man games, I wanted to incorporate graphics from Mega Man 9 and 10. Make a Good Mega Man Level Contest 2 (which opened around the same time I was starting to think about this) offered tilesets of all the Robot Master stages from Mega Man 9. After a decent amount of sleuthing, however, I determined that the rest of Mega Man 9 and the entirety of Mega Man 10 were completely unaccounted for anywhere on the Internet. Thus began a side project that would benefit me and the whole fan community.

I launched a campaign to create tilesets for MM9/10, inviting other people to chip in if they felt like it. My plan was to rip tiles from the stages I wanted to use in my game, and then pick up any outstanding tilesets if I still had time, energy, and interest. This turned out to be a fun and satisfying little distraction; I got to use both my eye for detail and my penchant for organization, and I got a good amount of support from the community.

Within 24 hours, I'd produced three (more or less) complete tilesets, with graphics pulled from screenshot maps of the levels—the only things missing were animations for things like water tiles. A couple months later, with everyone's help, both games were almost done. I created my tilesets with flexibility in mind, adding transparencies instead of solid background colors wherever possible, and occasionally offering flipped or rotated tiles for things like spikes that only faced one particular direction in the actual level.

With as neat and tidy as my tilesets for MM9/10 were, you'd think my tilesets for OH JOES! would be pristine. You'd be wrong. The problem with mixing and matching from multiple tilesets is that you don't always know what tiles look good together until you've decorated the whole level...by which point it's a hassle to copy those individual tiles from their source tilesets, paste them and arrange them into a new tileset, and then redecorate the whole level using the new tileset. Consequently, the game's file size is larger than it should be because I am a lazy butt.

Stage 1, despite being only 13 screens long, uses two generic starfield backgrounds and (occasionally modified) tiles from Bomb Man, Knight Man, Plant Man, Star Man, Stone Man, Toad Man, Tomahawk Man, MM3 Wily 4, MM4 Cossack 1, MM4 Wily 2, and MM6 Wily 2. I eventually made an effort to consolidate, but I still ended up with seven different tilesets, 90% of which are tiles I never once considered using. The closest I have to a "main" tileset for Stage 1 is the Bomb Man tileset, with other tiles copy/pasted over the tiles I knew I didn't want to use. Even here, I ended up with a few tiles I didn't use.

OH JOES! Stage 1 Tileset
I learned my lesson for Stage 3 (which I inexplicably began tiling before Stage 2). I picked just one tileset (in this case, the opening cutscene of MM2) and pasted in whatever additional tiles I thought I might use. I envisioned something like MM3 Wily 1 (visually, my all-time favorite fortress stage), but with a nighttime cityscape for the outdoor portions, a different color palette, and accents from other tilesets to keep it from feeling like a lazy ripoff. The first iteration of the tileset looked like this...
OH JOES! Stage 3 Oldest Tileset
...but I quickly realized that, as much as I love gray and silver, the level was going to need more color. I devised an easy fix for the monochromatic blues: color-code the different gimmick paths. This helped inform the aesthetics for Stage 2, because I just used the generic techno-block graphics from MM2's middle Wily stages and repainted them to match whatever colors Stage 3 used for each gimmick. Pasting new tiles over the ones I wasn't going to use, I came up with this:
OH JOES! Stage 3 Old Tileset
I had been looking forward to using more unconventional colors and color combinations in my game. Much to my eternal sadness, the level quickly went from too dull to too bright. Moreover, I determined that the cityscape background was never going to work in a vertically oriented level; it'd look awfully suspicious to see the same ground level at multiple elevations. Grudgingly, I adapted some background tiles from Blade Man's stage and filled in everything after the first two screens with unassuming bricks. I fully intended to throw in a few miscellaneous details to liven up the backgrounds—maybe snaking pipes or gaping holes or wall fixtures of some sort—but nothing ever looked quite right. I tried to compensate by adding accent blocks to the foreground instead. Ultimately, my Stage 3 tileset looked like this:
OH JOES! Stage 3 Tileset
This proved to be incredibly difficult to work with. Bear in mind that I'm colorblind—at a glance, I can't always tell which tiles are supposed to go together. I frequently found myself making small adjustments to the level architecture, only to have my playtesters report a random purple block in the midst of a blue area, or two different shades of background tile for no good reason. When I got around to decorating Stage 2, I made sure to start with a blank tileset and then paste in only the tiles I wanted to use, arranged in a way where there would be no color confusion.
OH JOES! Stage 2 Tileset
This one's a lot cleaner, but you can probably tell by the placement of certain tiles that I changed my mind a couple times about how the background should look. After settling on the subdued brick background for Stage 3, I abandoned the subdued  circuitry background for Stage 2 and started gathering tiles that were subtle but varied. One particular element of subtlety was how I would telegraph the length of the stage: at the first checkpoint, there are six red circles in the background; at the next checkpoint, there are five; at the next, four; and so on. I'm fairly certain no one has ever noticed this, let alone found it useful.
OH JOES! Hub Comparison
As a side note, the "screen" tile used for the pass-through "fake block" gimmick was only supposed to be a placeholder. However, by the time I got around to applying real graphics, I couldn't imagine the blocks looking any other way. They were distinctive (I never wanted the player to guess whether or not a block was solid), and I found them visually appealing both alone and as part of a group. Something similar happened with the Chill Man ice blocks—they were meant to shatter into shards like they do in MM10, but I left in the placeholder explosion animation so long that I eventually couldn't imagine them any other way. I like to pretend they're made of some frozen volatile liquid instead of water.

In order to streamline the tiling process, I decided that each stage's graphics should be governed by a set of rules. There were all the general ones, taught to me by the official Mega Man games: background tiles should always have a shadow on top when placed below a ceiling or platform; bottomless pits should be clearly marked by the background fading to black, etc. Then there were the rules I concocted to prevent me from spending more time than necessary analyzing the aesthetic merits of every single tile combination.

For example: When used specifically as the featured gimmick, ladders were represented with a traditional "hole between the rungs" ladder tile; when used in any other capacity (ie, just to get the player from one screen to the next), they were represented with the charmingly chunky MM1-style ladder tile. In Stage 1, the underground rock tiles had to be contained by pipes and pillars; the player was never allowed to come directly in contact with the rocks. In Stage 2, the foreground tiles had to follow the same repeating pattern across every screen, with every passageway looking like it had been carved out of that pattern. In Stage 3, wall bricks were never allowed to be floor tiles; horizontal pipes had to be used instead, endcapped by blocks that followed their own set of rules, and those pipes generally had to continue extending horizontally until they reached the end of the wall or platform. Obsessive? Yes. But also immensely helpful.

Rules were especially beneficial by the time I got to Stage 4, which effectively utilized five completely different tilesets—one for each set of gimmick paths, and one for the connecting hub areas. I had been somewhat conservative in tiling Stage 2 and Stage 3, trying to keep the focus on the increasingly complex gameplay and not distract too much with the graphics. Now, a little tired of playing it safe (and armed with all the newly ripped tilesets from MM9-10), I pulled out all the stops and put my artistic mettle to the test.

Bold color combinations. Intricate designs. Unnecessary attention to detail, like making sure to use a specific type of square tile behind every Sheep Man block, making it feel like the blocks take out a chunk of the wall when they disappear. It took a great deal of time and effort to decorate this massive stage, but I was very satisfied with the results. I even think the tileset, though not perfect, turned out pretty darn well:
Picture
I'm especially pleased with the sunrise effect used in the boss chamber at the end of the game. For one thing, it completes the time-lapse effect I was going for—Regular Joe steals your shield when it's just getting dark, and you're chasing him through the night (seen at the start of Stage 3, which also shows the Bomb Man ball-on-stick buildings from Stage 1 in the distance), finally catching up with him just as the sun rises on a brand new, brighter day. For another thing, the sunrise kinda makes the background look like a Sniper Joe eye, which is the best backdrop for a Joe boss I could've hoped for.
OH JOES! Final Boss
Easily the easiest stage to tile was Dr. Cossack's lab (unofficially, Stage 5). For posterity, here's the tileset for that one—note that the wrench icon was adapted from Mega Man & Bass, my first attempt at converting 16-bit graphics into 8-bit:
OH JOES! Stage 5 Tileset
It took me 3 months to tile the 300+ screens that comprised the main gameplay. With one major graphical project out of the way, of course I decided to start another one. After successfully adding Break Man as a second playable character, I felt confident about adding an unlockable third character—one who would require custom sprites. I'd been making various graphical modifications throughout the entire development process, from updating Proto Man's sprite to reflect that his Proto Shield was missing, to giving Regular Joe his ridiculous walking animation cycle, to integrating the dome-shaped Quick Laser emitters (which were just random wall decorations from MM10) into existing wall tiles. I was ready for this.

It's always fun to see people's reactions to the secret character (whose identity I will be spoiling momentarily), because it's never whom they expect. For me, it was always obvious. I already had a character involved in the story who (a) deserved more air time, (b) would add some welcome diversity to a franchise dominated by male protagonists, and (c) was perfect "secret character" material. I was inspired by Castlevania: Rondo of Blood, which becomes a completely different game when you unlock Maria, an absurdly powerful little girl who throws cats at her enemies. I thought Kalinka Cossack would follow nicely in Maria's footsteps. Especially if she wielded an oversized bazooka that fired cats.
Kalinka With Bazooka
Although OH JOES! takes place far enough in the Mega Man timeline that Kalinka is a teenager or even a young adult, I wanted to use her classic, younger MM4 look because I like the outfit and think it looks properly absurd when paired with a bazooka. Besides, nothing says her appearance or fashion sense had to change dramatically in the last decade or so.

From scratch, I drew something resembling a bazooka. I consulted reference photos of real-life bazookas, but I ended up going in more of a Worms: Armageddon direction. The only canonical Kalinka sprites I had to work with were two frames of animation from MM4, so I figured out how the bazooka should look in any given pose and then worked Kalinka's sprites around the bazooka. The trickiest part was creating the climbing sprite; I wanted the bazooka to be slung over her shoulder, but I was rubbish at redrawing the bazooka at a 45-degree angle. I may or may not have pasted the horizontal bazooka image into PowerPoint and rotated it to see how it should look. I'm not an artist, but darned if I'm not a problem-solver.

There are very few Mega Man games (official or otherwise) where you get to play as a human instead of a robot. I don't ask for a lot of realism in my Mega Man games, but one thing that's always bothered me is how human characters explode when they run out of health. I refused to let Kalinka explode like Proto Man and Break Man did—that'd just be lazy—so I made sure to give her a unique failure animation that made sense for a human, but without disrupting the lighthearted, family-friendly tone of the game. Hopefully, googly eyeballs and tiny cartoon birds circling overhead did the trick.

The last piece of the graphical puzzle to fall into place was the intro cutscene. Originally, my wife (who's the one with actual artistic talent in this relationship) agreed to do the art; she has a history of sneaking Mega Man–themed doodles into my lunchbox while I'm getting ready for work in the morning, and the cutscene was basically going to be a series of polished doodles. There were two major hurdles: one, she'd never done pixel art before; two, the screen dimensions with which she had to work (256 x 224 pixels, minus space for the dialogue text) imposed a difficult constraint. The project went on the backburner for a while, and when I started pushing to get the game released in early 2018, she was willing to pass the baton to someone with pixel art experience.

Fortunately, I already had volunteers. MJacquelinae, a fellow contestant in Make a Good Mega Man Level Contest 2, had previously reached out to see if I needed any help with the graphics for my game. I took her up on the offer and commissioned the mugshot of Kalinka used on the character select screen. When the intro cutscene went up for grabs, I asked if she'd be interested in tackling that as well. She sent me a rough panel sample that looked promising, but it turned out that her schedule and my timetable for release didn't match up.

I had another offer on the table, this one from a longtime fan of both my YouTube videos and my writing. Based on his art samples and his taste in entertainment, I could tell he knew a thing or two about quality. I asked for one panel as a test run, a generic scene of Proto Man talking with Kalinka. Before the day was over, he sent me this:
Phusion Art Sample
I was floored. This was exactly what I was looking for, and I had barely provided any direction. I showed the sample to my wife, and she was jealous of his artistic chops. I officially invited him to join the project, gave him the same copyright spiel I gave my composers, asked him how he'd like to be identified in the credits (he eventually settled on "Phusion"), and outlined what I wanted the cutscene to look like:
My thought was that in the first panel, Proto Man is walking through a doorway and taking off his shield, leaning it against a wall or otherwise leaving it conspicuously unguarded, with Kalinka in the corner to greet him.

After that, it's up to your discretion for the next several panels—the sample you gave me can be used for "Even the most interesting opponents...".


"Hey! Come back with my Proto Shield!" should feature Regular Joe (see attached) running away with the shield, and Proto Man in the background shouting at him.

For the panel about grabbing some weapon chips, I was thinking of featuring a cardboard box with little computer chips imprinted with the menu icons of a random assortment of weapons across the entire MM series—but that's just one idea; artist's discretion on what to do with that one.

If it gets to be too much to draw, it's totally feasible to reuse a few of the same panels and just change the facial expressions, too. I'm flexible about this, and I'm open to creative suggestions.

From there, we went back and forth—concept sketch, feedback, line art, feedback, full-color pixel art, feedback, updated pixel art. Throughout the process, I paid close attention to the logistics of the scene, making sure that the relative positions of Proto Man, Kalinka, the hanging Proto Shield, and the doorway were always sensible and consistent. Body language was paramount; not only did I want the characters' poses and facial expressions to convey their personalities and fit the tone of the dialogue, but I also wanted to make absolutely certain that Proto Man and Kalinka never looked like they might be flirting.

The whole process went extremely smoothly, and I think it helped that we were constantly communicating and collaborating. Phusion ended up doing much more than the intro cutscene; for starters, he updated the title screen:
OH JOES! Phusion Protoype Title Screen
After providing feedback on the new logo colors, I commented, "The only thing I might do is flip and rotate it so that the shield is facing upward. Right now the shield looks almost like it's weeping tragically about having been stolen, but I'd like to see it optimistically waiting to be recovered." This is the kind of direction I give people.

Phusion also provided a new Game Over screen to replace the "boring text box" motif I had going. I had to make some programming adjustments to accommodate a static image where there was previously an interactive menu, but I think it was worth it. He turned my months-old concept art, doodled on a tiny notepad...
Flashman85 Game Over Sketch
...into something shockingly close to what I had been picturing in my head:
Phusion Game Over First Draft
It's worth mentioning that Phusion was the second person to try adapting my scribbles into actual art. GavinDragon (who also provided cover art for the instruction manual I never ended up making) had previously taken a crack at it. I can't tell you how honored I am to have had anyone freely volunteer their talents for this game, let alone multiple people.

Phusion continued to tweak and tidy the Game Over art as we discussed changes—most notably, Regular Joe's fist. Again, I was looking closely at body language. As I described it, "Even though the player just got a Game Over and has shamed their family for generations, I think I'd like to have Regular Joe with a slightly less aggressive pose. Maybe an open palm, which could be read either as a shrug ('Eh, you didn't make it, oh well') or an invitation to try again. Alternately, a Sonic the Hedgehog-esque pointer finger ('Tsk, tsk. Shame on you.')—though I'm not as sold on that one." You wouldn't believe how much effort it took for us to settle on a suitable gesture. Well, maybe you would.

My favorite piece of art almost didn't make it into the game. Very late in the development process, Phusion surprised me with an old-timey photo of Proto Man and Kalinka, intended for use as a "thanks for playing" tag after the end credits. However, unbeknownst to him, the credits flowed directly into more gameplay. I couldn't come up with a decent way to add the photo without it feeling contrived, and it was too late to redo the whole ending. Thus, this super awesome picture that deserves more visibility was relegated to being a postgame Easter egg for the approximately zero people who close the game via the "QUIT" option on the title screen.
OH JOES! Easter Egg Photo
Level design may have been the most fun part of designing OH JOES!, but the graphics were the most satisfying. It's hard to put into words, but there's something deeply gratifying about nurturing a bunch of bland placeholder images into honest-to-goodness art, especially when I've got top-notch help.
2 Comments

OH JOES! Developer Diary #4: Music

5/3/2018

0 Comments

 
Story navigation: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8

OH JOES! started off as a one-man project, so I had every intention of composing my own music for it. I used to fiddle around with music composition software in high school, I've been singing in choirs since middle school, and I'm more of a music fan than I typically let on in my writing and videos. I was fully confident in my ability to come up with two or three half-decent melodies and harmonies. But, as was the case with programming, the biggest hurdle was learning how to translate my ideas into something more tangible.

A mere 2 weeks after pitching my game idea to Blyka and SnoruntPyro, I got to work on the music. Again, as was the case with programming, I wanted to get all the difficult stuff with the highest learning curve out of the way first. I knew I wanted a traditional NES sound, so I downloaded a popular program called FamiTracker and began to teach myself how to use it. During the day, I composed music in my head, occasionally using the voice recorder feature of my phone to capture myself humming a melody I was afraid I'd forget. During the evening, I figured out how to put those tunes into FamiTracker.

Over the course of a week, I hammered out a title theme and three different stage themes. I definitely don't remember having plans for more than one stage at that point (I hadn't even started the level design), so either my memory is faulty or—more likely—the completionist in me felt compelled to compose a Stage 1 and Stage 2 after titling my first composition "Stage 3."

However, my compositions didn't sound much like Mega Man...or anything else on the NES, for that matter. I was happy with the note progression and overall feel of each track, but something major was lacking. Everything sounded a bit hollow, and the instrument set I was using did the music no favors. Even after tracking down some FamiTracker files with instruments supposedly emulating the ones used in a few official Mega Man games, I couldn't get the authentic sound I wanted.

For posterity, here's a sample of what might have been—Stage 1 is incomplete (probably for the best), Stage 2 is a medley of fortress themes from the official Mega Man games (also incomplete; pretend you can hear the beginning portion of Mega Man 2's first Wily stage during the longer notes in the Mega Man 9 section), and Stage 3 is pretty much the best I could ever hope to achieve on my own in FamiTracker:
prototype-stage-1.mp3
File Size: 207 kb
File Type: mp3
Download File

prototype-stage-2.mp3
File Size: 514 kb
File Type: mp3
Download File

prototype-stage-3.mp3
File Size: 1026 kb
File Type: mp3
Download File

Regardless of how these stack up as a first effort, I think we can all agree that I have no future in composing Mega Man soundtracks. This was supposed to be a tiny little project, not my gateway into the wide world of chiptune composition, and I didn't want to recycle existing music from someone else's game ("Stage 2" notwithstanding, as it fit with the game's theme of mashing up familiar things in an unfamiliar way). Not long after composing these tunes, I got a taste of what my game might sound like without outside assistance when I livestreamed a bit of Mega Man: Calamixian Edition. I tabled the music for a while to focus on programming and level design. I knew I would eventually need to ask an Actually Competent Composer for help, but I was reluctant to do so.

Getting a little programming guidance was one thing, but formally recruiting a composer was another thing entirely. I've had numerous bad experiences with collaboration over the years, stretching back at least as far as high school. People have a tendency to disappear on me without explanation. Heated debates and irreconcilable disagreements have soured whole projects for me. I was wary of letting other people into the project—also because it would be one step closer to having a team of developers, and I explicitly did not want the game to get big enough to require a team.

By September 2016, I was far enough along with the level design and had warmed up enough to the idea of collaboration to reach out to CosmicGem and Jasper Valentine, two chiptune composers. I didn't know either of them particularly well, but I had been impressed with Cosmic's Cut Man remix, and I liked Jasper's work for Mega Man Eternal II and was a big fan of his spin on the Air Man theme from Mega Man II for Game Boy. They were amenable to the idea of composing a few tunes for my game, and we began coordinating the details on Discord in a group chat.

Although this was a casual, volunteer project, I felt it was important to request and document the composers' agreement to the terms and conditions I laid out—essentially, they'd keep the rights to their music, and I'd have permission to use and redistribute the music as I saw fit, provided I wasn't making a profit off it. In both my personal and professional life, I've seen how much of a hassle copyrights and permissions can be when left vague; I wanted to ensure things were clear from the start.

Here's a sample of the musical guidance I gave my composers:
The whole game is very self-aware, so the music I'm envisioning is either light and fluffy or intentionally way too serious for its own good.

For the ending, I'd like to start with the actual credits music from MM10 and have it melt away after a couple seconds into something incongruously happy—sort of like the musical transition between the opening cutscene and the title screen of MM2 (this will make more sense once you see the credits roll).

The game over screen is going to be some sort of sight gag with a defeated Proto Man weeping for his irrecoverable Proto Shield. The music can be short and a little ridiculous, with a hint of any music related to Proto Man from the official games (so, his whistle being played as usual and then going horribly flat and dissonant, etc.). Alternately, it can be so utterly melodramatic that you can't help but laugh at how much it clashes with the background image. I'm aiming for a fun-loving soundtrack full of lighthearted adventure, but I can also picture the soundtrack taking itself so seriously that it's absurd when paired with the silly premise.
Because I was still designing a glorified Make a Good Mega Man Level Contest level at this point, I was planning to start with the exact same credits sequence, with Mega Man 10 music and the words "MAKE A GOOD MEGA MAN LEVEL CONTEST" scrolling through a starfield, followed by "CANNIBALIZED FOR PARTS TO MAKE OH JOES! (A PROTO MAN ADVENTURE)" and all the silliness that ended up in the actual release. I had forgotten about the aforementioned game over screen idea until writing this post; I honestly don't remember when or why that changed, but now I'm a little sad it didn't get used.

Given their specific styles and strengths, I knew I wanted Jasper to compose the stage theme, and I knew I wanted Cosmic to jazz up the title theme I had composed previously. However, instead of assigning the other tracks in a similar fashion, I left them up for grabs. Cosmic claimed all of them, and within 24 hours I had perfect intro cutscene music, title screen music that no longer sounded hollow, and game over music that conveyed the vibe I wanted. Over the next few weeks, the main stage theme took shape, and even the rough drafts sounded great. I provided some feedback along the way, but I didn't want to steer the creative process too hard; as long as everything fit the overall sound I had in mind, I was usually content to let the composers take the lead.

Things got messy when the game started to grow beyond its original scope, and that's largely my fault. Suddenly I needed an intro stage, and maybe boss music, and now maybe yet another stage, and hey wait let's add one more stage. Composer MiniMacro had previously volunteered to contribute to the soundtrack, and toward the end of November, I took him up on the offer. Jasper and Cosmic had been getting progressively busier, and I was pushing to get the game released soon. Though I failed to explain this clearly to the group, I also had grown to like the "collaborative" feel we had going, and I wanted to use the larger soundtrack as an excuse to get more people's names in the credits of a fangame. Poor communication coupled with my overly optimistic timetable for the game's release led to some confusion about what was actually happening.

Things ultimately got sorted out, and the soundtrack continued to develop in fits and spurts for the next several months. A full year after work began on the soundtrack (not counting my preliminary efforts), all that remained were the credits music (which had been on hold until I finally designed the credits sequence) and an alternative for the current Stage 3 music (Cosmic's updated version of Jasper's Stage 2 theme, which worked when it was still the last stage of the game but didn't work as well as the transition from Stage 2 to Stage 4). I reached out to RushJet1, whose work I had casually followed for some time, and who had previously gotten in contact with me to share his Mega Man 4 soundtrack cover after watching some of my Mega Man videos on YouTube. I thought his style would be a great fit for the soundtrack, and he agreed to contribute.

Here's a sample of the guidance I provided:
[Stage 3] is full of branching paths, and each one reintroduces a gimmick you saw in the last stage, then another gimmick you've already seen, before smashing them both together. I thought it might be neat to have the music mimic the gameplay; something along the lines of two different melody lines (or a melody and a harmony) that keep weaving in and out, with a steady percussion line to hold everything together.

That could go a couple ways. One possibility is to start off with melody 1, then switch to melody 2, then intertwine melody 1 and 2 together. Another possibility is to have a melody and harmony going simultaneously, but occasionally one or the other drops out for a few measures. I'm not sure exactly how it should sound, but I want to give the effect that the song is kind of broken into pieces that are being put together as the song unfolds, culminating in all the parts finally coming together, and then breaking back apart when the song loops.

I've hammered out a rough melody [for the end credits] that I'd like you to use if you think it's salvageable—I know it's the default instrument set and the rhythm is a little sloppy, but hopefully it's a decent starting point. The vibe I'm going for is a riff on the Title Screen theme, which itself is a riff on Proto Man's whistle. Definitely needs to be upbeat and fun, and feel free to channel a little bit of the Mega Man X series; the credits have a sense of humor, and the visual design is directly inspired by X1-2.

For comparison, here's the rough credits melody I provided...
prototype-credits.mp3
File Size: 413 kb
File Type: mp3
Download File

...and here's what it sounds like in the hands of an Actually Competent Composer:
Reaching out to other people for help was the right call, and I'm incredibly happy with how the soundtrack turned out. The music gives the game the kind of character that I never could have achieved with graphics and gameplay alone. After months—and in a few cases, years—of hearing these tunes over and over throughout the testing process, I still find myself fondly humming them from time to time. If that's not a testament to the talent of these composers, I don't know what is.
0 Comments

OH JOES! Developer Diary #3: Level Design

4/19/2018

0 Comments

 
Story navigation: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8

I love to build and create. LEGO toys were among my absolute favorites growing up, and I spent large chunks of elementary and middle school drawing towns, dungeons, and overworlds for video games I wanted to make. I've poured countless joyful hours into developing my perpetually in-progress ROM hack of Super Mario World, multiplayer maps for Heroes of Might and Magic III and Star Wars: Jedi Knight II: Jedi Outcast, and levels for basically every game that's ever given me a level editor. It should come as no surprise, then, that level design was easily my favorite part of working on OH JOES!.

I didn't set out to make a proper fangame—in fact, if you had told me the game would require extensive programming and 35 other people to finish, I would've laughed and dropped the idea on the spot. I was looking forward to a project that was 80% level design and graphics, 20% whatever else was necessary to make it a standalone download. All I wanted was another opportunity to make a Mega Man level, and I was willing to branch out and try my hand at a few new skills to make it happen.

In the short time that I had been designing Mega Man levels, I had learned some important lessons. In lieu of the "Lessons in Level Design" blog post I started a year ago but never finished writing, here are my key takeaways from Make a Good Mega Man Level Contest (MaGMML) and Mega Man Endless:
  • Learning curve is always important, even if expert players are your target audience.
  • Get other people to playtest your level, because you cannot accurately judge difficulty or fairness when you know more about the level at the beginning than players will know at the end.
  • There's a line between variety and excess; keep the enemy and hazard selection focused.
  • Keep an eye on level length, both in terms of screen count and completion time.
  • Ideally, levels should be beatable without taking damage, using only the default weapon.
  • Use instant death sparingly and deliberately.
  • Anything players can do, they will do, no matter how inane or counter-intuitive it is.
  • Setting player expectations is critical, especially in a nonstandard Mega Man level, because players otherwise make (usually false) assumptions based on their own unique gaming experiences.
  • Consider the player's likely emotional state at various points in the level—fatigue, panic, and complacency can change the dynamic of the challenges.
In addition to these points, I worked out some core guidelines specifically for OH JOES!—a checklist, if you will, for every challenge in the game:
  1. Give the player ample time and guidance to understand the nature of each challenge before being threatened with bodily harm, introducing new enemies and gimmicks in a (reasonably) safe environment.
  2. Aside from basic platforming mishaps, injury and death should only occur as a direct or indirect result of a Joe. Challenges surrounding power-ups bend this rule a bit, because you wouldn't subject yourself to extra danger if you didn't need power-ups to keep fighting Joes.
  3. Through special weapons, careful observation, damage boosting, power-ups, Game Over hints, and a reasonable amount of practice, any player of any skill level should be able to beat the game.
With all these suggestions and rules swirling around in my head, I got to work on the level design. The ideas I had in mind for creative Joe use relied on the player being familiar with the Joes' attack patterns, so an intro section devoid of gimmicks was essential. This was good practice for me as a level designer, too; when you've got the ability to create anything your imagination (and limited programming skill) can come up with, it's easy to forget the importance of starting with "boring" challenges as a warmup for the player.

The first few screens of the game draw inspiration from the official Mega Man games, at least in terms of Joe placement. Just like in Bomb Man's stage, your first encounter with a Sniper Joe is out in the open with nowhere to hide, and your second encounter is on a ledge (though this time it's more feasible to hop up on the ledge if you prefer face-to-face combat). Although I would normally never kick off a level using something as complicated as a Sniper Joe—let alone with no safe place to observe the enemy's behavior—I wanted to emulate the experience of playing through the official games and encountering these enemies for the first time.
Picture
Next was the obligatory Returning Sniper Joe at the top of a boring ladder (I had to do that at least once), followed by one atop a short ledge, as in Quick Man's stage. Except this time, you could charge your default weapon and take out the Joe without ever moving into the line of fire. As often as possible, I wanted to give players the option to avoid engaging Joes in normal combat—but if they did have to fight, I wanted the environment to interfere with the usual formula of "hang back at a safe distance and trade shots at roughly the same rate."
Picture
Part of thinking strategically is remembering and understanding everything you have at your disposal. To enter the room with Hammer Joes, whose projectiles can often be avoided by sliding under them, I force the player to slide through a narrow passageway. The first Joe is up on a high ledge reminiscent of the one in Hard Man's stage; though in OH JOES! it's definitely possible to jump up to the ledge unassisted, it's enough of a stretch that some players might investigate whether they have any support utilities (which they do). The second Joe fulfills the "Joe blocking a boring hallway" obligation, but the encounter gives the player a chance to practice avoiding projectiles while falling, with enough room to either slide under the Joe's projectiles or hang back and jump over them. Freedom of choice is a core component of the Mega Man franchise, and I wanted to incorporate that into the challenge design as often as possible.
Picture
This is the level of thought I put into each and every one of the game's 300+ screens. Once gimmicks entered the mix, I started thinking about situations I hadn't seen before in other Mega Man games, and the game took on a "sampler platter" approach to level design. Each screen was a self-contained example of how Joes could be used in more interesting and creative ways than usual. At the time, I wasn't planning on adding more stages or combining gimmicks, so I tended to ramp up the challenge complexity pretty quickly—four or five screens was all I thought you were going to get with these gimmicks.

To maintain the element of player choice, I employed split paths—a hub room would introduce two new gimmicks in a safe environment, and then the player could pick whichever gimmick they preferred. The options I offered were never arbitrary; by the end of the game, I wanted players to have survived challenges based around forced movement (magnet vs quicksand), ubiquitous gimmicks people take for granted (ladder vs water), gimmicks that everyone hates (Guts lifts vs Quick lasers), destructible blocks (Dust blocks vs Chill blocks), and...uh...cone-shaped things (needles vs springs). OK, so that last one was a stretch, but I was running out of gimmicks in the MaGMML devkit that (a) had potentially interesting interactions with Joes, and (b) weren't too glitchy to use reliably.

That's why the puzzle-oriented challenge choice (Sheep blocks vs Yoku blocks) eventually changed to Sheep blocks vs fake blocks. Yoku blocks ended up being too much of a liability to keep, but I didn't have any good alternatives in the devkit (and I wasn't about to program another gimmick, given how much effort the Sheep blocks and Chill blocks were). Desperate, I turned to Mega Man 5 for inspiration: by simply adding a tile layer in front of the player, I could recreate the pass-through blocks seen briefly in Napalm Man's stage (and in one of the fortress stages). It was a lazy solution, but it offered some interesting Joe interactions and fit the puzzle mandate well enough.
Picture
By the time the game had expanded into three stages, I had an unusual problem on my hands: my emphasis on split paths potentially put the player at a disadvantage. If first-time players made it through the second stage without dying, or at least without trying out any given alternate path after being sent back to a checkpoint, they'd enter the third stage having only seen 50% of the gimmicks about to be thrown at them. I wanted to start combining gimmicks, still giving players the option to choose between one pair of gimmicks over another pair, but I had to ensure that players had a proper warmup no matter how much or how little they saw in the previous stage.

I wrote a list of all the gimmicks in the game, and then I started mentally smashing them together. Most importantly, each choice of paths needed to offer players at least one gimmick they had definitely seen before. For example, a choice between "magnets + needles" or "Chill blocks + water" was out of the question, because it was entirely possible for players to have selected all the paths in Stage 2 that allowed them to avoid those gimmicks. My problem wasn't so much that these gimmicks hadn't been selected for their ability to work well together; it was that this restriction ruled out many of the combinations I actually wanted to use. Believe me, "Chill blocks + fake blocks" was not my first choice.
Picture
Even with at least one path featuring a familiar gimmick, I wanted to give players enough of a warmup that they could take a chance on a path that was totally new. This is how "three screens of one gimmick, three screens of the other, then three with both combined" became the formula for Stage 3. Any shorter, and the learning curve might be too accelerated; any longer, and the stage's screen count would fall too far outside normal parameters for a Mega Man game (usually 20-30 screens).

Of course, when I decided to add a fourth stage combining every gimmick with every other gimmick, all that careful planning went out the window. I still tried to give the player a choice between thematically similar options, but otherwise the design mentality was that (a) players should be pretty comfortable with most of the gimmicks by now, and (b) the abnormally high screen count would necessitate thinking strategically and using everything at one's disposal to survive—things I had tried to encourage from the very beginning.

It was exhausting to design a stage that was effectively 12 half-levels with connecting hubs. On the plus side, I was able to showcase a huge amount of variety in how Joes could be used, which was the whole point of this exercise. On the minus side, it's pretty clear that I was running out of ideas for a few of the combinations ("ladders + fake blocks" might as well just be "fake blocks"), and the nature of the stage made it incredibly hard to keep a steady difficulty curve. I can't tell you how many times I overhauled the Guts path so that it wasn't outrageously more difficult than the other paths at that juncture.
Picture
Level design is so much more than making interesting challenges. There's an art to crafting level architecture that's visually appealing as well as functional. Challenges don't exist in a vacuum; it's important to consider the context of what comes before and after. Assets don't always function as well as you want them to, and sometimes the only solution is to work around them rather than fix them. And perhaps most relevant for me, planning ahead—and sticking to the plan—is essential.
0 Comments

OH JOES! Developer Diary #2: Programming

4/10/2018

2 Comments

 
Picture
Story navigation: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8

As I've said before, I am not a programmer. Before OH JOES!, most of my exposure to programming was in elementary school, where I used QBasic and an ancient software called Story Tree to craft Choose Your Own Adventure–style text adventures. What business did I have designing an action-platformer with moving platforms, complicated collision detection, and randomized text dependent on global variables, to name but a few components? In my defense, when I started the project, all I thought I'd need to do was add one or two new objects and reconfigure a couple of menus. After all, OH JOES! was supposed to be little more than a bonus level for a game that had already been released.

After designing my levels for Mega Man Endless and Make a Good Mega Man Level Contest (MaGMML), I knew my way around the GameMaker program interface. The problem was deciphering what all the code meant. I had no desire to start from the ground up, following the tutorials to design a Breakout clone and become an Actually Competent Programmer; I intended to locate objects in the MaGMML devkit with specific behaviors, isolate the code that controlled those behaviors, and then adapt the code to create the enemies and special weapons I wanted to add. I was a code scavenger, not a programmer.

OH JOES! would have ended up much differently if I'd had any real programming ability at the beginning. The very first enemy I tried to add was Rider Joe, who would have patrolled the surface of the water areas I planned to design. I thought it would be a welcome change of pace to have a mobile, unshielded enemy to break up the monotony of Sniper Joes everywhere. I lifted some code from Mousubeil, a mouse enemy that moves back and forth and turns around when it hits a wall or ledge. When I ran a test to see if the code worked, Rider Joe piloted his Marine Bike in reverse, through a wall, and out of my game forever.

Picture
My next attempt went much better; creating the Machine Gun Joe from Mega Man 9 was mostly a matter of making the Sniper Joe from the original Mega Man fire more shots and jump on a schedule. Granted, it took a few evenings to get a firm handle on things like alarms, image_xscale (bullets came out of his blaster facing the wrong direction), the difference between image_index and sprite_index (when the appointed time came for him to jump, he turned into a frog), and the importance of gravity (the first time he jumped without a ceiling overhead, he peacefully ascended to the sky and never returned). I also spent some time playing and reviewing gameplay footage of Mega Man 9 to ensure I got his timing and behavior as accurate as possible. I was incredibly proud of the result, and it was the confidence boost I needed to press on with the project.

I opted not to include the Returning Machine Gun Joe from Mega Man 10; his differences from the regular Machine Gun Joe weren't enough to justify the extra programming effort for the short game I had in mind, plus I was intimidated by the prospect of making his shield breakable for full authenticity. I did want to include more Joes than were in the MaGMML devkit, however, and fellow fangame developer Blyka volunteered the Crystal Joe code he developed for SuperDanny 2. Altogether, I now had seven varieties of Joe to use in my glorified MaGMML level—technically eight, if you count Cannon Joe, but he no longer fit with my design plan. Without Rider Joe, it made less sense to make a game about Joes in general; my main purpose was to showcase how the most obnoxious and overused Joes (ie, the shielded ones) could be used in creative new ways.

For the record, I regret not trying harder to get Rider Joe to work. I think I would have produced a better game while still getting my point across if it were just about Joes in general.

With the enemies finalized, it was time to get the weapon selection sorted. At the start of the project, I worked up a list of weapons that I thought would be (a) easy to program, and (b) specifically useful for dispatching Joes. The shield-piercing Laser Trident was at the top of the list, but I also had the rapid-fire Needle Cannon on there, along with Hyper Bomb and a few different barrier weapons. However, I also wanted to avoid weapons that had been used in MaGMML and Endless, which helped me narrow down what to include when I decided on giving the player only two special weapons. Proto Coil was always going to fill the utility slot; Rush Coil was already in the devkit, and changing the graphics required minimal effort. Call it laziness, if you want; I call it efficiency.

Laser Trident proved to be a bit of a challenge—the weapon accelerates as it moves, and I couldn't find anything in the devkit with acceleration code I could copy. Around the same time, I started manually adding the touch-'em-and-they-disappear Sheep Man blocks from Mega Man 10, which I thought would add a nice puzzle element without requiring too much programming skill. After all, they're just stationary blocks; how much trouble could they possibly cause?

Let me tell you: stationary blocks are devious troublemakers like you wouldn't believe. I could get them to disappear just fine, but making them reappear after leaving the screen and returning—that was some arcane wizardry that demanded outside help. Issues with Sheep Man blocks persisted up until the very last round of playtesting, and included everything from constantly flashing to leaving invisible spikes behind after disappearing.

This is where I started to pester other programmers from the Mega Man fan community. I was highly selective in my search for assistance: Do you know more than me about programming? Can you spare a minute? This rigorous interview process secured about a half-dozen programmers who each single-handedly rescued the project from utter disaster at one point or another. Blyka, SnoruntPyro, and Entity1037 all made key contributions toward the start of the project, but perhaps the biggest hero of early development was Renhoek, who tirelessly volunteered as my go-to programming consultant during those formative months. In hindsight, though, it might've been better for my programming friends to spend their time creating new objects from scratch instead of figuring out how to patch and polish my scavenged, often nonsensical code.

Here's another example of how programming limitations informed the level design: due to issues that were never fully resolved, Sheep Man blocks don't function properly in scrolling sections. You'll notice that every Sheep Man block challenge in OH JOES!, without exception, takes place on a single, self-contained screen. That's the entire reason why the Stage 4 route with this gimmick is predominantly vertical—although a couple Mega Man games feature vertical scrolling, it's not the norm, so it's less conspicuous to string together 12 non-scrolling screens in a vertical fashion. With any luck, you didn't even notice.

Picture
Picture
In fact, the entire premise of the game stems from a programming limitation. I knew I wanted a game about Joes, and Proto Man was already included as a playable character in MaGMML, so I thought it would be both different and poetic to have Mega Man's shield-toting brother take on a fortress of shielded enemies. Except...I had no idea how to program Proto Man's shot-reflecting shield, and it seemed like a hassle for the tiny scope of the project. At the same time, I wasn't about to use Proto Man's usual character sprites if his shield was merely decorative. The solution, of course, was to separate him from his shield somehow. Regular Joe steals Proto Man's shield because I couldn't figure out how to make it reflect shots.

Ironically, following the premise to its logical conclusion meant eventually fighting a Joe equipped with Proto Man's shot-reflecting shield. This is part of why it took so long to figure out a substitute final boss after the helicarrier idea fell through—I knew what the answer was, but I didn't want to deal with it. Naturally, once I had the code, I didn't let it go to waste. If Regular Joe could use the Proto Shield, so could Proto Man once he got it back. I even have one more idea in mind for the reflection mechanic, but there are still more pressing things to program, even now that the game has been released.

Picture
One thing I failed to realize was just how rough the foundation for my project was. Fangames in general are not known for their fidelity to the source material in terms of programming accuracy, and even the official games vary in subtle ways—the speed of screen transitions and the floatiness of Mega Man's jumping, for example, vary from game to game. I've played a lot of Mega Man, both official and unofficial, so I've learned to filter out these little differences unless they clash too much with my usual gameplay style to adapt to them. By using Make a Good Mega Man Level Contest (or MaGMML, for short) as the basis for my game engine, I was inheriting a host of glitches and inaccuracies that—at the time—were barely apparent unless I tried to use Rush Jet. The longer I worked on OH JOES!, the more apparent it became that the engine needed an overhaul.

For starters, the Joes in the devkit were largely inaccurate to their official counterparts. Hitboxes were off; animations were incomplete; attack patterns were varying degrees of completely off the mark. I was willing to allow for some discrepancies, given the aforementioned variations from game to game, but I at least wanted the regular Sniper Joe to fire the right style of projectile. I started cross-referencing the official games to make sure my Joes sufficiently resembled the ones that drove me to make this game in the first place.

Working on the Sniper Joe from the original Mega Man was an educational experience, as it was probably the first time I needed to do any real programming. This particular enemy is renowned for being obnoxiously unpredictable, but after careful observation, I discovered a sort of elegance in its randomization. The number of shots he fires depends on his relative position to the player—positioned above, he'll only fire one shot; anywhere else, it's 1-4 shots. He jumps at random, but never more than twice in a row. The time he hides behind his shield varies, but the timer resets every time you hit his shield—in other words, he won't start firing until you stop. I did actual research, not just code scavenging, to figure out how to emulate this behavior. While the Sniper Joe in OH JOES! is not wholly accurate—I made a few deliberate changes that hopefully preserve the general behavior while toning down the annoyance factor somewhat—I was proud of my accomplishment.

The other Joes received some tweaking, but they were eventually replaced with the more accurate ones Blyka developed for his SuperDanny games. Admittedly, I should've thought to ask for them sooner, as a large portion of the challenges at that point had already been designed around the old MaGMML enemy behavior. Most notably, Sniper Armor used to be less selective about when to fire, and Skeleton Joe previously had a very different throwing arc. I tried to redesign any challenges that really didn't work with the updated behaviors, but if a few areas still don't feel quite right, that might be why.

I want to clear up a widespread misconception about Blyka's Mega Man engine, which MaGMML (and, in turn, OH JOES!) is based on. People treat Blyka's Engine as the punchline to any joke about bad programming, the "Thanks, Obama" of the Mega Man fangame scene—and I'm tired of it. MaGMML is notorious for being buggy, and multiple players managed to break OH JOES! within 10 minutes of its release; none of this is the fault of Blyka or his engine.

I've worked with Blyka on two projects and have had long discussions with him about his other game development endeavors—this is a guy who has a keen eye for detail, cares a great deal about authenticity, and puts a high priority on game stability. If MaGMML is buggy, it's because everything created from scratch wasn't playtested thoroughly enough. If OH JOES! is buggy, it's because I taught myself how to program as I went, declaring the game to be "good enough" when I finally burned out on trying to get things as perfect as I wanted them to be. If you're going to blame Blyka's Engine for anything, blame it for not including an example of how to make a moving platform that actually works correctly.

Indeed, trying to recreate the jet sled from Mega Man 2 was a terrible idea. Item-2, as the utility is known, was supposed to be easy—after being summoned, it accelerates to its top speed (which I now knew how to do because of Laser Trident) and travels in a straight line until it hits a wall. First, I couldn't get it to be solid on top but pass-through on the bottom. Then I couldn't get the hero to stay standing on it while it moved. Then I couldn't stop the player from getting lodged in walls when it came to a halt. Almost every programmer involved in the project contributed some code to improve Item-2, to the point where no one (least of all me) really understands how it works anymore. Despite it seemingly working fine upon release, I'm still receiving reports of players taking up permanent residence in a ceiling somewhere.

Picture
These are the kinds of issues you run into when you've learned just enough about programming to think you know anything. As my confidence grew, so too did the list of features—things like multiple difficulties, a second playable character, a third playable character, and an option to save and quit in the middle of the game. Fortunately, these fared much better than Item-2 did. As long as movement wasn't involved, I was surprisingly capable of implementing anything I wanted. I may have started out by tinkering with someone else's project, but by the end, I was the lead programmer of my own fangame. That's amazing to me. Especially because I am not a programmer.

I will emphasize that this game wouldn't have been possible without all the help I got. I can cite plenty of specific elements for which other programmers were responsible—Entity1037 rewrote the enemy collision code; WreckingPrograms overhauled the way resizing the game window was handled; Renhoek sorted out the logistical difficulties with Stage 4 being one stage and multiple stages at once; SnoruntPyro got the victory animation to animate when the game itself refused to allow it; Blyka resolved a baffling issue where players would randomly fall through the tops of ladders; and so on. One benefit of working with so many creative and talented programmers is that some of that ability rubs off, so I've learned a lot from these people about how to write decent code, plan for future expansion, and troubleshoot a game.

I may not be an Actually Competent Programmer—I'm more like a Not Entirely Incompetent Code Manipulator—but I definitely feel like I earned my programming credit on this game. At best, programming was a rewarding experience where I claimed honest-to-goodness ownership of the game while pushing my problem-solving skills to their limit. At worst, it was a waste of entire evenings and an infuriating exercise in banging my head against the wall. Unquestionably, it was my least favorite hat of all the ones I wore for this project. But I'm glad I tried it on.
2 Comments

OH JOES! Developer Diary #1: Timeline of a Dream

4/8/2018

11 Comments

 
Story navigation: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8

Ever since I was a little kid, it's been my dream to create a video game of my own—particularly a Mega Man game. In the last few years, I've had multiple opportunities to make that a partial reality; I've designed levels for multiple Mega Man fangames, and I even have my name in the credits of an official Mega Man game. Yesterday, my dream was realized in full with the release of OH JOES! (A Proto Man Adventure), a scrappy little platformer that took 2 years and 35 people to make. Working on this game has been a fun, infuriating, soul-crushing, uplifting, and highly educational journey, and I've got plenty of stories to share. Some of them may even be interesting.

If you've seen any of my YouTube videos or Mega Man fangame livestreams, you know that I harbor a special grudge against Joes—an iconic enemy type that has, in my estimation, long overstayed its welcome. Nothing sends the pace of a game to a grinding halt like a durable, shielded enemy blocking the boring hallway you're trying to walk through. There should be some obvious irony, then, in my decision to design a game centered entirely around Joes.
Joes in Mega Man 1, 2, and 3
It all started in the wake of Mega Man Endless and the first Make a Good Mega Man Level Contest (MaGMML, for short), two fangames featuring levels with overly familiar configurations of overly familiar varieties of Joes. At the time, I was riding high on the exhilaration of designing publicly playable Mega Man levels for the first time in my life, and I was eager to create more. On May 17, 2016, I sent this message to Blyka and SnoruntPyro, the respective leads on Endless and MaGMML:
Following the conversations we've been having on the Endless thread and after playing through some of the MaGMML levels, I got a crazy idea for a short, tongue-in-cheek fangame that's basically a glorified MaGMML level, where the enemies are exclusively Sniper Joes and their cousins, with the intent of showcasing that there are SO many more ways to use these enemies than we usually see. Naturally, Proto Man will be the hero, because all those other dudes with shields are just posers that need to be eliminated.

First, I wanted to ask your permission to use elements from the MaGMML devkit / Blyka's Engine demo (plus those tantalizing physics upgrades you're talking about for Endless, if/when available to the public) to make the game. Most of what I want to use has already been programmed, so no sense in reinventing the Wheel Cutter. I of course would give full credit, and I'd run the attribution by you before releasing the game, in case you wanted to make any changes to the wording.

Second, I'd like to ask whether either of you would have any interest in contributing to the project. I admit I'm in over my head here and could definitely use the programming help. Coding doesn't come naturally to me, and though I'm sure I could bring myself to a passable level of competency with enough time and effort, and I'd rather collaborate with people who know what they're doing and can do it WELL. I figured I'd ask the two of you before trying to recruit random strangers, because I know you do good work and seem pretty efficient at it.

Here's what I'm hoping to include—let me know if this is overambitious:
- An intro and ending cutscene
- A few more types of Joes that aren't in the devkit*
- An oversized Apache Joe helicarrier boss fight, which drops a small assortment of Joes when defeated
- 4-8 special weapons TBD, plus one or two non-Rush support utilities (something like Super Arrow, probably), all of which can be collected as items during the course of the stage
- An Energy Balancer, also collected as an item (or more amusingly, given to Proto Man by Mega Man in a short cutscene, the reverse of MM6)
- Maybe a fortress map, even if the game ends up just being one long stage
- Maybe a miniboss; I've got a couple ideas
- Maybe a functional Proto Shield, either as a built-in function of the hero (like MM9/10) or as a separate utility (like MM7)
- Maybe a couple more obstacle types that aren't in the devkit, but I can't think of any I'm really itching to include

*Specifically, Crystal Joe, Apache Joe (which I assume will be obnoxious to program), Rider Joe (which I'm trying to adapt to move back and forth on the surface of water, but am having trouble with), and Returning Machine Gun Joe (with or without the option to knock off his shield), plus maybe one or two of the more obscure ones from the spinoff games if they're easy enough to program. I actually managed to implement an authentic Machine Gun Joe (minus the jumping) based on the Returning Sniper Joe template, so I'm not totally hopeless.

I'm going to keep working at teaching myself Game Maker, but I would welcome any kind of assistance or advice you could offer. I really just want this to be a short little side project with a few custom elements, and not some huge deal. I can handle the writing, art, sound, and level design; it's just the programming that intimidates me. If the list above seems like more than a week or two of work for somebody who knows what they're doing, then I DEFINITELY need to rethink this.
They tell you to start small when designing your first game. I had envisioned a short starting area introducing you to the different types of Joes, then a series of gimmick-driven challenges using Joes in unconventional ways, with an occasional branching path where you would choose one special weapon to add to your arsenal before proceeding. I recognized that programming anything from scratch would be a challenge, but I planned to keep the weapons simple and adapt as much code as possible from existing enemies. I was determined not to get bogged down by special features. "Maze of Death," my level contribution to MaGMML1, came together in 20 days; in my mind, this was just "Maze of Death" with Joes and a handful of new elements. In retrospect, there's no way OH JOES! was ever going to be just a single level, and there's no way it was going to magically come together in just a month.

In fact, it took about 4 months just to lock down the programming. I wanted to ensure everything essential was programmed and stable before starting work on the level design—and because I am not a programmer, I wanted the most onerous part of the project out of the way as soon as possible. Along the way, I scaled back the weapon roster, gave the player the Energy Balancer and all weapons by default, and ditched the helicarrier boss idea—which is totally going to be the final boss of HERE WE JOE AGAIN! (A Completely Unnecessary Sequel to OH JOES!) if I ever have a large enough lapse in judgment to do this kind of thing again.

With most of the technical prep (supposedly) completed, the next big step was the level design. I like to map everything out with placeholder tiles, adding real graphics toward the end of the process when the design is more or less final. For me, this keeps the focus on the gameplay, and it minimizes the wasted time and room for graphical error associated with repeatedly redecorating a level while it's constantly changing.

By the beginning of October, OH JOES! looked like this (click to embiggen):
Old Joes
Ostensibly, this was the framework for the final product: a linear intro section, followed by four pairs of split paths. The interior square in the top right was meant to become the boss chamber (replacement boss for the helicarrier still TBD at this point). This would've kept the game to 30 screens from start to finish—not including the alternate paths, which would still clock in under 50 screens—which is completely reasonable for a Mega Man stage.

The colorful Sheep block path in the middle was still in progress; I programmed the gimmick from scratch and was having trouble getting it to function properly in the scrolling section up top. Most notably, there was a Yoku block path in this iteration. Although I was pleased with how deviously evil it was to use these disappearing/reappearing blocks as an unstable bridge, a temporary cage, and an underhanded lesson about making assumptions, the whole path ended up being more mean than fun. On top of that, I kept getting stuck inside the blocks as they appeared, instead of being shunted to the side as is customary. It wasn't long before I swapped out the gimmick for the one ultimately used in the game.

I don't remember the exact thought process that extended the length of this project from a few more weeks to a year and a half, but I was having fun with the level design and had no shortage of ideas for new challenges. By mid October, the game had grown enough that it made sense to split it into two stages—one to introduce the Joes, and one to introduce the gimmicks. By early November, I was working on a third stage that combined pairs of gimmicks from the second stage. Admittedly, some of the pairings were awkward—I ran out of good ideas for combining Chill blocks with fake blocks after the first screen—but that's what happens when you stray from the design plan. I had selected those gimmicks because they were already programmed (or straightforward enough to program), not because I was thinking about smashing them together later.

By December, a fourth stage combining all gimmicks was underway. I was happier with the "sampler platter" approach of the fourth stage than I was with the "maybe these will work together" approach of the third stage—I even briefly considered cutting the third stage altogether. Unfortunately, math was not on my side here: 12 substages (one for each gimmick) times 12 screens each (one for each other gimmick being combined, plus an intro screen) plus hub screens connecting all the substages equaled 150+ new screens to design. The entire game was originally only 50 screens. So much for OH JOES! being "basically a glorified MaGMML level."

It took me until the middle of January (now 2017) to design something for all those new screens, and by then, I had found yet another way to make more work for myself. I'd finally gotten around to programming a final boss—a mech that broke off into a helicopter when destroyed, which dropped the Joe who stole your shield (who, now defenseless, would just waddle around the room until destroyed). Any normal developer would've been satisfied with that kind of boss fight, but I had let the gimmicks become as much of a focus as the Joes.

At the end of the fourth stage was a teleporter with a display overhead that cycled through pictures of all the gimmicks in the game. When you jumped in, you were teleported to a boss chamber featuring whatever gimmick was pictured. I only designed a handful of boss chambers before I realized that this idea was just not going to work. Too much clutter—not to mention that the helicopter portion of the boss fight was obnoxious, broken, and not really in line with the rest of the game's challenges. The boss fight was promptly revamped to be the simplified one seen in the final game.
Picture
It was April before I had tested and finessed my level design enough to feel comfortable applying real graphics to the game. Unable to leave well enough alone, I had also added Break Man as a second playable character, despite my initial resistance to special features—and despite the fact that I hadn't been designing the game with his unique abilities in mind. Multiple difficulty settings weren't far behind, but these were much easier to implement. What I consider normal Mega Man difficulty is actually hard for most people, so I just took the existing game and called it Difficult mode. For Normal and Easy modes, I gave the Joes easier attack patterns, removed some Joes in particularly tricky locations, and added safety platforms for the latter mode. Boom—multiple difficulties.

This is where OH JOES! crossed the boundary from "longer than originally planned" to "exactly the kind of overcomplicated game I was trying to avoid." I started spriting a third playable character in June. I added the Proto Shield and all its projectile-deflecting complications as a postgame bonus. I started sneaking in more and more Easter eggs, many of them almost too obscure to be worth the effort. And that's to say nothing of all the coordination I was doing with the composers, artists, programmers, translators, and playtesters who had become involved in the project. For months, I had thought about OH JOES! as this little solo side project, but that was no longer remotely the case by the halfway point of 2017.

I can't even begin to explain where the next 3/4 of a year went. That's when playtesting kicked into high gear and bug-fixing became a top priority—a lot of time was devoted to waiting for playtester feedback, watching people's playthrough videos, pulling my hair out at the sight of outrageous glitches I didn't know how to fix, retooling one thing after another in response to feedback, banging my head against the keyboard because I couldn't figure out how to fix something, and waiting on responses from the people I solicited to fix my game. The last 48 hours leading up to the game's release were spent replaying the game on different difficulties as different characters, fixing last-minute issues, re-testing everything to make sure nothing else broke in the process, and getting everything in order for the big announcement.

Now begins the long process of incorporating feedback from the largest group of playtesters I'll ever have. OH JOES! may be released, but it's almost like the project is just getting started again.
11 Comments

New Year's Resolutions 2017

1/1/2017

5 Comments

 
The general consensus among my friends is that 2016 was one of the worst years in recent memory, marred by a seemingly endless string of celebrity deaths and characterized by a viciously divisive election that was more personal than political. For me, 2016 was an emotional rollercoaster that served as an unlikely getaway vehicle from 2015, AKA the worst year of my life.

The highs and lows of 2016 were so drastic and unevenly spaced that the whole year feels almost surreal in retrospect. There were incredible highs, including Star Trek: The Ultimate Voyage, seeing my name in the credits of not one but three new Mega Man games, and starting work on a Mega Man game of my own. I made one of the biggest decisions of my adult life, walking away from a stable (but undesirable) situation in order to take a risk on a new job and a new home in a different state (or, as I prefer to say, finally moving back to Earth after five years of exile on the moon). I confronted a few personal demons, not exorcising them completely but making invaluable progress. I celebrated a milestone anniversary with my wife, and we helped each other weather one physical or emotional storm after another. I had the weirdest Christmas of my life, filled with twists and turns that had me cycling through the entire range of human emotions for the better part of a week. I actually paid attention to world news for several months, attempting to keep myself informed about topics, such as the Presidential election, that were oppressively unavoidable and that demanded I have an opinion about them. I became an active part of the Mega Man fan community at Sprites INC, and I received their Spike Award for my sporadic gaming livestreams. I informally said farewell to GameCola after 8 years on staff. My mother and I went on a memorable road trip to attend the National Storytelling Festival in Jonesborough, TN. A brief trial of EnChroma glasses gave me a taste of what it's like to see color the way the rest of the world does. I (mostly) stopped picking tomatoes off my sandwiches. It's been quite a year.

Importantly, I made an effort to follow through on my 2016 resolutions (or, as I prefer to think of them, goals). Here's how I did:

Goal #1: Start and finish a YouTube playthrough of Mega Man 8.
Hah! I had every intention of this being the one goal I would definitely achieve, but I ended up spending almost the entire year working on designing Mega Man levels instead. Having spent too many years working on multiple projects and finishing none of them in a reasonable amount of time, I made a conscious decision not to split my focus between projects, and so MM8 remains on hold (but partially recorded) until people stop giving me excuses to make more Mega Man levels.

Goal #2: Make serious headway on the video game my wife and I are planning.
See above. I've at least made serious headway on OH JOES! (A Proto Man Adventure), which hadn't been conceived when I came up with these goals, so I'd call that at least a partial success.

Goal #3: Run at least one D&D campaign, then learn a new tabletop RPG system and run another campaign.
Failure! I played in a number of Pathfinder sessions, but I didn't run any games of my own or learn any new systems. I did at least jot down some ideas for a D&D one-shot that I've been wanting to try for several years. Once again, my creative energies were directed almost entirely toward making Mega Man levels.

Goal #4: Read 12 books.
Failure! Probably. I lost track toward the end. However, I got pretty darn close. My conservative Christian friend sent me a care package of books early in the year, relevant to some conversations we'd had, and they constituted a good portion of my reading list. I have a terrible habit of letting his gifts gather dust for several years before putting them to use, so it was good to delve into these books right away. I may write a separate post discussing everything I read in some kind of detail, but for now, here's what I read in 2016 in the order I read them:
1. Every Good Endeavor by Timothy Keller
2. Red Mars by Kim Stanley Robinson
3. The Ultimates, Vol. 2 by whoever wrote, drew, and inked it; the book's in the other room and I'm too lazy right now
4. And the Good News Is... by Dana Perino
5. William Shakespeare's Star Wars: Verily, a New Hope by Ian Doerscher
6. Firsthand: Ditching Secondhand Religion for a Faith of Your Own by Ryan and Josh Shook
7. Memories of the Future, Volume 1 by Wil Wheaton
8. Spock, Messiah! by Theodore R. Cogswell and Charles A. Spano, Jr.
9. Some Ultimate Spider-Man graphic novel, I think; once again, too lazy to check
10. Star Trek: The Next Generation: Indistinguishable From Magic by David A. McIntee
11. Things That Matter by Charles Krauthammer (about 3/4 read by the end of 2016)

Goal #5: Get my Backloggery progress index into positive double digits.
Success! Even with so much of my leisure time spent reading instead of gaming, I managed to achieve not only double but triple digits—a progress index of +200, to be exact. That means I played or removed from my collection way more games than I added. Granted, there was that Backloggery revolution halfway through the year, so my real progress index is probably more like +2 than +200, but who's counting? Wait, I am.

Goal #6: Write like I used to.
Partial success! My criteria for this one were to write regularly, write positively, and write for myself. I've obviously failed to meet the first criterion, but the second and third are well in hand. Articles like this one and posts like this one capture my passion for blogging and critical analysis, and even if they're not all sunshine and puppycats, they don't come across as the "general bitterness commentary" that characterized my writing for too long a period. I'm writing the way I want to write—the way I used to write—and it feels wonderful.


Now, then. Let's see if I can't come up with some goals I might have a better shot at achieving in 2017:

Goal #1: Spend more weekends at home.
For the last decade or so, I have done an out-of-state road trip at least once every month. Often at least twice a month. Usually at least three times a month. With so many friends and family members living close enough to visit regularly, but far enough away that a day trip is out of the question, I find myself giving up as many as 10 hours every weekend just to get where I'm going and back. Departing on a Friday evening or first thing Saturday morning, and not coming back until Sunday afternoon or evening, leaves me with insufficient time to work on my creative projects and keep on top of the housework and kick around and relax. It also leaves me with insufficient funds to live as freely as I'd like to—road trips are expensive. For the sake of my sanity and my wallet, I intend to set aside at least one weekend a month for going nowhere.

Goal #2: Finish OH JOES! (A Proto Man Adventure).
Everything is on track for the game to be released in early 2017, so I really hope there aren't any awful surprises here.

Goal #3: Finish a YouTube playthrough of Mega Man 8.
As long as I'm not designing Mega Man levels the entire year, this should be doable.

Goal #4: Read 12 books.
I was very close to accomplishing this in 2016, and I only fell short because of how Christmas vacation turned out. I'd like this goal to become a staple, because it's good to be reading again.

Goal #5: Maintain a positive Backloggery progress index.
Likewise, I'd like to make this goal a staple. My video game wishlist has shrunk dramatically in the last year, and I'm quicker than ever to identify when it's time to stop playing the game I'm working on.

Goal #6: Get involved in my community.
It has been eating as me for several years that I'm not involved in church and volunteer activities like I used to be. I want to join a choir or a small group or something, and I want to find ways to live where I'm living. Hopefully, spending more weekends at home will allow me the time to do so.


I've got a good feeling about these goals. I'll let you know in a year how things go.
5 Comments

Time Capsule

9/9/2016

2 Comments

 
I've been lurking around the World Wide Web since the days of dial-up, but it wasn't until my first post with Exfanding Your Horizons in 2008 that I established any kind of online presence. Before then, you'd never find anything of mine by accident—if you had my e-mail address, it was because I knew you in person and gave it to you; if you were on my Angelfire website (about which I remember nothing, other than that it was as much an eyesore as anything else from the Web 1.0 era), it was because I sent you the link. I had a brief flirtation with AOL chat rooms in the '90s, but such a presence is ephemeral at best.

The only public trace of my online existence was a website I created for a high school history project, which was ostensibly about the American Civil War, but which was secretly a playground where the popup text for hovering over Roger B. Taney's portrait was "Would you buy cookies from this man?" and where clicking on the conspicuous blank space at the bottom of the last page would make a picture of Boba Fett appear. It looks like the site has finally been taken down, but I was able to Google and Yahoo! my way back to it for a good many years after I graduated. Other than a stray photo or guestbook signature on someone else's site, you'd never know I was around before 2008.

Or so I thought.

On a whim, I did a web search for "Flashman85," my default handle for general geekery online. Don't ask me what possessed me to do this—I'm not even sure myself. The first several results were no surprise—my profiles on Twitch, YouTube, The Backloggery, Sprites INC, and a few other sites where I felt the urge to comment that one time. But then there was a review of Mega Man for the NES written by a Flashman85. Funny, I thought to myself. I've only ever reviewed that game on GameCola, under my real name. Let's see who this other guy is.

"To paraphrase a friend of mine," the review began, "Capcom's idea for Megaman was 'Mario with a gun.' Indeed, few would suspect how popular a franchise the Blue Bomber would become. The original game was similar to other NES games of the time, but it also had laudable properties that would help it to endure into the next century."

That's an odd coincidence, I thought. I also had a friend who described Mega Man as "Mario with a gun." And I'm definitely the only person on the Internet who uses the words "indeed" and "laudable." Who is this guy?

As it turned out, that guy was me.

Now, I've written a lot during my time with a keyboard in front of me. I may not be able to readily call to mind every post and comment I've virtually penned, but show me something I've written and I'll at least be able to recall a few details about it. Staring at this review—dated 2002, well before I really existed on the Internet—I had no recollection whatsoever of it. I didn't even recognize the website it was on. But there was no mistaking that this was my writing.

The shockingly low word count is what initially threw me the most. The whole review weighs in at a downright economical 231 words, which is barely enough for me to develop an introduction these days. However, it would be totally like me to spend almost 50% of the review complaining about Ice Man's stage. "'If you can beat Ice Man's stage, you can beat any Megaman game' is my motto." A little hint of Dave Barry there. I used to read a lot of Dave Barry. There were signs everywhere that this was me, notwithstanding Past Me's insistence on writing "Mega Man" as one word. Silly Past Me.

I looked around the site for other reviews that I had apparently written, and I found that I had covered all six of the NES Mega Man games. MM3 was no surprise: "My only real qualm is that many of the weapons go unused for most of the game." If I hadn't already caught on by then, my gushing praise for MM4 would have been a complete giveaway that this was me of 14 years ago writing all these reviews: "There is almost nothing for me to complain about in this fantastic game. Buy it. Now."

I've reread enough of my old material to know how far I've come as a writer since 2008, but it's surreal to jump back to 2002. There's little elegance to my old writing, but there's character. You can tell exactly how much I care about each aspect of each game—there's no veneer of objectivity and no time wasted describing anything that doesn't significantly impact my enjoyment of the game, no matter how important it might be for the reader to know. Most of the opinions expressed have remained unchanged in the last 14 years, but the way I express those opinions has evolved dramatically.

I still think MM1 is a classic, I still think people are too quick to label MM2 as easy, and I'm still a bit lukewarm about MM6 in the context of the rest of the series. I had forgotten just how wild about MM5 I used to be; my enthusiasm has cooled somewhat, but it's still one of my favorites. I'm less fanatical about MM4 as well; "Pure Excellence" is not a review title I would ever use anymore, even if the game remains my favorite. It's almost unsettling to hear myself describe MM3 as "one of the best Mega Man games ever." Perhaps you've seen my videos?

It's fascinating and almost a little bittersweet to read my own opinions from an era when I could like or dislike something without putting too much thought into it. Clearly, I was already attuned to certain aspects of game design, but I was capable of both zealotry and indifference without having to provide exhaustive support for my feelings. I've become so analytical that I need to understand why I'm having fun, and I clash so much with the mainstream nowadays that I need to be ready to defend my unpopular opinions at the drop of a hat. I'm too much a champion of separating fact from opinion to be able to share my feelings so unequivocally anymore. I envy Past Me for his ability to play something, enjoy it, write a quick blurb about it, and get back to having fun. He can keep his expository writing style (all the criticism I got from teachers about my essays is starting to make sense), but I wouldn't mind if some of that carefree enthusiasm were to come back.

If you'd like to open this time capsule for yourself, I present to you my old reviews of MM1, MM2, MM3, MM4, MM5, and MM6. Watch for the part where I continue complaining about Ice Man in a game where he doesn't even appear. That's so me.
2 Comments
<<Previous
Forward>>

    RSS Feed

    See what my wife's up to!
    Things I Put In My Husband's Lunch

    Archives

    April 2022
    November 2021
    May 2021
    March 2021
    January 2021
    August 2020
    July 2020
    September 2019
    July 2019
    June 2019
    February 2019
    January 2019
    December 2018
    November 2018
    September 2018
    July 2018
    June 2018
    May 2018
    April 2018
    March 2018
    December 2017
    October 2017
    January 2017
    November 2016
    September 2016
    August 2016
    July 2016
    June 2016
    May 2016
    April 2016
    March 2016
    February 2016
    January 2016
    December 2015
    November 2015
    October 2015
    September 2015
    August 2015
    July 2015
    June 2015
    May 2015
    April 2015
    March 2015
    February 2015
    January 2015
    December 2014
    November 2014
    October 2014
    September 2014
    August 2014
    July 2014
    June 2014
    May 2014
    April 2014
    March 2014
    February 2014
    January 2014
    December 2013
    November 2013
    October 2013
    September 2013
    August 2013
    July 2013
    June 2013
    May 2013
    April 2013
    March 2013
    February 2013
    January 2013

    Categories

    All
    Anime
    Art
    Books
    Collecting And Collectables
    Conventions And Events
    Exfanding Your Horizons
    Fantasy
    Food
    Gamecola
    Holidays
    Internet
    MaGMML
    Marriage
    Mega Man
    Movies
    Music
    News
    OH JOES!
    Opinion
    Philosophy
    Politics
    Religion
    Retrospective
    Sci Fi
    Social Media
    Star Trek
    Star Wars
    Stories
    Television
    Video Games
    Videos
    Writing

    Creative Commons License
    This work by Nathaniel Hoover is licensed under a Creative Commons Attribution-NonCommercial 3.0 Unported License.
Powered by Create your own unique website with customizable templates.