Monday, December 26, 2016

The Morphine Western Revenge v1.1 (and more)

Week One Patch Hype!

Thank you to everyone who's played The Morphine Western Revenge so far! It has been a pleasure to hear what you have to say about it and watch you play it. Getting feedback of any sort not only helps me improve the game, but it's also one of the most validating things I can experience as a designer. Please continue to let me know what you think!

I've made some small changes and fixed some bugs in response to player feedback. Here's the complete patch notes:

-In "accessible mode," ammo acquired from dropped guns is doubled.
-In "accessible mode," enemy accuracy has been reduced.
-The game now indicates when dialogue and intro credits can be skipped.
Bug fixes:
-In level 1, if the player moves using the arrow keys, the tutorial prompt for movement will now disappear.
-Enemies now properly collide with the player character, preventing scenarios where characters clip through each other.
-When you pick up a weapon for the first time, it will always be fully loaded, regardless of the level from which you started the game.
-Enemies at the very bottom of the screen are now affected by bullets!

You can play the new version at Gamejolt and

Also, I've been pretty awful at self-promotion so far. While I will put in greater effort in the coming weeks to get the game out there, any help you can provide by sharing, reblogging, or retweeting the game are deeply appreciated. And keep making those gameplay videos! They make my day.

Speaking of gameplay videos...


As I've written, one of my greater fears about this game is that it would produce homogeneous experiences. It has been an absolute pleasure to have been proven wrong. As I've watched live playtest sessions, as well as the gameplay vids some of you are throwing online, I've been surprised by how differently each scenario plays out from how I've envisioned it.

Here's some footage of the game's first two levels from "Just Gameplay, No Commentary," in which the player attempts to progress without using morphine, and largely without using guns. This is a far cry from how the game is meant to be played, but it is a mostly successful (and entertaining!) run. (Let it be noted that the bug at the end in which enemies at the bottom of the screen are undamaged by bullets has just recently been fixed.)

And here's some footage from my very good friend Turtles of the second level boss encounter, which goes horribly awry on many levels. (Again, let it be noted that the bug that the player exploits to kill the first big guy has just recently been fixed, very special thanks to Turtles for documenting it for me!)

Other News!

A small joke game I made for my sister for Christmas last year, "Darcy's Yurt Adventure," is now publicly available on the Games page. I had kept it unlisted due to the highly personal and unpolished nature of the game, but it is a game that I am increasingly fond of, and we really don't have enough autobiographical games out there, do we? Play it and be befuddled by inside family jokes at your own risk.

Speaking of unpolished games, I am working on more formally organizing a separate page for my complete collection of old, shitty, and incomplete works, including games that date back from my middle school days. I do want to document and preserve these games for posterity's sake, but I definitely don't want them awkwardly hanging out at the bottom of the page. Look out for that soon.

Finally, I am making a short game for a Secret Santa jam. The game is about stupid things that walk into each other, and it will be out during the first week of January. Here's some footage from the first day of development:

Saturday, December 17, 2016

The Morphine Western Revenge v1.0

The Morphine Western Revenge is done. You can play it on Gamejolt or Windows users should download the desktop build of the game for the best experience. For everyone else, you can play the game in your web browser. You will need a mouse to play it.

The game's soundtrack is available here, and the game's source material, The Hyperbolic Needle by Brian Cristi, can be read for free here.

Please report bugs and provide additional feedback! I want to make sure my games are enjoyable to as many people as possible, and to do that, I need your help! As it stands, I may need to make the game's easier difficulty settings a bit more forgiving - how I do that depends on audience response.

Thank you for playing! I hope you enjoy it. Tell your friends about it! Tell your parents about it! Tell your electors about it!

Now that all of those formalities are out of the way, here's how I feel about all of this.


Gosh, Feelings

First of all, I am damn proud of this project. It's the most substantial game I've released, ever. Typical playthroughs will last anywhere between thirty minutes and two hours. The game represents my best work in terms of mechanics, design, engineering, style, and musical composition. My adaption of the original story is probably the game's weakest point, but the gunplay is more than good enough to carry the experience.

However, if you've talked to me about games, or have been reading the blog for a while, then you know I have a complicated relationship with shooters. Shooter games are a foundational part of who I am as a player and maker of games. I grew up on the internet driving Scorpion tanks across the icy fields of Sidewinder and blasting away with my scattergun in the Gravel Pit. As a teenager, video games were shooter games. I played the occasional RPG, and as I got older, I started becoming interested in experimental and narratively-driven work, but I've been playing, thinking about, and designing shooters for longer than I've done anything else in games. It's my primary design inclination. More than half of the games I've finished over the past seven years are shooter games.

Making art-games, not-games, alt-games, walking-simulators, narratively-driven games, or whatever you want to call them is not hard to do, but making good ones in a short period of time is.When I originally volunteered to make The Morphine Western Revenge, I was expected to complete the game in a month. So, I chose to work in the genre I was most comfortable with - the shooter. Had I known it would have taken me 10 months to complete the project, I probably would not have made an action game.

I fundamentally believe that video games are capable of exploring the vast breadth of human experience beyond strife and competition, and that the traditional core genres - shooter, strategy, RPG - are not going to be the future of the medium. While Revenge is very much a traditional action games, perhaps even to a fault, it does, at least, tell the story of a marginalized person and how she copes with loss and oppression. The game is also stylish and weird. "Well, uh, that was very indie," one of my playtesters told me when he had finished. The game walks a fine line between being a conventional shooter, and being this weird piece of wonderfully trashy software, but it still leans closer to convention than I would like.

I'm not sure of what interest these thoughts are to the typical reader, but this game has more or less consumed me for most of the past year. It's caused me to constantly reflect on who I want to be as a creative person, what sort of work I want to create. In the current political climate, these questions become of greater relevance.

