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.

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.

You Defeated the Boss!

Some pretty good news this time around!

Never change, Ferdinand.
This is Art with a capital A, folks.

Where should I start?  Hmm, oh yeah – maybe with the fact that my game Why Am I Dead At Sea is basically done.

It’s kinda insane.  I almost don’t believe it.  After working on it for so long, and continuously pushing the finish line further and further back, you kind of forget that finishing is even possible.  I’ve gotten so used to adding things to Why Am I Dead At Sea, that the thought of not adding another thing to it just seems crazy.  There’s something I’m missing, right?

Well…Not really.  All the alternate endings are finished.  The epilogues too.  The dialogue in the game has been rewritten three times over.  I must’ve redone the menus half a dozen times.  There’s even controller support!

This realization comes with two feelings – relief, but also anxiety.  When I admit that the game is finished, I start to panic because a part of me still wants it to be better.  Surely there’s other things I can do to improve it even more, just that little bit extra that will put it over the top, right?  Imagine how much better the game could be, if I’d only add ______ .

The bottom line is, I will be moving forward with distribution/marketing on the basis that the game is in fact complete.  Yeah, at the same time I will also be making small tweaks here and there, if only to satiate a compulsion to tweak.  But don’t worry, I can stop whenever I want to.

…Moving on.


 

SteamworksIsAGo
woah

I’ve gotten all incorporated and everything, and now I can work on putting my game on Steam!  Well, technically it’s already on Steam, but there several extra things I need to do.  Namely, I want to implement Steam cloud saves, achievements, and trading cards, and make sure everything is working smoothly with both Windows and Mac downloads.  It’s a bit hard to say how long this will take, but progress has been very smooth so far.

Speaking of all that, this post is doubling as a bit of a recruiting call.  You see, I want a final wave of testing with a larger group before the game goes public, and I also need to test and make sure the game is actually working with all these Steam features.  That means I need some new testers!

If you want to get the game a bit earlier than everyone else, you want to get it for free, but most importantly if you want to help a solo developer in their hour of need, please email me at “pmcgrath@peltastdesign.com”.  Things to include in your email (for fun, but also so I know you’re serious about testing):

1 ) The operating system you run / will play the game on

2 ) Where you originally heard about Why Am I Dead At Sea

3 ) If you played the original Why Am I Dead – who do you think was the serial killer?

The last time I made a call for volunteer testers I was really impressed by how many people responded, and how dedicated many of them have been.  If you volunteered before and I didn’t get back to you, I apologize – but also know that this test phase will require much more people, so feel free to volunteer again!


 

Thanks in advance to any volunteers!  Next blog update I may be releaseing a date of some import.

Hello Steam!

Sorry everyone, no long blog post this time – just a short update for a bit of news.

But oh, what news it is.

AMiracle2

Why Am I Dead At Sea is going to launch on Steam!!!  Talk about a boost!

Thank you everybody for your votes, support, and kind words.  Now, I have a game to finish!

GreenlitButton

Influences

When people hear what Why Am I Dead At Sea is about and how you play it, they generally have a similar reaction: that’s like Ghost Trick!  Or some people will less frequently say, oh, it’s similar to Murdered!

Looking at those games, the parallels are obvious.  The funny thing is, I wasn’t even aware of Ghost Trick when I started on the original Why Am I Dead in 2012.  And Murdered came out two whole years after Why Am I Dead, so that clearly wasn’t an influence.  In truth, the real sources of inspiration that led me to make this game came from entirely different places.

What are those places?  Well no one really asked, but I’m about to tell you anyway, so get ready!

Free Flash Games

You were murdered, and you’re a ghost trying to solve their own death.  Hmm.  That must be from Ghost Trick, right?  Or Murdered: Soul Suspect!  What about that Ghost movie with Patrick Swayze?  Or is it The Crow?

Nah.

About two-ish years ago I wanted to practice programming in Flash and put something small online, so I was thinking up a little project to motivate myself.  The idea was to make something in a week that would teach me the basics.  Something really simple, but still interesting and unique.

