I’ve been playing Cuphead. If you’ve somehow managed not to hear about this game, Cuphead is a 2D platformer styled after the cartoons of the 1930’s – although I frankly think it manages to realize that aesthetic far better than most of the source material it pulls from. It’s also punishingly difficult. Cuphead is impressive both how good it is and how much worse it would be if it was any less beautiful than it is – I have never seen a game rely on aesthetic quality to this extent, and it is fascinating to me that it does, and that it does so so effectively.

These aspects, beauty and difficulty, lean on each other like a pair of cards, prop each other up to create an incredible experience. This super-hard game would actually just not work if it wasn’t so incredibly beautiful in every respect, visually and aurally – the losses and restarts, the trial and error, cheap shots and bullet hells, would quickly become tedious. Some people would still enjoy it on those merits, but it certainly wouldn’t have found the huge audience it has now. At the same time, if the beauty was all there was, if there wasn’t this sort of punishing difficulty, the game would feel like fluff, would show up and disappear in an instant and would leave no lasting impression – though, of course, this version of the game, too, would find its own following. However, because the game is so brutal, you’re forced to really look at it, really closely look at everything that’s happening on-screen, lest you be caught off-guard – and, because you’re forced to look at something so damn lovely, it’s hard to actually be mad at what happens next – which is usually that you get your ass kicked by a medusa or a bird or something.

I find that idea, that sheer aesthetic beauty can be a core component of a game’s design, very interesting, because that’s not how we tend to think about the audio-visual component of games. There’s a lot of discussion over exactly how and how much the narrative and the design of games are discrete from each other, but it’s largely taken for granted that the aesthetic quality of the experience can be evaluated more-or-less on its own merits.

When we discuss the cross-section of aesthetic and game design, it’s usually about how the art style of the game realizes the core goals of the game’s design – not about how the game’s design enables the core goals of the game’s aesthetic, or in how the sheer quality of that aesthetic presentation can make the design goals click. Despite being a tremendously conservative game in many ways, Cuphead has thus exposed a huge gap in how we talk about the intersection of visual and mechanical design in games – or, at least, a huge gap in the way I’ve seen people talk about them – as, rather than a gaming experience enabled by an aesthetic layer, being an aesthetic experience enabled by a gaming layer. It’s an inversion of the way we usually think about what a game is.

I am curious to see what sort of impact this game has, a few years down the line – on video games in general, but also on the way I think about games. It’s strange to me how a game so straightforward could contain such revelatory implications.


I have been spending the last 10 days or so playing way too much Slay the Spire. They say write what you know, and right now my brain knows nothing but the pleasures of building a badass deck to kill monsters with in a video game, so here we are.

Slay the Spire is one of the newer games of the roguelike-like-like-like-etc set, still in Early Access, which uses a card game for all of the combat. Go through a dungeon, which is set up as a series of nodes with various type of encounters, fight enemies, and pick one of three cards after each battle. Along the way there are potions, which are helpful one-shot boosts that can get you out of a tight spot, and relics, which provide powerful passive benefits. Usually, from your first few cards and relics, some sort of theme begins to emerge which will define the rest of your run, whether it’s intentionally damaging yourself to become more powerful, drawing a bunch of cards and using something to play all or most of them, or stacking up huge amounts of defense and either letting your enemies beat themselves to death against your defense. Or something else! I’ve beaten the game 7 times now, and each run still feels extremely different from all the others, based on its own synergies exploiting different game mechanics.

Currently there are two character classes, with a third to be added, and each character class has a unique pool of cards to draw from which the other cannot use. Unlike other card games with a similar class system, like Hearthstone, the main purpose to the classes beyond theming is to firewall off cards which would have game-breaking synergies together while pooling together those which have more moderate synergy. This greatly increases the consistency of each individual run, ensuring you mostly get cards that play well together, keeping the overall experience from degenerating into just finding one killer synergy to break the game.

