Hello Everybody!
In November, we had our first private playtesting, and unrelated to it, there was an incredible amount of churn in the Outsider codebase. I received invaluable feedback from the players, mostly centered around usability and general interaction with the game. As I considered implementing some of the proposed changes, I decided to throw away most of the game’s code – which I did, leading to a rewrite of 80% of what I had sent to playtesters.
Although I’m an experienced software engineer, I’m a rookie game developer. As I got better at the Godot engine, I learned tricks that made my earlier code look, well, comically amateurish. I’m not talking about some purist notion of software design but silly and inefficient reimplementations of what, unbeknownst to me, Godot provided out of the box.
I don’t want to get overly technical, but I’ll say one thing to the Software Engineers in the audience… Imagine coding in C++ without knowing STL and templates!
This painful realization reminded me of the often-repeated game development advice: “You won’t be good at building games on your first game”. Instead of accepting prototype-quality code in the codebase, I threw away “all of which should not exist” and replaced it with a much more streamlined implementation. After all was said and done, I concluded that an expert Godot developer could probably create Outsider’s engine (without graphics, writing and audio) in around 4-6 weeks!
This rewrite wasn’t a zero-sum game. My new skills allowed me to add everything missing from the core engine. State persistence (Save/Load), better menus, new “pretty UI”, control scheme display, full story state machine, better performance and more. I’m happy to announce that the game’s engine is now 80-90% done, and I’m a couple of days away from having all the features for the next playtest, which should happen in 3-5 weeks. In fact, I’m also very close to the feature set for the Steam demo, which will happen in Q1’2025 (along with a full public reveal of what the game is about).
What is left, then? Assets. A videogame is mostly made of art, writing and audio. The next playtest will only have around 30 min of content, which is less than 10% of what I’m planning for the final game. The months ahead will test my resolve as I switch away from my comfort zone, Software Engineering, to a new life as an artist. Sure, there will be some coding, but it will be mostly about content creation.
Another thing I realized last month was that while I did a decent job at estimating tasks, I did a poor job at estimating what I’d eventually want in the game. Scope creep is one of the biggest threats to novice game developers. We want our games to be fun and polished, and it’s just tempting to start putting bells and whistles everywhere. For instance, I spent time fine-tuning the “roundness” of icons (and learned a ton about aliasing in the process), adding the game’s logo on top of the menus and making click sounds “satisfying”. I learned that it’s only possible to fully scope your game when you build it!
This said, I don’t want Outsider to fall into development hell like many games. I will control scope while ensuring this remains a polished “labor of love”. Even with the difficulty of estimating Art and Writing, as I’m inexperienced in both domains, I want to try to provide an updated estimate for the project as a whole.
One of the better ways to estimate work is by looking at how long similar work took in the past. I’m around 30% done with the project after 4 months. A simple extrapolation leads to a total of 12 months of work, which would take the ETA to around August 2025. Using a 50% error bar for what is left, we can expect a release between May and December 2025. As development progresses, I hope to narrow this release window… Let’s see how that works out! One of the better ways to estimate work is by looking at how long similar work took in the past. I’m around 30% done with the project after 4 months. A simple extrapolation leads to a total of 12 months of work, which would take the ETA to around August 2025. Using a 50% error bar for what is left, we can expect a release between May and December 2025. As development progresses, I hope to narrow this release window… Let’s see how that works out!