Archive

Game Design

Well, I’m back to working on EverEnding. That side-project ended up being exactly what I didn’t want it to be, an excuse to work on a whole bunch of tools without ever making an actual game to go with them. We’ll call it a learning experience. What did I learn? I learned that I have a habit of avoiding the scary unquantifiable parts of a project in favor of working on parts that feel like safe investments – that I feel, somewhere inside myself, that if I pour my efforts into making tools and systems that that’s a safer gamble to me than pouring them into the actual core of a game. Art is scary! The more time you have to put into making it, the scarier it gets – in the first place, making art is like putting a message in a bottle and letting it out to float on the sea, and it only gets more stressful when you spend more than a year creating that message. The solution is not, I think, to spend another year developing new bottle and paper and ink production facilities to make creating each message that tiny bit less terrifying, but it’s an appealing option to take whenever it presents itself.

Oh, also in addition to those big existential questions I guess I learned a lot about making a scripting system and working with OpenFL. So that’s good too.

Once I decided I’d basically dead-ended, it was clearly time to head back to EverEnding. However, I’d left the project in uh… not a great place. I’d completed about half of the OpenFL port, and lots of systems weren’t running and I’d left lots of bugs in the systems that were running. Eventually, after lots of debugging and deliberation, I ended up rolling back a number of the changes I’d made and reverting back to Adobe AIR… for now. The reason for this is that switching to OpenFL would not only require me completely rewriting all my rendering systems, it would also make a couple of the special effects I’m planning extremely difficult. I really want to be actually working on a game now, so I figure rather than resolving all these issues right away I can defer them for a while. A big thing that enabled that is that OpenFL now supports Adobe AIR as a target platform, so with a few checks in my code to handle cases that are unique to OpenFL (most of which I’d already implemented) I can have something that can run on that version of OpenFL with no changes and, perhaps soon after, build to other OpenFL target platforms. Even if I’m not prepared to implement OpenFL just yet, with my experimentation here and with the side-project I think I have a pretty good idea how I’ll handle it when that time comes.

So, back to working on EverEnding: There were a few big design decisions I’d been deferring, one of which was specifically how to handle the narrative of the game and the other was creating some sort of special moves the player could unlock over the course of the game. I think I figured out a good system for creating a narrative in the style of sort of a story-book, with narration synced to music and text fading in – this is probably something I’ll want to prototype, though, to make sure it actually feels right. The special moves are like 75% figured out, but only the smallest slice of that stuff will be in the first chapter of the game, which is the one I’m focusing on right now, so I can figure out the last of that later. After I got that stuff basically sorted, I created a big task-list for creating chapter 1 of the game. I already had a task-list, but I made one that was bigger and more thorough, and had accompanying time estimates for each task. I tried to overshoot every estimate, but if they’re accurate than I have something in the region of 1300 hours to put into the project before the first chapter is complete. That’s a lot. Then again, I’ve put that much time into TF2, and I didn’t even make that game.

I have my work cut out for me. I’m going to start scheduling myself a bit more strictly again, though I may only get a few days to work to that schedule before I have to leave for a family thing, but with all this down and planned out I feel – well, not exactly optimistic, but determined I guess. I just turned 35, I’m starting to get the tiniest bit of grey in my beard, I got a blood pressure monitor for my birthday. I really do need to actually finish a project.

Advertisements

Games are, generally, engines for responding to player input. Whether the game feels good is largely a matter of how robust the response is – robust both in how closely it interacts with the player’s input and in how well-constructed it is. A systems-driven game would be primarily the former, capable of reacting to a wide range of different situations in ways which are individually rather shallow but, in interaction with each other, can be rich and complex. Linear narrative games, on the other hand, focus on the latter, only responding to a narrow range of inputs but responding with content that has had a great deal of thought put into it.

Let’s disregard linear narrative games for the moment, because what I’m interested in right now is that idea of responsiveness. Every time you, the player, takes an action within the game and the game responds to it, that just inherently feels pleasurable, the pleasure of a toddler dialing a fake phone or ringing the bell on a bike. Doing something, and something happening in response, is an intrinsically pleasing act.

