April Update

Time Wasted

I have been working on Gone 4 Good since August of 2024. That makes this coming August 2 years which feels crazy to even say. I have never shipped a commercial game. My goal is to ship a steam demo by August of this year. So what has changed in the last year and a half? Unfortunately, absolutely everything and nothing at all.

As I write this, I feel like I owe my prior self an apology. I think there is a balance to being ambitious/inspirational and being able to execute. I don’t feel like I should work on stuff I don’t play or believe in but I should have prototyped the entire game prior to getting into the details of how certain systems were going to work.

I can confidently say that I struggle with vision and not effort. Over the last few years, I have put in the hours necessary to have shipped something of reasonable quality by now. So, I really struggle with being consistent when it comes to vision. In years past I would start and abandon projects. I can say with pride that I haven’t started any new projects while working on Gone 4 Good but I did run into a hard wall in summer of 2025 that set me back a while… the character animation rig and netcode.

Planning will only get you so far

My take away from my past failed projects was that I had not planned enough and that there was just too much stuff left to figure out later. So at the onset of Gone 4 Good, I made myself create a roadmap in Notion with every feature and the time frame to get that feature implemented. This was a step in the right direction. In prior projects I would lose the identity of the game entirely. A game about pirate ships would become a NYSE spreadsheet simulator or a MOBA with boats. What I have learned from reading and listening to podcasts on successful entrepreneurs is that it helps to create some core technology before you get into vision at all.

In a prior post, I talked about how Tolkien created the world of LOTR prior to writing a novel. I was listening to a podcast on the Google founders and this point got hammered home to me again. Larry and Sergey had Page Rank working before they ever even tried to start a business. They had a terrible version that actually scraped the entire internet (a little crazy that the internet was small enough to do this) and then did a very slow crawl to recursively count all of the page links.

In my next game, instead of setting out with a vision of what I want to make, I am going to experiment with my own systems and technology to make something that I think is cool + fun and then wrap a game around it. I just think that is how you make high quality products. I would not have gotten so stuck. I should have been spending time doing what I knew how to do and then doing the basics of game design really well around it.

Character Animation Woes

As I playtested the game, I hated how my character moved, reloaded, etc.. It was fine for a prototype but by June of 2025, I also wanted to add more weapons which meant that I would need some sort of pipeline for making weapons and getting them into the game. I had no real plan for this. I thought I had a plan but, this turned out to be much harder than I had anticipated. The TLDR here is that I made several animation systems over the course of a year and none of them really made me feel the way that my favorite FPS games did. I eventually caved and picked up an asset from the Unity asset store made by Kinemation that has the look and feel of what I wanted. I was originally planning to add extra weapons to the asset, namely a grappling hook, that could be used on large robot enemies. (This is a year and a half before Arc Raiders would come out) Integrating the grappling hook with this new animation kit proved to be difficult as well because the procedural systems for shooting, aiming, and sprinting were not easy to just turn on and off. The mesh topology on the existing weapons and their bone rig was also hard to work with. This is where the next year goes really. I felt like I had to either: give up control over the art pipeline or make a game that would never meet my quality bar for the types of games I like to play . This dichotomy gave/gives me a ton of internal heartache over the thing I am making. The current builds of Gone 4 Good make use of the Kinemation asset but I am working through re-creating the model & textures for each weapon in the kit.

Netcode Woes

Netcode is less of a brick wall and more like a muddy marsh. I overhauled my netcode at least 3 times and you would think that it should be easy to make refactors in the age of AI. Refactors are one of the better use cases where you can reasonably count on code quality staying high but, I was very slow to adopt AI coding tools into my workflow. Claude code came out in Feb 2025 and I honestly slept on it and stuff like it longer than I should have. 2025 felt like the year that these models crossed into the threshold of ‘good’ for me.

Something that the character controller/animation rig and netcode have in common is that they touch every part of your game. Doesn’t every system need to be integrated into other parts of any game? Sure but, I think these two things in particular require thought no matter what you’re adding. Think about it, if you design an enemy: you need a way for it to damage you, you to damage it, and then you have to recreate all of that logic not once, not twice, but three times because you need a version for the client, one for the server, and another for clients that are not you. That last one is counter-intuitive because you may think that enemies on one client should be the same on the other clients and that is true. What I had not consider is that if I shoot a demon on my computer, the sfx is in 2d for proper sound mixing, the raycast has to come out of my camera, etc.. On the other client there is no camera for my character and, the sfx likely need to be a different sound entirely (this is how most games worth their salt do it) to emulate distant shots, etc..

I am actually excited. Here is what I have so far

I know it doesn’t sound like it given the way I started this post but I actually am excited about the the project has taken. To start, I have dramatically cut the scope. (The words of John Blow on scope creep being a problem for stupid people are echoing in my head) I am not going to try to do a multiplayer game. I am going to reuse alot of my code for multiplayer to do a time travel mechanic. I don’t actually know if time traveling is going to add anything but it will make it unique and I plant to borrow from the COD & Fatshark formulas so I should at least have a compelling loop around the game even if the time travel doesn’t pan out to be something completely magical.

I am moving a lot faster now that I don’t have to consider multiplayer and I am locked in on having a certain workflow for FPS animations with the Kinemation asset. I have been learning Houdini to make procedural assets. So, I have this little level generator that may or may not make it into the final product. I have the time travel transition in the game but not the actual mechanic just yet. I was able to refactor my entire netcode codebase for tracking events and movements into a framework that should be pretty useable for timetravel. I actually hit my usage limits for Claude code on Saturday and Sunday doing this. If you’re actually being productive, hitting your limits feels bad and good at the same time. It feels like you’re actually getting the use out of your tools.

I created some basic core game mechanics: mystery box, wallbuys, doors that you purchase to open- that sort of thing. I added a perk system with vending machines. I realize how similar to COD all of this sounds and you’ll notice I have a lot of placeholder assets in the level currently. I do plan to do another pass on all of the meshes in the game to make them look more original and I do plan to change a lot of the assets to be more original. Of course for a horde shooter, you do need a round counter and a spawn manager. I also already have kill/death tracking.

I never have felt like I am “in production” on any of the projects I have ever worked on. I always just got into prototyping purgatory and never really had a fully functioning game. A few firsts for me:

  • I have never had a way to handle dying. Dying has always meant I would have to literally kill the program and restart it.

  • I have never had all of the weapons/animations working. Every prior project has had various states of broken animations

  • I have never procedurally generated a level.

I currently do all 3 of these now.

What’s next?

Next, I plan to work on time travel. I am anxious that i haven’t already prototyped it and this plan could go very poorly if I get stuck again and hit a wall here. I feel pretty confident since it should theoretically be the same as recording positions/events and then just playing those back like I would in my netcode so, my confidence interval is high here.

I also plan to do my very last round of experimenting in May. I plan to test a bunch of features so that I know if I can commit to them. I also have content planned to release every month which is my least favorite part of this process since it’s not really a creative outlet I am any good at. I do like watching other devlogs and things like that though so we’ll do that for now. I may mess with the format if I think of something better.

Next
Next

Tooling is important