Postmortem


Well, that was disappointing...

TL;DR: I made a bunch of cool stuff, but 80% of it didn’t make it into the game.

In the first week of April, I participated in the Dungeon Crawler jam, something I’ve tried to do since 2021 but it just never worked out with my schedule.

Here’s the stats on my entry for those interested (there were ~195 entries total):

I decided to get a bit meta with my entry Pits of Goremoth, and have the player play a game made by characters in the game. In this case, two boys named Billy and Kyle. The rest of the game came from me thinking “what sort of game would some dedicated kids make if they had access to a clunky 90’s game making program that allowed them to make a dungeon crawler in the style of Eye of The Beholder or Legend of Grimrock?” I based part of it on my experience making games in Scratch with my friends during sleepovers when I was younger, and partly from my usual methodology of smashing ideas together in my “So Bad It’s Good” game jam submissions. The game would include some typical fantasy stuff, but also some areas and enemies that are much more in the vein of Doom or Quake.

This latter aspect is where I intended to implement the theme of the jam “Duality”. The plan was that the two kids would have different tastes in games and pop culture, which would result in different looking levels. And the dichotomy would eventually culminate in a final boss that kind of blends the two styles. But sadly, this theme never came across in the game because I didn’t finish more than the first level.

So, let’s dive into what worked and what didn’t in this aborted attempt of a dungeon crawler!

What Went Right

Overall Aesthetic

As anyone who has played my games will know, I am no visual artist by any means. Well, Thesmothete can certainly classify me as creative and able to make varied characters, but it’s a visual abortion (which I was going for, but it still looks too default Unity for my tastes). This time however, I got to try my hand at making a game that didn’t look like a Unity asset flip hashed out in a day. Goremoth looks like someone slapped together an RPG in Visual Basic 4.0 with some stolen assets, which is exactly the look I was going for.

The major inspiration for the look of the game was Mordor: Depths of Dejenol. You’ll probably be unsurprised to learn it was a one-man project completed in the 90’s, and obviously its interface is incredibly daunting for new players. And of course, I didn’t want to make the user interface confusing or frustrating, but I still wanted it to look like it was made in a clunky game-editor from the 90’s.

The UI in Legend Of Grimrock II I think is great at displaying a large quantity of info but in an easily digestible fashion. As you can see in the image below, I used a similar placement of information in Goremoth’s UI but slimmed down to fit a single character with fewer equipment slots.

The UI in Pits of Goremoth is basically just these two styles mashed together:

I also got my first real chance to do extensive amounts of pixel art for the first time in years. My art is by no means great, but I think it fits the aesthetic I was going for. The mix of MS Paint and ugly pre-rendered 3D sprites (though they aren’t really seen in what’s released so far) was inspired by Daggerfall, Kens Labyrinth and Pathways Into Darkness. Doing a bunch of pixel art brought me back to my days of making games in Scratch when I was younger. This combined with the UI looking like it came out of a default windows application made developing the game feel oddly nostalgic, as I spent a lot of time playing around with the window builder tool in Eclipse back in High School.

And I think this weird nostalgic feeling carried through to the game itself, giving it this odd clunky charm that most everyone who commented seemed to like.

Pre-jam Practice

In the two weeks leading up to the jam, I decided to do a practice run of a few features. Specifically, I wanted to ensure I had a working player controller for the grid-based movement required by the dungeon crawler genre. I had made a partially working controller for my attempt in the 2022 dungeon crawler jam following this tutorial video:

But I wanted to update this code to fit the customizable controls system I had made. I spent a couple days on it and eventually the key rebinding worked. It also provided the excuse to clean up the movement and control customization code.

I spent some time trying out the Retro Windows GUI pack to see how the sprites looked and if they were easy to edit (as mentioned in the previous section they’re great).

I even had some time to try modifying my existing inventory system to handle having multiple equipped item slots instead of just one.

This prep time allowed me to implement much more than I would have otherwise. And even though a good chunk of the features weren’t visible in the submission, without this practice I don’t think I would have submitted at all.

Expanded Inventory System Functionality

I’ve been wanting to implement the ability to transfer items between multiple inventories for a long time now. Previously the closest I’ve come to implementing something like an item container is either having enemies just drop items on death, or having pickup objects physically placed inside a locked container like in my horror project Sub Mortis.

Now the player can view a separate inventory screen and move items between the two inventories. which not only makes it easier to place items in the world but more performant as well by not having as many physics’ objects in a level. And while it’s not a factor in Goremoth, this also allows the player to see the actual size of the inventory item. It may not sound that important, but without this I’ve been previously forced to have an awkward popup saying there’s not enough space for an item to be picked up, or just simply have the item not be picked up. Neither of these options are ideal, but with this new multi-inventory setup I plan to implement something like the looting UI from Prey (2017).

Alongside the concept of multiple inventories, Goremoth is my first game to track separate left and right hands, allowing multiple items to be held. It's also the first game to allow the player to equip clothing since I made the horrifically janky Ja Wizardman back in 2020. Both of these additions expand the possibility for varied playstyles, and will almost certainly appear in my future games.

These are admittedly probably not amazing features from the players perspective, but for me this alone has made working on Goremoth time well spent.

 

What Went Wrong

Scope

This one is not really a surprise for me, but yes once again I tried to do way too much in one go.

I wanted a stats-based RPG system where the player could level up, various damage types, a new clothing system, various enemy types that attacked and moved differently, ranged, melee, throwing and magical attacks, a whole bunch of items and the ability to have every item physically exist as a pickup in the game world.

While I’m happy I figured out a spell casting system again, I think in hindsight it would’ve been better to just have melee and ranged attacks and focus on making content for them.

Seeing how other entries managed to get by focusing on just combat I think I could have easily gotten away with simple lock-and-key level progression.

