Monday, February 27, 2023

How To Make Good Small Games

Polly the Frog by Brad-Games

A lot of people want to make games, but struggle to get started. They install Unity, try to follow a tutorial for three hours, get frustrated, and quit. I've long advocated for simpler tools, encouraging developers to play with Bitsy, Twine, Puzzlescript. Maybe RPG Maker or Ren'Py if they're up for something more involved. I think projects are most likely to succeed when you only have to learn one or two new skills to see them to completion. Even for people like me with programming experience, complex tool chains like Unity demand a lot from you, and I think that's discouraging for new devs.

But that's only part of the picture. You can tell devs about simpler tools, sure. But what if they don't want to make a Bitsy or a Twine? What if they don't want to scope small? If someone wants to make an hours-long 3D hack-and-slash action game, you either need to learn a convoluted tool like Unity or Godot or Unreal, or spend a lot of time building an engine with a low-level framework. And that’s before even getting started making the actual game.

People get frustrated with complex tools because they can't visualize the journey from their starting point to their goal. It's hard to see the path from "rendering a 3D sphere" to "super-cool Platinum-style hack-and-slash with rogue-lite progression and an elaborate crafting system, it's like Hades meets Bayonetta, here let me show you my design docs..."

Charging... by Infinitestrike

There are only two paths forward from this (besides giving up). The first is to bang your head against an engine for 5+ years until you're able to make your dream game. Actually finishing a game this way is a rolling sixes thirteen times in a row miracle. It basically never pans out. It's another miracle if you get more than a dozen reviews on Steam for it. This is the devil's path for dreamers and fools. It's where almost everyone starts out.

The second is to change your perspective. Play a bunch of small hobbyist games, on itch or gamejolt or wherever. Find ones you like. Find ones you really like. Let your 3D Hades-like dream slowly fade away, supplanted by a dozen new, more attainable dreams. Design a score attack shooting game in Pico-8. Make a bitsy about your cat. Write a twine about falling in love. You can still be influenced by big corporate games (lord knows I still am), but you can temper that influence with the context of work by hobbyist devs like you. Maybe you return to your Hades-like design document, realize you can pull out one tiny piece of that grand vision, and make it into its own small game. And you can smile, because you realized your dream, just in a way you didn't expect.

The second path is the correct one. If you say so outright, people get angry. "I don't want to make tiny, crappy games. I want to make ambitious awesome epic games, like the ones that inspired me as a kid." 

There are many people that want to make games who think small games cannot be good. Maybe they’ll concede that big commercial indie games can be worth playing; maybe they like certain old console games made by teams of a dozen or so people. But a small browser game or a tiny free download can only be a cute distraction, and shouldn’t be considered in the same breath as “real” games.

Umineko: When They Cry by 07th Expansion

This manifesto of sorts, “How to Make Good Small Games”, is an attempt to meet this perspective halfway. It’s divided into twelve thoughts, made up mostly of esoteric creative theory (why do I like small games? why do I like making small games?), and hopefully a little actionable advice. I can tell you “scope small uwu”, but if you don’t believe small games can be good in the first place, all you’ll hear is a homework assignment you have to do before you can make the games you really care about. That’s a miserable way to make art, and if you think that’s what “scope small” means, I don’t blame you for getting upset.

These thoughts are also for people that already love and appreciate small games, but don’t feel confident enough to jump in and make them themselves. Or you have made some small games, but you don’t feel good about them. You don’t think they measure up to works you admire. It’s easy to say “it doesn’t matter if your games are good or bad, just make stuff and have fun.” But people want to make art they feel proud of. Not just for the satisfaction of finishing a project, but because it measures up to their own tastes.

I make games that I like. None of them have felt like homework. I think they’re good, and I’m proud of them. Most of them I put together in a couple dozen hours apiece. I don’t make any money doing it, so if that’s your goal then this piece probably won’t be that useful to you. But if your goal is also to make games that you like and are proud of, I think my thoughts might be helpful. 

Comforting Sounds by colin

1. A game’s quality is independent from its scale. 

I consider this a foundational truth, and it’s the basis for every piece of advice on this list. Whether a game is good or not has nothing to do with how big it is or how expensive it was to make. 

In practice, a more laborious and expensive production usually leads to worse outcomes. Large studio releases are often built by many small teams working nearly independently from one another. If the play-testers find a problem with one of the levels, the creative leads have to coordinate multiple teams to make corrections. Often they’re running up against a deadline, and they won’t have time to juggle the graphics team, the level geometry team, the physics team, etc. to make the needed corrections. Even though they successfully identified a problem, the game ships with it anyway. Problems like this compound across development and lead to creatively incoherent stories.

These issues replicate themselves even at the scale of solo hobbyist development, because you have finite time and energy. The bigger a game is, the more parts of it you won’t care about editing or polishing. When you make smaller games, you can focus on the parts that viscerally excite or delight you. That makes it much easier to make a game you’re fully happy with.

Smaller games aren’t just easier to make they’re easier to make well. The bigger a game is, the more moving parts there are bouncing around inside it, the more opportunities you have to mess up. 

I believe many of my friends make games better than most beloved $60 AAA epics. There are many individual moments in games like Super Mario Odyssey that delight me. But if I’m disappointed in the overall arc of a game, I’ll leave it feeling deflated and unsatisfied. In contrast, if I finish a five minute Bitsy game with a big grin on my face, I think that makes it a stronger, more complete work.

There are gradients to this, of course. I’ve played many games, from hobbyist devs and from large studios, that I care deeply about even though I don’t think they “work” as cohesive stories. Chrono Cross is frustrating and half-baked I hate how it pulls its punches instead of relishing the darkness of its ideas. But it’s so aesthetically beautiful and full of individually strong writing moments that it’s difficult to dislike. Your critical lens should leave room for these kinds of partial successes. It gives you more opportunities for joy in your play, and makes it easier to understand friends who have different creative values. 

But when you’re making your own games, strive to make something you love wholeheartedly. Don’t settle for less.