So you know what I looked at for inspiration?  Other simple, interesting and unique free flash games!  These were the games that taught me you can create a truly memorable experience with hardly any visuals or assets – that you can leave an impression on people even if the playtime for your game is as short as 5-10 minutes.  And there are a couple such games in particular that gave me the little idea that led to today.

 

I Wish I Were The Moon

This is a small experimental game made by Daniel Benmergui in 2010, more well known for his games Today I Die and his upcoming Storyteller.  In it, you have a camera of sorts that allows you to take snapshots of certain objects in the game and move them around.  Depending on what you move and where, you can change the little story the game has.

You can play it here.

So in this case, there’s a girl on a boat looking up at a boy on a moon.  The girl likes the boy; the boy likes the moon.  This strange love triangle can be played out in all sorts of ways, and the game will respond to pretty much all interactions you give it.  For example, you can immediately dump both the girl and the boy in the ocean.  You monster.  Or you can swap their places, so the boy is on the boat and the girl is on the moon, so she is now also the object of his affection!  Yay!  (don’t think about it too hard)

If you’re quick, it takes maybe five minutes to discover all the possible permutations in the game.  So why am I still talking about it four years after it was made?  Because it was a completely different system than anything I had ever seen before.  I was able to manipulate pieces in the story and directly change it in a way no other game let me, and as short-lived as that experience was, it was very impressionable.

Oiche Mhaith

This is actually some of the more tame writing in the game.

Another experimental flash game made by Increpare and Terry Cavanagh, the latter of which is well known for VVVVVV and Super Hexagon.  You control a small girl who, well…I’ll link to the actual game before I really get into it.

You can play it here, but be warned that it contains adult language and themes and is very very dark.

Simply put, you control a small girl who is charged with the task of putting the minds (souls?) of her mother, father, doll, and dog back into their respective bodies.  The game doesn’t really make it clear which is which, and you have to figure things out by trial and error.  The cool thing is that the game has an outcome for every permutation – put the mind of the dog into your father’s body, and one thing will happen.   Put the doll’s mind into your father’s body, something else will happen.

Similar to I Wish I Were the Moon, this game allows you to manipulate things in the game in a strange new way.  In the former, you could actually move them around – in the latter, it’s much more abstract.  And both games allow for experimentation – you are encouraged to move things around in certain ways just to see what the result will be, even if it isn’t the “correct” interaction.

The defining thing in these cases is that you feel like you are creating meaning in the game.  You aren’t simply picking up and moving blocks – you are manipulating actors in a story, and creating what feel like emergent scenarios.

Creating Meaning

So I thought, giving the player the ability to manipulate story objects was cool…what if I allowed the player to do so by directly assuming control of things in the game?  Like in I Wish I Were the Moon, you could move them around to do different stuff.  And like in Oiche Mhaith, different combinations of characters could lead to different results.

Except in this case, it wouldn’t be a combination of mind/body pairs – it would be a combination between the character the player is currently controlling, and the character they choose to interact with.

This was the core that I started with, and at this point there was still no ghost stuff going on.  Instead, I was thinking of just arbitrarily giving the player this power to control people, without having a narrative explanation for it.  I also wasn’t entirely sure that you would interact with people by really talking to them – the interactions might be more abstract or exaggerated than that.

I believe it was my sister who came up with the narrative idea first.  I had voiced an incredibly vague and ethereal concept to her, and she thought it would make sense if the player was a ghost.  And since they have to solve some sort of puzzle, they could be a ghost detective, charged with solving a mystery.  I then made what now seems a somewhat inevitable last step – how about you’re a ghost solving the mystery of your death?

And the rest is history.

The first playable build.
The first playable build.

About Multiple Endings

I’ve been trying to put together a post focusing on the time where I was less active on the blog/online, and as a bit of an overview for the past year…but writing it out in a way that fits the nature of this blog has been difficult.  It’s a lot of material, so it’s a bit hard to decide how to organize it, and it’s a bit of a departure from game development.  Meanwhile, the days keep ticking away, so I thought I’d give an update on the game just to get a post out.


