Getting the Ball Rolling (again)

The times have been…rough, for a lot of people, I think. For a lot of reasons. Not just electoral politics, not just COVID – there is a rising fever that will not break. And I don’t think the worst is behind us. I think of a character I wrote when I was much younger, who personified the deep feeling of worry and unease I had towards the world, even when I was just entering adulthood…

A: Just taking some time to relax out here and enjoy the sunset. I don’t usually get a view like this. Better enjoy it while I can.

B: :Er…while you can?
A: You see those clouds? We’ll have a thick storm over our heads pretty soon. And it looks like it’s going to be a pretty bad one.

Alton and Darryl, talking about ~nothing in particular~

Which is the point of this – making things, writing things, is one way I have of processing what’s going on around me in a healthy way, and expressing those feelings. And as just exemplifed, it serves as a personal history too.

These quiet and chaotic years have been very challenging, and gamedev has been my biggest lifeline and support. While I haven’t released as much and have been very silent, I’ve gotten so much out of exploring different ideas without necessarily thinking all the way through to release. And very significantly, I have also built up repositories of code/assets that I can use for all sorts of things!

However, all of those projects and ideas remain untested. And behind them are even larger, more ambitious ideas – but I will never get to those if I don’t finish the work that lays in front of me. I still have a lot to learn on the execution of a concept which is gained from the direct experience of releasing things. If I want to keep making better and better things, I have to finish what I start.

…Of course none of that is new thinking in terms of gamedev, it’s very common wisdom. But a reminder never hurts. Anyway, let’s run through the backlog real quick!


Familiar

This was a game that I announced on here way back in 2018…boy, what happened?

This was going to be my next Big Narrative game, eclipsing WAIDAS dramatically in production and scope, and putting into practice everything I had learned. This put too much pressure on myself, and so I became really demoralized when I wasn’t making the progress I felt I needed to. In hindsight, of course it would make more sense to make cuts to the project and release what I could – but I lacked that clarity of thought at the time.

I froze the project for a long time, but there is still a story in there that I want to tell – so I have reworked a lot of its ideas and split them up into smaller pieces, and can happily say that I’m working on a version of Familiar that has a very realistic path to release.

As for what it actually is – it’s just a short-ish narrative game where you walk around and navigate some text trees. It leans much more into psychological horror and mystery than any of my previous work. The hope is to release smaller episodic games that add up into a larger story with lots of fun twists and turns.

Your Guide to the Afterlife

get in

Formerly called Ghost Planet. This was the project I started when I dropped off of Familiar, with the initial intention of just making something small and fast – and of course, it is now a far larger and more ambitious project than Familiar! It has become this huge open-world adventure where you navigate all sorts of different areas in search of objects of power, and try to piece together the truth of a world at a radical turning point.

Worth noting that while I wrote Familiar’s engine in C# with Monogame, YGttA is the first major project I made purely with Javascript, using CreateJS to handle the basic image rendering. I had done some small gamedev in Javascript and enjoyed it, which was why I defaulted back to it when Familiar was going through a rough patch. But as my code expanded to meet YGttA’s needs, it lent itself to writing even more projects in JS.

This project is also sort of paused as I shift my focus back to a smaller version of Familiar – but I have similar goals with YGttA, in that I would like to find a way to make the project more modular, so I can release parts of it sooner and more incrementally.

Biscotti

Which brings us to what I call Biscotti, a weird name for a weird project. This isn’t a game as much as it is a way for me to tie different games together – it’s a self-indulgent exercise in cleaning house and refactoring my code so it all works cleanly. It’s really just a collection of different small games that can launch out of the same application. Most of these games would be small game jam submissions or side-projects.

It would be nice to actually release this as a sort of anthology, but I see it more as a springboard for future Javascript projects – basically, building out an engine that is cleaner and can be used as a solid foundation for other games (and I can retrofit larger projects like YGttA with its code for better performance).

Yolk of the Wish Machine (working title)

Those other ideas start with this – an action/adventure/platformer with a style in the vein of early Kirby/Sonic/Bomberman games, an “all-ages” story that still has teeth, and modern design ideas taken from all sorts of platformers throughout the decades, both 2D and 3D – from what I would call spectacle platformers like Assassin’s Creed or Spiderman, to sandbox platformers like Tony Hawk. I’m aware that the platforming genre is incredibly saturated, so if I’m going to make yet another one it better be worth peoples’ time!

Currently not in active development, but steps have been taken to build out some of its systems. I released an action-platformer as freeware (Jidan Havoc) which is meant to be a starting point for this.

about-face-plus (working title)

I originally wanted to re-release about-face in Javascript just to give myself something to do, and as the first major inclusion in the Biscotti collection – but then of course I had all sorts of things I wanted to add in, which have become their own separate idea that would be fun to work on. about-face being very minimalist means I get to focus much more on design and coding. I would still like to re-release the original about-face, but I have some ideas for a spiritual successor that I think are promising and substantive.

Octoscopy

I made a game jam submission many years ago (Invisible Maniac) that I got some pretty positive feedback on, and I had wanted to expand it and make it a full game – this was actually one of the first things I started using Javascript for (the original submission was made with Haxe/OpenFL). It’s a game where your character is invisible and you have to navigate around hazards using only environmental visual/audio clues to figure out where you are. It’s a simple and effective idea, surprisingly fun to play, and just incredibly fertile for all sorts of mechanics.

The title is a portmanteau of octopus and autoscopy, since you play as a camouflaged octopus from a 3rd person perspective. I think it’s neat.


Well…that’s a big list of projects!

Too big, some might say. Unrealistic, maybe? Indecisive? No, couldn’t be.

