A little bit of coding, and a lot of writing. And art!
I’ve been a bit lazy on the coding front (I blame the excellent Papers, Please and also-excellent Gone Home 🙂 ). Well, kinda lazy. My focus has been on the GUI. I’m using CEGUI and it recently moved to a major new version, 0.8.x. If I did a bunch of work and then upgraded, I’d have to fix a whole bunch of code. So I grit my teeth and tried to update CEGUI.
I’ll be honest, CEGUI is a neat library with a really terrible build process. I spent a week once trying to get it compiling with my old compiler (MinGW), only to find the process not working and one of the devs curtly telling me it was not supported, even though they kinda suggested it might be.
I then moved to the Visual Studio compilers, which had a bunch of extra advantages. After a lot of reading around and messing about, I got the 0.7.9 library built. I recorded in my personal dev journal what I needed to do to achieve this, but when 0.8.0 rolled around, it didn’t work. The CEGUI devs blame the Ogre3d devs, but I’ve never seen a super-friendly side to the CEGUI devs when it comes to the build process. To be fair, there seems to be only two of them and doing an excellent job with the rest of the library that I’ll give them some slack.
After banging my head against the opaque build process for a while, I managed to stumble across some kind soul who has done the world a favour and prebuilt a bunch of useful libraries. This week’s work has been rejigging my build process to bring these in, and at the same time, doing a bit of Spring cleaning on my libraries. The move to CEGUI 0.8.x meant a bunch of really small, annoying edits because of changes that came with the shiny new version. All of the changes are improvements, but it’s still no fun tweaking function calls.
It’s incredibly unsexy and unrewarding work, but it needed to be done.
(You’ll have to forgive this next bit – it was written after almost falling asleep after an Elementary marathon, then reading an article and have my creative spark set off a brushfire in my mind. If it’s a bit fever-dreams-ranting, you’ve been warned 🙂 )
In amidst all the complaining about libraries and compilers, the purpose of The Day After is a little lost. I want to create a dynamically-generated story game. Hopefully something resembling a graphic novel. Most procedurally-generated games have no story, like every Angband or NetHack variant out there. If there are stories to be told from these games, it’s the events that have happened. There’s very little subtext going on. We are good at creating procedurally-generated games that are like action films, but not ones that are like drama films.
Skyrim, for example, is full of amusing stories. Like a time where you wanted to ambush some guards and free a slave, but just before you were going to, a dragon dropped out of the sky and all hell broke loose. That’s fun, dynamic and interesting. But it’s shallow. The pieces are interchangeable – the dragon could be an enraged giant, or the guards just some wandering farmers. And it has basically no bearing on the primary written plot. There’s no impact to a story like that.
A more glaring example of this divide is in the recent Bioshock Infinite. The way you can approach combat and how Elizabeth follows you are all quite dynamic and interesting. But the real story is the in-between parts about Comstock, Elizabeth and Columbia. The combat is a break in the story, and the story is a break in the combat.
I want story and gameplay to be one and the same.
Honestly, I don’t have the resources to make something exciting and beautiful. It takes a lot of artists a lot of time to present a world like Skyrim or Bioshock Infinite. I have to pare back everything to the raw goal of a dynamic, hopefully meaningful story. If I can’t make an exciting game, I want to make a damn interesting one.
It’s hard to explain my strategy for how I’m attacking this, and if I have any chance of being successful. But I thought I might discuss two characters and why they are in the game, as a window into my thought processes.
If you look at the character lineup, we have some fairly standard roles. The Cop is the muscle. The Scientist is the brain. The Courier is mobility. The Hacker, tech. The Spy, cunning. The Medic… well he keeps everyone alive. But there’s two guys that look out of place: The Worker and The Serial Killer. They are twins, and not just because I want to cut down on art assets 🙂
In previous dev diaries, I’ve mentioned how I’ve been looking at the different characters and banging them together to see what stories come out. Sometimes I’m working on the level of personalities. How does the Cop with her world-weariness interact with the intelligent yet whimsical Scientist? On a more philosophical level, The Hacker and The Spy clash on whether truth needs to be free. The Twins are there to provide another dimension of story and structure: theme.
Into the cement mixer of ideas I have in this game is the very old question of Nature versus Nurture. Fate versus choice. Determinism versus randomness. One of the usual questions raised in any zombie film is: Why are our protagonists not zombies? Is it chance? Is it their cunning to avoid being bitten? Or are they a rare breed of people who are immune? Maybe it’s a reflection of their morality; once the cheerleader and the quarterback get nasty in a back room, then it is required by theatrical convention that they are eaten by zombies as soon as possible, whereas the chaste librarian lives to see the credits roll. In The Day After, the zombies are the Psychopaths. The “how” of them becoming psychotic falls under tug-of-war that The Spy and The Hacker have. But the “why” is hard to explore. This is why we need The Twins.
The possibly cliché setup for the Twins is that they were separated at birth after their mother died, and adopted to different families. The Worker grew up normal. So normal he is boring. He struggles to achieve in life, and secretly lays the blame for that on his vanilla upbringing. His brother, on the other hand, is exceptionally intelligent, but went down a darker path of abusive homes and abysmal care by social workers. This narrative framework seems to fall heavily on the side of “nurture” in the debate. So the underlying theme of the game is to challenge that, or assert it in uncomfortable ways.
Here’s a bit of backstory for Elijah (The Serial Killer) that I came up with tonight, which I find fascinating. If I ask you to name, say, 5 examples of when you were a genuinely good person, you could probably easily do that and feel good about it. But if I ask you to give me 20 examples, you’ll have issues. More examples should make you feel better, but studies suggest that trying to find a longer list actually has a large negative impact.
Now imagine Elijah being a young, very intelligent boy in a troubled home. He has a long-term social worker who is frankly dreadful. She thinks she’s intelligent but she is not. He knows she is not, but puts his trust in her. She attempts to rectify Elijah’s emotional problems by trying to instill in him a sense of goodness. But he’s a troubled boy, so instead of getting him to recount 5 ways that he is a good boy, she wants to go above and beyond and ask him for 20. When he fails at this task (because of the unintended psychological quirk), she is disappointed in him. Being an intelligent boy amplifies this shame – well maybe if he can’t think of 20 examples he isn’t a good person, and if he isn’t a good person, then maybe the bad things happen to him because he’s a bad person. One failed exercise snowballs into a twisted rationalization for the world and self-victimization. And, even worse, because he’s intelligent, way back in the quiet parts of his mind are murmurings of doubt, recognizing that something is up with this social worker arrangement but he’s young and naive, so he’s stuck in this hell. This inculcated shame manifests as a displaced anger against certain types of women, leading to his unsavoury plunge into murder.
Underlying this whole cascade of thoughts, tricks and interactions are elements of the nature versus nurture debate. People take for granted that intelligence is a “nature” thing. It’s clear that the homes and the social worker are a “nurture” thing. But there’s tension between both in trying to lay blame.
His brother Joel has the opposite issue – he seems stuck with his lot in life because he’s a “natural loser”. Something in his genes makes him strike out with women and never really climb the promotion ladder. He rails against this by trying to become a stand-up comedian, even though he’s not actually funny. Maybe being a comedian is a thing you practice, or maybe you’re naturally funny. Joel is stuck in the “nature vs nurture” mire in a fundamentally different way to his brother.
I’ve threaded into each of the characters little issues like these. They loom large in The Twins, but you can see it in the others. The Cop deals with family, organizations and societal structures. The Spy deals with rationality versus trust. The Scientist deals with responsibility and universality.
I certainly don’t want to clunk players over the head with these themes and issues, but throw them into the jumble of things that come out in the stories. The AI director is directed to subtly use the setups, themes and ideas that I’ve come up, but the story is what a player reads. If they find this nature versus nurture conflict, then yay. If not, maybe there’s something else that grabs them.
It’d be nice if this sort of tapestry reveals itself over several playthoughs as you get used to the systems and begin to understand the theme. The characters are being designed in a way that is both solid enough to provide that foundation, yet dynamic enough to roll with the plot of an individual game.
That’s a lot of words, sorry. For your reward, the final piece of commissioned action scenes, drawn by Alice Carroll. This one took a while to get right, but the details are great. I like how it tells a nice triangle of story between The Spy, The Cop and The Hacker.
The Short and Sweet
Recently completed tasks:
- Attempted to compile CEGUI. Failed.
- Integrating pre-built GUI libraries into my build process and do some Spring cleaning.
- I changed the blog’s theme because the old theme was broken. I want to make a custom theme, but this will do in the interim.
If this blog theme (or the RSS feed) are broken, let me know.
I’m working on:
- The GUI. Nothing but the GUI. Seriously this time.
By the way, if you have any questions about the game, or want me to talk about a particular part of it some more, let me know.