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!

Stem to Stern #1: Narrative/Gameplay Structure

I had originally planned on opening up my series of more informative posts with a big post on AI, but since I’ve been mostly doing dialogue and cinematic writing, I’ve been inspired to make a post about the game’s overall structure instead.

StoryScreen1

Let’s start by describing the game in the simplest and most basic way possible.  The gameplay involves me throwing a huge amount of writing and text at the player, and having them search for the important bits of information in there.  Unlike other adventure/mystery games, there aren’t many puzzles or problems that if you can’t solve, you’re stuck.  In WAID you always had access to everything you need.  If you felt up to it, you could always brute-force through the challenges of the game by triggering every single dialogue and dialogue branch.

The challenge is to find the hints I’ve scattered in order to figure out which character interactions will get you on the right track.  Of course, the non-vital dialogues are both an obstacle in that they obscure what you need, as well as a bonus in that they can flesh out the story and give further insight to the characters.

Let’s take a look at the structure of the previous “Why Am I Dead”.  There is a wide body of what I refer to as ambient dialogue: the sum of dialogue which obscures the way forward.  There are also smaller pieces of story dialogue which are actually needed to trigger the ending of the game.  The way the game was structured, it could take you hours to finish it, or two minutes.

Image

How does this structure look for a longer game, though?  I would certainly like “Why Am I Dead At Sea” to last longer than that, whether “that” is two minutes or two hours.  So how do we make that happen?

There were two challenges that I saw going into this project.  Firstly, it seemed to me that a longer/larger game would run into the problem of overwhelming the player with far too much ambient dialogue far too quickly.  As it was, the original WAID wasn’t extremely navigable and could bring the player down time-consuming dead-ends.  Some people enjoyed this, but some did not!

And secondly, for a larger story I would want time to pass as the plot moves forward – that is, things would have to be a bit more sequential in order to make sure there was some plot.  In the previous WAID nothing happens without player input except at the beginning and end, which was fine…but in this game that severely limits the kind of story I can tell!

So I decided I wanted to taper the beginning of the game, bringing the player into the ambient dialogue slowly.  I also wanted to cut up certain parts of the game into self-contained ‘chapters’, in which there was only one entrance and one exit, so that some modicum of stage-setting could be done.  The resulting structure for Why Am I Dead At Sea looks like this:

ImageThis is accomplished, admittedly with some awkwardness, by restraining who you can possess and where you can go at the beginning of the game.  For the first two major parts of the game there is a substantial amount of optional dialogue accessible, but not so much that the player is drowning in it.  Objectives are hopefully much more clear.  As each new character becomes available to possess, however, the amount of ambient dialogue also increases.

This also allows for that oldest of design tropes seen so often in LoZ dungeons – if there’s a new character you just unlocked, you can be confident you will have to use them pretty soon.  I wasn’t allowed to guide the player in this way before!

StoryScreen3

And just as importantly, having certain choke-points for the story allows me to do things such as have small periods of time pass, or move characters move around, and so on.  This isn’t trivial.  A weird thing about the last game was that, to preserve an interesting pace, characters had to spill their guts to each other very quickly, without knowing anything about each other!  It was possible to suspend disbelief, but definitely felt off.  This time around I want dialogue to feel more organic, which means at least the illusion of some time passing.

So that is, in a nutshell, the layout of the game.

Really Piling it on Here

Hello from Xi’an, China!  Things have been a bit hectic; I’m just getting over jet-lag now, and I start teaching English classes tomorrow.

Lots of new stuff to adjust to.  New country, new apartment, new school, new students (lots of them).  It might be a while before I get comfortable with all of it!  So, what better a time than now to make clear my goal to submit Why Am I Dead At Sea to IGF 2014?

The deadline is October 19, which gives me about a month and a half to get my current build to competition-readiness.  That really isn’t much time at all!  But more importantly, this gives me a solid deadline and a great reason to get back into full-time development.  To be honest, even though I completely failed to reach my goal of submitting to Indiecade, that was by far the most productive time for me.  I never really was able to match that pace afterwards.  And now that I’m in China and teaching English and all that crazy and awesome stuff, it’s more important than ever that I have a clear goal that I’m working towards.  It would be very easy to lose sight of development in the midst of everything else, and I am determined not to let that happen!