Currently, I’m only actively working on two: Familiar and Biscotti. I like having two projects going at once for the sake of variety – I give myself the chance to work in two different languages and code-bases, which keeps me a bit sharper, adds more variety to my work, and stops me from getting too tunnel-visioned on the particulars of one project.

In the defense of having a lot of inactive projects, I see it as an additional motivator to finish things – knowing that I have lots of other games I want to make helps prevent me from getting too attached to any one idea. So long as I’m just attached enough to see it through!

On a more granular level, I’m working on putting together a vertical slice for Familiar – it’s all written and designed and the engine is there, but it has to be produced (art, scripting, action!). This weekend I want to finish making rough-drafts of all the art assets I will need – I’m reusing a lot of art from previous drafts, but there’s a bunch of new stuff that I still need. Once I have those, I can work on the scripting logic for all the cutscenes and cutscene-adjacent elements to get it playable.

Around the World

It’s been a little bit since my last update, and during that time I’ve been expanding the world of my newest project. Last time I talked in some detail about a maze-themed area called the Warren – this time, I’m going to be describing a bunch of different areas as briefly as I can.

While there are many areas/concepts that I have come up with and would like to add to the game, I’ve reached the minimum number needed to make the game a larger, more interconnected world. At a very basic level, the game’s world is a wheel with spokes on it – the player starts at the hub, and ventures out into different directions from there. However, the spokes are connected to each other in different ways to support lots of different potential paths, so for the wheel to really fit together, there need to be enough spokes.

Through an extremely scientific process, I’ve landed on five spokes. We know about the Warren, so what are the other four?

Atrium

This one is really awkward to talk about, so I figure I’ll just get it out of the way quickly. The concept is a desert area where the player navigates mostly by way of sound. This ties into the “pick up and move around ghosts” mechanic by way of the ghosts emitting sounds, which differ in volume and stereo based on your position relative to them. So you can use them as audio guides for where you are, and you can move them around to build a path of sounds through the wide desert areas.

The issue with this is, of course, that none of this is visual, so I really don’t have much to show. While the art for the area is still unfinished/nonexistent, even when I have created that, it’s going to seem pretty bare, since the whole idea is to deny the player visual landmarks so that they rely on audio guides. And it’s, y’know, a desert.

Behold…nothing.

Inner Eye

The mechanic behind this area was pretty fun to implement. Basically, the passable terrain is camouflaged as background, and the way to uncover it is to walk across it. I implemented particle effects and physics into the game not too long ago, and one of the first things I wanted to do was add an effect to this mechanic that made it appear as if the player is chipping away at the hidden area!

The particles linger, allowing the player to push them around for a bit

Honestly, it doesn’t get much more complicated than that. The main thing is that as you progress, the hidden areas become less and less easy to discern. In the above example, the hidden bridge is hinted at, and is the only apparent way forward, so it’s easy to find – but later on the cues will become scarcer, until ultimately you’re walking around in complete darkness and cutting the path entirely on your own.

Somewhat absent from this is a real sense of challenge. Unlike the previous two areas, the game isn’t really trying to disorient the player here – in fact, the game is constantly reminding them where they’ve been and what path they’ve taken. However, I think there’s just something inherently satisfying in searching for the different hidden paths and clearing out all of the hidden terrain, and there’s lots of potential for hiding things of interest for the player to uncover. For at least these first few areas, I think the action of exploration/discovery, and an intrinsic appreciation for that, should be the focus.

Memories

So far, none of the areas pose any serious threat to the player – they’re completely focused on exploration in their own ways. The player could get lost, but there’s not much to knock them back to a checkpoint, despite hazards/enemies/checkpoints being some of the first things I implemented. That pattern stops with this area, which takes the “hidden terrain” concept and adds onto it in a few ways.

First, the hidden terrain comes in different colors. Some of these colors require the player to be holding a certain kind of spirit in order for the “color” to be cleared away, revealing the terrain underneath. This very quickly becomes important, as the hidden terrain is now placed on a higher layer – meaning it obscures vision of everything underneath it, including the player. And finally, hazards/enemies make their appearance in this area, where they can be found underneath the “colors” to stop any player who is being a bit too careless.

Colors and tiles here are still place-holders, but hopefully it gets the idea across

The obstacles are still fairly rudimentary, so it’s not like this turns the game-play into anything that could be considered “action” – the main point is that it introduces an element of resource-management into the “hidden area” concept, as the player will have to juggle between different spirits to clear the path forward.

Hallucination

This brings us to the last major area. To explain the idea behind this one, I’ll have to go back to the first area – the Warren. In that, you need to carry spirits from area to area, as they will guide you on where to go, and sometimes warn you if you’re heading down the wrong path. Well, I initially thought it would be interesting to have that same concept, but applied to everything, rather than just where to go.

That may sound vague, but contextualized with the theme of Hallucination, it’s application is clear – things are not always what they appear to be, and so you need to use spirits to help you figure out what is real and fake.

Ultimately I decided that to implement this in the same way as the Warren would be too clunky, so instead I made it so certain spirits have a sort of “aura” around them. Rather than having to constantly talk to these spirits for them to give you hints, the aura passively reveals things as they truly are – all the player has to do is move them around to navigate through the hallucinations.

Anything can be anything.

This may look straight-forward, but as the number of hallucinations increases, it becomes a bit more complicated. There are also a few tricks I can use to trip up the player, even if they’re being careful – and since I’m throwing hazards into the mix, the stakes are a tiny bit higher.

