Game Development

Current focus

(last update: 25/05/24)

If I can achieve most of these goals for each game, they will have progressed by a sufficient extent that I can begin other tasks (such as enemy layouts). At this point in time the priority is: Divine Awakening -> Primal Dream -> Bioknights. Divine Awakening should be finished first as it is my first project, the closest to completion, and the most difficult to re-write for Godot 4 (not going to happen). It needs to be completed while the technology is still relevant-ish. Bioknights was the project I thought I'd finish first but once I started writing the story it snowballed and I think I can make a very high quality product with the ideas I have, so it goes onto the backburner now.


June 2024 - Progress


I think I finally have a tilemap loading system that I will stick with. It's been a long time coming. I remember in 2018 or 2019 I was working on it every day of December. That was fruitless too, I discarded all of that work when a better Tiled export plugin was released. The new system should be pretty future-proof. In the last (functional) system, I had the main scene load a "level" scene that had all the required maps and enemies in it already. Now the main scene loads the level scene, which in turn loads smaller maps and copies enemies and objects from the map sections to its own children. This means I can attach a list of sections to be loaded, to each individual level, and make new sections load in only when certain signals are emitted. The reason I wanted this is so that a tougher enemy can remain on the screen while the current map loops, until the enemy is defeated and a new section is loaded in. Without loops like this, the whole level has an enforced time limit (the player's advances at a constant speed), and enemies have to 'give up' after a certain amount of time to avoid accumulating in unreasonable quantities. Using the new system, there's no time constraint and a player can take more or less time to reach the end of level Boss. The only major issue I think this is going to create is with the checkpoint system when the player respawns, but that can be fixed up later.

A tilemap depicting radio towers and enormous tank tracks

My tilemapping process is still a bit dodgy. Painting a draft is better suited to more organic and less technical settings, and it doesn't lend itself well to making small but versatile groups of tiles. The screenshot above uses about 1/6th of the tileset for that level, but the tiles it contains can make so many different shapes and scenes.

2024 - What I've been working on