What constitutes a game that “works” is a matter of purely personal taste. I don’t just expect your definition to be different from mine I want it to be. Your taste and your experiences work together to shape the stories you can tell, and art would be boring if everyone told the same stories. 

But whatever your definition is, it should be scalable. A ten minute game should be able to succeed for you as effectively as a AAA epic. If you can get there, you’ll feel more confident and excited setting out to make small games. 

Monster Hug by John D. Moore

2. A game’s quality is independent from its emotional scope.

Most people won’t say “games can only be good if they were expensive to make”, at least not outright. But what about “good games make me feel intense feelings”? Or “good games get me obsessed with playing them for weeks or months on end?” 

Different games are meant to accomplish different things. If you’re reading a 30 hour visual novel about a tragic romance like The House in Fata Morgana, you probably want it to make you cry. If you’re playing a roguelite like Hades with metric tons of bespoke content, where complete playthroughs are an hour long and getting the true end requires playing it over and over, you probably want it to inspire compulsive, regular play.

These are intense feelings, and it’s cool that games can inspire them in us! I love playing a long RPG and getting really into the systems, making my numbers go up. I love crying at the end of huge stories. I love getting deep into fighting games or shmups for weeks at a time.

But in the same way a short story functions differently from a novel, or a sonnet from an epic poem, small games have different terms for what constitutes “success”. Maybe a game wants you to smile, or have one really good laugh. Maybe it wants to inspire a quiet unease that your conscious brain quickly forgets, but that bubbles up a few days later and sucks air out of your chest. Maybe it’s a hard action challenge you compulsively play and replay until you get a run you’re satisfied with which only takes thirty minutes, or twenty, or five.

Become sensitive to the quieter emotions art inspires in you. Everyone can love the soaring catharsis at the end of a big blockbuster. But by attuning yourself to these subtler feelings, you build a stronger toolbox for both making and enjoying art.

CommitArsonNow by sylvie

3. A game defines the terms of its own success.

This is good advice for being a game dev, and also for being a generous, well-rounded player and critic. You should want a game you play or a game you make to be the best version of itself. Nothing more or less. When you dismiss a 1-2 hour exploration game for having a smaller world than Hollow Knight, you’re robbing yourself of an experience you might have otherwise enjoyed. When you look at a Unity game made with store-bought assets and ask “what if it had expensive custom art for everything”, you’re asking it to be something it’s not, instead of looking at what the game’s actually doing with those assets.

Look at the paint on the canvas. How does it make you feel? That should be the root of your judgment. Don’t ask why the artist chose oil paints when you prefer graphite, or why they went with such a small canvas when big paintings are much more impressive. Accept it for what it is. Then decide whether it’s good at being what it is.

I’m not asking you to like everything, to forsake having opinions about art. I obviously enjoy being opinionated about these things. But when you’re more generous with the games you play, you’ll be more generous with the games you allow yourself to want to make. You’ll be more willing to experiment, to tell smaller, weirder stories. 

You can’t look to popular videogame critics for help on this. Large game sites are either full of sycophants who’ll breathlessly tell you why the latest hot garbage from GamesCorp is the greatest story of the 21st century, or acerbic assholes who’ll tear down any experience that isn’t sufficiently similarly to the six games they liked when they were fourteen. Neither will help you develop into a generous (but discerning) player, which is what you want to be to be a skilled creator.

Rena Game by Toby Alden

4. A game succeeds when it fulfills its promises.

Every game makes promises to the player, and then attempts to fulfill those promises. I’m borrowing this terminology from Brandon Sanderson’s excellent writing lectures. It’s just another way of thinking about “setup and payoff”, which is foundational to a lot of good storytelling advice. Instead of comparing your game to big studio epics, just be conscious of the expectations you’re setting for the player. Then strive to deliver slightly more than they expect. (Not a lot more we’ll cover that later. Just a little more is enough.)

The expectation for many (single-player) games is that it will introduce rules, develop those rules, and then reach an interesting climax. This usually entails stages getting harder and more complex. This is the Game Design 101 way of doing things, and it’s a great starting point. There are lots of ways to be playful and creative about these things though. Some games are immediately hard in a disarming, strange way. Some games stay easy and straightforward the whole time mechanically, but the aesthetics or story develop in pleasing ways instead. Setup and payoff is about creating emotional arcs that stick in your players head, and there are infinite ways to do that. 

Every new character, every new mechanic, every new enemy you introduce is a promise. It’s a promise that the game won’t just introduce and then immediately abandon an interesting idea, that the idea will develop and matter to the game’s arc as a whole. This is true whether you’re making a play-focused game or a text game with lots of writing. The underlying storytelling mechanics are the same.

Setup and payoff is about making every part of your game feel like a unified journey. Every moment of catharsis that’s ever made you gasp and go “holy shit that was so cool” in a game or book or movie was part of a setup and payoff. It’s Frodo saving himself with the star of Eärendil a whole book after getting it from Galadriel. It’s finally defeating Virgil in Mission 17 after getting trounced by him in Mission 4. It’s smaller moments too: it’s a collection of great punchlines, it’s dying with the snakes, it’s making a promise you’re not sure you’ll keep.

You can make whatever kind of game you want. But if there’s any stage or scene or idea you could take out without it detracting from the rest of the work, that’s a reason to pause. The idea might be making a promise you don’t keep, or fulfilling a promise you forgot to make.

golden rays of sunshine by saori

5. It's easier for a game to succeed if it makes smaller promises.

If making a good game means fulfilling the promises the game makes, it follows you can make things easier for yourself by making smaller promises. There’s a lot of ways to do this!

The most basic approach is to have fewer moving parts. Fewer mechanics, fewer enemies, fewer assets, fewer characters, fewer stages. It’s easier to introduce and develop three ideas into a satisfying climax than it is ten ideas, or a hundred. 

