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!
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.
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:
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.
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.
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:
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.
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.
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.
For the past two weeks I’ve been doing a mix of website work and programming. My site at peltastdesign.com was quite rough looking, so it was about time that I put more effort into it. This involved more seriously learning HTML/CSS than just the previous dabbling, which turned out to be extremely straight-forward. The result is a cleaner and snazzier, if still minimalist, layout. If you check the site out and have some feedback on it, feel free to shoot me a message.
As is though, the website feels a bit bare under the “Projects” section. That’s because I’ve spent my time working on only a few very time-consuming projects; Mandate was/is a hugely ambitious project, and I spent more time polishing Why Am I Dead than I did programming it. And I can see the strategy game that I’d mentioned beforehand becoming just such a huge, time-consuming project, so I’m putting it on the back-burner. I may still work on it here and there for fun, but it won’t be the focus of my attention.
Instead, I’d like to shift tracks and work on smaller projects which take less time, are inevitably less polished, but still demonstrate a game concept successfully. Not only will this make it easier to keep momentum, but it will be far better practice for me; while there is something to be said for really polishing and smoothing out a game, it doesn’t teach me as much about the artful design of game mechanics. When an artist is starting out learning the human anatomy, do they spend their time inking and coloring their studies, or do they just sketch it out and then move on?
So, since last Wednesday I’ve been working on a smaller idea. It’s a bit of a blend between lots of different things, but could be summed up as a turn-based action game, I guess?
As you can see, it centers around two people duking (or stabbing) it out by selecting different actions during their turn. It draws influences from games that in my opinion make turn-based combat work, such as the Persona series, a Flash game called Sands of the Coliseum, and Pokemon. My brainstorming also involved some very non-intuitive sources, such as Dark Souls, the fighting game genre in general, and Poker. I find that this format (which is usually seen in RPGs) is satisfying because it’s good at abstracting action and making it purely an exercise of decision-making; but usually it ends up hiding behind number-crunching rather than making actually interesting decisions. So my goal was to make a game somewhat reminiscent of back/forth RPGs, but with underlying mechanics more akin to fighting games, which can stand on their own.
The core mechanic is something of a rock-paper-scissors; attacking beats dashing, parrying beats attacking, and dashing beats parrying. Unlike a lot of turn-based games, the results happen simultaneously, so there’s no situations where the first person to move wins. You also submit two actions per ‘turn’, so you have to guess what your opponent’s two actions will be. For instance if I feel pretty confident that my opponent is going to attack me the very next turn, I would submit a “Parry” action to counter his attack, and then submit an “Attack” action to take advantage of my parry. But there’s also the possibility that he waits for his first action and attacks on the second!
You’ll notice the graphics of a body at the top left of my prototype screen; there are five different parts of the body that are separate targets: the head, torso, left arm, right arm, and legs. When you take damage, rather than simply losing “health”, one of these parts of your body is damaged. And if one part of your body gets damaged too much, you lose. Likewise with the opponent. And depending on which part of your body is damaged, certain actions will be restricted. For instance, take too much damage to the legs and you can’t move.
You also have to keep track of stamina, which automatically regenerates and is used for physically taxing actions. You can put down as much stamina as you want on an attack, for instance, and in the case that you and the opponent attack similar targets, the attack with the higher stamina investment wins out.
There are more details about the exact rules of the game, but you get the idea. I expect some of the mechanics to change as I finish the prototype and see which ideas work and which don’t.