Devlog 2024-04-21

I’ve released Escape From Evil Island. You can get it on itch.io at https://speveril.itch.io/evil-island. It is listed as pay-what-you-want, but please, grab it for free if you’d like! I hope you enjoy it.

Technically I’m writing this a little before I actually make it live, because I have a few small things to wrap up, but it’s pretty much done at this point (barring some last minute breaking bug being discovered). I have a lot of thoughts jumbling around in my head, and I wanted to write some down, so please bear with me!

What Happened to March?

I ended up travelling for work for a bunch of March, so I didn’t have the time I would have liked, and so I ended up dropping writing devlogs in favour of focusing more on working on the game. Thankfully, I managed to get Evil Island working on my Steam Deck before I left so I was able to do a fair bit of focused playtesting while I travelled.

For April I have less of an excuse; I’ve been meaning to get back on here and write up a devlog all month. Now seems like a good time to finally get back on the horse!

A Quick Rundown

In terms of actual work, here’s a quick summary of what I’ve done since last post:

  • Got some lovely people to test the game for me and provide some great feedback
  • Drew all of the cutscene art I needed
  • Played through the game a few times myself
  • Fixed a slew of bugs
  • Tweaked a bunch of existing art and level design
  • Set myself up some build pipeline scripts

Build Pipeline

Exporting a Godot game is really easy! You just go to the menu and click Export Project, choose the OS you want to export for, and click a button (assuming it’s all set up). Thing is, I also wanted to include a LICENSES.txt file in the game’s zip to satisfy some licensing requirements. For that, I needed to export the game, then copy the file into the export directory, and then zip it up. I did several releases for playtesters to try out, and I was eventually building three versions on two different computers, and then upload them all to itch manually, and accumulating small things I needed to make sure I did for each step…

Well anyway, I decided to just write some bash scripts to do it for me. Godot can be invoked a few different ways from the command line, including options to run headless (i.e. don’t open any windows) and to export a particular export preset you have. It’s not 100% convenient; I still have to open Godot on every computer to let it do its import process (though I think I might be able to get that happening automatically with a bit more work) and then run my script, but it still means I can’t forget any later parts of the process.

On top of that, itch.io has a command line tool called butler, which lets you upload builds. I hadn’t used it before, but had been wanting an excuse to to learn more about it – and this was a great one. Turns out, it’s actually super easy to use, so I now have a script that I can just run to kick off a build, and then automatically deploy to itch! Sadly I still need to run the deploy from different computers (cross platform builds are not really something that will ever work), but all things considered this is a pretty big improvement to my ship process for the first round of playtests.

And of course, since I love to over-engineer things (and I already had two computers running different operating systems in the mix), the scripts are configurable and they should be quick to adapt to other projects, so building and deploying whatever I do next should be easy too!

Playtesting

I had played every individual part of the game many times over, but I had yet to make it all the way through the game in one go. I’ve rectified that and have made it through a few times now. It’s not bad! I enjoy it! I caught a bunch of bugs and figured out some things that could use improvement.

There’s only so far you can get testing your own stuff though, so I reached out to family and friends to help playtest it. Quite a few people were kind enough to download the game and send me some excellent feedback – some of which has definitely improved the game because it showed me that some things which I didn’t think were a big deal were actually worth doing. I appreciate them all greatly! Thank you all so much!

The Post-Mortem

As I mentioned back in January when I first wrote about Evil Island, it was supposed to be a quick game – just a one-month expansion of a prototype I’d made in a few days. I had thought about going back to that little prototype ever since, so why not go ahead and make something that paid homage to a bunch of games that I spent a lot of my childhood playing? It took a lot longer than that, obviously – nearly 10 months. Why did it take so much longer than I anticipated?

The largest part, I think, was that I underestimated how much more work it would be to build 16 levels that were actually fun, compared to 4 levels that were not necessarily particularly enjoyable to play through. That many levels also demanded a lot more varied art and mechanics than the original 4 levels needed. The art, in particular, is something that slows me down a lot, and I wanted to make it look a lot better.

The old game wasn’t the best looking game:

You can see that, in essence, they were the same game, but the old one (mostly) looked less polished. Some of the tile art was actually better than what I’m using in the finished game, in my opinion, because someone else (my friend, Hyptosis) whipped them out quickly for me when I was complaining about my existing blocks (which were literally just coloured bevelled boxes; they didn’t even connect to each other!) The different tiles didn’t really match each other, since he didn’t have the time (understandably!) to build me a full tileset, and all the sprites were still my art anyway… and overall the game just looked a bit incoherent and messy.

This time, I pushed myself to do all of the art (and I almost did, though I ended up using a CC0 asset for the animated explosions because I was tired and didn’t want to animate an explosion). I picked a palette (the 64 color Famicube palette, by Arne), and start converting the art. The lower colour count lends itself much better to saturated, contrasty, cartoony graphics, which was even more at odds with Hyptosis' painterly style, so as much as I would have loved to lean more toward the stuff he drew for me, I ended up reworking everything he drew, but there are still hints of some of it in some places. I also drew more art. A lot more: the original prototype had 72 tiles in total in its library (and I didn’t even use all of those), while the release version of Escape From Evil Island has nearly 850 tiles. There are also quite a few more enemies in the full game, each of which is animated in some way. I also decided to do some larger splash pieces of art for the cutscenes, but I decided to do those well after I’d blown past my idea of “one month of work” so that’s more scope-creep than it was unexpected.