Most of the work left is writing and polishing.  Prioritization is going to be key here — there are lots of side-features that I’d like to implement but which are by all means optional.  If I want to even have a chance at submitting my game I’ll have to be much better at leaving that stuff to finish later.

So….here goes!

The Gang’s All Here

Here’s the art post that I had promised.  I’m overdue, which means that this is going to be relatively long, and I’m going to indulge myself and ramble a bit!

I am right on the brink of finishing my character art, which is a huge milestone.  The character art, while taking up a small amount of visual space in the game, is the focal point (it’s where you’ll always be looking) — and it is where I have allotted the most amount of development time out of all the visuals.  And I think it really shows, and is a substantial improvement from my previous work.

To get a good idea of that, let’s first bring out the mugshots of the cast from the original “Why Am I Dead”:

OldCast

Brings back memories!  At the time, I was pretty happy with this work as a total beginner to pixel art.  And now the full cast for “Why Am I Dead 2”, in all its glory:

Cast

Okay, well, with just a quick glance they do seem rather similar.  After all, I haven’t changed the basic style or resolution of the sprites.  HOWEVER!  I think that even without taking the (much smoother) animations into account, the extra time that I’ve put into these new sprites can be seen when looked at closer.  There is less wasted space in the new sprites, and far less jagged outlines and edges.  Everything about the new characters is more varied — the posture, the frames, the hair, even the structures of their heads.  I’ve also become more sparing of outlines, which helps me free up space, and ultimately add more details.

To give an idea of the progression I, as well as these characters went through, I’ve dug up the older versions of some of the sprites and put them side by side.

First up is Alton, the blonde guy.  As the first character I worked on, he went through the wildest progression.

AltonProgressionversion 1 : OH GOD MY EYES!  Everything about this was terrible, though admittedly it was just to get the idea down.  The hair is too noisy, the arms are nonsensical and hunched over, and the legs are short and stubby.

version 2: Thankfully I changed the arms and legs to look, well, human.  I also simplified the hair, and added color.  His headphones still looked nothing like headphones, as I was struggling with how to depict them.  I was trying, and failing, to draw them as if they were poking straight out at the viewer.

version 3: Subtle changes here.  I tried another kind of headphones, and it also was not working.  I also changed the logo on his shirt from one meaningless shape to another meaningless shape.

version 4: I simplified.  A lot.  Took the t-shirt logo out, and used the new space to draw the headphones as if they were lying flat on his chest.  Toned down the shading on his hair, took out the shading on his pants, and changed the shape of his feet so they weren’t webbed-looking.

XuProgressionversion 1: Hadn’t decided on colors yet, and was struggling with all of the information I was trying to get in.  Rolled up sleeves, collar, undershirt, skirt design — the heavy outlines just looked really busy.

version 2: I changed how the sleeves looked, and added color in a way to make things less busy.  Some details kept their hard outlines, while others lost them.

version 3: Changed the color and shape of her hair, which was cone-like and weird before.  Removed some more outlines, and went back to white shoes.

MarcurioProgressionversion 1: Yuck!  I was trying to experiment with different face-types, and knew that I wanted to give him a distinctive nose.  I wasn’t able to use my limited space to do both without making him freakishly huge.

version 2: Downsized his head, arms, and legs.  Also played with the shirt and sleeves to change his posture and make him look less macho and stiff.

DonovanProgressionversion 1: I had NO idea what I was doing with this guy at first, and was just throwing stuff at the wall.  His hair, face, and clothes are all a mess, and I did this stupid thing where I outline a black shape with a different black.

version 2: Simplified a whole lot.  The hair, arms, and legs all got smaller, and I alternated colors a bit so I didn’t have black on black with everything.  At the same time, I felt I strayed a little too much from my original concept and lost the effect I was trying to get with him.