Things have been very inconsistent lately. I started the year working on Prima Dream, but then realised maybe Divine Awakening shouldn't be on the back burner or it may get swept aside by life before I get to finish it. So I worked on that for a month, and then this month I've been putting a lot of work into BioKnights (a dungeon crawler I'm making) just because I want to play it myself.

The way the dungeon crawler is made is so different to my other two games. At least with Primal Dream compared to Divine Awakening, it's still an action game, it's still 2D, and it's still low resolution. With BioKnights I've had to change to working with 3D, and a LOT of UI, in high resolution(s). Really the game is almost entirely UI. What isn't UI is mostly code for passing stats/character data around. To my surprise though, I actually finished pretty much all of the code for the 3d part of the game in the first month of development. Assets are still placeholders, but just making a battle screen and the stat system has taken months. At this point in time (1 year later, maybe 2?) that's also all pretty much worked out too. I'm using the basic JRPG style, just with two types of "special"/"magic" stats instead of one, and they interact so that I don't have to do some kind of crazy element or weapon based type system. Once I worked out what stats I was going to use and what they did, I could start making functions that take input stats and spit out results like damage to be dealt or whether an attack hits or misses. After multiple attempts, I have the typical battle screen with 'attack/defend/items/escape/etc.' and can actually play through a demo-dungeon. The next big thing will be making functions for different types of magic, and a mess of menus and functions to get items working.

I read a book called "Level Design" by Rudolf Kremers and I highly reccomend it. It's padded out with a lot of theory and examples that maybe weren't necessary, but it's otherwise pretty good. After reading it I've been spending a lot of time just writing about how my games work/will work and what rules/goals there are for aspects of their design. It's not that I didn't have a lot of that planned already, but having a well researched perspective (and suggestions) given to me helps the plan to become more focused. Oh and at some point I must have lost my folder of planning documents for Divine Awakening at a cafe or hotel or something because I can't find them anywhere. Many years of plans, thankfully I had implemented nearly all of them, but it's sad because it included all the concepts and drawings I wanted to put in a book someday.

Page changes & 2023 Progress


Amazing how time can fly. Despite not posting for a while, I have been working on my games. Most of the work has been on character design. Work doesn't leave me with much energy/time for game development. I plan to change that over the coming months.

I have re-structured the game development portion of this site. Each project of mine has/will-have a dedicated page, and I will use this page for general news. It will be a bit of a mess as I update these pages.

Not Dead Yet


As expected, work is making it hard to keep going with game development. I have still kept it up though. Primal Dream (still without a logo) is coming along slowly. I recently re-worked the player movement. It's progressing slowly because of the time and energy that has to go into animating the player. I had a small pick at Divine Awakening too, it has some better tilemaps for the later levels now. I find myself wanting to work on it just so I can actually play the game. Other shmups just aren't scratching the itch, especially since I've been trying newer games that are more influenced by bullet hell shooters (which I hate). It bothers me to no end that so many developers went with the imagery of spaceships shooting at things, when their game is actually about running away, finding minute gaps in the enemy patterns without watching where you're shooting. It's dishonest.

Bioknights (working title for the dungeon crawler) is scarily close to being a playable game. I have battles working, and a few menus. I really hate making UI in Godot. Nasty process. I'm sure it'd be worse if I tried to do it from scratch though. More updates soonish.

A New Project


I haven't been working on Divine Awakening for about a month or two. The reason for this is that I've realised that to finish it properly, it will take many years yet. So in the hopes of making a bit of income, and getting practice with finishing a game, I've been working on a simple 2D platformer.

My new game, Primal Dream, will follow a woman as she travels to a volcano to kill a dinosaur. Mostly, this game is going to be a chance for me to stretch artistically and do things I couldn't do with Divine Awakening, especially with the top-down perspective. I still haven't figured out exactly how the gameplay will work, but the "story" is pretty much finished. I want this game to be dreamlike (hence the name), and all about the setting. It might seem weak, but I've always found that great games often stand out for the simple things. Besides, there's a sad lack of prehistoric-themed games (at least that aren't straight-up goofy). Even though Primal Dream is well underway already, I'd like to be able to share more about it as it develops than what I did for Divine Awakening. Currently the plan is to finish the game by the end of the year, but only time will tell.

Divine Awakening: December Progress


I'm back in full swing! Though there's always lots to be done. I played a bit of Steam Hearts recently, and after seeing it's in-game cutscenes, I have decided that it's not worth sacrificing those for instant respawns. Previously I had to do this because if the player dies where a cutscene is meant to start, the cutscene is messed up. So I had to heavily modify the dying process and add in a checkpoint system. It works beautifully, and respawning now feels really smooth. A consequence of having to add a checkpoint system is that I had to finish the process of saving player data. I can also load new levels now! So I've added a basic tutorial level, and the template for level 2. Currently I am working on a menu to rebind input. So far it does everything it needs to apart from actually change the key bindings, which looks like it's going to be a real headache to figure out.

Once again, I pray that no trained programmer ever has the misfortune of having to look at my code.

Divine Awakening: November Progress


Progress has slowed to a crawl. I'm still tidying up so that I can release a demo. I managed to lose the story outline somehow, so I've had to re-do that from hazy memories. Character art has also become an issue, since it's much more work than I anticipated. Since the progress I've made is little bits and pieces here and there, here's a list of things I have to do instead of what I've done:

Even though I still believe in the reasons for which I'm working on this on my own, I'm starting to envy people who can work on games as a team. I'm an artist and designer more than anything else, and sometimes I feel like a trained programmer would have a stroke if they had a look at my code. Sound effects are the worst thing, I have next to no experience with that sort of thing. Well who knows, maybe one day I'll meet some people in the real world who I actually want to work with.

Divine Awakening: October Progress


I fell into a rut, which I am now out of. Level 1 is pretty much complete for now. It will still need a lot of fixing up, but it can be played from start to finish. I really really need to get onto doing the character art. Anyway, moving on I will be working on levels 2 and 3 at the same time, and gradually adding more sound effects. Hopefully there will be something more interesting to share here soon.

Divine Awakening: August Progress


What happened to July? I can't remember. This month I've picked up the pace again. I merged all my old to-do lists into one monster, so I know where to go now. Here's what I've been working on:

Divine Awakening: June Progress


Progress has been all over the place lately. Mostly because I'm not entirely sure how to go about designing the level layout. When I have attempted to work on it, I've been sidetracked trying to balance out enemy hp and weapon damage, etc. etc. I suspect the first level's completion is still at least 6 months away. At this point, things are taking too long, and if I find myself spending too much longer on level-specific things, I will be simplifying my game in order to finish it before life gets in the way. Hopefully this year I will completely finish all of the "backbone" content, such as menus, cutscene controls, etc. etc. Thankfully, those things are all *nearly* finished.

Divine Awakening: May Progress


Things are progressing slowly but surely. Here's a list of things completed since the last post

It's hard to deal with so much at once, but I'm chipping away at it. I'm trying to make a set of functions that I can reuse, for things like explosions or firing bullets, to save myself work in the future. I might break down some of them here at some point.

Divine Awakening: Progress


There is much to be done before a demo (alpha? beta?) version can be released. I've listed the main things to be done below, but of course more little things pop up here and there.

This is, being realistic, still months of work. In the last couple of days I've managed to make some decent progress on the scoring system, and added dialogue boxes, but I also managed to get sidetracked completely changing how enemies react to being hit. The best thing at the moment is that I'm getting distracted while testing and just having fun playing the game. This is central to my design philosophy - everything should be fun to test. Hopefully by the end of all this it will be quite a good game, and more than just another beginner's project.

Divine Awakening: Page updates


This part of the site is getting major updates now that my game is approaching a marketable state. Most of the links at the top don't work at the time of writing, but I'll be adding to them in the coming days. As for the progress on the game itself, it's still early days but hopefully sometime in the next few months I'll have a demo containing the first level finished and available for download from this site.