Now, games try to be ambitious in all sorts of interesting ways, and one of the most popular is having some sort of morality system: Do Good things and good things happen, do Bad things and bad things happen. There are a whole lot of conceptual problems with this, some of which I’ve gotten into before, but a huge fundamental flaw with these systems as a form of messaging is that there’s no way bad things can happen in a game – that is to say, there’s no way that a game’s reaction to your decisions can really be ‘bad’ because the mere fact that it is responding to your decision is pleasing to the mind on a fundamental level. When you’re playing Deus Ex, you don’t get flustered or upset because JC Denton got in trouble with his boss for poking around in the women’s restroom, you’re just pleased the game noticed something you did. You can’t even really punish the player by making things more difficult to them, because at that point you’ve given them a challenge run – this is fairly directly critiqued in the genocide story path in UNDERTALE (I’ll avoid getting into specifics here for spoiler reasons, but you can read my thoughts on it, among other aspects of the story, here).

It seems that the best way to discourage a player from taking an action is merely to fail to respond to it at all, rather than punish them or shame them for it: After all, many people find punishment and shame quite enjoyable under safe circumstances. Perhaps this tendency, rather than actual narrative success, is what has preserved the morality system in games – but I digress. In Far Cry 2, there are various animals wandering the deserts and forests you’re exploring and fighting through. The developers didn’t want the players to hurt or abuse animals for fun, so they just made them so they dropped dead if anything happened to them. This lead to some amusing scenarios where a deer would occasionally get bumped with an open car door and immediately be stricken dead, but at least served the purpose of keeping the animals from being cheap physics toys for the players to amuse themselves with.

None of this is an argument to disinclude consequence or morality from your game: After all, we include these ideas in other narrative forms all the time, just with no expectation of the audience to feel personal shame or chagrin for the actions undertaken. I would relinquish any idea of making the player ever regret taking an action in a video game on the basis of that action’s consequences: There can be no such thing as punishing a player with the consequences for their actions when consequences are just so delightful, regardless of their intent.

They say there’s no story without conflict. I don’t really understand why this is said so often and with such confidence, but that seems to be how we teach fiction-writing around these parts because I’ve heard it a lot. I dislike broad structural declarations like this, since inevitably stories are warped to fit the lens rather than the lens being applied to better understand the story: If there’s no interpersonal conflict, then the conflict must be between a person and their environment or their own mind… this covers a pretty broad range. Yes, you can describe a plot this way: Nearly any sequence of thoughts or events could be vaguely described as a conflict, in the same way nearly any arrangement of objects could be turned into a physics diagram, but only occasionally would these be useful intermediary steps towards solving a particular problem. Likewise, only occasionally is the conflict-centered view of storytelling the most useful and interesting approach.

There are lots of stories! Stories of love and loss, of the unreliability of memory and the temptations of imagination and of hurt and exploration. It’s impoverished to regard these as a conflict between Man and Time or Man and Death. What sort of conflict is that? We are not in conflict with gravity or with the ground, we are suspended between them. Even if we fall, our death is not conflict with the ground. Things happen that don’t fit this conflict model, and they frequently make interesting stories anyway. It’s a bit terrifying that we’ve been able to tell the line that stories are based in conflict as a generally uncontested bit of storytelling advice for so long – that, itself, tells a story: It’s like science fiction, a culture that can only understand the world through fights.

Similarly, a popular description of gameplay, coined by Sid Meier, is as a ‘series of interesting choices’. This is broader and, in general, I have less direct criticism of it – my issue is more with what we regard to be ‘interesting’ and what we regard to be ‘choices’. Even in completely passive entertainment along the lines of movies we make choices – we choose which characters we like, we choose what to focus our attention on and choose from different possible interpretations of what’s going on and why. Even in a passive medium we are active audience members, parsing and digesting and translating. This process is much the same as it is in games, except games then ask us to take that interpretation one step further, to translate it into an action that then affects the state of the game.

Since we have culturally interpreted all fiction as being based in conflict, it’s then a short jump to interpret all ‘interesting choices’ as being based in conflict. And, when you frame a choice with conflict, it tends to be crunched down into whether it allows you, as a participant in this conflict, to come out on top. Every interpretation, every decision, becomes a way to navigate a way to victory.

To most people, this is what a video game is.