Also worth noting, with the theme of hallucination I came up with a bunch of different ideas while I was working on the previous areas. By the time I got to this one, there were a lot of things that didn’t directly tie into the mechanic I had originally envisioned, but fit into the theme of the area, that I really wanted to add in. So this also became a bit of a “wild-card” area where the most consistent thing is the lack of consistency!

A section where all of the background, enemies and objects are different animations of the player? Why not

There are several moments I’m especially fond of, that I’d prefer to keep to myself for now, at least until I’ve gotten to a point where I think the visuals do them a bit more justice. Let’s just say that I had a lot of fun with this part of the game!


That concludes the synopsis of each major area. Now that I’ve got a rough implementation of the game world, my next task is to go back through all of them and work on their visuals to give them each a unique look (as well as just make things look prettier). After that, I’ll be a hop skip and a jump away from a releasable (if still incomplete) version of the game!

The Warren

So my new HTML5 project has been marching along. Progress was a bit slower over the holidays, but the game has taken on a lot more form and I feel pretty comfortable talking about what it’s going to look like at the end. I even decided on a title, after a bit too much deliberation: Ghost Planet.

Because there are all kinds of ghosts, you see

There are a bunch of different areas throughout the game, each with its own theme and type of challenge to overcome. Some of them are more closely related, and build off of another’s mechanics – some of them stand by themselves. All of them are connected to multiple different areas, so there’s no one path to follow – for the most part, you can choose in which order you find them.

But at the beginning of the game, there are only three areas that can be directly accessed, each one in a different direction, with a different mechanic, and a bit larger than the others. You could say these are the main branches from which the others stem.

Today, we’ll talk briefly about the Warren.

warren
/ˈwôrən,ˈwärən/

a densely populated or labyrinthine building or district.”a warren of narrow gas-lit streets”

I’m not shy about my influences – in this case, the Warren is inspired by the “Lost Woods” archetype from the original Legend of Zelda. Since then, there have been many variations on the idea, within Zelda and other games. Simply put, it’s a maze composed of lots of similar rooms with four entrances. Though the solution to the mazes vary, the thing that I find interesting is how quickly one gets disoriented because of the lack of reliable landmarks.

While many “Lost Woods”-type mazes require very specific paths, or will actually loop you back around so that you can never reach the edges of the area, the Warren is more “what you see is what you get”. Each maze is composed of a finite number of rooms, and there’s no trickery warping you around. There are many paths that will lead you to the exit…but finding it will still be difficult due to their layout. And while other mazes might happily spit you out at the beginning if you make a wrong turn, the Warren will let you move as far off track, or go in as many circles, as you please – so staying oriented is important.

But you’re not alone. Throughout the Warren are ghosts that will help guide you through specific portions. In this case, a ghost helps the player through an introductory section by giving them pretty straight-forward directions. But as you go deeper in, the mazes become larger, more hazardous, and the hints you get become a lot more contextual and vague, requiring you to do more leg-work to figure your way out. And not all of your guides will be so trustworthy…

Anyway, that’s the gist of things. I don’t think I’ll be able to cover each area in the game – especially when some have themes/mechanics that are probably better experienced first-hand. But hopefully this gives a bit of an idea what the game is trying to achieve. When I can, I’ll probably do a short overview of the other major areas, or something about the narrative in the game, such as it is.

A short detour into the land of the dead

I’m working on another game!

…Okay, so I know I just announced working on another large-ish project a little while ago, and since then I haven’t made any updates for it – so it might seem a bit weird to announce another game right now.

But there are reasons! First of all, I’ve been meaning to write more about Familiar, but I just haven’t quite been able to figure out how. In the earlier stages I don’t have as much that I feel comfortable showing, and I can’t seem to touch the subject of Familiar‘s design or narrative without beginning a full-length novel about it. As the game’s visuals slowly climb out of programmer-art territory I’ll be able to show more, and hopefully I’ll be able to formulate my thoughts on what makes the game interesting before then as well!

Secondly, I kinda need a small break from Familiar. It has been slower progress than I had hoped (what else is new), and the amounts of writing/scripting for a narrative game kind of wear down on one. Of course, any big project will have times that you just have to power through, but I also don’t want to burn myself out if I can help it. I had originally planned to always have one small, small project on the side to keep some variety in my gamedev – I just shelved that idea and had been focusing on Familiar until now.


So, what’s this new game? Well, er, it’s a 2D game where you…walk around and talk to ghosts. So, no, it’s not really fresh new territory for me. It has been pointed out to me how ghosts tend to be a heavily recurring theme in my games, and the fact that it looks and controls similarly to previous games is not lost on me. (I will say that this was not originally going to have any ghosts in it at all and would feature a totally different setting, but there’s a longer story behind that…)

But it’s much more of a puzzle-y, exploration focused game than anything else. The dialogue will be very sparse in this case, and you aren’t going to be doing nearly as much talking with ghosts as you will moving them around. As you can see in the above GIF, the player can pick up and drop any of the spirits in the game, and it’s that basic function that the game will revolve around. While some of the spirits you encounter will be there to feed little crumbs of information on the story, or give you vague hints, many of them will have crucial abilities you’ll need to progress.

The two major ones that I can talk about are checkpoints and waypoints.

In this case we can see a giant eye that the player can activate to set a check-point, which will determine where the player respawns when they run into a hazard (as I do several times in this case). These aren’t by any means a new thing for games – the only noteworthy point is that they adhere to all of the same rules as the other spirits you’ll run across. They can have dialogue, although in this case they don’t, and they can be picked up and moved around. This means that if you’re able to pick them up, you’ll be able to freely decide your respawn point!