Overall, my pride about this project overcomes my ambivalence. No matter how complicated my feelings about the project are, this is undoubtedly my greatest achievement as a game designer.

Technical Lessons

While I've ported old games of mine into HTML5, this was the first major project where I've developed desktop and web versions of a game simultaneously (I previously did the same with a short game joke game I made for my sister, but that project was not technically demanding). The Windows version of the game is superior than the web version for countless reasons, so when it can time to test the game, I almost exclusively tested the desktop version. I did this because I was lazy.

Game Maker: Studio, the program I used to develop Revenge, bugs the hell out whenever you try to export a game into HTML5. As in, sometimes I would compile the game and it would look like this:

This is supposed to be a cave. Instead it is A MONSTER.

Squashing the unique bugs that expressed themselves in the game's web build was enough of a challenge. But the web version also experienced performance issues that I didn't discover until late in development. A level that ran smoothly on the desktop (with, say, 70 bad guys in it) just had too much stuff in it to run smoothly online (the level would now slow down if you had more than 40 bad guys in it).

Usually, when I encounter performance issues in games, my inclination is simply to put less stuff in it, rather than engineer things more intelligently. But since I already designed the game around having lots of stuff in it, I needed to actually confront the issue.

I'm not going to bore you with the details, but by the end of development, I managed to optimize the game in ways I thought were impossible. One raycasting script that drew a straight line between the player and the closest object in front of them (which can sometimes be expensive to do every frame with any precision!) became 32 times more efficient. The number of enemies a level could support at a time doubled. Dust and rain effects automatically downgraded in quality as framerate dropped. I was able to deliver my vision on a technical level with little sacrifice, and it feels good.

Design Lessons (why the game works)

What surprised me most as I watched folks playtest the game was the sheer number of valid and creative solutions they found to solve the problems I presented them with. In the canyon level, the player comes across a group of a dozen riflemen. "I can't outgun them," the player character says. "I'll have to be clever."

Most of my playtesters solved the problem as intended. Except for one. "Nah, I'm going to outgun them."

He died a half dozen times, and it took him twenty minutes, but god damn, did he keep his word.

I was worried that the game, overall, was going to be a homogeneous experience. Limited to human opponents, 19th century weaponry, and natural environments, creating a diverse variety of game elements was a challenge. All of the baddies in the game use variations of the exact same AI, all of the weapons are slow firing, and I couldn't use moving platforms, locked doors, or other interactive elements in the level design. In retrospect, these limitations allowed me to hyper-focus on creating very specific and deliberate differences between each enemy and weapon, not only to create chemistry among all of them, but also varied and emergent gameplay.

For example, there are essentially 4 classes of enemies: revolver guys, shotgun guys, rifle guys, and big guys. Revolver guys are the game's fodder - not too dangerous at close range, less dangerous at long range, and easy to kill. Shogun guys are highly dangerous at close range, but nearly harmless at long range. Rifle guys are fairly dangerous at all ranges. Shotgun, rifle guys, and revolver guys are all similarly fragile. Big guys, on the other hand, can absorb inhuman amounts of damage from the player.

With this palette of enemies to choose from, you can create a surprising variety of enemy encounters. Shotgun guys can be safely fought at a distance in the open without cover... unless there's a rifle guy sniping at you from the corner. You can pick off a group of enemies one at a time with your rifle... unless there's a big guy leading the charge, protecting the men behind him with his bulging muscles. So on and so forth.

Furthermore, the overall design of the game itself lends itself to emergent gameplay. If you're stealthy, you can avoid the gaze of enemies and take them out from behind, undetected. If you fail, you can then pop in and out of cover, taking them out one at a time. If you fail again, you can run and hide, heal yourself, and run back into the fray. Or, you can run and hide, have your enemies lose sight of you, and then try to use stealth again.

Essentially, no matter what choices the player makes, no matter what mistakes they make, they always have an alternate method of solving a problem available to them. Not only that, but the player is unable to immediately repeat their previous strategy, forcing them to adopt varied techniques. Here's a visualization of how the game works:

At the beginning of an encounter with bad guys, the player can choose to 1) sneak or stealthily dispatch them, 2) use brute force, or 3) run away from them. If any of these strategies fail, they cycle to the next strategy. Repeat until the encounter is won or avoided. This is why the game works. This, I suspect, is what makes it fun.
From an aesthetic design perspective, I wanted to make the game's world feel as tangible as possible, especially since the game's levels are otherwise as static and dead as they are. To do this, I tried to animate and add sound to every physical interaction in the game I could think of. No matter what the player is doing, the world is responding. Dust clouds form as the players boots rapidly thud against the ground. Shotgun shells fly out of your weapon and litter the ground. So on and so forth. I tried to make it so that something interesting is always happening on screen and in the player's ears, and to a large extent, I think I did well.

If I have any regrets about the design of the game, it's that it expects the player to learn too much too quickly. While I was very conscious of the game's tutorialization (40% of the game is tutorial levels, whether the player is aware of it or not), I guide the player through the tutorial a bit too quickly. I explain a mechanic once, have them execute it, and then move on to the next one. I probably could have spent a little more time having players learn each individual rule of the game.

That said, I think I did some good damn work this year. As excited as I've been to release this piece of software for it's own sake, I'm even more excited to move on and do something radically different - games that are more peaceful, more experimental, and that tell stories I can be proud of. And, on a similar note, Monsterpunk development will resume soon.

Thanks for playing, thanks for reading, happy holidays.

Thursday, November 17, 2016