However, none of this is intrinsic to the medium. Stories don’t have to be about conflict, and choice isn’t just a way to win battles, and interest isn’t just the currency of problem-solving. Games structured this way are fine, and it’s great that they’ll continue to exist because I like shooting digital people with digital guns as much as anyone, but when you take a step back from any of these assumptions it becomes obvious how incredibly tiny this conception of what a game is compared to the massive possibility of what games can be. I mean, we’ve already cut off a huge amount of possibility space to explore in fiction by centering our conception on conflict, and we’ve further constrained games to be a subsection of that.

There’s so much resistance to seeing games as anything but engines for presenting choices that navigate supremacy in conflict, but they could be more. They could be anything.

Games are about progress – I can state this with some confidence since it’s a natural outgrowth of games both as narrative works and games as systems which generate results from input. Even games that are technically endless are built on this idea of time passing and things changing and of dealing with whatever emerges afterwards. However, let’s disregard narrative progress for the moment – after all, moving the plot forward is in no way a concern unique to games, and most of the techniques used to do so were established elsewhere. Let’s also disregard the progression of player skill, since all the game designer can do to affect player skill progression is to give that player an interesting space in which to develop those skills, and tools to understand the necessary steps in doing so.

With those two safely out of mind for the moment, let’s talk about Power Progression: Leveling up, finding sweet loot, going to a skill trainer, whatever. There’s a lot of it in games now, much more so than there used to be: Early arcade games were mostly about player skill progression, though they did have a few levels and some nominal narrative which also were progressed. Still, the future that the player imagined when they played those games was not that of a thrilling conclusion or a cool super ability, but becoming better at the skill of playing the game. Power progression really started taking off, though, when it became possible to save a game in progress. Buying items and leveling up became a lot more appealing when those items and levels didn’t disappear whenever you took a break or had a power outage. Players loved it, because it gave them an extra reason to come back, a sense of having invested something into the game which they could recoup later. Designers loved it because it gave them a long-term design space to work with, where the way the system interacted evolved over time.

The Problem emerged when the suits started to love it. Capitalists love power progression because it makes games addictive, incentivizes players to drop extra money in, and incidentally serves to reinforce the propaganda of capitalism: Stick with the system, work hard for the system, and eventually you will be rewarded. It turns out that, like adding a nauseating amount of salt, almost any game can be cheaply made more compelling just by adding some sort of long-term progression on top of whatever game is already there. A sense of progress is an easy emotion to exploit, because it makes even activities that are soulless and unappealing feel worthwhile: Most of the tech sector is founded on selling a sense of progress, even though the objects that are supposedly emblematic of this progress are trinkets of questionable utility at best and Looney-Tunes-esque smart house paranoia fuel at worst.

So we add upgrades and levels and purchasable boosts to upgrades and levels and we add prestige and unlockable skins and so on and so forth, just to make the player feel that their time-wasters aren’t wasting their time. That this time is an investment.

With this all in mind, the sort of power progression you want to put in your game becomes quite a pressing question, one that interrogates both what experience you want to impart to the player and what is an ethically sound way of offering that experience. Even if not quite as dystopian as some of the free-to-play scenarios we’ve already seen play out, the tendency of RPGs to sub in progression of the player character for any meaningful player skill progression and, in the case of MMORPGs, any meaningful plot progression as well, also raises questions of how many of these empty calories can we feel okay about feeding to players.

This sort of player progression faked through creating a more powerful player avatar could be taken so much further, to an extent that’s creepy to think about. Like an inversion of the adaptive difficulty systems that were trendy in games a while back, you could design a game that quietly became easier and easier the more it was played be the same person, perfectly faking the experience of them improving. With thumbprint and facial recognition and constant internet connections, you could even make it so the game matches difficulty with its player across devices – you could make it profile the player’s play style to sense discrepancies in case you tried to spoof it. Imagine a version of Super Hexagon that slowly went slower and slower the more you played it, like Mrs. Twit in the Roald Dahl book The Twits, who is fooled by her husband into believing she is shrinking when he gradually elongates her cane and the legs of her chair with little slivers of wood. Once there’s one such game, there will be many such games, making the sense of progression we feel from experience points feel negligible in comparison. We’d be fooled into thinking we were giants. Everyone would be an expert, regardless of expertise.

The scariest thing about this future is in some capacity I feel it has already come to pass.

