Perfect Is the Enemy of Good

Or rather: how I got so caught up in trying to write the perfect explanation of turn-based mechanics that I stopped writing entirely…

To anyone looking at the home page of this blog, it probably looks very much like I moved to Germany and then stopped doing anything worth writing about! This is not true. I’ve done tonnes of interesting work over the last two years - I’ve just failed terribly at writing about it. Not entirely, mind you, because I did write a bunch of stuff in the new mechanics section of the site. However, that doesn’t show up on the front page, and it doesn’t go into the RSS feed, so odds are you probably didn’t even notice it. The idea was for that to be linked from another front-page post, which turned out the be the first in a series of unfinished posts that, amongst other things, just completely sapped my motivation to keep working on this blog…

The trouble started with this Let’s Play: Reimagined post. I actually finished playing through the Heroes of Might & Magic campaign shortly after writing that post and started writing the Let’s Play post for it. In the process, I made a huge list of mechanics used in the game and wrote little mini-posts explaining each of them in the mechanics section. I wrote about 21 of the 33 of these I needed over the last 2 years. If I’m not entirely mistaken, the bit that I got stuck on was movement mechanics…

I decided it might be time to make some games instead of just writing about it to get unstuck. So I spent July and August 2019 doing the Roguelike Tutorial with Reddit. That dead-end prototype is up here on Github. I used Python with an ECS architecture and had a lot of fun, but I realized that it would eventually need an engine that could go more places than Python could take me (in performance and portability). So I decided to stop and come back to it someday when I’d figured out a good engine for making turn-based games. Not to mention that I still have to figure out many game design questions that I have no clue how to answer for this game idea to actually work.

In October, Sas and I decided to try our hands at Ludum Dare 45 - our first jam since Michelle and I moved to Germany. We made Fool’s Gold, and I think it was probably one of our best performers in an LD ever. We decided to try PICO-8 instead of the usual Unity, and we had a blast with it! I fell in love with PICO-8 and was immediately thinking of more ways I could use it…

I don’t really remember what I did between November 2019 and April 2020, but I guess our first winter in Europe was likely a bit of a rough adjustment. It was dark and raining most of the time, so I probably just couldn’t muster much motivation to do anything but play games for relaxation… I probably spent at least some of that time stuck on finishing that Heroes of Might & Magic Let’s Play post, but to no avail.

The next thing I wrote was a long overdue post-mortem of LD 45 followed by a Ludum Dare 46 ideas post. Other than updating my reading list, that was sadly all for 2020…

Although I didn’t write about any of it, I actually got a hell of a lot done in 2020! Well, maybe not that much entirely finished, but at least I worked on many things.

In April 2020, Sas and I made Grove Guardian for Ludum Dare 46. As part of the wind-down after that jam, I created an automated pipeline in Gitlab for publishing PICO-8 cartridges to my blog to embed them into posts.

In May 2020, I decided that I didn’t like having these huge, complex, completely untested ECS code examples in my mechanics posts. Wouldn’t it be way cooler and more likely to be correct if I could rather code up little PICO-8 demos that illustrate each mechanic and embed these in the blog posts? Along with this idea, I decided to reduce the scope from finishing the whole Heroes of Might & Magic Let’s Play post to just getting something out on Turn-based Strategy movement mechanics. The idea was that I would only need about six mechanics pages to be written from scratch or overhauled - so I moved the goalposts on what went into a mechanics post, but the overall target seemed much more realistic. So I got cracking, I finished Mechanics: Movement, Mechanics: Movement Controls and Mechanics: Movement Grid-based.

By June 2020, I was utterly stuck again. So I decided it was time to make a game again. I tackled one of my oldest bugbears: making a remake of Chaos: Battle of Wizards by Julian Gollop. I decided a PICO-8 demake would be appropriate and called it Mayhem, and work on it started out exceptionally well! The basic hot-seat strategy game was feature complete in just 2-3 months. After that, I saw a tweet about finishing games that read something along the lines of “What’s the smallest game you can finish that will sell?”. That tweet broke me a little bit… see, I knew that Mayhem was a commercial dead-end: apart from being in PICO-8, Julian Gollop has also made his own remake with much higher production values. However, before seeing this tweet, I had already decided that I would really like to finish this game for once. Mayhem would be it! A finished game project. Done - with nothing to be added or removed. I was so close I could taste it…

