Postmortem: Man's Best Friend?


Wow, I’ve now released 4 new games in a single year, beating my previous record of 3!

A couple weeks ago FunBaseAlpha hosted another FUN Jam. And since I enjoyed participating in the first one, and I wanted some encouragement to experiment with a small game idea, I decided to join.

I wanted to make something small that I wouldn’t have to crunch for, so I decided to make a small puzzle game centered around co-operating with a companion NPC. The end result was Knife With Dog Game, where you and a cyborg dog escape some nebulous facility and solve puzzles.

The game ended up being a bit disappointing for me as a game, but successful in pushing me to do somethings I’ve been meaning to try for a while.

Here’s the score breakdown for anyone interested:


I surprisingly didn’t finish in last or second-to-last place, but I didn’t expect to place near the top anyways because there were some VERY polished entries this time. In any case let’s dive into what worked and what didn’t.

What Went Right

First Functional Companion AI

I’ve had plans for companion NPCs in my games for years. Probably the closest I’ve come to it being realized is the friendly NPCs in my game Ja Wizardman, but those were just NPCs that attacked enemies in scripted sequences. I wanted an AI the player could order around and would follow them.

Fortunately, the rules for FUN Jam 2 offered the perfect opportunity by requiring a dog be shown in-game in some form. A dog was the easiest NPC to make a companion in my view. Because it would have no dialogue, no ranged attacks, and being non-human would give a little more leeway for jank.

The controls for commanding the dog are very simple, just toggle into command mode and point at something. It’s largely inspired by Fallout 4’s companion command system.


Players found it quick to pick up on, with the only major difficulty being the inability to interact while in command mode. At least watching the hosts of the jam play it on stream it seemed like it wasn’t obvious enough sometimes if you’re still in command mode.

Progressed Stealth Mechanics

FUN Jam also allowed me to get around to some mechanics I’ve been meaning to build up in Godot but hadn’t. Specifically making AI more robust when it came to non-hostile states.

NPC’s can now be assigned patrol paths, and I finally have functioning security cameras in a released game. And the security camera at least has 3 distinct stages of regular scanning for targets, suspiciously following a potential target, and raising an alarm while actively looking at said target.


Neither of these are that glamorous, but having the basic functionality for stealth-based games implemented is nice. Plus, I always wanted to add a System Shock 2 style security camera so that was fun.

Small Technical Improvements

I made a few small discoveries in making this game, but the most notable among them is how to make a NavMesh dynamically react to doors opening and closing. Here's an example of a NavMesh before and after a door is opened:



This is a minor thing, but useful because instead of an NPC running into a closed door, the NavMesh update makes the NPC run around to find another pathway. So it looks a little more believable.

Reasonably Casual Dev Cycle

Compared to the other game jams I’ve done this past year, I did comparatively light work on this game. Instead of working on the game during all of my free time, I hung out with family and friends, got to the gym, and finished Rise Of The Golden Idol (which I recommend if you’re into detective/puzzle games). Not only did it feel like I had a life during the jam, but I also actively enjoyed living said life.

What Went Wrong

Unimpressive Levels

Due to the levels being made at the last minute (again) I had to rush through them to show off the various things I had implemented, even if just a little bit. Level 5 was going to be where the player had to combine a bit of their knowledge from the past levels, with multiple security cameras, guards and pressure plates.

Combined with the untextured level geometry, the levels were neither interesting nor visually appealing, so in some ways it felt like the logical conclusion of my already meager level design skills. A lot of my jam games have the issue of me making some interesting mechanics, but then not having enough time to make levels that show those mechanics off. I even implemented regenerating health for both the player and the Dog, but there’s never any opportunity for that to be shown off.

Lack Of Juice/Polish

Since I focused so heavily on implementing the new AI and “stealth” mechanics, I invested very little time in sound effects, visuals, UI, and music. And while I’m happy I did so for my own development and life balance, it ends up being an unsatisfying experience for players.

I really wanted to add sound effects for the dog like panting, barking, and growling. And frankly having a dog companion without the option to pet said dog is a game dev crime in my opinion.

Last Minute Crunch

I know I said this game had comparatively little crunch, and while that’s mostly true I still ended up staying awake until 4:30am on Sunday to submit (I had work the next day).

I really, really, REALLY need to stop staying up incredibly late working on games. To be honest it was a bit depressing that I even had to stay up so late to have something resembling a minimum viable product. This is by far the most narrowly scoped game I’ve made this year, and it was still too much.

I might be a bit too optimistic, but I think this will balance out once I’m more experienced with Godot and have a bigger toolbox of implemented features. Or I’ll just get over-ambitious again, we’ll see.

Future Work

I would like to try making one more level to attempt to show off how some of the mechanics combine. But frankly if I don’t get around to that in the next month, I’ll probably never do it. Much like my entry to the first FUN jam, Fun Night At FunBaseAlpha, Knife With Dog Game was successful as a technical experiment but fell short as an actual game. On the positive side though, players largely agreed the basics present are fairly solid and there wasn’t much jank or confusion.

This feedback I think might be an encouragement to revisit the idea of creating a very short but highly polished game. Basically something where there’s very little opportunity for jank or bugs to pop up. I thought I might get around to that idea this year, but obviously that’s not going to happen.

On the technical side, the expanded feature set of security cameras, companion NPC’s, regenerating health, patrolling enemies, doors affecting NavMesh generation, etc. will definitely be used in future games in different ways.

One behaviour I am interested in expanding on is the ability for NPCs to pick up items in the environment. While it’s very basic in this game, I would love to have enemies that pick-up weapons in the environment or throw random physics objects.

Now that I have a somewhat working baseline for companion AI, I would love to make a squad-based game like a stripped-down Republic Commando, or even just something that plays like having companions in Bethesda games.

This game also helped illustrate my need to implement a save system or some way to save data between scenes. Because so far, I’ve had to brute force inventory items by hardcoding what items the player has at the start of a level. This is why you don’t need to pickup the knife in level 3, and why the player starts with little to no ammo at the start of levels in Dangerous Hunts.

This is still the earliest I’ve ever submitted to a jam, so that’s a slight improvement. If anything, I hope it’s the start of me finishing jam entries early. This jam didn’t dominate all my free time, but I still don’t have the balance quite right. I don’t want to give the impression that I’m stepping back from game dev, or getting burnt out on it. In fact, this past year restarting with Godot has made it arguably more exciting! I still have a number of ideas I’d love to try, in fact I’m hoping to get one of those out by early January.

In any case, if you made it this far, thanks for reading! 

Files

index.zip Play in browser
40 days ago

Leave a comment

Log in with itch.io to leave a comment.