Devlog Update: The Morphine Western Revenge (#5)

I've been adding quite a bit of polish to the game in the past month. As shown here, I've recently darkened the cave quite a bit, and, in response to playtester feedback, made weapons on the ground shine at regular intervals.

In a Nutshell

Recently, I made the mistake of re-reading my old devlogs, both for this project and others. I've noticed a recurring trend in my writing about my work - the very persistent failure to accurately forecast release dates for my projects. From here on out, I aspire to take a "it's-done-when-it's-done" approach to discussing release dates, no matter how self-assured I am of my progress.

When I last wrote on October 10th, I expected that the game would be completed within a month. I then self-imposed a deadline of November 3rd to complete playtesting for the game, and November 10th to release it. November 10th, as you may be aware, was seven days ago. Seven days and counting, depending on when you read this.

My attempt at setting a reasonable release date was not entirely in vain - playtesting was, in fact, completed by the 5th, and at that point, I imposed a moratorium on adding new features to the game. Any changes that haven't already been proposed and listed as a to-do item aren't going to happen.

The closest thing I've had to an official design document - The Morphine Western Revenge To-Do List, as it currently stands.
Were it not for a deadly cocktail of current national events and personal developments, the game would have been completed on time. I only need three or four free evenings to add the finishing touches. The completion of the game depends on when I am able to come across those evenings.

Since this definitely, absolutely, is going to be the game's final devlog, I wanted to take a little time to have some fun and showcase all of the weird bugs I've produced over the past nine months. It is common for players to experience the unexpected when playing games. Rarely do developers get to be genuinely surprised by their own work, but bugs are one of the ways in which it happens.

Who doesn't like a good blooper reel? I don't. But, in any case,

Regarding Bugs

Bug #1: Slow Rain

Problem: Rain isn't supposed to do that. It isn't supposed to do any of those things. Christ.

Explanation: I don't actually remember specifically what happened here. I think one of the variables* that controlled raindrop movement kept resetting itself each frame? In order to render each raindrop as a "blur," the game has to remember it's previous position in space. That way, each raindrop can be drawn as a line between it's current and previous coordinates. Obviously, in this case, the game is forgetting the previous coordinates of the raindrops. So, instead, it is drawing the lines between the current and original coordinates.

Something awful was also going on with rain acceleration - namely, it wasn't happening? Hell if I remember. You can see the rain working correctly in the following GIFs for reference.

*For you non-coders, you can think of a variable as a container that stores a number or text. For example, the height of a raindrop is numerically stored in a variable I named "height."

Bug #2: Gltichfence

Problem: Fences aren't supposed to do that either. God damn it.

Explanation: This is a fairly common and easily solvable bug for Game Maker projects. Most of the game's graphics are stored as sprites, and each sprite contains a series of individual images. To ease development, I usually like to store all images pertaining to a particular object (like the fence) in a single sprite. However, if you forget to program the object to behave otherwise, it will, by default, cycle through all of the images in its sprite as an animation. So, each piece of fence cycles through all possible fence configurations.

Bug #3: Pseudo-pausing

Problem: The top GIF is actually bug-free, as I will explain in a moment. In the bottom GIF, however, the ejected shotgun shells should not be animated when time freezes, nor should the enemies be moving, nor should they be rendering themselves underneath the rocks.

Explanation: Pausing is one of the few features of a game that affects nearly everything else in it. Everything that moves, is time dependent, or, well, does anything needs its own pause script. It is good practice to start implementing pause-capability from day one. Otherwise, you have to dig through and edit just about every piece of code in your game.

I waited until the end of development to add a pause function.

The only benefit of waiting to add a pause function that, as you work on it, you get to dick around with an incomplete time-control feature. At the very end of adding it, I was left with a player character who was able to freeze the entire world around her at will, which is damn pleasant!

At the time of capturing the first GIF, everything was working as it should. However, things were not operating correctly in the second - at that point, the player character should've been the only thing moving during the pausing. Most motion and graphics changes are handled in-code on a frame-by-frame basis. All you normally have to do is turn off that code when the game is paused, and it should freeze all action for its respective object.

However, sprite animations (as described under Bug #2) and AI movement are not updated on a frame-by-frame basis. Essentially, once an enemy starts moving along a set path, he continues moving along that path until explicitly told not to. A similar thing happens when an animation is triggered (in this case, the spinning of the shotgun shells). However, even though the enemy movement is still active, the code that correctly renders enemies in front of rocks is not. Hence, the enemies are rendered underneath the rock piles.

Bug #4: Shadow Depth

Problem: Everything around the edges of the cave - the wall "tops," rocks, and stalagmites - should be cast in shadow. Instead, only the floor and walls of the cave are shaded with darkness.

Explanation: In order to add to the cave's ambience, I attempted to apply a simple lighting effect to the level. Essentially, an image of a semi-transparent gradient - transitioning from total transparency to opaque darkness - is supposed to be applied right on top of everything else. The end result is that the edges of the screen appear to fade into darkness. This isn't physically realistic, but it does get the idea across: this is a dark cave. Cave is dark.

All graphics in the game are sorted by depth. The floor and walls of the cave are on the lowest level (underneath everything else), the healthbar and crosshair are on the highest level (above everything else), and everything else is sorted in-between.

I forgot to put the shadow gradient above the aforementioned "everything else." This was easily fixed. You can see the correct application of the lighting effect in the first GIF of this post.

It is probably one of the prettiest bugs I've ever produced. I miss it.

Bug #5: Lazy Enemies

Problem: Surprise - it isn't the player invulnerability. See those two dudes in the top left who 1) are standing on top of eachother, and 2) aren't shooting at the player because someone else is blocking their line of sight? When either of those things happen, they're supposed to move around and find a better place from which they can take shots at the player. That's not happening. Artificial intelligence? More like genuine stupidity.

Explanation: The behavior of a mass of enemies to form a semi-circle around the player (so that everyone could shoot her without hurting their comrades) was one of the first things I had successfully implemented in the game. Naturally, I expected this behavior to continue to work as intended. I didn't notice that it had, at some point, stopped working until it became obvious during playtesting.

Normally, enemies will pursue the player character until 1) they have a clear line of sight to her, and, this is important, 2) she is at (not within!) optimal firing distance. Once these criteria are met, the code that causes them to re-arrange themselves in a semi-circle then triggers. At some point, I thought it was a good idea to only have the code trigger when the bad guys were well within optimal firing range of their target. Since most enemies will stop moving towards the player once they reach that firing distance, the probability of the code triggering was near zero. Even when the code did trigger, it deactivated again the instant they move outside of firing range.