Well, I keep on getting distracted, but the distractions are all part of the project itself. There’s a distinction between the process of making a game and the process of making the game engine, the game editor, the game tools, even though these are a prerequisite – and, clearly, I’m more willing and able to focus on those right now than I am on making the game itself. I think this is okay for the time being: Part of what I wanted to do with project is to let myself go where my enthusiasm guided me to go, and clearly right now that’s in working on the tools. Now, whether that’s just because I’m more intimidated by the idea of working on content stuff, well that’s an open question. Eventually I’m going to run out of tools to work on, so I’m not stressing out about it. Yet.

Anyway. What are these tools he keeps talking about?

Well, first, I’ve got a somewhat working version of the room creator I was talking about last time. I got the solution to the point where it did maybe 80% of what it was supposed to and then tabled it, since I didn’t want to get sidetracked for too long with nothing to show for it.

You can see that some of the logic is there, with it placing the walls and some of the tiles connecting the angles correctly, but there’s a couple of tiles that are incorrect and some that just aren’t getting placed. Part of this is just the order tiles are getting placed in right now: Since each tile has to fit with each other tile, the tiles that get placed first don’t have to meet as many constraints as the ones that get placed last, and often end up being incorrect. Obviously I have to iterate through the placement more than once, but how do I know when I’m done? How do I know which tiles I still need to match with and which are now outdated by the new placements on the second loop? This is probably a problem that’s been solved, so maybe I can look it up. That may be another reason why I set the problem aside – it didn’t seem urgent to solve any more, now that the remaining issues were relatively small and easy to describe. Most of the time, at least when it comes to programming, a sufficiently detailed description of the problem contains a solution.

After getting that sort of working-ish, I focused on creating the entity editor. Once I can build levels and place entities, I basically have everything I need to create a game. However, there’s a huge range in what constitutes a level and what constitutes an entity, and some big decisions need to be made in order to meet those simple requirements. Up front, though, I had a pretty good idea what an entity was supposed to be: I want an entity to be an object with, most of the time, a position, dimensions, and behaviors in the game world. With a bit of shuffling UI around, I came up with this entity editor:

The top bar is a toolbar where I can drop any entity I want to use more than once and save it for later. The top-right is an editing window where I can rewrite any of the entity’s scripts, and the bottom right a selection window that I can use to look at and edit any of the entity’s properties. What is going to be interesting as this progresses, I think, is that any one of the entity’s properties could be a script, could be a script that rewrites another property to be a script, could be a script that copies another entity into a variable which gets used by another script to spawn versions of that entity, and so forth. What I want here is a system that eradicates as many barriers as possible between creating, editing, and scripting entities. To begin with, I used an XML-based scripting language since that saved me a lot of the trouble of parsing the scripts, since I could just use Haxe’s built-in XML parser. However, I’ve decided instead to roll my own scripting language – after some misadventures in using a very full-featured Haxe parser, which I guess we’ll just consider research now, I decided that my needs were simple and specific enough that I should really just make my own.

While I initially considered making a new simple animation system, I decided that too much good work had gone into the EverEnding animation system to discard it completely. However, the rendering paradigm I used for that project was completely incompatible with the standards used in OpenFL – one of the big reasons I wanted to step away from that project for a while, since bringing it up to those standards was a huge logistical pain in the ass. This was, therefore, an excellent opportunity to work on something that could benefit both projects. The necessary approach was so different that, in the end, I had to fork the class, but when it comes time to work on EverEnding again I can work on integrating both versions together in a way that captures the strengths of both. For now, I have a fast and efficient way to render every entity I want to the screen.