This is why so many RPG Maker devs get stuck early on. An empty RPG Maker project already has a menu full of a hundred options, a whole system for making top-down maps (now with HD art assets), and painfully fleshed out instanced combat. You can’t explore all those ideas in a tiny game, so devs have to go out of their way to ignore or strip out aspects of the engine they’re not interested in using. 

This is a problem with many engines that give you a massive toolbox to play with. New game devs feel obligated to make use of all the engine’s features, and their scope balloons as a result. They can’t make a game at that scope that satisfies them because it’d take hundreds of hours of work, and they give up. Be wary of any tool with an ocean of built-in features. Either be willing to discard most of those features for any given project, or use a simpler tool.

Production value also plays a part in a game’s promises. The more expensive a game looks, the more a player expects out of it. By embracing amateur aesthetics, you can disarm the player and leave them surprised and delighted by your payoffs. 

Which amateur aesthetics are charming and which are obnoxious depends on your personal tastes. I love simple MIDI music, compressed voice sample sound effects, photograph backgrounds, recontextualized stolen assets, default RPG Maker art. I don’t care about controller support because joytokey is easy and more fully featured than anything I could implement. But if a game is buggy in a way that gets in the way of me playing it, I’ll quickly grow annoyed and quit. I embrace the amateur aesthetics that delight me and save me work, and strive to be professional in the ways I care about.

If you don’t like any amateur aesthetics, it might be a sign that you’re being a little too serious about all this. I try to approach making games with an irreverent playfulness, whatever the tone of the game I’m making. I’ve had a lot of fun making games that way. Play more cute funny hobbyist games on itch. I’ve played extremely silly shitposts that are also legit excellent action games. There’s no correlation (or at least no positive correlation) between an artist’s self-seriousness and the quality of their work.

Dandelions by Lotus

6. Fulfill promises in an interesting and delightful way. 

This is the “draw the rest of the owl” step. I can’t tell you how to make games that you like. You have to pay attention to your own reactions as you experiment. What makes you smile? What makes you feel a swelling in your chest, a tiny fire of excitement in your heart? Pay attention to those feelings. They’re a sign you’ve found a payoff worth building a game around.

This is where your personal style comes into play where you make games that are uniquely your own. A lot of your promises come through in screenshots and trailers and marketing copy. “This is an action platformer with five stages. Your character jumps and shoots their way through waves of enemies. It has an endearing pixel art style and high energy music.” This is enough to get me interested, because I love a lot of games that meet that description. But it’s the actual execution and payoffs on these promises that’ll reward me for that initial interest. I don’t want to play something that’s just like games I’ve played before the genre fixings are only the initial hook. 

The good news is that most “originality” is just remixing other peoples’ ideas in surprising ways. Copying one game you like is boring. But if you copy ideas from ten games you like, plus two comic series and one sci-fi novel trilogy, the resulting game will feel personal and special. So play lots of games! Read books and comics, watch movies and TV, listen to music. Foster interests outside of art, make friends, live a full life. You’ll be surprised how many colors on your palette you suddenly have to paint with.

And of course, one way of fulfilling promises is to invert the promise, to do something completely different in a way that’s ironic and satisfying. This works for big projects like Doki Doki Literature Club of course, but this works for little games too. Joey Wamone’s Highly Cursed Record Collection sets you up to expect a small anthology of WarioWare-style microgames. It winds up delivering something very different and memorable. Don’t close yourself off to creative ways to subvert your players’ expectations.

Don't Look Back by Terry Cavanagh

7. Don’t over-deliver on your promises.

Have you ever watched a movie or read a book that goes on one scene too long? Ever had the thought “if you’d just ended five minutes earlier that would have been perfect”? 

This is a rarer problem in hobbyist games than under-delivering on promises, but in its own way it’s just as deflating. Not too long ago I read a visual novel with very cute, endearing art and writing. For a couple hours, I was having a great time. Then it reached the climax, and it suddenly launched into a massive final boss fight out of nowhere, complete with elaborate custom battle engine. The music swelled, the fight dragged on, and then continued into an extended ending and epilogue. 

It all felt unearned, out-of-sync with the journey I’d been on up to that point. The author went for an Undertale-scale catharsis for a story that was much smaller than Undertale. It was as much a betrayal of my investment in the story as a half-baked climax would have been. I was disappointed even though I was having a good time up to that point, and even though the ending was skillfully done and could have been a fitting conclusion to a different story.

This is often a writing problem. Remember that you are more invested in your characters than your audience is. To you, your characters are vibrant and alive, because they live fully and expansively inside your mind. But your readers only have the words you’ve given them, and they probably don’t care about your cast as much as you do.

It’s not just a writing problem like all these “rules” this is really about storytelling, so it applies whether or not your game has words in it. Has your game earned that four stage final boss fight? Does it need to get that challenging at the end? Is it weird that your last level takes as much time to beat as the rest of the game put together? If you have intentional answers to these questions that’s fine, but if you don’t it might be a sign to rethink things.

anywhere else by sraëka-lillian

8. Form factor is a part of a game’s promises.

Your game is making promises to your players before they even start playing whether you want it to or not. Think about the information your audience is suddenly processing when they first load up your itch page.

Is it a browser game? How long does it take to load? Does it work on mobile? Does the page have a lot of text on it? No text at all? Does the page have a fancy custom theme, or a barely edited default one? If it’s a downloadable game, is it free, paid, or pay-what-you-want? If it’s pay-what-you-want, what’s the default price? How many megabytes is the download? Are there any system requirements listed, and if so how intense are they?

All that without even looking at a video or a screenshot. What do the answers to these questions tell your player about your game? Less is more. By blasting less information at the player, by taking up less space, by making it faster and easier to boot up your game and quickly start playing, you hedge their expectations and disarm them for your payoffs before the game even starts. 

The intrinsic promises of a game’s form factor matter a lot to me (maybe too much), to the point that it guides what engines I use. It’s why I’ve been hesitant about adopting RPG Maker MV or MZ. Since games in those engines are built on Javascript and Electron, standalone releases essentially have to come packaged with an entire mini-browser, and even simple games take up well over 100 mb of hard drive space. That feels fine to me aesthetically for games that take an hour or more to play, but it discourages me from wanting to make a 20 or 10 or 5 minute game. Every engine and release page builds its own set of expectations in the player. You don’t have to be as neurotic as I am, but it’s good to be conscious of the expectations you’re setting when you’re picking an engine or preparing for release.