I hope you found these glitches visually interesting, if nothing else! A nearly bug-free version of the game will be released soon.

Monday, October 10, 2016

Devlog Update: The Morphine Western Revenge (#4)

Gameplay footage of a rain skirmish.

In a Nutshell

The Morphine Western Revenge is not done, but as of this week, it is fully playable from start to finish. The past few months, I've finished the game's final two levels, implemented its opening cutscene, and made some final much-needed adjustments to the enemy AI. I also recorded and edited some natural sound effects (actual rain and thunder), which is something I haven't actually done before and had a blast doing. Just so ya know, the wind you hear in the game is fake - that's just me blowing into the microphone.

All that remains is playtesting and some UI work. While I am always hesitant to make predictions regarding release dates, it is hard for me to imagine the game being released any later than a month from now.

As with most pieces of media, the whole work is greater than the sum of its parts. Now that I have a clear sense of what the entire work actually is - a sense of how the story is paced, how the action plays out from start to finish - I'm pretty damn excited about it. Any pessimism I've had about the game in August has been dissolved. This is by far the strongest game I've ever made, as dark and violent as it is.

This will most likely be my final devlog for this project before release, so I'd just like to get a few more thoughts down regarding its development. Specifically, I'd like to talk about the project's central premise and greatest challenge - the adaption of a story from text to game.

The game opens with a campfire conversation.

Regarding Adapting a Novella into Game Format

Revenge, as I've mentioned, is based on Brian Cristi's free online novella The Hyperbolic Needle. Transferring a story with any faithfulness from literature to game is a pretty massive leap. Literature traditionally favors narration and internal monologue; games are traditionally a good medium for demonstrating the causal workings of systems.

While notgames, artgames, and walking simulators aspire to tell more literary stories, such narrative-focused games usually require stronger art direction and overall more production to be compelling (interactive literature being the exception). By contrast, creating compelling action games is mostly dependent upon having solid mechanics. While I can't speak for all game developers, I think that I can make a compelling action game much more quickly and easily than I can a purely story-driven game.

So, with Brian's blessing, the game became a shooter, despite the novella depicting only one violent encounter. The story itself, in both the novella and the game, is the story of a loner traveling through a valley (movement) to enact revenge (shooting). Moving and shooting are the core actions of a shooter game; it was undoubtedly the most fitting traditional game genre for the adaptation.

Once it became apparent that a truly faithful adaption would be impossible, I gave myself permission to take whatever creative liberties with the source material I wanted. Telling the story as I wanted to tell it, under the technical constraints of game development, while still hitting the same narrative, thematic, and emotional beats as the original, was a challenge. It's easy to complain about how the book/game/movie version of a movie/game/book isn't true to the source material. I now have a healthier respect for the unfaithfulness of these adaptions, and am able to forgive most of them. Except for Scott Pilgrim vs the World. The last two-thirds of that movie still disappoint me.

Regarding Horses

Game development, of course, contains many technical hurdles. One of the greatest advantages of literature is that there are virtually no technical restraints on what it can describe - it is as easy to write about a woman standing still as it is to write about a horse in motion. This is not the case in games. Animating horses is hard. Have you seen the way they move? It's fucking unnatural.

Probably one of the biggest changes between The Hyperbolic Needle and The Morphine Western Revenge is the removal of horses. The novella had a lot of horses in it. The game has no horses.

I'm sorry.

Regarding Storytelling

Needle is mostly lacking in dialogue or dictated internal monologue - it's almost entirely told through poetic narration. Because most of the action and scenery in Revenge is presented visually on-screen, most of that narration becomes unnecessary.

If you haven't read it, this is how Needle is written.

The specific storytelling method of Needle works because of it's consistency and poetic style. It is impossible to emulate its style through a visual game, but even attempting to approximate that style would be inadequate - simply narrating the events on screen would be boring.

The best solution was to have my protagonist monologue throughout the game to fill in the remaining plot holes and flesh out her character. This is something that Needle's protagonist (originally named Maya, unnamed in my version) almost doesn't do. We rarely hear her speech or thoughts. Probably my favorite aspect of making the adaptation was to take a silent character from one story, analyze her behavior and emotions, and try to put convey those aspects of her personality through her speech.

However, because the game is less poetic that its source material, I decided to discard much of the original story's spiritual and supernatural elements. This is partially due to my own secular worldview, but also because games as a whole are more usually more literal than the text. To make my adaption more grounded in reality was natural, given the medium I was working with.

That being said, some of the strangeness of the original story remains. Why is the man responsible for killing the protagonists' family and abducting her sister still living in the valley where he did it? Why do his men attack the protagonist on sight? Why is my level design so unnatural? The vagueness, openness, and non-literal elements of the original story gave me some permission for my game to break some of the rules of reality, which was often convenient.

But also, because games take so damn long to make, I had to trim the story to its essential elements. Namely: "Native American woman loses sister to soldiers, takes morphine, returns home, kills a guy, finds sister, [SPOILERS REDACTED]." Any story that fails to hit on these essential elements fails to be an adaption of The Hyperbolic Needle, so I made sure to focus on them. But a lot of the story - namely, the horses - has been omitted or entirely re-imagined.

That being said, I had a lot of fun incorporating as many non-essential story elements from the novella into the game as possible. Both versions of the story begin in a cave and end in a thunderstorm. The protagonist attacks people with her syringe. There are train tracks. There are exactly twelve enemies in the game's final level - a reference to the twelve angry men who attack Maya at the end of Needle. So on and so forth.

Overall, I managed to create a true adaption of a pre-existing story while still being able to tell it on my own terms. This game very much feels like my own work without losing sight of its inspiration, and in that regard, this has been a successful and rewarding undertaking.

Regarding Research

Here's where I admit that I am a bad man.

The extent of my research in making this game amounts to
1) Looking up pictures of the game's setting, Imperial Valley, California,
2) Researching the history of morphine and syringe usage, and
3) Quickly skimming through the history of Native American-US relations in southern California in the mid 19th century.