The connected-node map reminds me a great deal of FTL, another rogueish-like-ish game, and I think there’s some basis for comparison – not just in the map, but in the multiple-choice encounters and in trying to scrape together the components needed to build something powerful enough to last until the end. However, in FTL I very frequently felt there was only one path to victory with minor variants – many offensive options became useless against late-game defenses, and certain defensive options were almost strictly necessary in order to stand a chance against late-game offenses. In Slay the Spire, everything is far more contextual, and I’ve had cards that would have been borderline worthless in one deck become completely game-breaking in another. I’m sure that once in a while, by random chance, there is the occasional run that is essentially unwinnable, but these occurrences are far rarer than they were in FTL – in every run I’ve lost so far, I can point to some poor decision, some key overreach, that precipitated my failure. Usually choosing to fight an elite enemy instead of resting, because I’m greedy like that.

On successive playthroughs you get points, based on how far you got, which contribute towards a bar that unlocks new cards and relics. I’m not a huge fan of this particular implementation, since it feels a bit grindy, but the unlocks themselves are very interesting, the cards usually themed towards some particular game mechanic which opens up new types of decks to experiment with. In this way its structure is similar to The Binding of Isaac, where each playthrough unlocked new items, enemies, and encounters, gradually opening up the design from something fairly simple and straightforward to something bigger, weirder, and more complex. Though, unlike Binding of Isaac, all of the unlocks are things you probably want to have, they also increase the odds of making a misplay as it becomes more difficult to consider all the available strategies. Something I’d like to see the developers approach, as it comes out of Early Access, is both unlocking these things in a more organic way, through special encounters and achievements rather than a grindy EXP bar, and increasing the range of things that can be unlocked to include new enemies and random encounters. Still, despite the less varied nature of these unlocks, in some ways their impact is more notable than in Isaac, since they open up entirely new ways of playing the game.

Because you construct a deck with a series of discrete decisions, each run feels much more something that belongs to the player, that was constructed with found parts, rather than something that the player just uncovers by happenstance. While each Isaac run feels unique, very little of the way the run develops, past mere survival and getting into the treasure room, is in the hands of the player. With every card you take and relic you find the context of the game shifts, and influences every future decision you make along the way. Perhaps it’s because of this that I regret having to give up my deck, the deck I fought for and with for two or three hours, when I succeed on a run. It doesn’t feel right for this beautiful machine I’ve constructed to just fade away and be forgotten. Maybe, though, that’s what keeps me coming back: I have nothing to keep, so the only thing left is to build another beautiful machine and let that, too, fade away. There’s probably some sort of life lesson there. There usually is.

Most of all I appreciate that Slay the Spire demands I pay attention to what I’m doing, in how even when I know the game well it’s easy to make a huge misplay that kills my run, just by carelessly playing cards in the wrong order or forgetting to use a potion. I have little patience any more for games that demand nothing from me. I don’t want to do things anyone could do without paying attention, in doing busy-work, in grinding away. Art that demands nothing gives nothing, and when nothing pushes back against my touch I can’t feel anything. It feels like there’s more room for that now than there was ten or twenty years ago, more room for art that demands attention rather than merely eye contact, but maybe it’s just that I seek it out more now.

Slay the Spire is a great game, which is especially exciting when it’s not finished and there’s still room for interesting things to be added. Aside from the things mentioned, there’s one other thing I’d love to see added: Some sort of hall of fame for winning decks. Even just being able to look back on your winning decks would be cool, but why stop there? What about some endless gauntlet challenge mode to play those decks in? Or a PvP mode for winning decks? A boss rush? New Game+? The idea of the game being not just an end unto itself but a method of building decks that could then be used for other purposes seems like something that could be explored in many interesting ways.

Anyway. Slay the Spire is currently $16 on Steam. If any of this sounded good you should go check it out.