As an aside, I think pushing myself to do the art has been very good for me – I definitely felt myself getting more comfortable and faster at drawing the art, and while the game is far from the prettiest 2d platformer out there, I feel it’s thoroughly decent-looking and a solid throwback to the era I was aiming for.

Moving on from art, there are a number of new mechnical things that were added for the real game, as well, that weren’t in the original prototype, and I think they all definitely have their place in making the game stronger. The info terminals let me slip a little bit of actual story into the game. The double jump boots and diving gear let me make more varied levels. Pushable, explosive barrels and destructible blocks let me add in secrets and interesting progression gates. Conveyor belts let me control the flow in some levels. Switches and doors let me change up the key-lock formula a little bit, and also let me toggle other things like platforms coming in and out, conveyor belt direction switching, and lava pipes, and so on. Spawners let me drop more monsters into the level after starting for endless streams of enemies, or “monster closet” surprises.

The point of that big list is that I think I fell into a trap of feeling that “the core of the game was running and jumping and shooting, and I already have those things working, so I have most of the game done, right?”. In retrospect that sounds ridiculous but I guess that’s how things go when you’re thinking about a new project.

I also held myself to a much higher standard in general for this project. Perfectionism is something I struggle with and may represent the biggest reason that I procrastinate on things and drop on and off of projects, but I did my best to temper that by telling myself the game wasn’t that big a deal and didn’t need to be great – it was just a self-indulgent pulpy retro game. Even so, I still wanted to make a game that was fun, at least for me, and if I’m going to be drawing a bunch of art I may as well at least try to do a decent job on it. Unsurprisingly, I’ve gotten pretty attached to it, and it was very gratifying during testing to hear people compare it positively to a variety of old platformers that they had played and enjoyed as kids.

Of course, another part of the whole thing is that there were a number of times during that almost-ten-months that I had to step away from it for a week or a month, and this isn’t my full-time job. That “almost ten months” is really more like “seven and a half months or so of evenings and weekends when I can fit it in”. It’s good to be realistic about how much time you can really put into a long-term project!

Importantly, though, while it would be nice to have finished this faster… I could have stopped at pretty much any point. I kept working on it because I was legitimately enjoying the process of building the game, and I was enjoying playing it when I was testing it. Not every moment was fun, of course; there were frustrating bugs and annoying things to draw, but overall, I’m happy with what I made, I’m happy with the time I put into it, and I’m happy to be done with it now so I can move on to other things. That’s about as much as I can ask for, really!

I’ve Been Here Before

Happy for now, anyway.

Six and a half years ago I released a game called SimpleQuest. I wasn’t writing devlogs at the time, which was a shame – I released it with little fanfare and I didn’t really take the chance to introspect about its development until a while later, and that second part turned out to be a bad thing.

I built SimpleQuest for a very differnet reason than I built Evil Island; I had built (most of) a game engine in Electron with a Typescript core and scripting – Cozy Engine – and I wanted to build an actual game in it. I also wanted to prove out the technology for future games (Black Mountain, for one) and get more familiar with it. SimpleQuest itself was intentionally a “bad game”, and honestly it ended up being better than it had any right to be considering my investment in it. It checked all the JRPG boxes, I wrote some dumb jokes for it, and I found some really nice art and music to put in there – I ended up going harder than I’d intended to, but it was still a joke game. The main antagonist is a dragon named “Lord Danger” after all.

After I released it, though, I felt… a weird emptiness. It did exactly what I wanted it to do, and I wasn’t supposed to be attached to it, but there was still a discomforting finality to its release (after a couple of post-release bug fix releases, anyway). It was the first time I’d managed to finish and release a game this big by myself, and it… didn’t feel great? I had a rough patch for a while afterward, where I didn’t really feel like working on… much of anything.

It didn’t help, of course, that it made me realize that ultimately I didn’t want to keep on with that engine. Eventually that pushed me into sitting down and re-evaluating everything, and investigating different other engines, which ultimately led me to giving Godot a shot and finding that I really liked it. At the time of release I didn’t know that was going to happen, though, and I just ended up in a funk because I wasn’t sure where I was going next.

But This Time?

This time feels different… I think? It does right now at least, sitting here with the 1.0.0 version of the game. I went into Evil Islad with no ulterior motive: I just wanted to mess around with a little prototype I’d built a few years ago, and make it something that I think I would have liked to play as a kid. I’m happy with where it is, including the dumb jokes that I wrote in there anyway.

At the same time, I’m happy to see it go out! I’m already starting to think about what I want to focus on next. I’m really, really hoping that releasing it doesn’t blindside me with a bad time. I’m not really worried about that happening, I don’t think… but the thought is lurking there in the back of my head.

So, What’s Next?

Despite feeling a lot better about it, I’m actually not sure, exactly. I’m sure I’ll see some bug reports in the next days and weeks, and I’ll do my best to get those fixed. Aside from that, I’ve got a number of other things that have been whirling around in the back of my head lately, pushing at me and waiting for me to finish. I’lll probably take some time to do some mixture of…

  • ACTUAL small games (think quick game jam type things)
  • prototype some ideas I have on my backlog list of ideas
  • some art tests for some ideas I have to speed up/get back on track with Black Mountain development

… and whatever I do, I’ll try to keep up the devlog posts here. Thanks for reading!