And sadly as much as I like having them in games, I think implementing the quality-of-life items like the save system, customizable controls, and adjustable audio sliders for music and effects may have been a waste of time. It probably took me a day to get all of these systems integrated, and seemingly no one ever touched them (though that was likely partially due to the game being only a single level and cutscenes).

In the future I would like to still try out new ideas in game jams, but perhaps less of them in one game. My current and past method of using jams to try out ideas for features has been quite helpful for learning and rapidly creating things, but it also leaves me feeling kinda drained once the jam is over.

Hacky AI

I’ve had many issues with AI in the past, largely stemming from me trying to make my NPC’s perform complex behaviours and do multiple actions at once. This time however, I struggled with making the enemies do LESS, and once again coding the AI was one of the biggest time sinks in the project.

I sadly neglected testing out grid-based enemies before the jam started, so all I had to work with was my pre-existing behaviour tree system I had used in my previous projects Sub Mortis, Stalewater and Thesmothete. All those games, however, used the built-in unity NavMesh system, which I’ve managed to do some cool things with, but it can get rather messy.

In the case of Goremoth, it meant restricting NavMesh agents to only move in 4 directions, and only a certain distance at a time. The math for preventing NPC’s from attacking their targets unless they’re directly facing said target was a headache to figure out, and it has a lot of magic number hackery. Archers were attacking players diagonally up until the last day of the jam, and the released version doesn’t even have the one melee enemy properly turn towards the player when attacking (though I was able to easily fix this last bug post-jam).

Another design issue I hadn’t really considered was how to prevent NPCs from walking onto the same tile. I hadn’t designed the game to handle multiple NPCs on a tile like in classic dungeon crawlers, so I had to devise a somewhat clean way of ensuring only one NPC would be on any given tile.

The solution I came up with was for every NPC to have a sort of dummy collision box, which would teleport onto the tile an NPC is planning to move to. This collision box would then check if it collided with anything on said tile (another NPC, the player, another dummy collision box) and if nothing was found, the collision box would “grab” the point and remain on the tile. This prevented not only another NPC from grabbing the point, but also prevented the player from moving onto the tile as player movement checks for collision in whatever direction the player moves.

A Goblin moving towards its PointGrabber on the tile in front of it, attemping to reach the Player on the right.

The system still has issues though, I’ve still seen some ranged enemies walk through the player, and the calculation to make an enemy move to the nearest tile next to their current target prevents them from properly navigating a long way around to reach the player.

In hindsight it may have been better to implement some A* algorithm, but I figured I shouldn’t try to rock the boat more than I already was. Though I would like to fix the AI issues, I think they’ll likely remain in the finished version of Pits of Goremoth.

2.5D Sprites Are Time-Consuming

As much as I love the look of 2D sprites in 3D space, making the enemy sprites was a tedious process. Even just drawing the idle pose required a fair bit of corner cutting in MS Paint and GIMP and a lot of elbow grease. I was able to save some time in the side poses, but even then, I still had to manually make a flipped sprite of the pose.

To animate the NPCs, I had to manually drag and drop sprites onto the timeline in Unity’s built-in animation system, which was a tiring process. And then I had to place animation events for when the actual damage of an attack should be applied. I made every attack animation deal damage or launch projectiles a couple frames after the attack frame, just to give the player some time to react and possibly dodge. While I think this was a good addition, it also made crafting the animations just a bit more involved.

In the future I plan to stick to 3D models unless I somehow get someone else to handle the sprite work. I’m not great at 3D modelling or animation but I think I’m better at it than 2D art. The fact I only need to make a model or animation once with 3D is a massive time saver.

 

Future Plans

In the short term, I would like to finish Goremoth. I already have the enemy models, mechanics, and items created so it would suck if I didn’t finish the job. I’ve already fixed up a couple things and added some features since the jam started, though if it’s anything like my past projects I’ll likely end up adding some more updates further down the line. This is my first RPG I’ve released so I imagine there will be some rebalancing needed, and there will possibly be some growing pains in explaining the mechanics properly and making the game progression feel good. The current plan is for the full game to be released in the next week or two, I already have one project taking far longer than expected, I don’t want 2.

I’ll likely write a sequel to this post-mortem after receiving some feedback on the full game. Pits of Goremoth is only my second game with multiple levels, and the only one with stat progression. As mentioned previously, this means there will likely be plenty of lessons to be learned regarding introducing and explaining mechanics and enemies, and I’m eager to dissect and apply them to my future projects. The expansion pack I’m working on for my game Thesmothete I think will especially benefit, as that will also feature the player acquiring new items and abilities over the course of multiple levels.

Alongside the design knowledge, some of the various technical features implemented will be reused and refined for other projects. The multi-inventory handling will likely appear in many different forms, the RPG stats system will likely be reworked and reused, and even the grid-based movement and AI could possibly see a return in projects of other genres.

While it was released in an unfinished state, I’m honestly just happy that I was able to release a completely new game. In 2022 the only new project I released was Thesmothete, everything else was either a test project not intended for release, or an update to an existing game.

I plan to participate in next year’s Dungeon Crawler jam, it was a neat genre to develop for and the entries I played were quite varied and interesting. And since the Dungeon Crawler jam allows use of existing scripts and assets, I’ll be able to rework Goremoth to a much safer idea and hopefully submit a finished game. Probably something without an experience-based levelling system with multiple classes and tons of items and spells. And I’m definitely going with 3D models for enemies.

A good chunk of the important stuff is either done or I know how I’d improve it, so I think another kick at the can would be more successful.

Assuming I’m free when the next jam happens of course.

Get Pits of Goremoth

Leave a comment

Log in with itch.io to leave a comment.