It hasn’t been an especially productive month for the project, but things are grinding forward. I decided I was still dissatisfied with the performance, even after all the improvements I made to the particle system a year or so ago, and so I’m working on getting the project running in OpenFL, an open-source project that emulates Flash/AIR’s API but builds in C++ and tends to be faster. This isn’t really a smooth process, since there are a few Flash features that didn’t get ported and the ways file i/o and multi-threading are approached are very different. The file system stuff is no big deal, and I believe I’ve fixed the issues emerging from that already, though since I’m still working on the other stuff I haven’t been able to build the game to test those fixes yet. The multi-threading thing is more difficult but I think I’ve got a handle on it now, and the challenging part is mostly sequestering my Flash multi-threading code away so that I can write the special cases that change from platform to platform without turning everything into a total spaghetti mess. The features that aren’t supported… might be an issue. The only one I’ve found so far that looks like a big deal is that OpenFL currently has no equivalent of the DisplacementMapFilter, the processing effect which I used to make that water effect I was so proud of and which I also would like to use for a few other special effects. I’m going to have to look into creating a replacement – which sucks, but might end up being a blessing in disguise, since this will be a fairly natural way to explore the wide worlds of shader programming and, indeed, of contributing to open source projects if my solution ends up being of sufficient quality to submit as an OpenFL component.

Aside from this, I mostly worked on building the behaviors for the Feral enemy type which I shared a few sprites for last week. These behaviors are mostly finished now, but haven’t been tested yet since I didn’t have a complete set of sprites to test with – not strictly necessary, but since most of the code is reused from existing enemy types I’m not worried about any major malfunctions. I also realized a substantial obstacle towards completing the first area of the game was that I just wasn’t really sure what the space was supposed to look like. I had some vague ideas, but I didn’t know what the area’s history was supposed to be, what really was going on there now, or what the symbolism of it was. I spent a bit of time writing out some notes on it, and I’m confident that when I get the game working again and return to develop this area I’ll have a lot to work with.

My work is basically cut out for me now. Get the game building in OpenFL, handle any new bugs, rewrite the display code as necessary to take advantage of the improved performance. It’s always a bit of a drag getting railroaded into one big task that has to be done before I can make more substantial progress, but in this case there’s no way around it – particular as, in the interim, something weird has happened with my development environment to make launching the AIR version seemingly impossible. While I’m sure that will all get ironed out eventually, in the meanwhile it leaves me no avenue to working on the AIR version of the game, so really all I can do is drill in on the OpenFL port. Soon, at least, I’ll be able to take advantage of this tedious chore to tackle a field of programming I’ve been wanting to study for a while: Shaders.


When I was a child it was popular to tell kids they could grow up to be anything. I think it was, anyway, I vaguely recall that being a thing that was said, but I might be thinking of something I saw on television. Regardless, I hope it’s gone out of vogue by now – it’s really a cruel thing to tell a child, even if it’s technically true. You can become anything, in the same way an unknown seed could grow to be anything, but what that thing will be has likely already become set by circumstance and inclination. Or, perhaps, more in the way that rolled die could show any face, but choosing which is outside of anyone’s control – except for inveterate cheaters, who I think would represent inherited wealth in this metaphor.

Regardless of how prominent this message was, I don’t think I ever wanted to be anything. I think I always wanted to be everything. Failing that, the next best option as I saw it was to be some sort of artist, someone who makes worlds – if not to actually be everything, then to contain some version of everything, to control it, portray it, master it. Even that wasn’t enough everything, apparently, because of all the forms of artist to be I decided I wanted to make games, since they require me to do a little bit of everything (a lot of everything, actually). And then I wanted to make them alone, because I wasn’t willing to give up even a tiny bit of everything.

I’m coming to gradually recognize the greed that has shaped me. I am never content. I am never enough for myself because I am never everything, but I also rarely want to give any of myself up. People don’t notice this greed usually, I think, because it doesn’t look like what we think greed looks like. I don’t want many things beyond the things I need to work towards my goals, which mostly boil down food, shelter, and a functional computer with a few specialized peripherals. I don’t mind being mostly broke, except when it means I get distracted by things outside of my control, such as needing to scrape together for food, shelter, or a functional computer with a few specialized peripherals. I’ve learned how to mostly do the things I need to do to take care of myself, but I don’t reach out beyond myself often. I am my own planet in my own solar system. Family, a few friends, no other social contact – greedy like gravity, I hold this much in my orbit forever, steady in the trajectory set by my past.