From my outsider perspective, Brian did research sufficient for his version of the story. But, because I am telling a story with different content and a more grounded style than the original, I had a responsibility to do further research.

I left some essential questions unanswered, such as: What tribe would the protagonist have belonged to? What would her name actually have been? What would she have believed in? Was the Imperial Valley known as such at the time? So on and so forth.

Researching the above questions would have added some authenticity, depth, and value to the game. Mind you, I did the next best thing and wrote around my ignorance - rather than make assumptions about the protagonist's culture, I deliberately left those elements up to interpretation. Part of the reason I felt uninspired to commit more research is because, admittedly, the game's story worked very well without it. The central plot point is that soldiers eradicated the protagonist's culture. Therefore, it's thematically justifiable that any references to that culture are absent.

I can make the above excuse, and I can make excuses about not having time to do proper research in such a short development cycle, but the real reason that I didn't do further research? Mostly, I was lazy. And at this point, the game is just about finished - I'm mostly stuck with it as it is.

This was my first attempt at making any short of historical game - everything else I've made so far has been cemented in fantasy, cyberpunk, and science fiction. So, it's only naturally that I made mistakes in my first attempt. However, I am tackling some sensitive subject matter in the game (actual genocide), and while I treated that subject matter with enough respect that I feel comfortable releasing the game, I feel as though I could have treated it with more respect.

I just hope that there isn't something super problematic about the game's political themes or portrayal of history that I'm overlooking due to my ignorance. I don't want to be another Ken Levine.

I don't think I am. But Ken Levine doesn't know he's Ken Levine either.

All that being said, I'm still mighty pleased about the story I'm telling. It's more than good enough as is, and I can't wait to share it with you. Thank you all for your support this far!

Also, shout out to Isaiah, if you're reading this. Keep programming cool stuff! Sorry for the naughty words.

Friday, August 19, 2016