And here’s a demonstration of waypoints – these come in pairs, and let you warp between the two spirits by interacting with them. In this case, I’m just using them to solve a simple puzzle by grabbing other spirits from an otherwise unreachable area to block the path of some enemies – but they’re really far more important to the game than just puzzle solving.

As I mentioned, a big part of the game is going to be exploration – wandering around, learning about the game’s areas, gathering clues from spirits, and figuring out where you are and what’s really going on. All of that means navigating over a large area, and a lot of potential walking. Unless, of course, you have a network of waypoints that can teleport you to the farther corners of the game’s world!

What I want to do with this game, and part of why I’ve gone out of my way to implement these two objects first, is because I want to make an exploration game where the player is given more control over how exactly they explore. Rather than carefully design the map with puzzles that have just one solution, carefully setting checkpoints where I think they’ll be needed, giving the player handy short-cuts and fast-travel options…all of that will be on the player.

The player will have to decide if they want to leave a checkpoint at a difficult area if they need to traverse it again and want a spawnpoint nearby, or if they want to carry that checkpoint with them to use for wherever they’re going next. They’ll have to decide what would be the most useful locations to leave their waypoints, based on their understanding of the game’s layout and where they think they’ll have to go. And while these are probably the most fundamental abilities, there are many others that will be used in the game.


I’ve been enjoying the diversion working on this game, and progress has been pretty smooth so far – by now I’ve only been working on it for about a week. Although it’s actually a totally separate code-base from literally anything else I’ve shown in this blog, as it’s an HTML5 game written entirely in Javascript, it has benefited from a project I worked on a while ago (and may or may not return to and write about here?).

It may not be the most visually or conceptually groundbreaking thing for me, but I think it has some promise, and I’m really looking forward to sharing my progress. I might be jinxing things, but it looks geared to become the shortest dev-cycle I’ve had thus far (excluding game jams), which is pretty neat in itself!

Announcing a new project – Familiar

Well, it’s been quite a long time since I’ve been in this position.  I’ve mentioned this a little bit on Twitter, but I’m now at a point where I can make it official – I’m working on a new game!

Keeping things simple, it’s going to have a lot of similarities to the games I’ve made in the past – a strong focus on narrative, characters, and mystery.  There are some areas in which I’m trying to use what I’ve learned from At Sea and make improvements, but there’s a lot of different ideas going into it, and it has some fundamentally different priorities.  So…what is it?

Familiar – A slice of life horror RPG

You’re not a ghost, this time – you’re alive for a nice change of pace.  The game centers around the daily life of Allie, who’s having a hard time balancing everything going on in her life.  Over the course of the game you’ll be making lots of decisions, whether that be how to handle awkward work/social scenarios or how to manage your time, that add up over time and dramatically change your play-through.

So why do I call it a slice of life horror game though?  Well, for now let’s just say that how you manage your time is really important.


It’s a bit hard to say how far into development the game is right now, but you can be sure that this is going to become a proper gamedev blog again as I make progress updates, share a bit more about the story/gameplay, and of course ramble on about the ideas and process going into this game.

I’m excited to be committing myself to finishing another narrative game, and I’m really looking forward to get to the point where I can share more of it with everyone!

Why Was I Dead at Sea: Overview

Well, this was a long time coming.  It’s been over three years now since I released Why Am I Dead at Sea, which is a bit disheartening considering what I’ve accomplished (or haven’t) since then – but what has been uplifting, and has largely inspired me to write a post mortem for it, is the fact that it’s still reaching new people and being played after being out for this long.  Some determined folks even managed to make a complete Russian localization of the game, which required not only translating the entirety of the game’s text, but also decompiling the game and rooting through its underbelly to translate some bits of text that were present in its code files!  Wow!

There are so many different aspects of making and releasing the game that I’ve had time to think about and reconsider – what worked, what didn’t, what I’d do differently – that I’ll probably need to split this up into several different posts.  Different people will probably also be interested in specific topics, so it makes sense to cut it up.

Disclosure: Every game’s story is different – mine probably more than most – and there are so many variables and unknowns for each game release that I wouldn’t try to turn my experience into a how-to guide (or even a how-not-to guide).  What I write should be taken at face-value, and not some sort of larger parable.  Later on I’ll probably go into what I might have learned, but this should all be taken with a grain of salt, and an understanding that I’m speaking for myself, not for what I think anyone else ought to do.

With that said, let’s dig into it.


Bird’s Eye View

Let’s start with the basics.  Why Am I Dead at Sea is a mystery/adventure game that was released in 2015 for PC/Mac through Steam.  I started working on it in early 2013, so it saw a little over two years of development, although there were several breaks in that span for multiple reasons.  At that time I wasn’t tracking my development hours very religiously, so unfortunately I don’t have any hard numbers for exactly how long I was working on it when accounting for the breaks.  It’s very likely that if I was able to work on the game at a consistent pace all the way through, it would have been in development for a shorter time, but that’s just a hypothetical.

The inception of the game is pretty straightforward, as it was a follow-up to the original flash game Why Am I Dead, which I released in 2012 as a free web game.  I didn’t take the game very seriously at all, as I created it mostly to familiarize myself with Flash/AS3, so I was surprised when it received positive attention and interest (and that surprise has been well-documented in this blog).  So, after a brief period of trying out other projects that succumbed to scope-creep pretty quickly, I decided it would be a good idea to try my hand at a sequel to the flash game, this time taking it more seriously.  My main goal was to jump from making a small freeware game to a premium game  – similar to the first, it was mostly meant to be used as a learning experience, although this time I was just upping the stakes and production a bit.  My initial timeline was six months – which, obviously, didn’t work out.

