
February Project Recap
The to-celebrate list
I started working on February in, well, February. I’m a software developer, I’m not good at naming parameters in functions, so I’m certainly not good at naming whole projects. Anyway, the name stuck and I’m rolling with it.
A look in the rear view mirror
I took five weeks away from my full-time client to explore whether I enjoyed building a video game. Sure, it’s similar to the low-code platform I’m trained in (see my first blogpost), but this was without a team. I had the agency and accountability for everything on the project: development, testing, product design, marketing, sales and probably some other responsibilities that I don’t even have awareness of yet!
I set myself the goal to publish a demo on Steam within those five weeks. It became clear very quickly that my ambition was larger than my capacity. I didn’t meet this goal and, as of time of writing this blogpost, I still haven’t met this goal.
So what happened? During those five weeks, I discovered that I had many more things to learn about than I expected. Each new responsibility had its own learning curve and often required collaboration with a third party. It took time to absorb everything, but I’m now on the other side!
Earlier this week, I published a web update to itch and added all the information to a demo page in the steam store for Valve to review. The first time I did each of these things, it took me the best part of a day to figure out how to do them. Now that I have the knowledge, I was able to complete both activities including writing patch notes in a couple of hours, albeit with some trial and error.
The 10,000 meter overview
After it was evident that I wouldn’t be able to publish a demo to steam within 5 weeks, I decided to put on my project manager hat and define a roadmap. I broke the project down into distinct phases, each with a meaningful outcome.
- Phase 1: Publish a private proof-of-concept on a web-based platform.
- Phase 2: Publish a public proof-of-concept on a web-based platform.
- Phase 3: Publish a public demo as a windows executable (distributed via steam).
- Phase 4: Publish a public demo which is 80% feature-complete as a windows executable and distribute it via Steam.
- Phase 5: Publish the full version of the game on Steam. During this phase, the public demo will be supported in parallel with a closed beta for play-testers.
- Phase 6: Aftercare and stretch goals, depending on reception and demand.
The phases that I’ve already completed happen to roughly align with how I spent most of my time. Which, in hindsight, was very convenient.
To date, I’ve accumulated 250 hours working on February, which isn’t much by any corporate project standards.
The list to celebrate
I completed Phase 1 in early March (approx. 135 hours). I primarily worked on February during this time.
- Started a brand new project in Godot.
- Implemented version control.
- Built a proof-of-concept character and world with the bare minimum features that make it look and behave like a game.
- Implemented an asset from the Godot Asset Library to perform the wave function collapse algorithm for world generation. (This works, but isn’t appropriate for my use case. Perhaps I’ll write a blogpost explaining why in the future.)
- Added fundamental settings such as volume control, which persist after closing and reopening the game.
- Designed and built save files, which persist after closing and reopening the game.
- Researched where to find open-source and (free) licensed visual and audio assets for the proof-of-concept.
- Added menus and heads-up displays that update dynamically.
- Published the game several times (privately, requiring a key) to itch.io.
- Researched and wrote an end user license agreement.
- Fixed many game-breaking and hilarious bugs.
- Commissioned some concept art.
Phase 2 finished in July (approx. 50 hours). I worked for a client full time and on February in the background.
- Added a loading screen that can run asynchronously to the objects(s) being loaded.
- Refactored the world generation worked to closer align to the desired algorithm.
- Published the demo publicly to itch.io.
In Phase 3 I returned to working on February full time. Well, after being sick, going on holiday and prioritising other work above the project (approx 90 hours so far).
- Rebuilt the dialogue system – potentially move this to an open-source component for others to use in their projects.
- Refactored complexity out of the codebase: previously had the concept of levels and worlds, one of which was redundant.
- Rebuilt several menu-like screens, including the shop. Layout is more readable and can be animated and juiced later. (Juicing a term that covers audio and visual feedback, explained well in this blogpost).
- Wrote, built and submitted the steam store page for the full game and demo.
- Learned how to deploy through Steam SDK.
- Documented the entire codebase.
- Installed a linting tool to align my code to the style guidelines for GDScript.
- Updated the public demo on itch.io.
The current standings
The last task I’ve marked for Phase 3 is to build a windows executable that I can publish on Steam. This was the original goal and I am excited to finally reach this milestone. It only took twice as long as I had originally expected it to! From what I’m told in the project management space, this is actually a good track record! That being said, I expect the demo to be available on Steam next week. Go on, the wishlist button isn’t going to click itself, dear reader.