Devlog Update: The Morphine Western Revenge (#3)


This is probably some of the best footage I've captured from the game, IMO


In a Nutshell

Development of The Morphine Western Revenge has slowed over the past month and a half, mostly due to personal morale. Early in a game's development, it's easy to be motivated by the possibility of what a game can be. As the game's development reaches its final stages, I now have a much clearer idea of what the final work is actually going to be like.

The game's probably fine, don't get me wrong. The story's paced well enough, and the action's fun, snappy, and a little brainy. It will be the most ambitious and polished complete game project I'll have ever worked on. However, any mystery surrounding the game, from my perspective, has almost been totally lost. I am no longer motivated to create out of a desire to discover my own work, as I have now discovered nearly all of it.

Finishing games is almost always boring, and I tend to somehow forget this.

(As usual, if you're confused about What's Going On Here, the first two devlogs for the game can be found here and here.)

Regarding the Game's General Structure

The Morphine Western Revenge will be split into five levels. Each serves a unique, deliberate purpose, but generally, the first three of them are educational in nature, while the last two test the player's abilities.

The first level is the explicit tutorial level, in which the player is directly taught those rules of the game than can only be explained through text. "Press these buttons to move! Press this button to kill people. Press this button to maintain your morphine addiction." I also take time in this level to provide some basic narrative motivation for the protagonist's behavior.

However, it is otherwise best to allow players to learn how to play the game on their own without being told what to do. The second level is designed to teach the player the remaining core rules of the game without text. Rather than tell the player that "melee attacks only insta-kill unaware enemies" or that "it's possible to hide from enemies and sneak past them when outnumbered," I instead attempt to place the player in highly-controlled scenarios where they discover these rules and strategies through trial and error.

The third level introduces all remaining interactive elements (namely, weapons and enemies) that haven't already been introduced, and, therefore, is the last level designed to teach the player anything. From here on out, the player should be applying their hard-earned knowledge of the game's rules to overcome its final challenges. Being the game's halfway point, I also introduce a minor plot twist - the protagonist's motivations are not all that they initially appeared to be. Scandalous!

I'll be returning to level four in a moment, but it's worth mentioning that level five will be little more than an epilogue. It will be a short level with a purely narrative purpose - not to challenge the player, but to provide closure to the game's story.

The first three levels were completed by the time I wrote the previous devlog, each one taking about two and a half weeks each to create. Level four, despite being no larger than any of the previous levels, has taken me six weeks to create. If the first three levels are educational in nature, and level five is about narrative, then level four is the game's raison d'être. Everything leading up to level four exists only to prepare the player for it.

The game's stealth mechanics could still use a little work, but it's almost perfect.

Actually building the level that the whole game has been leading up to has been emotionally underwhelming for reasons explained earlier. But it was also during this level where I finally met the limits of the sort of play that my game's own rules could support. The somewhat obvious reality is that the player can only fight so many other characters at one time. I needed to make the encounters in this penultimate level more challenging and larger in scale than anything that came before, but I was finding that it was difficult to make the game's encounters more difficult while keeping the game fair. While my morale slowed much of the game's development, level four has also taken so long to develop because it simply been one of the most difficult game levels I've ever had to design.

It's been a tough slog, but I've finally emerged from triumphant. I think the level works.

Regarding the Music

Another level, another track. Here ya go!

As I wrote in previously devlogs, I'm attempting to recycle motifs shared among each of the game's pieces in order to create a sense of cohesion through the music. The music track for level four, "Cowboy Corpses," exemplifies this by almost using and combining every theme and motif from the preceding three tracks without introducing anything new. My intention is that, by doing this, the fourth level's music helps communicate to the player that, yes, shit is getting real, and this is the end of the game.

Regarding What Happens Next

Aside from completing the fifth level, all that's left for me to do is to finish implementing the game's user interface (title screen, pause screen, and credits), debug the HTML5 version, and playtest the final game. The game will be released no later than October, at which point I'll immediately and joyfully return to finishing development of Monsterpunk. My intention is to release both games by the end of this year, and really do some soul searching about the creative direction I want to pursue with my work going forward.

Sunday, June 26, 2016

Devlog Update: The Morphine Western Revenge (#2)

In a Nutshell

Development of The Morphine Western Revenge has been going pretty smoothly! When I last wrote nearly two months ago, I had little more than a test level. Now, the first two-thirds of the game are fully playable, written, and scored.

In addition to churning out levels, music, art assets, and dialogue, I've also been working to make the game's play a bit more dynamic and fine-tune its pacing. This has mostly meant expanding upon the (still basic) enemy AI and adding new baddy types (more on that later), but I'm also trying to speed up the game's combat and having it play less like chunky-ol' Halo and more like Hotline Miami.

(If you're confused, the first formal devlog for The Morphine Western Revenge can be found here and offers a pretty good primer on What's Generally Going On.) 

Regarding Artscape/Gamescape

My proposed booth showcasing Revenge, Digital Toilet World, and Bloodjak got waitlisted. Considering the roughness of Toilet World and the incompleteness of Revenge, this is not surprising.

For Revenge's development, this has been both a blessing and a curse. Originally, I was on schedule to have the game fully complete by early July in time for the festival. Now that the deadline has become irrelevant, I've been freed up to develop the game at a much slower pace, allowing me to make a better game and better take care of myself. Unfortunately, this means an August release date for the game, further postponing Monsterpunk's development.

Regarding the Game's Music 

I've got some! Have a listen:

I'm now comfortable enough with basic composition that, compared to Toilet World and Monsterpunk's soundtracks, Revenge's soundtrack is more expressive. I'm also attempting to make the game's soundtrack cohesive by sharing common motifs and patterns across multiple tracks. In this way, I hope to make each level feel like part of a greater, unified world.

Regarding the Limitations of the Source Material

An advantage to making games in cyberspace, sci-fi, and fantasy settings, as I've done in the past, is that it gives you a lot of freedom with the game's mechanics. You can easily create a small but diverse collection of abilities, enemies, and obstacles that can be mixed-and-matched to great effect. Doors, elevators, platforms, terminals, teleporters, armored bad guys, flying bad guys, giant bad guys, explosions, invisibility, double-jumping, sniping, backstabbing, etc.

The Hyperbolic Needle, the novella that Revenge is based upon, is set in the wilderness of 19th century Imperial Valley, California. Imperial Valley mostly consists of static elements - rocks, sand, and plants. Furthermore, all of the characters in the novella are human, with fairly normal human abilities.

The game's source material imposed two challenges I failed to consider when starting the project: 1) designing interesting levels that work well as play spaces while staying true to the setting and 2) creating interesting gunplay with an extremely homogeneous group of human adversaries.

Level design for Revenge, by necessity, has become fairly nonsensical and abstract. Boxes, stacks of rocks, and wooden walls litter an otherwise natural landscape in patterns that make no practical sense. However, these patterns allow for, say, a certain someone to find cover at any moment and flank her enemies from any direction.

My solution to the problem of enemy variety has been less satisfactory. While the game's human enemies carry a variety of different weapons, they are all similarly squishy, speedy, and stupid. In order to provide some contrast, I've added tall, broad men who are uniquely bearded and hatless. These bearded hatless men are inexplicably slower and harder to kill than their comrades, but are still fairly stupid.

It's the best I could do.

Regarding Current Events and the Game's Content

Okay, here's where we get off the hype train.

Making a shooter video game in the aftermath of one of our country's worst mass shootings doesn't feel terrible, but it doesn't feel great either. I haven't been able to stop thinking about it.

If you've been reading this blog for the past few years or even have played some of my work before (especially The Void Hero Blues), then you know that my feelings toward violence in games, especially gun violence, are ambivalent. While I can probably best be described as an action game designer first and foremost, I usually try to avoid historical or contemporary settings, guns, and human enemies in my games - and if my games do feature those things, I try to subvert the violence in some way.

Revenge, of course, features gun violence between humans in a historical setting and is loosely inspired by historical events of the time. It also does relatively little to subvert the player's enjoyment of that violence compared to previous work. If it isn't the most brutal game I've made, it comes close to it.

No matter how much of an anti-hero I make the protagonist, no matter how poorly her revenge goes for her, no matter how clearly I state that everything that happens in the game is Terrible and Bad - the fact remains that I am still glorifying the violence in the game. As a designer, I want the player to be entertained by their primary mode of interaction, and if I'm doing my job right, then I will succeed in that. When you click the mouse and you hear the bassy thud of your shotgun and all of the pellets strike your target and he flies backwards with force as blood sprays in the other direction - it feels good, and it's designed to feel good.

Now, it's been pretty well proven, of course, that playing violent video games does not directly, universally, or significantly cause violent behavior. However, this isn't to say that violent games, and violent media in general, have zero influence on out collective beliefs on appropriate and normal uses of force. While most of us consuming violent media (nearly everyone) are fairly peaceful people, I do wonder about the George Zimmermans of the world who try to play vigilante, as well as the folks out there who are stockpiling AR-15's in preparation for the post-apocalypse. These individuals do not engage in lethal violence throughout their day-to-days lives, but in the situations where they think its appropriate? They're performing the role of the Hollywood action hero.

My contribution to our culture of violence is pretty small. Neither me nor my work is especially popular, and the work itself is probably harmless. I am proud of what I'm making and hope you all enjoy it when it's done.

However, this is a good time to recognize that art doesn't exist in a vacuum. Our interpretations of art both drive and are driven by context. I am disheartened by the news in Orlando and simply hope that, whether through policy change or a rejection of gun culture, we are able to prevent future tragedies. Figuring out what role I play, and what role I should play, in a world where this is possible is difficult.

Sunday, May 1, 2016

Devlog Update: The Morphine Western Revenge

So, as I mentioned a few months ago, the new game I'm working on (now titled The Morphine Western Revenge) was originally supposed to have been released at the beginning of April. Now that it's the beginning of May, I figured that a status update for the project was in order.

As I already explained, the game is loosely based on the story of a19th century morphine-addicted Native American woman attempting to rescue her sister from the US military (you can download the story here). As I simply did not originally have the time to adapt the text into a fully experimental or narrative work, the game will mostly be carried by conventional mechanics, and since it's a Western rescue/revenge story, those mechanics are shoot-y in nature. As a result, the game is starting to become more evocative of Django Unchained than anything else.

What I have not yet explained are the details of The Morphine Western Revenge's shoot-y mechanics. The combat in the game will be fast-paced but emphasizes stealth, guerilla tactics, and deliberate planning. While the player character uses her morphine to cope with the pain sustained through combat and other sources, she and her enemies are otherwise fragile. Players will be able to carefully plan out their method of attack, but once that plan goes into practice, it will have to be executed relatively quickly.

Click to enlargen; it looks best that way.

As is the case with any game, it's taking more time to create than once expected. I originally only had a month to make it, but since it was originally intended for an art showcase, I wanted to make it as polished as I could. These circumstances impacted much of the game's design, particularly its oversimplified art style. Unfortunately, the design shortcuts I took were not enough for me to complete the game on time. It turns out that, even when your characters are white silhouettes, drawing and animating them in eight directions is still a total, time-consuming pain-in-the-ass.

In addition, I finally got a real job last month, which has been a larger obstacle to game development than I originally anticipated. I am still learning how to properly achieve work/life balance, but I suspect that I will begin to develop faster as time goes on.

By the beginning of April, I had successfully completed a prototype level, but still did not have enough content to build the rest of the game. Most of the past month has been spent fixing bugs and design issues made apparent in the prototype. This month, I am finally beginning to build the game's actual levels. Playtesting will follow shortly afterward, and the game's release after that. I intend for this to be a relatively short game consisting of five levels, each of which will be under five minutes long.

I know better than to offer any indication of the Revenge's release date. It'll be done when it's done. Development on Monsterpunk and my Pokemon ROM hack are on hold until the Morphine Western Revenge is complete, as Revenge is the smallest of the three projects.

I think this is gonna be a good 'un. It's one of the gamiest things I've worked on lately, but still hopefully weird and tragic enough to make up for it. Here's a GIF of the player stabbing someone to death with her syringe:

Wednesday, March 23, 2016

Bloodjak v1.2

Bloodjak is now at version 1.2!

The trickiest thing with making changes to Bloodjak is the fact that the game has competitive online scoring, and that any changes I make to the game's difficulty need to respect that. As soon as I change the timing of the spawns, the health of the enemies, or the fire rate of the player, player scores between versions cease to be comparable.

I did cave in and make one change that, I believe, still respects the game's original difficulty: enemies now provide a short visual cue before attacking. This allows players to better predict enemy attack patterns without me actually changing anything about the patterns themselves. This should make the game more accessible to more players.

I've also added a web version for those of you not running Windows!

Play the game here! Enjoy!

No gamepad support yet (sorry Wzzrd).

Change log:
-Web version added
-Enemies now provide visual cues before shooting, HOW NICE OF THEM
-Increased time between shots for the big glowy ship by 1/30th of a second (not that you'll ever see one)
-Minor text changes
-Giant ship recoil exaggerated (a whopping 2 pixel kickback!)
-Blocks and debris spawn rate decreases with framerate
-Performance improved
-Audio engine updated

Tuesday, March 8, 2016

Digital Toilet World v1.2

I am pleased to announce that Digital Toilet World, after 2 years, has been updated to version 1.2!

Being one of my earliest efforts at a 48-hour jam game, it is crudely drawn, scored, and programmed. There were only so many improvements I could make with the time available to me that respected the original flavor of the game. That being said, it looks, feels, and plays much better now than it ever has. My goal was to transform the game into something I'd be comfortable presenting at a showcase, and I succeeded.

Here's the complete change log:
-Web version added
-Dialogue can be skipped by holding enter
-Opening scrawl can be skipped by pressing enter
-Holding escape now quits to the menu instead of quitting the game.
-HUD updated
-Tileset updated
-Dialogue rewritten, most drastically in the case of the survivor
-Enemies and NPCs are now animated
-Ghost now has attack animations
-Level geometry changes, especially in the final areas
-Changes to enemy spawn locations
-Damage taken reduced on normal and hard difficulty settings
-Boss attack frequency increased across all difficulty settings
-Boss attack patterns changed
-Androids and boss now fall from the sky instead of emerging from your poop
-Android HP lowered across all difficulty settings
-Android fire rate decreased on poop hell mode
-Android spawn time from poop now randomized
-Final encounter length increased
-Stranger now dies
-Music and speech are now louder
-Music now plays in the survivor's area
-Bathroom signs added
-Keys now bob
-Difficulty setting names changed
-Text box opacity increased
-Some bug fixes

Unexpectedly, most of my time was spent making technical changes to port the game to HTML5. The bugs I initially encountered when attempting to do so where ghastly.

I may update the game again before summer to make further changes - the Artscape submission deadline is the end of March, and I simply wanted to make this game extra-presentable before then.

As usual, you can find the game at either or Gamejolt. Thank you for playing!

Wednesday, February 24, 2016

February Devlog Update

On Playtesting Monsterpunk

Monsterpunk is the first game I've made where I've put serious effort into playtesting. Most of my jam games are never tested before release due to time constraints. Sufficient playtesting for my student projects was, unfortunately, a low priority due to development conditions. At the time, simply finishing a game was a challenge; let alone making anything playable by a lay person.

While most of my jam games err on the side of being too difficult (but fair), they have generally been playable and enjoyable by most people even without playtesting. Because of the incredibly short development cycle on such games (2-7 days), the mechanics of my jam games are relatively simple. By the end of each game's development, I have plenty of practice playing it, but not so much that my abilities fully eclipse those of a first-time player. Basically, it's still possible for me to imagine what it's like for a first-time player to try the game, and I design accordingly. Even though, as the Bloodjak high score table below demonstrates, I have a very different relationship with my own work than anyone else does (6821 points), many other players were still able to form some sort of relationship with it. I consider the game to be more successful than not.

While Bloodjak's high score table provides an objective measurement of just how better I am at my own games than average players, geoffryb, Raeleus, and DifferentName still scored high enough to experience all of the game's content, and lower scoring players still gave me very positive feedback.
In other news, my niece and nephew ("StRuby" and Huck) are totally destroying the Guest Leaderboard.

Monsterpunk is fundamentally different from anything else I've worked on. I've been developing (and playing) the game for nearly a year and a half. Not only am I exceptionally skilled at the game, I'm also starting to become bored by it. More so than usual, I have an insufficient ability to predict what an average player will be able to understand, what they'll be able to accomplish, and what they'll enjoy in the game. While every video game should be sufficiently playtested, Monsterpunk is both the first recent game of mine for which sufficient playtesting is possible and the game of mine which requires playtesting the most.

Playtesting for the game is far from over - I'm only halfway through the list of people who offered to help - but it has been a thoroughly useful process. The first two playtesters barely lasted 10 minutes in the game. With necessary changes, Playtester #3 was able to play the game for a couple of hours. Further changes allowed Playtester #4 to be the first to beat the game. Playtester #5 not only beat the game, but voluntarily played through the opening 30 minutes of the game twice. The game has transitioned from something unplayable to something genuinely enjoyable over the past few months, and it's been both a pleasure and a relief.

Altering the HUD's color scheme was one of many necessary tweaks made evident through playtesting.

What's left for Monsterpunk? I'm recently begun drawing and adding character portraits to the game, but once that's done, I'll add a character selection quiz, illustrate the game's endings, exaggerate the impact of the player's violence (or lack thereof) on the world, complete the soundtrack, and make various other small mechanical and audio-visual tweaks.

Character portraits

Considering how consistently wrong I've been in predicting the release date for the game (originally December 2014?), I probably should stop making promises regarding it. That being said, I'm currently aiming to finish this game by spring, and I can't imagine that I'll still be working on it through the summer. I don't want to spend more than two years on this project, and I really don't want it to stay in perpetual development hell. I don't want this to be another Waker.

This time, though, I actually have a good reason for extending the game's release date!

On Preparing Games for Festival

I'm intending to showcase my shorter games at Artscape this Summer! Artscape is a massive, free arts festival held in Baltimore each year. Local game developers have been showcasing games at Artscape (through Gamescape) for a few years now, and I want to participate. Monsterpunk is too long, complicated, and R-rated to be showcased at such an event, but Bloodjak and Digital Toilet World are short and simple enough that they'd be perfect for it.

In preparation for Artscape, I'll be making changes to both games to make them more accessible to a festival audience. Bloodjak will mostly receive minor difficulty tweaks, but changes to Digital Toilet World will be more extensive, including some basic animation for the enemies, edited dialogue, and significant changes to the game's difficulty. If possible, both of these games will soon be playable in your internet browser!

I originally wanted to present Empty Chambers at Artscape, but I've begun revising it and realized that the game needs to undergo some very heavy changes to reach the same level of quality as my more recent work. It's the only jam game I've made that hasn't yet had a post-jam revision, and it shows.

In any case, those new versions of Bloodjak and DTW will be out within the next few weeks! I'm pretty stoked about it.

But wait! It gets better!

New Project!

I've been asked by a friend in Athens, Ohio to make a short game for an art showcase he's curating at the beginning of April. The game's inspired by a piece of writing of his - a western story about a Native American woman addicted to morphine who's allegedly trying to rescue her sister from Union soldiers.

Since I'm adapting the story into a video game, I went ahead and added a ton of shooting to it. As much as I'd like to break away from traditional (violent) design sensibilities, imagining the story as a top-down shooter was simply the fastest and easiest way to add a compelling interactive element to the story given the limited development time. Making compelling narrative games requires engineering the entire experience from start to finish; making compelling action games only requires engineering specific elements of the game (enemies, weapons) and then mixing and matching those elements.

Here's an early peek of it, two weeks into development. I'm pretty happy with it so far!

The enemies don't shoot yet, obviously.

The new game will premiere on April 1st at Athensworks, and then will be made available online shortly thereafter. If all goes well, it will also showcased alongside Bloodjak and DTW at Artscape.