version 3: A good compromise, I think.  Added detail rather than removed it, for a change!  The posture is more what I had in mind originally without looking stiff, and the different pieces of clothing are actually distinguishable from each other.

Once all of the art is done, I’ll be a hop skip and a jump away from a fully presentable demo.  The hope is to get there by the end of this month.  Time to break out the coffee!

A Very Short Summary of May

Well, May has come and gone, which is sadly to say that I missed the regular deadline for Indiecade.  In my young naive eyes however, hope springs eternal; the late entry deadline extends to the end of June, so I’m not out for the count.  Plans haven’t really changed, they’ve just gotten a bit…bumpy.

There is, I have to admit, still quite a lot of work left to be done, and I fell quite short of my optimistic estimates.    But the deadline did keep me honest, and I managed to accomplish a lot.  The character art is coming around the home stretch, the tilesets for mapping the game environment are done, I’ve cut into the writing, the AI pathfinding/movement has been smoothed out…and I’ve finished implementing another important aspect to the game that I haven’t really talked about yet.  It’s a bit hard to describe in short, but it was a major goal that I’m happy to have behind me.

There’s a lot more to say and quite a bit to show, but for now I’ll end by just laying out some tile art, which is used to generate the rooms in the game.  It’s not the flashiest kind of art asset to show off by itself, so I’m just dumping a lot of it at once to make up for that.  The image isn’t exhaustive, that is to say there are a couple tilesets not shown that will be in the game, but this is more than enough to get the idea across!

Tilesets

The afterlife gets a facelift!

Today I’d like to show the art behind one of the characters in Why Am I Dead 2, and use it as a bit of an example for what can be expected in the sequel’s art.

Meet one of ten major characters in the game, Alton.

RevisedAlton

As you can see, I’m sticking with the Earthbound-esque style of the previous game, which means bright colors, strong outlines, and simple shapes.  However, I will be putting much more attention to detail in each sprite, making presentation better all around.  This particular sprite above is the result of many iterations, and a lot of time spent learning more about pixel art.  I’m generally not so concerned about visuals, but I really want to cram as much personality into each sprite, since the game is so character-centric.

But the part I take most pride in is the considerable improvements that all animations will have.  In the first game, every walk animation had four frames, but with the huge caveat that two of them were just the regular idle frame.  Doing that saved a lot of time, but it’s poor form and looks really shoddy.  To demonstrate, let’s revisit the character Cricket from the first Why Am I Dead.

CricketFrontx2CricketLeftx2CricketBackx2
CricketRightx2

These animations served their purpose at the time, but would be a huge limitation going forward.  You can probably notice that the legs come together and apart in an unrealistic way, which is the cost of recycling frames — and overall it’s a bit choppy.  All of the new animations, however, will use six frames rather than four, and all of them will be unique, and they will have full-body animations, not just moving hands and feet.

AltonFrontx2AltonLeftx2AltonBackx2AltonRightx2

(There will also be some bonus animations that I shall not be posting yet, but which will be in game!)

The one thing that the previous game did have going for it was that all of the animations were done ground-up for each character; I never used character templates to speed things up, which means that every character had a different walk, as choppy as it was.  Quite a few people pointed this out, as it gave each character a different feel, and brought out their personality more — some ran, some hobbled, some sauntered.  Well, that is a practice that I fully plan to continue for the sequel, as time-consuming as it is.  So, expect to see more characters in the future, each with their own strut!

An Update List on Why Am I Dead 2

I was hoping to have an update sooner than this, but programming goes at its own pace and no one else’s.  This should be the first, and last, major WAID2 update that lacks any visual or audible component, as I’m wrapping up the nuts-and-bolts development and moving into art and writing.

I’ve been on the fence regarding how early I actually start uploading material from the game.  I’ve decided recently that I’d rather hold off until I’ve moved past art/writing/assets that are “work in progress” (or worse, place-holders!) before I do so — any benefits of a greater sense of progress for me are outbalanced by the risk of making a poor first impression.