I blogged on and off during my development of the game and it has some of its history scattered through different dusty corners of the internet, but the short version of its development is thus: during most of the two year span where the game was in development, I was preparing for, or in the process of, living and working abroad in China as a part-time English teacher.  The decision to do this checked off a lot of boxes for me, such as wanting to travel, having extra time to put towards the game – but most importantly, it financially supported me through pretty much all of the game’s development.  I returned to America in the fall of 2014, and from that point on I used what little I had saved from that job to house/feed myself through the last stretch of the game’s development, up until the game was released on May 11, 2015.

SeeTheWorld


Doing the Dang Thing

That’s the synopsis, but there’s a lot more that could be said about pretty much every step of that period, and why I went the route that I did – but I don’t think it would be controversial to say that this was an, uh, interesting path I took to work on the game – and not one that I would necessarily recommend or use as a model for anything, really.  My decision-making was less focused on a larger plan for myself or the game, and more on a short term view of what could help me finish the game.  Once I missed my six month timeline and realized just how far off that estimate was, I began to have doubts of whether I would finish the game at all, which became larger and larger over time.  Although this wasn’t a game that I felt needed to exist, or that I had some deep personal drive to create, it was still important to me that I finish it, since that was my entire original goal.  It’s extremely common to see projects come and go, unfinished and forgotten, and I didn’t want that to happen to me in this case – I felt that if I didn’t finish At Sea, there was no guarantee that I would finish the next project I started, or the one after that, and so on.  So, a lot of my motivation was less focused on the game itself and more on my ability to fulfill the commitment I had made in the beginning.

Of course during those 2+ years, a lot changed about me, the game, and my expectations for it – when I thought I would be working on it for six months I obviously expected a lot less from it, and planned to sell it around the price point of $3-5, with really no expectations on its success, or any definition of what success would be, other than completion.  The side-effect of it staying in development for so much extra time was that I inevitably grew more attached to it, and despite all my best attempts, I grew emotionally dependent on the game reaching a certain level of success, which I hadn’t really set the game up for in its inception.

NotThatGood

When I returned to America, I devoted all of my time to finishing the game and preparing for its release.  This involved going through the (now obsolete) Steam Greenlight system and contacting press about the game, with seriously mixed/underwhelming results.  The game ultimately did pass Greenlight, but not because it received the required number of votes – instead, I got the news that it was accepted onto Steam at what seemed like a completely random time.  I imagine my game was far from the only one that had this happen, and that Steam was loosening up the requirements of Greenlight to make the way for a self-curating storefront and the current “Steam Direct” system.

No matter the reason, being on Steam was very good news, although by that point it was no longer a guarantee of some baseline amount of sales.  And after what felt like an eternity of missed milestones and failed goals, I was finally able to pin down the game’s release date!

So, May 11 rolled around, I hit the big green button, and a nice chunk of my life was released unto the world.

PushTheButtons


The “Post” Part of the Post-Mortem

So…how was the release?  Well, considering how many of the comments/reviews of the game mention it being “unnoticed”, “underrated” or “not well known”, you can probably guess where this is going (or if you used Steamspy you don’t need too much guessing), but let’s put some numbers on it.  The game launched at a price point of $9.99, with a 20% discount for the first week, so basically $8.  In the first month it just broke $3K in gross revenue, with between 300-400 copies sold.  This at least covered what I spent out of pocket to produce the game, so, that’s something.  In the next four months it would go on to sell roughly an additional 100 copies, bringing it to $4K.

A bit later on I’ll cover my reaction to the game’s release and reception, but for now I’ll just sum it up as “not good”.  But the point I want to make right now is that, counter to all of my expectations at the time, the game’s release was a very tiny piece of the larger picture.  The overwhelming majority of the game’s revenue, sales, and general fan reaction or interest came a long time after its release, with comparatively little effort (if any at all) on my part.

WAIDAS_Sales.PNGHere is a quick li’l graph of the lifetime sales for the game with the hard numbers removed (I don’t think I’m allowed to disclose those, though I don’t think I’m really that important that I would get in trouble).  The game earned nearly twice as much in 2016 as it did in 2015, and only slightly less in 2017.  The game was released quite a bit into 2015, but even if we adjust for this, that would mean that the game’s revenue remained constant throughout the next year, and still held up reasonably in 2017.  We aren’t finished with 2018, but it’s looking to keep pace with its preceding year as well.

That’s the revenue, but you’ll notice that the units sold increased dramatically more than any change in revenue.  A lot of this was due to the game going on deeper and deeper discounts in later sales, but a lot of it was also my decision to cut the game’s base price down to $5 later in 2016.  I don’t have the math on hand to prove this, but I believe the price reduction did lose revenue, as the increase in sales wasn’t enough to offset the lowered price.

But my decision to reduce the game’s price had little to do with revenue, and I expected that I probably would lose money this way – my main goal was simply to try and get more people to play the game!  And looking at it from that perspective, it wasn’t the worst move.  There’s a larger conversation about how we value games and pricing in general that could be had here, but really I just wanted more people to play the damn game.

The delayed nature of the game’s sales can be seen by looking at days of note:

WAIDAS_Sales_tail

This is a chart of revenue/unit sold for the game up to 2 years after launch.  It’s obvious here how sales/discount has impacted the money/unit ratio, but there are some other things I really want to point out – the peak day for revenue was in spring 2016, a full year after launch, and the days for most copies sold are in summer 2016 and spring 2017.  The opening day is also only the 3rd highest in this 2-year span, with two periods in 2016 topping it – and even the deeper discount in 2017 gives it a run for its money despite the much lower selling price.