In trying to be everything I frequently lose track of who I am. I’m not sure what my personality is outside of the things I create. When I’m not making things or distracting myself I have a poor sense of what my personality is. I don’t know if this is abnormal. Many people feel unmoored from themselves when they’re away from their work, I suppose. At least I don’t have to rely on anyone else in order to feel like myself, at least I can’t get fired from being an artist – though I can certainly not get paid for it. I’ve definitely proven myself capable of that.

What am I? A shape that leaves an imprint, a tiny fingerprint on the mind of each person I meet. I hope that by making things I can spread around more imprints, make more of a mark, but that mark I am making is only a tiny part of me. Some people exist so intimately in each others’ lives that their imprints go deep and numerous, that even when they are absent each other they can still feel their shapes in the marks they left behind. I can’t leave any marks like that. I hold too much of myself back. All pictures of me are incomplete, and the true shape remains unknown. It could be anything.

I recently played through Alpha Protocol, which is an experience I don’t know whether or not to recommend. It is not a good stealth game, but it is a hilarious stealth game: Once you actually level up your character the gameplay largely consists of turning invisible and jogging around punching guys in the throat while they stand next to you yelling “where did he go!?”


Alpha Protocol’s most notable features aside from that are its branching narrative and timed dialogue system, both of which went on to inspire Telltale’s The Walking Dead, and thereby basically every game made by Telltale since, as they’ve adopted that model as just the way they make games now. There’s one huge difference between the two dialogue systems, though: In The Walking Dead, the default dialogue option is always to just remain silent and let the conversation go on without you, and in Alpha Protocol the default option is always to say… something. I’m not sure how much of this is an intended effect, but combined with the way the main character of Alpha Protocol is written – an obnoxious jerk – the end effect is that Alpha Protocol’s weird dialogue system ends up really effectively conveying the experience of being an impulsive idiot. It is incredibly easy to end up saying something crass and ignorant or accidentally hitting on someone or just going ahead and making out with a coworker just because the timer for dialogue is so short and some of the choices are labeled extremely ambiguously – and, with a bit of distance from the momentary frustration caused by accidentally doing the wrong thing, I can appreciate the characterization created by these systems.

I can’t say how much of this was intentional on the part of the designers, but it’s intriguing how different the Alpha Protocol and The Walking Dead dialogue systems end up feeling, all while being essentially identical. A relaxed timer, letting a natural amount of time elapse between dialogue beats before prompting response, simulates the pressure to keep up a discussion, while the faster timer suggests a pressure to say something ANYTHING the very moment the person you’re talking to stops talking for even one moment. The addition of the option of saying nothing, along with generally more generous timers, sell the idea of Lee, the protagonist of The Walking Dead, as a calm and thoughtful person being overtaken by events outside of his control – while Alpha Protocol’s Mike Thorton inevitably ends up coming across as a walking HR complaint waiting to happen.

This raises the question of how else dialogue systems can express the personality of the speaking character – that is, how character is expressed by the way we choose what to say, as distinct from what is actually said. The timing and defaults of The Walking Dead express someone pensive and reserved while systems of Alpha Protocol express someone reckless and boorish, so what do other dialogue systems suggest? Most adventure game dialogue systems, such as that used in the Monkey Island series, suggest alternately either a clever character backed by a team of writers, selecting the choicest rejoinders, or an inspector with some sort of predetermined checklist to get through. RPGs like Fallout are similar, except the choiceness of those rejoinders and number of inspection points tend to vary based on your character’s stats.

Though these dialogue systems became a bit rote after a while, you occasionally get flashes of how they could be used much more expressively – even if these expressions usually come in the form of one-off gags in the Monkey Island games. In the first game, when one of your mutinous crew asks if the word ‘keelhaul’ means anything to you, you have the dialogue choice of either saying “I see your point” or of reciting the dictionary definition: Whichever one you choose, the main character says “I see your point” and the conversation ends. In the second game, in one scene you have a choice between four dialogue options, pictured below:

Differing from each other only in emphasis in a moment of impotent anger. And, in the third game, you have a clearly unwise dialogue choice in a conversation with a reformed cannibal, and if you hover your mouse over it a secondary dialogue pops up next to it saying “not that one, it will be the death of you!” and other similar warnings – only for it to be essentially ignored by the character you’re talking to if you actually say it, since they’re off on their own tangent by then.

All of those are amusing and expressive moments, but they all involve making you unable to do something – unable to say what you want or be heard when you say something stupid. This is kind of the opposite of the problem that Mike Thorton has, of saying stupid bullshit given a moment’s opportunity, and well-expresses the more nebbish personality of Guybrush Threepwood. A similar approach is used to much less humorous effect in the game Depression Quest, where the deeper you fall into depression the more productive and healthy choices are locked off to you. Even at the beginning of the game, where you’re still feeling mostly okay, the most sociable and lively choices are unavailable – which is certainly something I can appreciate as someone constitutionally unsuitable towards being the life of a party. Not only is Depression Quest’s approach to conveying depression similar to the techniques Monkey Island uses for jokes, but those specific jokes could easily be repurposed towards more such dramatic ends. Having whatever you try to say come out differently than intended; only being able to express yourself with emphasis while being stuck saying essentially the same rote thing; being unable to stop intrusive second thoughts when thinking of something to say, and then being ignored when you finally do speak – all of these are things that real people experience all the time, frequently to a painful degree.

There are other ways we might tweak existing dialogue systems to express character, or even do so dynamically. The Alpha Protocol system could be leveraged in a game like The Walking Dead, where as a conversation gets more heated the timer begins to shorten and more neutral options start to disappear – perhaps Telltale has explored this already, I haven’t kept up on their games. Or maybe dialogue options could change over time, so the player is pushed to balance between a rushed and imperfect line or a more thought-out line that is perhaps said too late. It may seem absurd, but perhaps dialogue could even be a mini-game, a frantic scrabble to, in an emotional moment, dig the right words out of a pit of brusque idiocy and callous vapidity.

For now, we mostly just go through the check list – and, though this expresses a character, maybe it’s not the character we’re actually trying to create.

Why don’t I make more games?

Of course, I’ve been working on EverEnding, but that’s a long term project and hardly precludes the idea of pursuing side projects. I’ve even tried to take a break of a week or a month to work on such side projects, and they haven’t gone anywhere, as I get bogged down in minutiae and lose momentum before heading back to work on the main project. This is supposed to be my medium, though: Games are supposed to be one of the ways I’m most comfortable in expressing myself, and this idea is core to my identity. Most of the independent solo developers I admire make at least a couple of projects a year, and I feel that this is within my capabilities and would probably make me feel more fulfilled than whittling incessantly away at the same project – and wouldn’t even necessarily take that much time and effort away from that project, depending on how I approached them.

So why don’t I?

I’ve heard it said that finishing games is a distinct skill in and of itself, and if that’s the case then it’s one that I clearly and sorely lack. The last time I remember perceiving this kind of lack in myself was before I learned to draw, but desperately wanted to – when I was hugely intimidated by the gap between what I could imagine and what I could achieve on the page. What it came down to was that the only way I could get past this was by letting go of the idea of creating something great and grabbing hold of the idea of creating the best thing I could – a nobler ambition at any rate, I’ve come to believe. Eventually I got comfortable with just making marks on the paper that looked very approximately like what I wanted – as time has passed, they’ve gotten closer to what I imagine. More importantly, as time has passed, I’ve refined that imagined ideal of what I want those marks to be, what they can represent and how. At this point I’d say I’m a pretty good artist: Could be better, could be worse. I guess that’s the same for everyone: It’s a place we tend to stay at for most of our artistic lives, so it’s a place we have to learn to feel okay with being in.