Aside from this stuff has been some minor progress in other areas, like making decisions on what the tileset should look like, fixing bugs in the collision code, and making a rough character sprite for use in testing. However, if you’ve been following the project, you might have noticed streams abruptly ceased a couple of weeks ago, which is rather contrary to my original concept of the project as something which I worked on entirely on-stream. Unfortunately, I came to a point where a few aspects of my life and this project came into conflict with one another: As I alluded to in my Problem Machine blog post a couple of weeks ago, I tend to have sleep patterns which could be generously described as ‘erratic’. I’ve been trying out ways to restructure the way I live and work in order to help address this issue, and one of the biggest changes I’ve made is to try to get a few hours of work done immediately after waking up, before taking a shower or eating breakfast or anything. So far I find this approach tremendously beneficial, starting my day off on a good precedent and ensuring that even if later on I do end up feeling fatigued or depressed I still have a few good hours of work done, relieving much of the pressure to do work that was keeping me up later and later at night. Unfortunately, while it’s a bit stressful to stream myself work, and it’s a bit difficult to get used to waking up and working right away, the idea of waking up and streaming working right away is just too much to countenance at the moment. With time, this may be something I can approach – it may be helpful to get away from my conception of streaming as something where I need to have a constant running commentary, for instance. Or maybe I can just eventually get to the point where I’m more comfortable vocalizing my thoughts immediately after waking up. At the moment, though, trying to do two things which aren’t readily in my nature at the same time just felt like too much. Hopefully, in time, the dev streams will return. In the meanwhile I’ll probably continue streaming gameplay a few nights a week, though this past week I have been remiss due to fatigue.

That just about does it for this month’s update. Next, I plan to finish this scripting system, fix the remaining issues in the room generation code, and probably start building out the first few rooms and entities and some more finished looking art. I think by next update we may be able to start getting into actual content, rather than tools – but who knows what rabbit holes I have left to fall down?

The term role-playing is applied very loosely to games. Not only has it come to mean something completely different when used to describe video games than the pen-and-paper games that originated it, but it has drifted away from its obvious meaning in those games as well. Every game is about playing some sort of role – even when there’s no explicit narrative role (which there usually is), we still take on a role defined by the rules of the game – the role of the intelligence who places the pieces in a jigsaw or who builds the Tetris to eliminate four lines of blocks, the role of pitcher or quarterback or referee. This sort of role-playing is in many ways closer to the sort of play that which early RPGs were meant to capture, tactical miniature play inspired by the battles in the Lord of the Rings books, than what modern enthusiasts of the genre mean by the term, which is more akin to playing a part in a play – and, crucially, a part that one writes for oneself.

This is a topic we could dig deeper into, what role-playing has come to mean in different contexts, but at the moment I’m more interested in the way that playing a role, or choosing not to play a role, appeals to us. One of the core conflicts of my life is my simultaneous desires to have a place in the world and to not be constrained to do any single thing: These desires are flagrantly contradictory, and yet I feel them both frequently. At one moment I wish people would just tell me what they want from me, at one moment I wish I could pursue interests with no regard for what anyone’s expectations of me are. I can even feel both of these at the same time. It’s a sort of talent, I suppose.

Both of these, finding a niche in which we excel or choosing any path for ourselves and having it work out, are sorts of power fantasies, and different sorts of games like to cater to both of them. Whether these games are called “Role-Playing Games” or not has very little bearing on this. Most MMORPGs favor casting the player fairly narrowly, where they pick a class and have to play to the strengths of this class in a very specific way, while games like Skyrim are built to allow the player to do basically anything they want to with no negative consequence of any sort.

If you don’t like the role the game casts you in, you probably won’t like the game. If you don’t feel like the game gives you enough room to perform your role in your own way, you probably won’t like the game – in much the same reason people don’t like jobs that don’t give them any freedom to tackle tasks with their own methods. For a few days I went back to playing Team Fortress 2, and somehow there I have the best of both worlds – probably one reason I played so much of it. I have a list of 9 roles (or perhaps more, with all the ways equipment can change a class’s role) which I can pick at a whim. Maybe today I feel like getting into the thick of things and causing a lot of trouble, so I play Soldier, or I feel like moving around and harrying, so I take Scout, or I feel like being an asshole, in which case I roll Spy.

I usually play Spy.

Out in the world, though, we seldom are afforded the opportunity not to be defined by the roles we are cast in. Usually, in order to survive, we are forced to live the role we are given. Others of us, bereft of such a role, struggle to define ourselves in terms that are understandable to others, socially approachable, economically viable. In the end, we have to either accept a pre-made role, or learn to make our own – and, to make our own, first we have to have some idea of what sort of role could be both desirable and viable.

It’s easy to be led astray. I generally want to be an artist and thinking person, and what are the traits that we have used to define these sorts of people? Lonely. Mentally unstable. Self-destructive. We paint doom on our thinkers and artists, even though there’s no particular reason to believe in any real correlation outside of the feedback loop caused by this stereotype. How have these cues affected the way I live my life? How can I learn to define myself as a creator outside of this toxic worldview?