This is the “long tail”, a phrase and concept that I tragically was not fully aware of until after the game’s release – although in this case it looks less like a tail and more like a heart rate monitor, or something.  By now, this trend is probably well-documented, but believe it or not almost all of the post-mortems I had access to leading up to my release really focused entirely on the first few months of sales and spoke of nothing else.  So, experiencing it firsthand was kind of a surprise.  Oh, and that spike in spring 2016 which holds the record for revenue?  That was a steam sale that I started completely randomly.  There was no particular reasoning or timing behind it; I just scheduled it, and it happened.

To date, the game has sold over 10k copies and grossed over $30k, and it’s still puttering along as new people discover (or circle back to it?) it every day.  I could take this moment to compare it to other games and how much less it sold than them, but instead, I’ll compare it to its first several months of sales, the period that I previously thought was indicative of the game’s success.  But that ended up only accounting for 4% of units sold and 13% of gross revenue, and those numbers are getting smaller by the day.

So… is this how a sales chart should look?  Probably not.  Should it look like something else?  Maybe?  I don’t know.  Could it have done better? Or worse?  Could I have done things differently?  This is entirely too many questions.  All I really want to get across is that the game initially did worse than I expected, and then later on, it did better than I expected.  My main takeaway is that my expectations are not worth a whole lot, at least not when I’m doing something for the first time!

And none of this is even mentioning how much more player reaction there was after the initial release period.  Sure, the game was written about in a bunch of online outlets and got a few reviews, and there were a couple of videos or lets-plays close to launch, but so much of player reviews, word-of-mouth, streams, lets-plays and general fan reaction has been spread out sort of evenly between launch and the present day, usually with spikes around the big sales.  To date, the most-viewed video of the game is…a Russian lets-play of the game starting in August 2017.  And by far the most thorough, detail-oriented and interesting analysis of the game is an hour and a half long video from early 2017.


Next Up

Well, that was a whole lot of words, way more than I was planning for just an “overview”.  But guess what?!  There’s still way more I can talk about!  For this post I tried to keep it a bit tidy and informational for those who really just want the facts, but later on I plan to descend deep into self-indulgent rambling about my feelings and personal take-aways from the game.

about-face : a post-mortem

It’s weird to go back to writing about smaller games, but refreshing.  As small as about-face was, it is a “finished” game (in quotations because I still have a patch that isn’t live yet).  Finishing things is pretty important – I don’t think it’s actually the most important thing, but it’s really high up there.  And every time you finish something, you usually learn some stuff, because it is one of the primary ways of getting feedback.  So, what have I learned this time around?


What went right

It’s always nice to start with the positive.  I think some things went well with about-face that are worth mentioning.

1. Scope was controlled

about-face never expanded in scope – there were some things that weren’t part of the original idea that made it in, but they didn’t lengthen the game’s development significantly.  There were huge delays in the game’s development, but more due to personal interruptions, losing focus and switching to different projects.

2. The mechanic worked

General feedback has been that people have had fun with the game and often play it to completion.  It isn’t a long game, but the mechanic was interesting enough to hold peoples’ attention and was a strong motivator for people to finish it.

The idea was to take a very simple mechanic that still had a lot of space to explore, and that didn’t require lots of other sub-mechanics to make it interesting.  This made the game very fun to design as well, because I was able to be laser-focused on that one concept and make everything around it.

3. The art/sound/motif worked

about-face palette
The game’s entire palette.

I wasn’t sure how people would receive the style of the game.  From a production standpoint, this game definitely isn’t my most ambitious work.  The game mechanics, art, and sound are all very minimal, and I wouldn’t have been surprised if that was counted against it.  Luckily though, people have appreciated it for what it is.

What went not right

1. The ending

I think this is a weakness of mine, because for pretty much every game I’ve made the ending has not been received as anticipated, for better or for worse.  In this case, some people were not even sure if the ending of about-face was actually the ending or not.  Granted some people liked what I did, but when something creates unintentional confusion that’s always a failure in design.  There are parts of the game that I had envisioned as cues for the game’s ending – the final areas of the game take a step back from the mechanics earlier in the game, and serve more as spectacles than anything else – to me, this was the game gearing up for an ending, but none of this was backed up by any other cues in the game.

I think ultimately, I made a lot of assumptions regarding what people would be thinking as they were completing the game, which turned out to be wrong!  I need to spend as much time with narrative cues as I do with the rest of the game’s design.

2. The resolution

This is a weird one.  The game was meant to be a pretty small resolution to complement the simple visuals, but what I ended up with was uncomfortably small and kind of a pain to look at.  The weird thing is that part of this is because my IDE was actually displaying the game at a larger resolution than I had configured and applying AA (despite my attempts to hard-code no-AA settings), so 99% of the time I spent playing/testing the game was with a larger resolution than it would be in reality.  This is particularly annoying, because without using AA, the only way to make the game larger is to just scale everything up 2X, which is unfortunately a bit too large.  So, the only real fix is to change the game’s aspect ratio, without messing up the gameplay by making the player’s vision too small.

I guess the take-away here would be to try the game out more on the actual platform it’s being played on, and not just in the dev environment.

3. The controls

Some of the feedback was on the game being too slippery, and the gravity being way too high.  The former was easy to fix, but the latter is tricky because all of the levels are designed around the player having a specific jump height/speed.  So obviously, changing the player’s physics can have consequences on level design.

These are pretty big deals, because moving left/right/jumping encompass all of the player’s controls.  If those aren’t on point, there’s a problem with the core of the game.  Ideally, I would identify any dependencies the game has – in this case, how the level design is very closely tied to the way the player controls – and get early feedback on those elements before they’ve become fleshed out.  In this case, the problem wouldn’t have been a problem at all if I had identified that gravity was too high before I designed and iterated through all of the levels.