So, sadly, you’ll just have to take my word that all of the following have been done:

  • Completely rebuilt how dialogue is handled, which means…
    • Writing dialogue is way easier for me to write, and for others to read (hopefully)
    • Looping dialogue; before, all dialogue options inevitably led to an end.  Now some options can loop back around to previous parts of the conversation; convenient for menus or for revisiting information.
    • In-dialogue variables (eg. <player> tag in script will be replaced with whichever character the player is controlling)
  • Save / Load Function!  This would have been useful in the first game, but is a necessity for the second!
  • Game “props” (such as doors, tables, beds, etc)  have some extra attributes…
    • They can initiate dialogue when you try to talk to them, as sort of an “examine” function
    • They store information about which character can “use” them.  For example, some doors will be locked for certain characters, and open for other characters (who presumably have a key).
    • Some props will have different dialogue results for different characters.  One character might be bored by an object, and one might find it of great personal significance.
  • New possession ability mentioned earlier: some characters can be “fully possessed”, which allows you to talk as the Ghost through their body, opening up different sets of dialogues and effects!
  • Completely rebuilt how collision detection is handled, which allows for both smoother and more efficient movement.
  • Finished character AI, adding safeguards that should drastically reduce unwanted emergent behavior.

I think that’s all the major stuff, though there were some minor background changes that are much more boring.  Sorry this update is so colorless, but I wanted to get it out anyway.

WAID2 Design Peek #2: Possession and Narrative Voice

One of the biggest questions I had for WAID’s sequel was how I would handle the game’s possession mechanic.  That mechanic was really the whole point behind the first game, and remains so for the second.  I have to revisit it, address any issues that came up, and try to put a new spin on it as I move forward.  Aside from production value, it’s the one area that has the most potential for improvement, because everything else in the game will pivot around it.

Normally in video-games there is a subtle conflict between the narrative voice of the protagonist and the player.  That is to say, who is actually talking or acting — the protagonist of the story, or the person controlling them?  They are often mutually exclusive; the more dialogue that a protagonist is given, the less voice the player feels they have.  This is why so many video game heros are so infamously silent: any dialogue from the protagonist runs the risk of alienating the player and separating him or her from the game.

Case in point.
An extreme example.

This conflict reaches some degree of synthesis in many western RPGs, where the player actively creates their own protagonist and chooses his or her actions and dialogue throughout the game.  It still remains a concern, however, when the restrictions of the overall plot must curtail the player’s freedom to define their own protagonist.

In Why Am I Dead 1&2, you are not a person controlling a character, however.  You are a person controlling a character who is in turn controlling another character.  Therefore there are actually three voices in potential conflict, and in my case none of them should be pushed to the side completely:

  • The player’s voice —  What is the actual player’s goal?  What do they want to do?
  • The ghost’s voice — The dead person’s ghost (ie the real protagonist) is implied to have some remaining autonomy.
  • The possessee’s voice — That the possessee’s motivations are heard is not necessary in ghost folklore, but it is imperative for design.

In the case of the first game I leaned hard onto the side of the possessee’s voice.  It was simpler, and showed off what I felt made the game unique.  The player could choose what lines of dialogue to pursue, and the ghost could possess and move people around, but the actual words and actions that carried the story through were those of the characters who were ‘possessed’.  As a result, some people expressed disappointment or confusion that although the ghost was such a huge part of the story, it didn’t exert any influence on the course of events.  Likewise, some people were unsatisfied that they had to help the ghost, who turned out to have been an unpleasant person when he was alive.

The only difference being I don't even pretend you have this level of freedom.  From popmatters.com
I don’t even pretend you have this level of freedom.  Edited screen from KotOR from popmatters.com

To be clear, I’m very happy with how the format of the original WAID worked out — the possessed characters being able to speak was really powerful, and allowed for over 70 unique dialogues in the game.  Without their voices, it would have been around 10.  You are given the space to explore the characters in much greater detail than if they were overshadowed by the ghost’s voice, and I don’t have any plans of tearing that apart.  What I will be doing, rather, is adding different elements to the game around that base, which either portray the thoughts of the ghost, or allow the ghost and/or the player to influence the way the story goes.