I’ve been more active than ever in development, and things are moving along quite well.  After taking a lot of time over the past several months to update visuals, add support for game options/configurations, and work on Rebirth, I’ve returned to filling out the game’s story.  Over the past month I’ve added in all of the art, dialogue, and scripting for the game’s story, all the way up to the ending.

The ending is done?!

Well.  One of them.  As I’ve opted to have multiple endings for Why Am I Dead At Sea, I’ll have to finish the “ending” to the game several times before I can say that it’s actually been completed.  However, what I have finished is the basic framework that the separate endings switch off from, which means that the remaining work is a bit simpler than what I’ve already done.

Given that all of this progress takes place at the game’s finale, it’s hard to show things I’ve worked on without immediately and blatantly giving away important details about the ending.  Like its original, there are some revelations and plot twists at the final hour – and they can vary, depending on the ending you get.

But I can speak in generalities and talk about the structure of the endings without giving away details.

Lifeboat
An object used in one of the epilogues.

I can be a very compulsive person.  As a result, I am all too familiar with player paranoia: when a player feels anxious about if they’re missing some content.  If you’re walking through a maze and find the exit, only to turn around and check every last dead end so you know you didn’t miss anything – that’s player paranoia.  When a game overwhelms the player with choices and gives them a clear right/wrong answer, it can be an unpleasant amount of pressure.  I recall playing the acclaimed Metroid Prime for the first time.  I was having a lot of fun with the game, until I learned from somewhere that there were multiple endings, and that they were determined in large by the amount of hidden upgrades you collected throughout the game.

…I never played it again.  That knowledge turned the game, for me, from fun exploration into obsessive item-hunting.  It’s exactly the kind of system I don’t want in my game – I don’t want to burden the player with the worry that they made the wrong choice or missed things early on and unwittingly doomed themselves.

Admittedly, there is a lot of story-telling potential to having the game remember the things that you do.  And I plan for that to be an element in the game.  However, the factors that influence the game’s ending will follow this pattern:

1) The more drastic a factor changes the story, the later in the story it occurs

2) Conversely, the earlier a factor occurs in the story, the less significant it is to the overall direction of the story

Some more objects used in the latter parts of the game
Some more objects used in the latter parts of the game

What this means is, essentially, there will be two types of variables that change the ending/epilogue that you see.  Conversations that occurred in the early/middle parts of the game could change additional, flavor dialogue at the end.  It would give a nod to some of the choices you made earlier on, but does not itself decide the direction of the story or the resolution of the mystery.  On the other hand, there are larger revelations and clues you can find, which will be available all the way up to the end of the game, which will decide the ending you get.

To reference what has to be probably my (and many other peoples’) favorite alternate ending design to date, the Suicide Mission in Mass Effect 2 has lots of smaller factors that decide who amongst your crew lives or dies – but ultimately, that isn’t what decides the climax of the story.  At the end, there is still a big choice you can make at the end regardless of what you’ve done beforehand, which means you don’t feel shoehorned.  It’s a good blend between acknowledging the player’s previous choices and allowing them to make new ones, and the ending of Why Am I Dead At Sea attempts to achieve that effect.

Greenlight!

In my last post I talked in detail about the reboot of my very first flash game. But what about its follow-up game, which I’ve been pouring way more time and resources into making? It’s been forever since I had a proper update about that!

First off, I’ve finally put the game up on Greenlight! If you want the game to be on Steam, I’d like to ask you to go onto its page and vote “Yes”. I mean it. Right now! You can read the rest of this post after you do that.

Greenlight Page

If you somehow didn’t know, getting on Steam is pretty important. Most indie games report that something like 80%+ of their revenue comes from Steam, and that’s not even considering the sheer amount of publicity you can get simply from being accepted onto Steam. And there are still plenty of good games that don’t necessarily get on Greenlight, so really, your vote is extremely important!

Okay.  That’s enough groveling.  Just kidding, did you vote yet?! Go vote now! I mean, unless you really just don’t want to buy the game, it’s not like I can force you. But otherwise, vote!

