Umbra: Game Development Notes 2
I’m back with another update on my work-in-progress game, Umbra. Unfortunately, this will also be the last update.
Three months ago, I released an alpha version to Itch. Following the release, I tried to find and listen to every scrap of feedback I could get my hands on. Although the feedback is far from clear, I know it in my gut: the game, at its core, simply isn’t fun.
For posterity, and anyone unfamiliar with the project here are the first and last demo videos I took of Umbra.
August 2023 | October 2024 |
---|---|
Now, let’s see what happened during that time.
The Dark Ages
When I originally decided there was a game to be made, my idea was straightforward: implement Dark Souls-like melee combat controls into a 2D, horizontal runner mobile game similar to Postknight. Throw in pixel graphics and interesting bosses. Done - or so I thought.
I proceeded to spend six months wrangling features that ultimately wouldn’t help me validate the core gameplay concept. Part of the issue is that I had not stopped to think about what that gameplay really was.
Course Correction
When I finally emerged from my stupor one crisp February morning, I resolved to implement the core gameplay loop at the cost of pretty much any other engineering concern. After this inflection point, I was finally on the right path.
A short while later, I had the gameplay demo. I played it. And, it sucked. The player was hard to control, the enemies too difficult, but worst of all, there just wasn’t enough to do inside the game world. I resolved to upgrade from a Postknight clone to a Mario Run clone - that is, implement platforming.
I didn’t really see any other ways to add a new or significant dimension to the game world as I had imagined it. I still don’t.
Not Fun Then, Not Fun Now
I stayed focused and rushed the implementation there as well. But the resulting game still wasn’t fun. I know it wasn’t fun because I said it, my friends and family said it, and my random Internet playtesters said it.
But this time, the answer was simpler: I don’t play platformers! I don’t have experience with them, nor am I motivated to create interesting, challenging platformer encounters. I am the wrong person to make the next, great platformer.
If I’m going to be the sole designer and developer for a game, I had better have a smidgen of creative inspiration.
Retrospection
It has now been a little over a year since I first conceived of this project. A few things went very right, while a few more things went very wrong.
The Beginnings of an Architecture
I have converged on a small set of software components - stopping just short of an actual software architecture - that I believe can be used to organize effectively a wide variety of games. The components are designed around an approach in which the game is simply a routine run inside the larger program, perhaps multiple times or in parallel, with various goals and parameters.
Lacking such an architecture is what caused me to give up on my first game - by the time I had released a handful of times, the entire codebase was so fragile that I was unable to continue developing it. I’m very happy with my newly developed sense of overarching design with respect to game development.
I extracted and released two of these components as open-source libraries for Dart and Flutter, specifically dart_yafsm
and flame_fuse
.
Proof of Sustainable Development
Until now, most of my projects at work have lasted from a few weeks to a few months - never longer. In this case, I have evidence that I can develop and maintain a fairly complex codebase for over a year. Even today, the project is completely testable and approachable to me, even while some parts have remained untouched since the first development push.
I now have proof that I wasn’t just getting bored and quitting, but rather that the relatively short nature of my software work, usually prototype development and one-off contracts for specific clients, has been at least partially coincidental. I am definitely capable of undertaking a longer project, avoiding burnout, and retaining control.
Deviation Requires Experimentation
As a new game developer, my plans are generally to take a game I know and enjoy, change the art, insert a mechanic or two, and then get it out there. I’m reasonably certain this approach works great for creating successful games.
In this case, my “core” game to clone was Postknight. Postknight is… this game in which there really is no strategy. You just sort of mash buttons. The order and frequency don’t matter. Brainless fun.
I’m not surprised that, upon cloning a game for brainless fun, I found myself bored and began experimenting with modifications to increase the difficulty. And that’s probably fine, to be honest.
But what I didn’t do is similarly ramp up experimentation for those modifications. I don’t know when, exactly, I strayed out of the general region of Postknight-like games, but it must have happened pretty quickly. And I just kept going in that direction, lost.
In the future, I have to be vigilant about my changes. If the game has drifted to an entirely new genre, it loses the guarantees it had about its performance when it started off as a clone of an existing, successful game.
I really, really lost sight of this fact over the last year.
Missing Game Design Knowledge
“How did game X solve Y?”
In my experimentation to try and make Umbra fun, I asked a variation of this question a hundred times over. More often than not, I just didn’t know the answer.
How did I get in this state? It’s painfully clear that I simply haven’t designed enough games.
I’m not entirely blindsided to this issue. I have read books on game design, and I regularly watch and take notes on game design videos. But when it comes to actually creating and releasing small but complete games exemplifying those concepts, I know I fall short.
Going forward, I’m especially interested in participating in game jams and other short-term software projects. These are going to be my low-investment high-returns solution for acquiring that experience.
You Are You, And Nobody Else
I have a certain taste in games, and it doesn’t include platformers of any kind. I find them incredibly tedious and won’t play for longer than a few minutes. So how did I end up with a classic platformer game for my only long-term project?
The problem is two-fold. First, I was so keen on finding a genre that fit my current project that I refused to discard ideas that I wouldn’t be able to create content for. That’s, uh, obviously a critical error. If you’re the only member on a creative project, you better be pretty damn creative with respect to the media.
Secondly, I only reached this level of desperation because I never bothered to create a high-level understanding of the various directions the game could go, given its controls, mechanics, and art. In short, I never had a design document guiding me through the experimentation process.
My goal for future games is to create simple, high-level design documents for potential ideas to help me clearly identify the core gameplay concept. And, perhaps more importantly, objectively judge whether or not it falls within my gaming purview.
Conclusions
I still don’t know where to take the game. Rather than sit on it indefinitely, I’ve decided the right thing to do is cut my losses and move on. In the next few weeks, I’ll start up the idea engine once more.
There you have it. A year-long development effort bites the metaphorical dust. “It’ll never happen to me!”, I proudly expounded after reading numerous posts over the years. Well, it did, and there is but one path forward: reflect, learn, and refuse to let the past repeat itself.