Freeware vs. commercial games is outside the scope of this piece. I’m obviously a strong proponent of freeware since all my games have been free for ten years, but I have nothing against commercial releases. Just know when money’s on the line, players are suddenly much less forgiving of bugs and issues, and much more demanding of features like built-in gamepad support and remappable controls (even though joytokey is extremely easy and works fine). They also expect your game to be beefier in scope even if your ten minute platformer is extremely good, most people don’t want to pay two dollars upfront for it. Thankfully most people won’t begrudge Pay-What-You-Want options however brief your game is, and I’ve always enjoyed being able to fling the author a few bucks after playing an excellent game.

QUAD DEATH: Core Meltdown EX by fotocopiadora

9. Finish your game before releasing it.

Nine times out of ten, when you end your game on a “To Be Continued…” title card, you are failing to fulfill your promises. Your players will feel disappointed and cheated, and they’ll be unlikely to check out more of your work. 

You can soothe this wound by making it clear up front that your story isn’t finished. Labeling it a “free demo”, or putting “A Prologue” in the subtitle are methods some developers use. But before taking this approach, ask yourself why you want to release your game before it’s done. Are you hungry for feedback? Do you want to know if people will like it? Consider asking friends to play your game privately. Watch them play, in-person or over a screen-share call where you can hear them reacting. This will be more valuable to you than blasting out an incomplete demo to strangers. 

If you’re still desperate to release something, that might be a sign that it’s time to start wrapping up this project. Find ways to slash scope, to make smaller promises. Make it easier for yourself to get the game to a point where you’re happy releasing it.

Super Xalaxer by Rhete

10. Serial games are not a shortcut.

A “prologue game” is another way of saying “episode one”: releasing your game episodically, in two or more parts, over a long stretch of time. This is nearly always a bad idea. Good serial works are built out of smaller, individually satisfying stories. It’s harder to make a larger story out of complete sub-stories than it is to just make a small, good story. Serial works are “hard mode”. When even massive games studios like Valve struggle to finish their serial stories (let alone finishing them well), it’s obvious they are not a good choice for most hobbyists.

If you truly want to make a serial game, try to make the first release work as a complete story in its own right. sacrament i is a freeware prologue game to LUCAH: Born of a Dream, a massive commercial project that was still a year off when sacrament i was released. sacrament i is an extremely satisfying story, and if LUCAH had never come out, I would still be glad that I’d played it.

Making your serial games this way also gives you an out. If you’re proud of your first release as a stand-alone story, you won’t feel as bad later if you decide to stop work on the follow-up.

You can keep doing this indefinitely. Make each game in your ongoing series so good and complete that any individual game is an opportunity for players to bow out, to stop playing. This paradoxically makes them more likely to come back for your next release. Build a shared universe between your games, reuse characters and assets and engines you can save yourself a lot of work this way! But don’t use “I’ll address that in the sequel” as an excuse to cheat your players out of a promised payoff.

Masochistic Maiden Aria and the Cavern of Blissful Agony by Aria

11. Don’t worry about going viral.

Pursuing small, specific goals with your games also means courting small, specific audiences. AAA games are so cluttered and full of extraneous nonsense because they try to make everyone happy at once. Investors want a game’s audience to be as large as possible, so they stand the maximum chance of recouping their investment. Hobbyist games are free from this obligation. All you have to worry about is making a game you like.

If fifty people in a room watch your amateur band play and have a good time, we generally understand that to be a success. So why does "fifty people played my freeware game and a couple left nice comments" feel painfully humble? Your art touched the lives of the same number of people.

Even getting that far can be hard starting out though. It’s a bitter pill to spend 20-30 hours making a piece of art, and then no one responds to it at all. This is where community comes into play. Make friends with other artists you respect. Actually make friends with them; don't just talk to people because you want them to play your games. Play their stuff, leave nice comments on the work you like. Don't expect they'll play your work in return play the games because you enjoy them. If you put that kind of positive energy out into the universe, it'll come back to you before too long, without you even trying.

Hobbyist games have far less in common with AAA or even big commercial indie games than they do with local arts spaces. When you bring your poetry to a small reading or a painting to a local free gallery, there's no expectation that your work will go viral, that it'll show up on a Vinesauce stream. You're there because it's fun to be part of a small community of creative people.

If you can build a space for yourself in a positive and supportive community, you'll always get plenty of feedback from people you respect. It's not the "thousands of adoring strangers and millions of dollars" kind of success you might have been programmed to expect from Indie Game: The Movie. (Do people still care about IGTM? Is my grouching a decade out of date?) But it's enough. You’ll get a nice rush of feedback on release day, and a few more players will trickle in over the coming weeks. Before too long, you’ll be ready to end that chapter and start work on your next game. 

Lair of the Three-Headed Hydra by Dilis

12. Good is good enough.

If you get to a point where you can consistently make games you’re happy and satisfied with, games you believe in your heart are good, you’re light years ahead of the vast majority of game developers. This is a great goal to aspire to, and if you’re already there you should feel proud of yourself.

But what if you want to be more than “good”? What if you want to make something great? What if you want to make a masterpiece?

I’ve used “good” throughout the piece for a few reasons. Good implies a value judgment. If a game can be good, it follows that a game can be bad. Hobbyist game spaces can be touchy-feely and non-judgmental to a fault sometimes. There’s a time and place for being opinionated of course; I’m not going to exhaustively criticize a friend’s game without them asking for that kind of feedback. Often the kind thing to do is to find a couple things about a game that you like, compliment those, and swallow your petty criticisms. 

But we’re all human. We all have opinions about art, and it’s silly to pretend we don’t. Hence the combative and silly title for this piece. I want to acknowledge that you probably don’t just want to make games; you want to make games you like