It’ll only take a second!

Alright, now that you have voted, I’ll continue. The only real barrier to getting the Greenlight page up was having a serviceable trailer to put up on the page. Having the right trailer is actually really important and very much worth being a perfectionist about, so I took my time putting one together. Since I have no experience or natural talent in editing videos or doing anything like this, it was a learning process. Here’s the final draft that I used for the Greenlight page:

I still feel like there’s a lot of room for improvement with it, but I was worried that I would just keep redoing it until the end of time. I’m also thinking about throwing together another trailer which shows off the cast of the game more. Any trailer should have a simple message, and this one aims to lay out the basic premise of the game: “You’ve been murdered, and you have to possess people to figure out why.” But to me, the most interesting part of the game is really the cast of characters you’re possessing, so it might not be a bad idea to have an additional, more optional trailer that showcases that.

We’ll see.

In other news…last time I talked about the game I mentioned that I would be submitting it to Indiecade. Well, I did, and bad news, it didn’t win anything. It was a bummer, but I sort of expected it after not hearing back for a while.

I have to say, though, that I was blown away by the sheer volume of feedback I received from the judges who viewed my game. They all clearly played through all of the content I had finished at the point I submitted the game, which I can only guess took hours and hours of playtime. In one case, I found two emails from a judge: the first one asking me how to get past a certain point in the game, and a second one, sent an hour and a half later, letting me know he figured it out!

In addition, there was a lot of very positive feedback. There was also a lot of criticism, but not only was it very helpful to hear it, it was also very fixable – the biggest areas of improvement were usually problems or bugs that were unintentional, or issues with the design that I didn’t originally notice but could improve without much work. And some of the positive feedback was extremely positive – the sort of positive that’s even a little inspiring! So all things said and done, I’m extremely happy I submitted my game and very grateful to the judges that reviewed it.

Next blog update, I’ll probably get a bit more personal and talk about development of the game in relation to the rest of my life, both looking back and going forward. Until then!

Indie-cade and Eye-candy

If you’ve been following this blog for a while (specifically a year), you may remember when I set a goal for myself to submit my game to Indiecade.  Well, you see, though I may have implied that I was aiming for Indiecade 2013, I was actually planning on submitting to Indiecade 2014 the entire time!  That is to say, in roughly the next week I’ll be submitting my game to Indiecade, right on time, just as planned.

Hmm.  Yes.  That’s what we’re going with.

It’s pretty exciting to send the game off for the first time to a real critical “audience” (if only of one or several people) – and it’s exciting that I feel the game is at a point where it’s really presentable and can speak for itself.  Though aesthetics may or may not be critical for game competitions of this sort, I definitely took a lot of time recently implementing changes to the game’s visuals that I had been aching to for a while.

Let’s take a look, shall we?  (NOTE: Below are some GIFs which wordpress resizes, and it kinda messes with the image.  To see them in their proper resolution, simply click on them.)

 

1. Shadows!

Bonus included: The tiny "redesigns" that rooms go through over time
Bonus included: The tiny changes that rooms go through over time

Once upon a time, Why Am I Dead At Sea had no shadows.  It existed in a world with purely ambient lighting; light was everywhere.  It came from nothing and went nowhere, and therefore, no shadows!  Someone pointed out to me that shadows were a relatively easy change that could make everything seem more grounded.  It was obviously good advice, but at the time I wasn’t willing to go through every prop when I had a million other objectives, so I took a half-measure and added shadows to all of the characters.

Well now, all people and objects have shadows!  And as expected, it didn’t take a huge amount of work, and definitely makes the game look better.  Everything is less floaty and it’s much clearer where they’re positioned on the ground.  It also just kind of breaks up the flat colors of the floors and adds some much needed detail.

 

2. Additional Backgrounds

I never thought I'd be making these graphics when beginning the project...
The middle one, the sunset, was finished a long while ago and seems to still be the best of the three.

