Today I’ve reached the first major Outsider milestone - 2 days before my planned deadline! I’ve used numbers to represent milestones for years, so the first milestone is named “M1”, the second is named “M2,” and so forth. Now that the game is further along, I’m ready to start sharing plans and tentative (no promises) ETAs all the way to the first public release:
- M1: Basic framework for Demo [Sep 15]
- Basic code for all game scenes
- Basic start menu
- Basic in-game menu
- Low-level line/box rendering routines
- Music manager supporting track crossfades
- Song 1 rough mix (‘Blue’)
- Graphic assets
- M2: Demo feature complete [Oct 4]
- 1st chapter of the original Outsider runs in the game engine
- ‘Billboard’ and image scenes code complete
- Basic in-game UI (no option screen)
- Decide all game fonts & variations
- Update logo fonts
- Song 2 rough mix (TBD)
- Graphic assets (TBD)
- M3: Demo internally playable [Oct 21]
- Basic Save/Load game across all relevant scene types
- Rich music manager code complete
- Scripting support for all scene types code complete
- Chapter 1 gameplay complete
- Options dialog (audio bus volume w/ basic UI for font, font size, and color scheme selection)
- Graphic assets (TBD)
- M4: Public demo release [Nov 15]
- Forward-compatible save/load game
- Intro with official game theme and logo
- Chapter 2 story (won’t be present in the demo)
- Legal/Credits
- Game page submitted to Steam with screenshots
- Demo finishing touches
- (secret)
- (secret)
That’s it. If this sounds like a lot of work, it’s because it is a lot of work.
One thing about having years of experience as a corporate software engineer is that I’ve learned to move (relatively) fast in the presence of crushing nonsensical processes, useless meetings, and (a few) stubborn coworkers. Without these things slowing me down, I’ve reached levels of productivity I hadn’t experienced in over a decade. In the past ten days, primarily dedicated to coding, I’ve produced the equivalent of 3-4 months of work from the average developer on my last job. I’m not trying to say that an amazing developer; this is a statement about the state of affairs in large corporate software development environments.
Speaking of coding, I’ve observed a curious gradient of productivity and output quality over the past 10 days. As I’ve been in management positions for many years, the first couple of days were a bit rough as I still lacked the “coding muscle memory” I had acquired over my career. But programming is like riding a bicycle; if you were once a productive programmer, you can always be a productive programmer again. As my speed and code quality improved, I started aggressively refactoring my early code; after reaching the M1 functionality goals yesterday, I performed a massive cleanup of code this morning, removing many of the “Pythonesque” coding patterns that Godot supports (due to backward compatibility, as I learned) and sometimes even encourages.
And speaking further about code, Outsider is currently 10% GDScript and 90% C#. I had forgotten how much I love C#, which I still think is the best statically compiled language ever created.
But why not build the whole thing in C#? Godot has some nice high-level services that are a breeze to interact in GDScript, such as the UI Framework, audio and scene management subsystems. I could have done everything in C#, but it wouldn’t be as easy as using the right tool for the particular job.
Lastly, I’ve decided that Outsider won’t be a free game. I initially thought of giving it away for some time to promote it, a time-honored marketing strategy for building a core audience; unfortunately, this is no longer compatible with the reality on Steam. Most players now see free games as being either 1) Hobby projects, 2) microtransaction/ad monetized, or 3) scams. Outsider isn’t a hobby project and I won’t engage in dishonest and exploitative monetization practices. All of that considered, I’ll release it as a paid commercial game, possibly under $15, with a free demo showcasing the complete first chapter. Beta testers and early Discord supporters (I’ll soon define “early”) will receive a free Steam key for the full game if they so desire.