But trying to be “great”, or to make a “masterpiece”, is beyond being opinionated. You’re setting yourself up for disappointment, for being unable to appreciate more humble successes. To me, these terms connote ambition and scale in a way “good” doesn’t. It goes beyond making each of your stories “the best version of itself”, and makes you start wondering “is this little thing I’m excited about even worth making?” You talk yourself out of making art you might’ve been happy with because you don’t think YouTubers will want to make videos about it.

I think if you make something “great”, it should happen more or less by accident. Get consistent at making stories you’re pleased with. Build a joyful, healthy, positive relationship with art. Of course, you’ll naturally develop favorites among your work. After years of doing this, you’ll have some projects you look back on and smile, and some you look back on and go “holy shit I can’t believe I made that.” By regularly shooting for “good” instead of “great”, you’ll be great without even trying.

Things That Aren't Real by vextro

13. Have fun :)

It doesn’t matter if your games are good or not. It doesn’t matter if you have good taste or not. Art is bullshit; all this is just a fun distraction while we’re waiting to die.

So don’t take any of this too seriously. The point of this advice is that it’s fun to make art, to have opinions about art, to try really hard to make your art something special you can be proud of. If you’re not trying to make a living off art (which you shouldn’t even be thinking about if you’re just starting out) then the actual stakes here are non-existent. 

So just have fun with it. Relax. Don’t overwork yourself. Don’t psyche yourself out to the point you can’t make things at all. 

You can take art seriously. But only because it’s fun to take art seriously, to get worked up over something that ultimately doesn’t matter. It’s fun to be a huge nerd and write a self-indulgent 6300 word blog post about freeware games. But if you ever feel like your relationship with art is making you legitimately unhappy, it’s time to take a step back, breathe deeply, and go touch some grass.

Umineko: When They Cry by 07th Expansion

I didn’t write a dumb manifesto because I want friends to make games that meet my arbitrary critical standards and personal tastes. I’m not telling you to make games John thinks are good. I want you to have fun making games you think are good. I want you to have radical pride in your work, even when the ugly systems that shape our lives tell you your stories are worthless. Because that journey is fun as hell. It’s life-changing, in a small way, to share art that you’re proud of, to see it resonate with others.

I’ve evangelized about this stuff more and more lately. I feel very passionate about it. I’ve seen a lot of my friends make games for the first time many have gone on to make even more games. I’ve gotten a lot of joy playing their stuff, watching their creative voices grow, seeing how happy making rad art makes them. A lot of their stuff has influenced my own work in cool ways.

My goal has always, always been to empower people. To demystify making games, to make it feel doable to friends on the outside. To build communities where friends can share their work and know everyone will be supportive and kind. To have rich conversations about art, and together to make works of art that converse with each other. 

You don’t have to lock yourself in a gamedev bunker and make your prescribed “first dozen games that are going to SUCK” so you can get to your pixel art metroidvania. By adjusting your perspective, you can start making games you’re happy with right now. Find the tool that feels right to you. Spend an evening fiddling with it. Make something happen on the screen that you like, that sparks a tiny fire in your chest. Then think about what a small game built around that spark might look like. 

Power Struggle by tom smizzle

And if you're already making games, if you've taken that leap already, but you don't feel good about your work... you're not alone. Every little pep talk in this piece came out of arguments I've had in my brain. I've felt bad about my work not being ambitious enough, not being pretty enough, not getting enough downloads on itch. I've wrestled a lot with those feelings, with everything I love and get excited about feeling pointless when I'm in a bad spiral.

Or instead of being down on myself, I'm bitter and angry at everyone else. My most viral success is still the platformer I made when I was 19, literally a decade ago. People don't seem to care about hobbyist games as much as they used to. I remember when big games sites had regular columns talking about cool new flash games. That era's over now, and it hurts to not have that kind of institutional support. It doesn't help that a lot of the biggest champions of hobbyist games in that era turned out to be grifters or predators or both. There's a lot of reasons to be disillusioned.

But that's not productive. Being bitter about the past or getting mad at people because they don't share your niche interests isn't healthy. Neither is getting depressed and deciding the boundless joy you've gotten from creative work is stupid and pointless. What’s productive is building positive and supportive communities, and striving to lead a creatively fulfilled life, whatever form that needs to take for each of us.

Scope small, and try your best with the resources you have access to. Enjoy the process. Make little things you're proud of. That should be enough. 

Seven Minutes by Virtanen

Tuesday, February 14, 2023

Jellyfish Archipelago


I've been releasing games as an adult since 2013 -- that means last year marked a full decade of me being a game developer. Gardens of Vextro was the last release of 2022 and the 25th game I've been a part of. I couldn't imagine a more pleasing and fitting finale to a decade of work.

Sometime soon I want to write an in-depth retrospective talking about the last decade and what making games has meant to me. In the meantime, here's a post on Game 26, the start of Decade Two: Jellyfish Archipelago.

I wrote a lot about Love2D in my post about Beach Balls. I'm still having an absolute blast with it. I'm feeling more and more comfy with it all the time, and I think soon making games in it will come just as quickly to me as with Game Maker. If you're also exhausted with your game dev tools getting locked behind miserable subscription models or having goddam military contracts, I can't recommend Love2D enough. 

I worked entirely with light-weight free and open source software to make Jellyfish Archipelago, with only assets I made myself, and there's a freedom and joy to that I've never known before making action games. The tools I used on this project are Love2D, ZeroBrane Studio, Piskel, Bosca Ceoil, OGMO, DarkAudacity, and Git.

This one was a big jump in complexity from Beach Balls. There are discrete levels built out of tiled art -- I had to figure out how to set up Ogmo and connect the JSON level files it generates to Love2D using rxi's small JSON library. I implemented collision code with solid walls in an all-code environment, and fixed several weird resulting edge-case errors. Mostly I'm slowly figuring out how to handle scene and object management myself instead of relying on Game Maker to do it for me. It's definitely difficult, and the code's a mess, but I'm learning a lot quickly by releasing small projects like this. Doing actual camera scrolling is the next challenge -- I'd like to make a shmup or a platformer next.