As the content for the game continued to be made, there were points in the story where it is made clear that time is progressing, either from one day to the other or from morning to night – and yet when you go onto the ship’s outside deck, it was always the same time of day – sunset!  That’s obviously because it was the only background I had made at that point.  For some points in the game, though, it seemed really important that I get the alternate backgrounds which show different times up and running.

They help set the mood for the story in a big way, so once I got to a certain point it became a really high priority.  But, that’s not all I did with regard to the outside-the-ship area!

 

3. Parallax Scrolling

I don't usually put GIFs directly onto the blog out of consideration for those with slow internets, but this just doesn't work in still image.
I don’t usually put GIFs directly onto the blog out of consideration for those with slow internets, but this just doesn’t work in still image.

If you’re not familiar with parallax scrolling, well, parallax is the effect of objects farther away not moving as much to us, thereby creating our perception of depth.  Parallax scrolling is the simulation of parallax in media whereby different objects scroll at different speeds to signify depth.

After creating my lovely backgrounds for the outer deck, I brutally chopped them up and put them in separate images.  I then created a special kind of Prop (ParallaxProp) that contains a set of images and has them scroll along with the game camera at different speeds.  It was actually really simple to implement on the code-side; it probably took more time overall just cutting up the backgrounds and making sure the end visual result was what I was looking for.

Because the area is so relatively wide, if the scrolling is too extreme things don’t really match up or work out how I want them to.  So, the scrolling difference is intentionally small, creating a subtle but still noticeable effect.

This one is particularly subtle, but the lowish FPS of the gif doesn't help.  In game it's more apparent.
This one is particularly subtle, but the lowish FPS of the gif doesn’t help. In game it’s more apparent.

This was one of those features where it was “really cool if I could implement this, but I don’t know…”  So, it feels really nice that I actually did end up getting it done!  And it really didn’t take me a huge amount of time.

 

3. Water Animation

splashgif
I tried to keep Darryl inside the ship for this shot, but he directly disobeyed my orders!

I always knew that the boat’s lower outline and the ocean were going to need some kind of…change.  A pure and unchanging blue rectangle didn’t quite cut it.  What I have now is still imperfect in several ways, but at least communicates what is actually happening and isn’t as blindingly static.

Figuring out how I wanted to do this and implementing it were surprisingly tricky.  For one thing, the water was originally a part of the map itself and I’d never made an animated object as large as this before, so there were a lot of possible ways I could implement the small waves in the water.  I could animate them tile by tile, in which case it might make more sense to make it an extension of the map itself, or I could make one huge animated object, in which case I would probably make it a prop.  The latter would most likely put much less strain on processing time, but would result in a really unwieldy and humongous bitmap.  I ended up taking the middle-ground and made some 7-8 animated props, each of which was a small but wide “strip” of the full thing.  The image files are small and simple, and there still isn’t a lot of labor that the game has to do to animate them.

I also had to decide how I could get animated water to agree with depth, since the part of the background above the horizon has objects (ie the sun and moon) that are far in the distance, while the animated water is completely flat.  Most ways of trying to actually get the water animation to obey depth seemed either ugly or way too hard, so I compromised again and simply had the opacity of the waves fade as they get closer to the horizon.  This was only possible because of the approach I took in cutting up the animation into small little strips, so it’s nice how the two issues fit together!

 

Actually this is not all of the visual changes I made, but they’re probably the most apparent ones, and they’re the ones I’m proudest of.  None of the changes I have made are huge, as I’m not looking to give the game a full make-over, of course…but they add up to a much prettier game nonetheless.  While there are still some things I really want to fix or renovate, the game is actually really close to how I expect it will look as a final product.

 

Now then…fingers crossed on the whole Indie-Cade business!

 

Stem to Stern #2 : Artificial Intelligence (part 1)

When it comes to programming Why Am I Dead At Sea, there is one feature that sticks out above all the others in terms of time investment and difficulty.  It has ruined many a day with debugging.  It has at times leeched me of all enthusiasm to get work done.  It haunts my very dreams (well okay, maybe it’s not that bad).

It is, of course, AI.

