Current focus
(last update: 25/05/24)
D.A. - Re-write and finalise map loading system.- D.A. - Set clear rules for setpieces and "shapes" for each tileset/map.
- D.A. - Design tilesets for ALL levels following the process: Sketch level layout/moments -> Sketch concept images -> Paint "draft" tilemap -> Refine pixel-art tilemap
- D.A. - Clearly sort enemy designs into behaviour/scenario categories. Adjust behaviour scripts to match categories and combat rules.
- D.A. - Finalise story plot, write the script.
- Bioknights - Assemble UI in Godot from draft designs.
- Primal Dream - Complete map loading/transition system. Design scenarios/events for each level.
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.
News
June 2024 - Progress
30/06/24
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.
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
7/04/24
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
30/06/23
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
19/11/22
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
25/02/22
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
28/12/21
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
6/12/2021
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:
- Sound effects (I am not good with this)
- The options menu, and a weapon config menu
- Cutscene dialog and the boss
- A few graphical things like rank letters for the scoring screen
- Contacting game developers to find out how to publish and advertise.
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
22/10/2021
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
24/08/2021
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:
- Level decorations. I won't put as much interaction as I originally wanted to, but some little touches help.
- Game Over (again). I need to finish this off, as well as retry and respawning. I won't keep up the pretense of "continues" in 2021
- Moar enemies. No reason not to be working on this. The tentacle code now has a sibling: monstrous necks.
- Character art. I haven't started this yet, but it's high time I did.
Divine Awakening: June Progress
29/06/2021
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.
- Several new enemy designs are completed or WIP.
- I have created a tentacle node which animates itself according to custom parameters. This will save a lot of work animating tentacles/tails/etc.
- I have begun work on cleaning up and optimising my code, mainly clearing up clutter and commented code I'm not using anymore.
- Weapon special attacks are more or less completed, and an ability configuration is now stored and read by the game. A configuration menu is WIP.
- Enemies worth a certain score value now drop gems which can further increase the score when collected.
- I finally have a way to use pathfollow nodes with enemy movement. Each path will be stored as it's own scene to use like an "add-on" to enemies.
- The weapon levelling system is more or less complete: Dying reverts the players level by 1 until it is the same as the game level, and weapons level up according to score increases since their last death or level change.
Divine Awakening: May Progress
12/05/2021
Things are progressing slowly but surely. Here's a list of things completed since the last post
- Scoring system: the combo system is more or less complete - use many weapons and a score multiplier goes up.
- Cutscenes: triggers are finished, and the story has been pretty much planned out.
- The level boss has animation, AI, and the beginnings of a dramatic death.
- Sound effects are currently done by sending a signal to a "sound controller" that plays the right sound. I've made it possible to play looping sounds now.
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
14/04/2021
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.
- Scoring system (combos, reactions, weapon levels)
- Cutscenes (triggers, dialogue, animation, etc.)
- Enemy layouts and tweaking
- Level boss
- Sound effects
Divine Awakening: Page updates
21/03/2021
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.