Many thanks to Sylvie for hosting Sylvie's Jam #1 and prompting me to make this game. I started out trying to follow the jam theme more closely, but as I figured out what parts of the game I liked I drifted further and further away. I also wound up super-late (not that I've ever submitted to a jam on time before). Be sure to check out the other submissions! And check out Sylvie's work too. Her stuff is extremely special and unique and I've admired it from afar for a long time. It's been very fun chatting and participating in her events. I like to think this game carries some of the good energy and lessons I've picked up from her games in the past year.

Monday, February 13, 2023

Gardens of Vextro

I keep putting off writing a post for Gardens of Vextro. It's just such an insanely cool thing, one of the raddest projects I've ever been a part of, and I'm worried about not doing it justice. I'm gonna not overthink it and keep it brief -- especially since I said most of what I wanted to say in the included developer commentaries already.

Gardens of Vextro is a chain game anthology made over several months last year by me and other members of the Vextro community. Each game was developed sequentially, with each game responding to all previous entries. I kicked it off with a short twine in August called Buried Flower. The rest of the community proceeded to knock me on my ass with every single amazing subsequent entry. I don't know what happened exactly, but it felt like the chain game structure brought out everyone's A-game. I'm ridiculously pleased with the final anthology.

We've gotten a lot more writing than I'm used to getting for releases! Thanks a ton to folks who went out of their way to write pieces; I'm linking each of them here for posterity. Please remind me if I'm missing any!

Also many thanks to saori (author of another reverie) for this lovely piece in part on Buried Flower.

The only thing that gets me higher than making art is inspiring friends to make art. Gardens of Vextro was a feedback loop of everyone impressing and delighting the hell out of each other. It's some of the most fun I've ever had. I'm deeply thankful to all my friends who worked on it (and for being giga-brained super-geniuses), and I'm deeply thankful to everyone that engaged with this singularly and beautifully deranged collection of stories.

Wednesday, February 1, 2023

Why Did Trails Stop Killing People

Major Spoilers for the Sky and Crossbell arcs of Trails

