Blog 821: Everything Eventually

My workplace recently started a scheme where they’d let total rando employees tell their “stories” through internal blog posts. Being the relentless shill and lover of blogging that I am, I reckoned that my story of bloody-minded solo game development was surely worth a pitch.

And they actually accepted! I’m quite pleased with the result, so I’m copy-pasting it here for posterity. So please, enjoy this more philosophical look at my journey from Warcraft III to Exon — but can you spot all the song references?

Everything Eventually

I’ve been using Unity to make a single game for almost eight years now. I’ve been working on it entirely by myself, in my own time. It’s still nowhere near done, but I try not to let that get me down. Why rush? I’m here to build something that people will enjoy, something I can be proud of — not something quick. But how does one person spend eight years (and counting) making one game? Well…

My dreams of making games might have started with pen and paper and wistful glances at The Legend of Zelda: Link’s Awakening, but I only found my feet modding Warcraft III. I loved working with Warcraft III because it provided so much, and yet was so accessible. Effortlessly intuitive landscaping tools. A vast library of art assets, in a style that was easy to remix. An incredibly friendly drag ‘n’ drop programming tool. Buckets of flexibility on top for those wishing to dig deeper and push further. A huge and vibrant community.

World Editor made it very easy to be an all-rounder with little more than a desire to mash your toys together. I started out afraid of programming, terrified of all those eldritch invocations and obscure commands that somehow translated into “the computer doing things”. That friendly drag ‘n’ drop trigger editor though? I was tricked into becoming a programmer!

Fast-forward about ten years and my final Warcraft III project was a total conversion, with all home-made art; by then I’d graduated from university and become a professional C# programmer “on the side” too. When I finished that project, I realised that I’d probably wrung out everything I was ever going to be able to wring out of Somebody Else’s Game, and that maybe, just maybe, as a professional programmer I didn’t need to be so afraid of… well, everything else involved in game dev anymore.

The thing is that I am more interested in the high-level stuff than the vagaries of rendering or physics. I’m all about the way you fight the monsters, the way you talk to the monsters, the mechanics that make a game and its world distinct. I wanted something closer to the metal than a level editor so I could really play with those elements, but I still needed some sugar to make the pill go down.

The traditional answer would be to form a team, to find other people to fill in those skill- and knowledge-gaps, but I could never bring myself to do this. Growing up as a modder, game dev has always been as much art as artifice to me; I built my Warcraft maps by feel rather than with plans and firm goals. Ultimately, I enjoyed working that way, so a major condition of moving on from modding at all was being able to keep that flexibility and freedom to explore — freedom I could only have working alone.

When I was hunting high and low for answers, in the heady days of 2013, one stood out immediately. This thing called Unity offered a nice GUI editor; graphics, physics and audio all built-in; it let you do all the programming in C#; and it was free. It looked perfect for my needs — powerful enough that I could rely on it for all the heavy lifting, flexible enough that I could build the game I wanted on top. Plus, there was a mature community to help fill in any gaps. Just like Warcraft III, though this time I’d have the advantage of entering into the mature community rather than growing up with it.

After doing the Roll-a-Ball tutorial, I went straight into building a prototype. I threw in a load of art from my total conversion. I slapped in some scripts I pulled right off the internet. It was so quick. It was so dirty. But in under a week I had my game. I had proof that Unity was not only capable of supporting my vision, but easy enough that I really could go it alone.

I threw that prototype away and started completely from scratch shortly afterwards — I’d been a professional engineer long enough by then not to make that mistake. It’s one thing to haphazardly stick bits of driftwood together to get a feel for a new technology, but that kind of mess never results in a stable foundation for a big, long-running project.

Although I knew the game I wanted to make, I didn’t actually have a plan for how to get there, so I just got stuck in. Basic character control and movement. Slashing swords. Shooting guns. Patrolling enemies. In hindsight, everything I touched was utterly naive, and I’ve rewritten all of these systems in the years since (most of them several times over), but at the time they were exactly what I needed. All through that honeymoon phase, Unity happily produced on-screen responses to devilishly small amounts of code, and in the absence of… external motivation… the momentum that generated was critical in getting it going and keeping it going.

Needless to say, not having much of a plan does come with its own challenges.

I’ve always had a desire to release something. It’s difficult to claim to be a game developer, to go to local game developer meet-ups and talk with other game developers about game development, and immediately follow that with “no, I haven’t actually released anything yet”. You’re supposed to make lots of little projects on your way up to the magnum opus, right? (Oops.) So a couple of years in, I got the notion that I could totally make a procedurally-generated dungeon crawler mode to tide people over. This would be a “quick” way to stress out the core gameplay loop in a self-contained sub-component, before making the grand story-driven single-player adventure it was truly meant to be.

This was a bad idea. Procedural generation is a very hard problem, or rather, it’s seductively easy to get generators producing levels that look pretty from on-high but are pointlessly boring to play — it’s hard to make procedurally generated levels that are good. I eventually burned the lot and went back to the original plan of hand-crafting my levels; I have been more satisfied with the results since then. (I am still tempted to return, and honestly, a little procedural bunker in the corner of my bespoke world wouldn’t be out of place. But I fight this urge, because I have this feeling that procgen is always more fun for the developer than the player…)

When you work alone, though, such detours aren’t really a problem. I’m not beholden to any publisher milestones, nor am I throwing away somebody else’s hard work when I change tack: the only person that suffers the consequences of any meandering is me, and I’m a grown-up now — I can handle it.

Besides, I still came out with core systems both new and improved, and even discarded features add to the rich texture of a game; I’m sure there are a thousand subtle cues that would never have ended up in the game had I not explored these other paths along the way. And you can’t even put a price on what I learned about Unity in that time, the confidence I gained from exploring its capabilities through a slightly different lens.

Sure, if the end goal is to make a profit, to ship and move on, then this project is already an abject failure. Luckily, that’s never been my aim — my aim is only to build the best version of that ideal game that I can. This is, perhaps, one of the biggest reasons that I continue alone: I don’t think it would be fair to ask anyone else to work on what is such a personal ambition and niche vision. I am driven by the same hope that powered my Warcraft III maps — that by building something that works for me, that fills some hole within me that nobody else has quite filled, others might also find something compelling when they play it, something they’d never have thought to make for themselves or didn’t know they were looking for. That’s why I enjoyed other people’s maps after all.

Though for all my waffling about Art, ultimately I do want to make a game, and I want people to play it, and while it may be slow in coming it is coming. I’ve finally got a demo level lined up and ready for release, with which I will mark its eighth birthday in December. It might only be a fragment, but it is exactly the game I always wanted to make. Now… Now I just need to stay on these roads until it’s actually finished.

That’s the life of the solo game developer, though: everything… eventually.

And you tell me...

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.