However, as a game developer I think I’m still Nowhere. Undefined. Maybe I’m great! Who knows? Maybe it’s the fear of finding out that I’m not that’s holding me back – that’s certainly one of the things that used to hold me back from the visual arts. Better to be silent and thought a fool than to speak up and remove all doubt, as they say.

It’s really not, though. Better to just be okay with being thought to be a fool. It has many advantages. It’s very freeing.

I’ve gotten mostly okay at sometimes being bad at art and music and writing. I just kind of assume that some ratio of the work I produce will suck big stinky butt, and hope that as I practice and develop as a creator that ratio will get smaller. It’s hard for me to get there with games, though. Even a small game takes a lot of work to make, so it’s hard to feel okay about that work going into something that’s not great. I’ve made a few games, here and there – for game jams, mostly, 3 or 4 spread across the last decade or so. These games were mostly pretty abrupt and incomplete, but, still – they were games.

I think another big obstacle has been that I tend to start game projects from a place of intellectual interest. I usually start with a theme and/or a game mechanic, and try to build out from there. This isn’t actually a bad way to design, but it’s a bad way to make a project I give a shit about. This sort of intellectual interest has a shelf-life. Eventually, if I keep thinking about the project I will end up exploring the design fairly completely in my mind, and obviate any pressing need to create the project itself. Games take long enough to make, at least for me, that this usually happens before the project is complete. Thus the reason why I’ve maintained interest in EverEnding for five years but I have trouble maintaining interest in most game jam projects for more than five days: Some games are just more fun to design than they are to create. These are not the sort I should be making. I need to start from a tone, a feeling, something unnameable to seek rather than something unnamed to build. And, since these are games, the mechanics and theme will follow, as they must, a series of intellectual challenges, puzzles to solve to figure out what this mysterious place I’ve found for myself will be.

Once I can teach myself to start and to finish smaller games, maybe I’ll be ready to start to finish EverEnding.

Well this is probably going to be a short one, since for 20 of the 30 days since the last DevBlog I’ve been busy with writing and for the other 10 I’ve been trying to catch up with all the other stuff I didn’t get done while I was doing all that writing. The two avenues I’ve made progress on are in developing the Feral enemy type and in improving the camera system.

I posted the concept art for the Feral a little while back, and I’ve since been poking and prodding at getting some sprites done for it to add to the game.

I’m not thrilled with these at this point: The look of them is good, but the animation still feels extremely stiff for the most part. I’m having difficulty with handling the sorts of subtle motions I want this creature to make when it’s not being aggressive, and making them read on a fairly low-res sprite. I ended up tabling that work when I returned to the project since, as I’ve discussed in the past, I tend to find animation frequently turns into a demoralizing slog for me. So, to get myself back into the project and to build up a bit of momentum, I’ve gone back to programming work.

After a few days, I have most of what I think should be a functioning behavior set for the Feral, but I haven’t tested it yet – mostly, honestly, I just wanted to get the code to build so I could work on other parts of the project for a bit. Still, it means I’ll probably be able to get the Feral up and running in fairly short order, and that hopefully will increase my enthusiasm for creating and polishing the necessary animations.

More recently (ie just now) I’ve been working on the camera system. I went back and read a rather interesting Gamasutra article that exhaustively explored the different approaches to 2d camera systems and, while doing so, revised mine. In fact, I revised my camera system several times over, trying out different ways to move the camera or to determine where I was moving the camera to. I’ve mostly settled on a system where it offsets the camera based on the character’s facing enough to see what’s ahead and moves the camera faster based on how far it is from it’s desired position (without modeling acceleration), but there are a few instances where the camera jumps around in a rather unappealing way left to be dealt with.

I’m still getting used to working on the project again, and of course there’s holidays coming up to be a distraction, but spending a little while away from EverEnding has given me enough perspective to know that it’s not force of habit, or some inane belief that just finishing this one thing will make me rich, or certainty that it will somehow change the world, or some other bad reason that keeps me working on this game. I still love the version of it I have built in my mind, and I still want to try as hard as possible to bring that vision to fruition, and especially to see what it slowly shapes itself into along the way.