Last year I finished Trails to Azure, the fifth game in the Trails series from Falcom and the climactic game of the Crossbell arc. The virtues of Trails are extremely numerous and I'm not interested in going through them all here. I wouldn't have played five 40-80 hour rpg's in one series if I didn't think they were stellar. If you're not initiated into the Falcom cult, don't take any of these criticisms to mean the dumb bad rpgs you like are better than Trails (they're not).

I want to talk about how the Trails series handles mortality. I've generally been very pleased with these games, but in Trails to Azure a lot of little problems with the series came to a head for me. I'm writing this because it's been several months and I still really want to whine about it. (If I make any mistakes or forget something please forgive me, these games are very long and I’ve played them over about five years.)

Nobody dies in Trails in the Sky FC. Fine, it's a prologue game. It's a little weird that a whole-ass coup attempt goes down and there are zero casualties, but whatever.

Trails SC introduces the series' favorite backstory: someone the character liked (usually a woman) died and they're secretly still sad about it. It's never someone the audience knows. We learn the barest details about one character's sister just in time to learn about his all-consuming guilt over her death. The very next chapter, we learn there was a separate woman another character knew, and how he is also consumed by guilt over her death.

This all works, although it's a bit cheap and repetitive, and it has some ugly undertones I've discussed in the past.

At the end of SC, 100+ hours into the Trails journey... a major character, who we know and like and have spent time with, gets killed off!! It's very good and affecting! A loathsome villain beefs it too. It's darkly cathartic, because a character we like kills him, and he doesn't feel great about it.

Trails SC is great. For a lot of reasons, not just that it kills people (but definitely in part because it kills people). SC is the reason I think the Sky trilogy stands toe to toe with genre classics like Final Fantasy VI or Chrono Trigger. It’s just a rad rpg, and it lands even harder because of the prologue game investing us in the world first, and the epilogue game letting us say goodbye in the most loving way possible.

Anyway, I didn't expect this would be the last time anyone died in Trails.

(In the first five games anyway. If Cold Steel contradicts any of this, please allow me to discover that for myself.)

Trails 3rd mostly takes place in an abstract dreamscape straight out of a weird arty rpgmaker game. It's essentially an excuse for a bunch of cute side stories about all the characters from FC and SC. The side stories are very good. The new main character has a strong arc (about two women he knew that died, and how he's sad about it) that ties the game together very nicely. (And from a play perspective, the final dungeon and boss gauntlet is one of the coolest setpieces I've ever played in an RPG.)

Nobody dies in 3rd, although they bring back the dreamscape ghosts of several dead characters so you can feel more feelings about them. It's easy to be cynical about this approach, but I think it works. 3rd's central Dead Woman Backstory is also a lot stronger than the ones in SC, because there's a bunch of flashbacks about her interspersed throughout the game. When we finally learn how she died, it's after getting to know and care about her, and it hurts a whole lot.

Even though no one dies in 3rd, it still reckons with mortality and darkness in a real, honest way. It's a story about untangling the knots of your past, about how hard and necessary it is to say goodbye. It’s my favorite story of any Falcom game.

I think it's telling about Falcom’s priorities that the later Evolution remakes censor 3rd's darkest scene, even though it forms the emotional foundation for the biggest catharsis in Trails from Zero.

No one you like dies in Trails from Zero. Fine, it's a prologue game. It's a little weird for a murder-cult to take over a whole city in a violent uprising and no one beefs it, but whatever. The extremely irredeemable villain dies, and everyone feels really bad about it. It's a well-done scene. You may think the guy's a huge piece of shit, but you know Lloyd wants to save him. You feel how much it hurts him when he fails.

No one dies in Trails to Azure. This is flabbergasting. I could not believe it as I was playing the game. It’s the reason I’m writing this piece. It keeps faking you out too, killing off small side characters who absolutely could die and the series could keep going just fine. Then a few scenes later, the explosive reveal: oh joyous day, they survived!

Azure introduces a character whose whole deal is that she's a craaaaaaazy murderer. She loves blood and death and the screams of the innocent. She uses a gun that's also a chainsaw so that she can shoot people and also carve them in half with a chainsaw. She kills a few nameless extras, mostly off-screen. She seemingly offs a side character, but then it turns out the side character is only injured. But she's permanently injured in ways that will affect her life forever, and there are a few heart-wrenching scenes where you watch her deal with that. Actually nevermind, we find out in the ending she's fully recovered. So the Crazy Murderer actually does not murder or even permanently harm a single named character.

A third into Azure, terrorists attack the capitol building while heads-of-state are there arguing over a treaty. It's a dramatic and exciting setpiece. It's weird that no one dies! Maybe this is just me as an American talking, but it's a little odd to play a game where terrorists attack a skyscraper with aircraft and it's ultimately bloodless. I guess some of the nameless terrorists die, off-screen.

So many violent dramatic things happen in Azure. Buildings gets bombed to the ground (don't worry -- everyone had evacuated beforehand). An entire fortress gets vaporized (don't worry -- someone has A Feeling that everyone in the fortress is actually fine somewhere). You fight an unstoppable juggernaut you have no chance of beating (but she has a code of honor and refuses to actually kill you).

It all starts to feel cheap, because there aren't any lasting consequences. You don't feel the violence of the political uprising or the power of the villains because no one you care about is ever in any danger. The main villain of the game is the worst casualty of this. She impales another villain on a half dozen energy lances and flings him across the room into a wall. He collapses in a pool of his own blood and utters his last words. After you fight, she reveals that the lances she stabbed him with really just put him in a state of "suspended animation", and he's actually fine.

None of the villains die. The ones who aren't redeemed more or less wave goodbye and go "see you again in Trails of Cold Steel!" It does not inspire much suspense when the main villain does this, considering she couldn't even off a tiny side character without 4kids-censoring herself.

There are a couple more "someone died in the past and I'm sad about it" backstories. It's never characters we know. Death in Crossbell is something that happens in the past, to other people, a trial of the heart to be mulled over and overcome. It doesn't exist in the present.

At the end of Azure, the heroes reject the easy answers offered by the villains, and the specter of war looms over Crossbell. This is what the story's been building towards for two games. Instead of sacrificing an innocent child for power, they'll face down a terrifying uncertain future.

Then there's a two minute montage of the war. The heroes win. At the end there's a big picture that shows all our heroes happy and alive and well and victorious.

Trails to Azure is full of beautiful, gut wrenching character journeys. (And I have to add: on hard mode, it's an absolutely enthralling and demanding game to play. That did a whole lot to soothe my angsts with the story.) But it feels resistant to meaningful status quo changes in a way that undermines its own drama. Villains can't die or do anything too evil because then they can't be redeemed and join your party in the next game. Main characters can't beef it because then they won't be able to join the 100,000-character cast in Cold Steel. Side characters can't die because... well because they don't want to make you feel bad, okay?

The character arcs in Azure are beautiful, but they don't have the dramatic weight they could because there's next to no stakes. And the Ultimate Feel Good Happy End is odd coming from a developer that very routinely has tragic endings. How many Ys games end with characters you really care about either dying or ascending into goddess-hood where Adol can never see them again? Azure sets you up to expect the same thing -- KeA is the most death-flagged RPG heroine in existence. Think of how much more the surprise happy ending would have landed if the characters had suffered and sacrificed more to get there.

Ys games don't have the cast size or the word count of Trails. I have to wonder if, in the process of making five games and writing millions and millions of words about these characters, the developers fell too in love with them. And they couldn't hurt them in the ways the story so often calls for.

Tuesday, October 18, 2022

Beach Balls


I made a little browser game recently! It's called Beach Balls. It's a tiny score attack game you play with your mouse. Some friends have gotten really impressive scores already!

I made Beach Balls in Love2D, a game dev framework for the Lua programming language. I made all the art myself -- I also made the music in Bosca Ceoil. As small as the game is, it feels like a pretty big milestone to me, because it's my first time making a complete game essentially from scratch. 

I cannot say enough nice things about Love2D. It's extremely light-weight, which is a huge plus after a decade of dealing with large and sometimes cumbersome editors and export sizes. It's also free and open-source, which is nice after watching YoYoGames work for a decade plus to slowly tear Game Maker away from the hobbyists that fueled its initial success. It's instantly familiar and easy to use. Lua reminds me a lot of GML -- once I got a workflow going, it honestly didn't feel that much harder than Game Maker. Even though I was making everything in a text editor! I followed Sheepolution's very good tutorial for the record, at least until I had enough tools to branch off and do my own thing.

I've always used medium-level engines like Game Maker or high-level dev tools like RPGMaker, Twine, etc. until now. I've told friends that the creative work of making and finishing a game is already very scary and demanding, and I don't want to add a bunch of hard technical work on top of that. I also enjoy working within the limitations of high level editors. I don't need to make an engine from scratch to fit a very specific preconceived vision. I find the stories of my games while working on them, within the constraints of my tools.

But also... programming is really fun! I loved it as a kid, even separate from game dev stuff. I think my love of coding got burned out of me for a while after college, just like I stopped reading for five years after high school. I've been having a blast learning Love2D and the Lua environment. I immediately jumped into a much more ambitious project after finishing Beach Balls, and I'm already delighted by the tech problems I've been wrestling with.

There's nothing more real or authentic about making your own game engine in a lower-level framework. The actual story I'm sharing isn't anymore inherently worthwhile because I had to make my own collision code and scene manager. But doing all this stuff is fun as hell for me, and I like the hand-crafted artisanal feelings I get from using all my own code and art and sounds and music.

I've put out two dozen games now -- the creative part of game dev is officially No Longer Scary to me. This is a new skill to learn, a new way to get excited about this hobby that's been bringing me joy for a decade now. I feel good about it!

Thursday, September 29, 2022

Licorice Recoil

New game! I put out a geocities-core MIDI-backed web fic a couple weeks ago. It's a style I've wanted to work in for a long time -- probably since reading RPGClassics sprite-edit OC chats as a kid. Give it a read right here for free, in your browser or on your phone.

Like A Cold Place, this one started off as shitposting on social media. I kept seeing cute gay art of the two leads from the anime Lycoris Recoil on my twitter timeline, so I wrote a little thread about them. My feeds often get bombarded with gorgeous character art for shows and games I know nothing about. The joke is that I wind up developing relationships with these characters in that weird online context vacuum, and that those relationships can be fun in their own right.

I liked the bones of the story I laid out in that thread. I thought about expanding it into a little VN, then gave up on the idea because it sounded like too much work. Two weeks later I was in the shower, thinking again about wanting to make a geocities-ass web story, then jolted as I realized the two ideas could work together. A lot of my projects start like that -- a little story I want to tell, and separately a medium I want to work in. Then, finally, snapping them together.

It actually wound up taking a lot of work. A big chunk of the effort was getting together a ~4000 word story I was pleased with. I'm still much more comfortable writing scary and tense scenes than I am cute quiet romance; it's something I've been struggling with since writing the middle parts of Wayward. But I think I'm getting better at this kind of writing, and it's nice to have more tools in my toolbox. 

I'd like to be able to write something like this that's more stretched out, with a slower burn and bigger payoff. But I think this story benefits a lot from the 10-15 minute runtime and density of art/music/ideas. It definitely moves fast, but I think the payoff is small enough that it still feels decently earned.

I really appreciate Zeloz and Deb's help with the early test reading. The first "finished" draft actually ended a scene earlier, before the last time-skip. They correctly said it felt a little abrupt, and I quickly drafted a new ending I'm a lot happier with.

The web dev stuff took most of the rest of the work. It turns out doing web development from scratch in 2022 is... pretty tricky! You can't just auto-play MIDIs anymore, browsers block that. I had to do a lot of CSS and Javascript shenanigans just to mimic the style of old-school personal web pages, and a lot of extra work on top of that to keep it mobile-friendly. I'm pleased with the final effect though, and it was fun to feel like an actual programmer for the first time in ages.

I got almost all the Flickgame art together in the last several days of dev, and that part FELT the hardest even though it went really quick. Making actual art assets from scratch Does Not Come Easy to me. Working with a very limited toolset like Flickgame helped keep it manageable though. It's a skillset I want to develop more, because even though it was hard it was still pretty rewarding and delightful.

All told I think it took around thirty hours. It's the most love I've poured into a project this year outside of Breathless, which is very funny for such a silly premise. Friends seem to have enjoyed the story a lot, both the ones who have and have not seen the show, and I'm very pleased with how it turned out.

I'm realizing this year that a big part of what makes creative work exciting to me is the process of learning new skills, trying new things. Basically every part of this project was outside my normal wheelhouse. I constantly had to stretch muscles I wasn't used to stretching. But I scoped small enough that it didn't get too overwhelming. 

I don't think I'm the kind of dev that finds a niche and then iterates on it endlessly (although I think that can be a dope approach!) Instead I want to keep trying new things and get Pretty Good at a whole lot of creative skills. I'm feeling pretty jazzed about it!

Tuesday, April 26, 2022

Breathless and Gorgon's Gaze

I put out two new games this month! Both are browser games, and you can play them on your computer or on your phone.

The first is a horror twine, Breathless. It takes about ten minutes to play. This one took a pretty long and winding development road for such a quick thing. It started as a very different prose short story right after I put out Wayward last year. I finished the draft but didn't really like how it came together. I tried rewriting it in Twine with a different approach, got some results I liked, then spent four months or so drafting and fiddling with it. Eventually I had something I liked a whole lot!

I think the finished game is really neat. I've had like six big false starts with Twine over the last decade. My issue is that I always tried writing in it like linear fiction, without taking advantage of the unique parts of the form. That was true of this project initially -- the intro and ending sequences were originally way more expansive and even more railroaded. But as I worked on expanding the middle part, I realized how much more fun it was when the game felt branching and responsive. 

It took a lot of work to get the middle part where I wanted it to be. I even watched playtesters to find obvious choice dead-ends to expand, and figure out which parts needed snappier pacing. (Thanks a bunch Drew, Narf, Cecille, and June!!) It was a hard but really rewarding process; I'm glad I stuck it out! I'm really excited about working with (and playing!) interactive fiction more in the future. 

The second is a block-pushing puzzle game called Gorgons' Gaze. It's ten levels long, and seems to take most players over an hour to complete. It's pretty tough!

I put together the engine and aesthetic ages ago, before the pandemic even. I got stuck there because the idea of actually making block puzzles was super-intimidating to me. I made a Sokoban riff in Puzzlescript before (Spider's Hollow, a game I still like a whole lot), but that game is really focused on story. There are maybe two "real" puzzles out of the game's ten screens.

I picked the gorgon prototype back up after releasing Breathless, and after a couple weeks I had a bunch of puzzles I really liked. I'd decided to embrace making a real puzzle game, and I tried to make the later levels as hard as I could without just making them convoluted or overly large. I did a lot of playtesting to make sure there weren't any trivial solutions I missed. (Thanks a ton Thom, Cecille, Drew, and Rhete!!)

The extra work and level drafting paid off -- Gorgons' Gaze has resonated with players to a hilarious degree. It got picked up by a couple rad-looking puzzle game blogs (Bonte Games and a Japanese LiveDoor blog), shared on puzzle game twitter (which I didn't know was a thing), and now it's my second-most viewed game on Itch (after Facets). I'm delighted it's connected with so many folks. I'm excited to make more puzzle-y games in the future!

I feel like the silly seal game last month reenergized me creatively. I'm excited to hammer out more small projects this year. I feel like I'm connecting with a part of my creative spirit I've neglected for a while, and it feels really good.