It’s not that I regret including it – I still think it’s almost a necessity for the game, and despite how much time it has wasted I’m sure it’s been a worthwhile investment.  However, I can confidently say that I would have designed other things in the game differently if I had been able to predict how much they would complicate the AI.

But those concerns are buried deep in the game’s systems.  Let’s start with a bird’s eye view of the game’s AI, and work our way down.

AIoverview

As you might imagine, one object being inside another symbolizes encapsulation – that is, they are literally an instance of that class contained within the other class.  The lines next to Behavior symbolize the classes that inherit from it (Behavior being an abstract class).

Not surprisingly, the Character class is at the top – it is one of the game’s linchpin classes.  It contains a CharacterAI class, which contains and handles everything pertaining to that given character’s AI.  In turn, CharacterAI contains a Behavior object and a CharacterCommand object.  The former deals with the higher level concerns of getting the character to move around – this generally means interpreting and/or setting waypoints, and then using those to create CharacterCommands.  The latter goes deeper into exactly how to get the character to move – it takes in waypoints and generates a path with the Pathfinder class, then interprets that information to figure out when the character should move, and in which direction.

To hit everything I’d like to talk about will take a lot of time and space, so I’ve decided to split this subject into multiple blog posts, possibly as many as three.  We’ll begin with an overview of the CharacterBehavior class and its children.

The Behaviors

With the main aim of creating human-ish walk patterns, I have three overall behaviors that are used in the game, ranging from simpler to more complex.

Random Behavior

Click to see an animated GIF version of this.
Click to see an animated GIF version of this.

Quite simply, under this behavior the character moves from tile to tile completely randomly.  Aside from allowing the option to set boundaries that will stop the character from wandering too far, there isn’t any other higher level of thought outside of the path-finding.

Probably 90% of the RPGs that I’ve seen or played , especially of the 2D variety, seemed to exclusively have randomly meandering NPCs.  It’s simple, but effective in breathing a bit of life into the background.

Pacing Behavior

Again, click to see a GIF version of this.
Again, click to see a GIF version of this.

Sometimes I want the character to have a bit more direction, but I still don’t need a particularly detailed behavior; in this case, there is the pacing behavior, which creates paths based on whether to go horizontal or vertical, and how far in each direction.  It is also good at demonstrating when a character is brooding, thinking or panicking, based on frequency and distance.

It might be worth noting that the behavior simply thinks of reaching the end-points in the pacing path, rather than explicitly in walking in a straight line.  This means that if there is a pacing behavior in a room with obstacles in the way, the character will still move around them rather than exclusively walk in a straight line.

Routine Behavior

Want to see this in motion?  Click.
Want to see this in motion? Click.

And lastly is the most versatile and communicative behavior, which is used (as the name implies) for when a character has a routine of some sort.  The behavior takes in an arbitrary number of way-points and information about them, and the character is then made to move through them in a certain order.

This has been the most commonly used mode since it can get a lot of meanings across.  On the smaller side, it could simply be getting across the idea of a single action: for instance, the cook has a routine where he walks from one kitchen appliance to the other.  On the larger side, it could mean a daily routine that takes quite a long time to complete: for instance, the first mate has a large circuit across most of the ship in which you can see him checking up on everyone.

This is only a rough idea of all the waypoints.  Click for animation!
This is only a rough idea of all the waypoints.  It’s a bit outdated.  Click for animation!

All of these behaviors are created before the game actually runs, and are stored in a separate place called the BehaviorLibrary.  This is generally done simply with Tiled; I put an AI object right on the map where I want the waypoint to be, then give it properties.  When the game loads the map file it also parses these AI waypoints and creates Behavior instances based on them.

AIGraphic5

When they are required in game, the CharacterAI sets its current behavior to one of them.  Every tick in the game, CharacterAI queries Behavior to see if the character needs to go somewhere new – if it does, a new CharacterCommand is created with information about the new destination.

There isn’t a huge amount of gritty detail in this post, since the Behavior classes themselves don’t care too much about the details. When we get into CharacterCommand and Pathfinder, that will be different!