Back, forth, back, forth

Yesterday morning I did the seemingly impossible – I finished one of those games I mentioned earlier!  In fact, it was largely because of the “Odds and Ends” posts I made a little while back, that I was reminded of how close I was to completion on some of those projects.  It made it harder to justify leaving them alone.

I added a bit more content to about-face, polished some issues around the edges, added some extra sound and tweaked the levels, and now it’s live on Newgrounds!

GameImage
The game’s logo, one place where I break resolution.  The horror!

And there it will stay for a while.  I guess it’s sort of an unofficial limited-time exclusivity for Newgrounds, because I like the site…well, a flash game can never be truly exclusive, even when site-locked…but the point is I like uploading stuff there first, okay?  It also gives me time to gather user-feedback and adjust the game accordingly before I put it in other places.  After all, it’s easier to make 10 small changes in one place than 10 small changes in 10 places.

My plans for the game are extremely small, as it was a game I made for fun (and anyway I don’t have faith in how much traffic a flash game can pull these days).  I’ll make some changes to the game as needed, and then move on.  It’s not my most ambitious project, and as my previous posts have indicated, I have a couple other things that I’d like to continue working on!

Thankfully, people have largely enjoyed the game for what it is, and it’s sitting around 3.5+ stars at the moment which is about as much as I could ask for.  It feels really nice to put a smaller game out to the public and be getting more user feedback, and I’m glad I decided to finish this game before continuing on other projects.

I definitely learned some things through development/release of this small game, which might be worth writing up in a bite-sized post-mortem.

I could also talk about the message/theme of the game, but really, the whole point is minimalism, so it would be more fitting to let the game speak for itself on that matter.

Reflections on story/characters in “At Sea”

For a while I’ve wanted to post some reflections on the characters/story of At Sea: or more accurately, reflections on how players have reacted to different parts of the game.  It seems a bit weird to be writing about a game that I’ve released over a year ago, but the fact is it is still my largest released project to date, and chances are if you’re reading this, it’s because you saw Why Am I Dead At Sea somewhere!

Some of this might be interesting to those who have played the game all the way through.  Certain things that were intended but may not have been communicated to the player, remaining questions the player may have after finishing the game, and random musings.


NOTE, if you haven’t played the game yet, this will have SPOILERS so you should not read it if you care about that kind of thing.  I will “white out” some of the big stuff (select the text to see it) but the entire game consists of twists/reveals, so talking about the story in any capacity will contain spoilers.


1. People really don’t like Xu, huh?

One thing that I feel like I could have done better with was making Xu a more sympathetic character.  Watching people play the game, a lot of people really dislike her, I mean, a lot, and that wasn’t exactly what I was anticipating.

I mean, she’s not what I would call a great person.  Even in the very first conversation you have with her, there are clear hints that she is being deceptive/manipulative.  But the game’s overall opinion of her is meant to be roughly neutral – she has flaws, but is ultimately a good person.  Unfortunately, I don’t think her dialogue depicts this side of her as well as it could have.

Reflections1

2. Alton hogs the early parts of the game, and was the hardest character to write

I’ve seen players grow weary of him and his character-arc, which is understandable.  To progress through earlier parts of the game, you have to spend a lot of time with him.  Personally, this is my least favorite aspect of the game from a narrative perspective.

In general, Alton has been the most difficult character to write, and his personality/story arc have gone through multiple dramatic changes over the game’s development.  Originally, Alton came off as a much worse person in the script, and reacted quite differently to certain events in the story (for the worse).  The initial conflict between him and Xu was meant to be, essentially, a re-enactment of the game’s larger conflicts/themes, on a very tiny stage.  But conveying all of this was difficult, because Alton is the first character you meet and play as, and is sort of the tutorial character.  He also seems like an okay person at the beginning – he has flaws, but they are flaws often given to an “underdog” protagonist.

So I was very worried that players would falsely interpret Alton as the underdog protagonist, and that his opinions were those of my own, or the game’s.  I ended up rewriting a lot of his dialogue to reduce the chance that he would be interpreted this way.  This ultimately made his dialogue less substantive – he simply has a lot less interesting things to say.

3. People wanted to know more about the protagonist (ie the ghost)

A common complaint is the lack of closure on just who exactly you are.  This is half-intentional, but something that I could definitely improve on.  There are obvious challenges – you are dead, you have lost all memory of your past self, and the other characters in the story didn’t know much about you even when you were alive.  So, opportunities for character-development are scarce.  One option would have been flash-backs as you recover pieces of your memory, but this was outside the scope of the game.  It could also disrupt the focus of the game – ultimately, the protagonist is not supposed to be the center of attention – that place is reserved to the cast of the living.

Reflections2.png
Okay.  That’s cool…I guess…

I will say that the ghost does have a full back-story and character – it’s not for lack of these things that the ghost’s former personality is vague.  It was more of a conscious decision not to go too far into those details.  But there is something in-game that tells you a bit more about the protagonist, which isn’t laid out very clearly: when you go into the “minds” of Darryl and Gwen, and pose as someone they knew – the reason Smilla is able to speak as if she were these people is because she went through the same problems they did.  So when she poses as Darryl’s wife and speaks in first person, she’s not actually talking about his wife – she’s literally talking about herself, and something she went through at a previous point in her life.

4. What could have been