I can’t help but stand back and look at the motivations behind this toxicity. Who stands to profit from making artists believe they are worth more dead than alive? Who stands to profit when inventors are forced to sell their inventions for pocket change?

Those who have written the roles we are cast in may not have our best interests at heart.

I don’t consider myself exceptionally awkward in social situations, but I don’t think I’m particularly comfortable in them either. Much of the time, particularly in emotionally loaded moments, I have no idea what to say – no idea what an appropriate sentiment is for the occasion, no idea how to express something that isn’t hollow or tone-deaf. My usual tendency when I don’t know what to say is to say nothing, but sometimes nothing is just not an okay thing to say, and that tends to be when I run into issues.

These sorts of ambiguous situations, where anything could be expressed and all expressions seem insufficient, exist everywhere in life. However, when we make games, even when we try to simulate some aspect of life, this ambiguity is flattened. Dialogue is expressed through branching trees of pre-written choices, or in more ambitious attempts through some text parser or abstract sentiment generator – in the long run, no matter how the player expresses the sentiment, it is interpreted by a machine, chopped up into something quantifiable for the game’s systems to react to. There is inevitably a Right Choice, a correct thing to say in that circumstance to progress the game, to get the ‘good’ ending, to see the bonus cutscene.

Dialogue, in a game, is a control mechanism, not communication – or, if it’s communication, it’s the game’s designer speaking to you rather than you speaking to the game. You don’t care if the game understands, you don’t care how the game feels, you just care about how it responds to your input. It really isn’t much like speech at all – which is fine, it doesn’t really need to be, but having it constantly presented as speech, being treated as though the player is genuinely expressing something in the way they would to another person, probably has some strange effects on how we understand speech to actually work.

This, though, is just a specific instance of the process of disambiguation that happens when we try to emulate the vast mess that is reality in our goofy little electronic worlds. To play, as a child, is to imagine scenario after scenario with no logical connection or overriding ruleset – you have been shot, but you are bulletproof, but the bullets are armor-piercing, but you’re actually bulletproof times infinity plus one. To play in a video game, though, even an open-ended one, means that there must be a logical connection from one moment to the next, since the game, being a computer program, has to operate on logic. There’s still lots of room for self-expression in a well-made and open-ended game, but the fidelity of that expression is mediated by the granularity of that simulation. Or, at least, the fidelity of the part of that expression that exists within the game – because there’s also the part of that expression that exists within the minds of the players, and that could be as unbounded as ever. In theory, at least – do kids pretend they’re pirates in games that aren’t about pirates? Ninjas in games about vikings? Wizards in games about soldiers?

Maybe that’s why we like to play games, though. The infinite possibility and ambiguity of life and human interrelation is incredibly overwhelming. How relaxing it is to be provided an environment where only a few choices can be made – and, even if those particular choices end up being wrong, they are wrong for reasons which are explainable and quantifiable, albeit sometimes quite complex. The games industry keeps trying to make games look more and more realistic, though, while maintaining this simplicity of input and response, and it builds a myth – a myth of a world where each action and consequence is mapped directly and predictably, and anyone who’s clever can find the action and the consequence. The ‘Just-world hypothesis‘, the belief that everyone gets what they deserve based on the actions they have taken, is much easier to convince yourself of if you can build it on a belief that every action and reaction are directly mapped, straightforward, and quantifiable.

If the causal relationship between action and reaction is completely predictable, any suboptimal outcome can be blamed 100% on poor decision-making. Every tragedy becomes a justification that bad things happen to bad people, where in this case ‘bad people’ means people who have made any choice that is subsequently followed by a bad outcome. In this way, games as they have traditionally been structured have a radical conservative bias.

Maybe there’s some other way for them to be structured – but without some huge leap forward in technology that creates worlds too complex for predictable causality, or some sort of ongoing responsive content created by another person (as in a tabletop RPG), this is always going to be a sytemic bias of the technology. The only way to push back against that is explicitly through the content of the game, and that’s going to be difficult to do without alienating players, since rewarding ‘optimal play’ is a foundation of game design.