In August 2020, I built an alpha release and sent it out onto the PICO-8 Discord to gather some feedback, but for the most part, I got crickets. We were in the middle of a pandemic. Nobody would meet up with their friends to play hot seat demakes of ancient turn-based strategy games. I had not planned to do AI - I was already out of tokens - it was just supposed to be a hot-seat experience, but I realized that in that case, probably no one would ever play it. It needed at least some basic AI for players to learn the game against, to get them excited to play against their friends…

Around the same time, I had the idea of using PICO-8 to make little animated birthday cards for my close family, so between August and December, I made birthday cards for my mother, youngest sister, father and younger sister.

In November 2020, shortly after getting back from South Africa to sort out my passport woes, I made Spaceship You for the Ubisoft 2020 Game Jam.

So as you can see, I was swamped, just not writing blog posts.

After August, I decided to bite the bullet and try to add AI to Mayhem. I found myself battling with the token limit and AI debugging. A huge problem was that I would break two more things each time I fixed one, so the bugs were just neverending. Around October, I invented a way of writing unit tests for PICO-8 code. That would’ve made a great blog post, but I didn’t want to get sidetracked from finishing the game. Even with a reasonably large number of tests to help stop regressions, working on the game started to feel like an insurmountable slog.

Once the AI became good enough, I could occasionally spot some balance problems. So, somewhere between November and December, I also threw in an extensive redesign of the units and spells to improve balance. That is, however, still not released because it’s stuck on the AI branch of doom!

By December 2020, Mayhem’s AI was probably close to good enough. Or at least as good as I could make it given the constraints, but I just couldn’t keep going and finish it to the point that I could consider it complete. Mayhem had defeated me yet again. My last commit was on 19 December. Since then, I simply couldn’t stand looking at it for long enough to do anything useful to it. At this point, I just need to wrap up the AI and bug hunting, add music, polish the sound effects a bit and write a manual (or create a tutorial video). I still want to finish Mayhem, but we’re now six months into 2021, and I just haven’t been able to find it in me to work on it again.

This year I haven’t done much at all. I’ve been playing a lot! Not to analyze turn-based game design - just for fun! Though the analysis sometimes just happens anyway - I can’t control it. I’ve done a little bit of work on building myself a new cross-platform engine, specifically for making turn-based strategy games, but my heart hasn’t really been in it - it’s going, but not VERY well. Mostly I’ve felt guilty for not working on finishing any of my game development projects anymore. That includes Mayhem and my TBS game design blog series.

I definitely overdid it a bit in the last six months of 2020. It was a challenging year for everybody. Putting that much pressure on myself by building so many things in so little time was not wise. I think I burned myself out on PICO-8 a little bit…

So how do I get back on the horse? For now, I’m just going to try to follow my wise cousin’s advice. Somewhat paraphrased/translated from Afrikaans:

Just write…

I’m not talking about mechanics posts.

I mean, just write.

Get your attention away from the TBS series for a post or two…

… but don’t stop writing.

Even if it’s just a random “I’m stuck, and I’m thinking of doing this” post.

Maybe it helps you come up with a plan.

At the end of that post that started all this trouble, I wrote down a few principles to guide future writing; amongst them were:

Perfect is the enemy of good! Even if it’s not perfect by the end of the month - hit publish.

Well, I guess I wrote that and promptly forgot all about it again! Maybe I should’ve just hit publish, even if I knew things weren’t perfect.

So let’s see, maybe Sas is right; perhaps this is how I unclog the engine and get it up and running again…

It doesn’t have to be perfect, just write…

Author

Matt Van Der Westhuizen

Back-end service developer at Ubisoft Blue Byte by day - wannabe game designer & developer by night.