I’ve already mentioned that Alton went through some rewrites, but what else was planned and got changed/removed, or what wasn’t planned but made its way into the game?

  • As far as rewrites, Darryl also saw the large majority of his dialogue get replaced over the course of development.  He initially was a more upbeat, personable character who cracked jokes to everyone on the ship – then in chapter 3 it would be revealed that this was a facade.  But it never really felt convincing to me.  It gave his arc a twist, but it didn’t actually make sense.  The whole point is that he’s apathetic, so the idea that he would spend energy pretending to be anything else didn’t add up.  So, wise-crack Darryl was replaced with dour Darryl.
  • I had always planned on full possession, but the implications of this mechanic from a story perspective were unpredictable and at some points I felt I had written myself into a corner – or worse, into a situation where there were too many possibilities to account for.  Most of the events in chapter 4 were changed in development as a result of the diverging possibilities.  The entire section where Gwen is put under suspicion and has to be proven innocent was added very late as a means of re-focusing (or limiting) the player’s agency.
  • On the other side, I had never planned on being able to “upgrade” your ghost form so that it looked like your former self, or the possibility of interacting with people while in your ghost form.  This means that I also never initially planed the instances where you go into the minds of Gwen and Darryl and fully unlock them by assuming the role of someone from their past.  In retrospect, the game seems like it would be really incomplete without these parts, and they actually didn’t take very much time or energy to create, so I’m very happy that I added them.
  • You probably wouldn’t know it if you didn’t play through the game multiple times, but the epilogue for the game is different not only depending on what ending you get, but also some of the decisions you make earlier on.  The same characters will have a conversation, but the direction that it goes can vary based on how they’ve interacted throughout the game.  This was another last-minute addition to the game that almost didn’t make the cut.
  • The “bathroom ghost” was yet another last-minute addition to the game.  I wonder what % of players have actually found this part, and what they made out of the ensuing dialogue.

Sweating the Small Stuff #2

Today we finish our look into the projects that didn’t quite make it to the finish line. Given that some of them are pretty old and didn’t take especially long to finish, you might wonder what else I’ve been doing.

For one…life.  It’s pretty intense, and this past year most of all.  But I’ve also done some work patching/updating Why Am I Dead At Sea with small features and fixes, and will continue to as much as I am able.  Lastly, among all the craziness I’ve started prototyping an idea that I’m really interested in. I don’t say that lightly, as the last idea I was really “interested” in turned into Why Am I Dead…and we all know how that ended up. So, hopefully, I’ll have some progress to show in the near future, and this can become a real dev blog once again!


#3: Invisible Maniac

Winter 2015 – 24 hours of development

This was another game jam submission for the Philly Game Forge, and this time we had 24 hours to complete a game from scratch! I’d done a couple of Ludum Dares in the past, but this would be my shortest jam ever, so I was pretty excited to enter it. It was 24 hours onsite, so we were able to stay overnight at the Forge and work through those magical hours where your body goes through the seven stages of grief as it slowly realizes that you aren’t going to give it any rest.

I came up with a little 2D stealth game where enemies can’t see you, and can only catch you via direct contact. But there’s a catch – you can’t see yourself either! Using only contextual audio/visual cues, you have to navigate through the game’s levels and past enemies.

IM1

As the levels become more expansive, losing track of where you are becomes more of a threat. To assist the player, there are objects that react to when the player walks over them, and sounds for when you hit a wall. There is also the ever-present sound of your foot-steps, which change based on the surface you’re walking over.

IM2
Thick grass will help you keep track of your location, and you don’t even have to worry about running into wild Pokemon!

IM3.gif
It gets pretty hectic later on, but using water and rock paths to “hear” your location will help!

Truth be told as much fun as I had working on this game, by the time 24 hours was up, I was quite sick of the thing, and had grown bored of the concept. I even considered not submitting it. But it’s good that I did, because people seemed to really like it! In fact they liked it so much they elected it the winner of the jam and gave me a nice wooden plaque for the occasion.

Subway
You can also pick up hoagies and use them to murder people, you’re better off not knowing why.

Despite my misgivings at the eleventh hour, I got a huge charge out of creating this little game. You can play it in-browser or download the whole thing on my site, but note that the download will let you play at a better resolution.


#4: about-face

January 2016: ??? weeks of development

This was a little platformer that I had the idea for way, waaaaay back, over a year ago. I did a tiny amount of coding for it eons ago, which I ultimately re-purposed for the other platformer I talked about in the last post, but finally picked it back up in Jan 2016. Given the haphazard way I worked on it, I really couldn’t say how long it all took me.

It’s a minimalist retro platformer – really genre-breaking, I know. I wanted to make something small and neat, so I did just that. It’s a platformer where every time you jump, the world inverts, and previous…oh, well, a GIF will explain it faster than I can.

aboutfaceintro

So, the world switches between white/black every time you jump. Platforms, spikes, and obstacles will phase in/out based on which color you’re in.

The idea was pretty simple – what is the core mechanic of platformers? Jumping. On platforms. What if I made it so that every mechanic was tied to jumping – every mechanic was tied to your decision on when and how to jump. The result was a game with very few mechanics but many interesting scenarios to design. This was probably the most fun I’ve had designing game environments by far!

doublejump.gif
Twice the jumps = twice the complexity in design!

Sentinels
Chasing enemies were added to turn the game from a slow puzzle-platformer to a faster paced action-platformer.

almostThere
It gets really hard.

I’m pretty happy with this thing, and at this point it’s basically done. The only thing it lacks is an ending (as of now you’ll just run into an incomplete level that can’t be beaten), but once I pop that in there I’d love to upload it to any channels I can. Until then, you may not be surprised to find out that you can play the current version on my website!


Well, that concludes this mini-series. At some point I’d like to redesign my website and include a section for these kinds of things – it doesn’t feel right putting them up side-by-side with something as large as Why Am I Dead At Sea. But I would like for them to have a space of their own.