This all means:

  1. There will be two ‘stages’ to possessing someone.  The first is when the ghost does not fully understand a character’s motivations or feeling, and thus cannot completely take control of their body — this results in the same mechanics as the original game, where the possessed character is really the one talking/doing things, and the ghost is just a silent nudging force.  The second stage allows the ghost to fully take over the person, meaning that the ghost itself will be deciding what to say and do.  It must still act within the limitations of its host, however (if you possess an animal, you cannot speak English!).
  2. A more detailed back-story to the dead person.  Of course, in a longer game everyone will have longer back-stories, but the dead person will have a greater share of the story’s overall focus.
  3. Points in the game where you can influence the relationships of the characters and the story itself.  This means more multiple endings!  I’m not going crazy with this, it isn’t going to be a Choose Your Own Adventure game–it will still play out mostly linear.  However, suffice it to say that you will have more control over how everything plays out.

I believe that about covers it.  The implications of these design calls will be explored as development proceeds.  Otherwise, development is going rather smoothly, and I hope to get some art up soon.  Maybe a quick demo video as well.

WAID2 Design Peek #1: Character AI

Things have been a bit crazy, and I unfortunately haven’t been in a position where I can work on my game full-time.  Without going into detail, my hope is that in a month or just over a month I’ll be settled down and can have a routine.  The problem has been as much a lack of free time as it has been a lack of consistent environment; it’s really hard for me to treat development seriously when I’m not in one place long enough to develop a routine.

But I’ve been chipping away at it as much as I can.  Though I don’t feel comfortable at this point showing the progress I’ve made, I can at least talk about it.  For each new post, I’ll give a compact description of something I’ve done or am doing, and more importantly, what I think it will add to the game.

For this update, it’s character AI.

Why Am I Dead occupies a weird space in design.  It plays out like a mystery-adventure, but uses the mechanics of RPGs for interaction.  Because of the former influence, the game will take place in a very confined area that the player becomes intimately familiar with.  Because of the latter influence, all objects and characters must be visible whenever you’re in their vicinity (unlike in adventure games such as Hotel Dusk, where characters often pop in and out only when the story demands it).

For a longer sequel to Why Am I Dead, this means you’ll be seeing the same rooms and the same people a lot.  You’ll get a feel for the whole space.  Partially in order to avoid the feeling of claustrophobia, and partially to create the impression that you’re in a livable environment, I decided that the characters would have to be very proactive regarding where they are at any given moment.

That is to say, having completely static characters that only move when you control them won’t cut it for a larger cast and a longer game.  The characters will all have to move on their own, and not in the way they do for RPGs (randomly and aimlessly); they will move around the ship in routines, and even when you aren’t present.  During different parts of the story, they’ll be in different areas depending on what’s going on.

On the plus side, this means:

  1. Characters won’t be stuck in weird poses for the whole game.  It would break immersion if several days pass in the story but you find that two characters were apparently staring at each other the whole time, because that was how they were when you left them. 
  2. The setting is more convincing.  Towards the beginning of one story day, maybe people are getting breakfast in the diner.  Towards the end, most are probably back in their rooms.  Maybe someone is taking in the night sky outside.  You don’t just see spaces, you see them being used.
  3. More opportunities for character insight.  Mannerisms can be added to characters’ movements; frenetic pacing when a character is stressed, for instance.  It might also say something if a characters is just inside their room all the time, or if they’re always walking around everywhere.

And on the negative side:

  1. LOGISTICS.  Adding these features is relatively easy, and already works for the most part.  Getting them to work as intended will take time.  I imagine traffic jams in hallways and people dry-humping each other all over the place for a while.
  2. If I overdo it, finding a character that you want to possess could be frustrating.  This is a matter of making characters’ movements intuitive and scaled to how much you’ll probably need to control them at the point you’re in.  Given the relatively small environment though, this shouldn’t be a huge issue.
  3. If I underdo it, I could hit an uncanny valley of AI, a la The Truman Show.

Like I said, this is already mostly implemented, as it was one of the first things I started working on.  Getting it to work smoothly will be a challenge, but I think it will add a tremendous amount of personality to the game.