Let's talk about [uinatu:s]*.

The project's future became uncertain when 2024 got started due to ongoing litigations with Apple and waning development interest. Eventually, I realized that, if I wanted to continue developing Indexing Your Heart, Windows support would be mandatory, if not just for my own sake.

Let's talk about [uinatu:s]*.
Photo by Surface / Unsplash
*[uinatu:s] being the IPA spelling for "Windows" in [ʔaʃaʃat].
Update: Fixed phonetic spelling of Windows in [ʔaʃaʃat].

Ah, Windows... the one operating system that takes the majority when it comes to gaming. Love it or hate it, it continues to be the primary platform that developers target when releasing their games. Coincidentally, it is also the one major platform Indexing Your Heart's prototype missed.

When I made the decision to make the game specific to Apple's platforms just a couple of years ago, I knew that I'd be limiting my target audience by a significant margin. At that time, I postulated that I'd compensate for this by creating an experience that neatly ties into the ecosystem the fruit company had built up. And, for a while, that became true.

TL;DR: Indexing Your Heart will be available for Windows and other platforms thanks to being rewritten in C#/.NET. A new Itch.io page will launch soon with an updated prototype that works on the three major desktop platforms.

So, what happened?

The project's future became uncertain when 2024 got started. It was two months before the European Union's Digital Markets Act was set to be in full enforcement, and Apple had announced their plans for compliance. The next few days became turbulent, as I reflected on myself. I suddenly realized that my passion for developing for Apple's ecosystem had been waning, and it wasn't the same as it used to be. So, for my own mental and emotional health, I put Indexing Your Heart to the side and any other Apple-specific projects I had.

A few months passed, and I found myself buying a Windows PC for the first time in around ten years. Initially, I settled for a $100 NUC box from Amazon as I imagined using it to get used to Windows again in a native environment. This eventually turned into me doubling down and buying a Surface Pro. For better or worse, Windows had become my primary operating system for both Mac-like tasks such as development, website management, and bookkeeping, and for iPad-like tasks such as browsing the web, checking emails, watching YouTube videos, and playing games.

What now?

I realized that, if I wanted to continue developing Indexing Your Heart, Windows support would be mandatory, if not just for my own sake. In early June, I took a moment to think about what options I had available to me. I could add Windows support to my own fork of SwiftGodot or simply switch to the main upstream version. Eventually, it became clear to me that the way to go forward was to rewrite the entire game, line for line, from Swift to C#/.NET.

While rewriting the game for a third or fourth time is a lot of effort, migrating to .NET gave me some huge advantages over Swift:

  • First, I can make more thorough unit and integration tests for the game. While writing tests were possible with the original Swift codebase, it wasn't as tightly integrated, and a lot of legwork was required to expose the right properties for tests written in GDScript to utilize. Now, the project uses GdUnit4 and hooks into the game's code directly, allowing for more thorough tests.
  • .NET is cross-platform, meaning that the game will end up supporting Windows, Linux, and Android along the way. It also makes the codebase more portable should I get helping hands, as it isn't limited to Apple's own tooling. I've been using Rider to write all the code (though I did try Visual Studio 2022 for a little bit), and I'm happy with the IDE overall.
  • Godot has official support for .NET, which also allows me to write a single codebase that will work consistently across platforms without needing to make my own native extensions for each platform.

During this migration process, I broadcasted the development on YouTube in a series of weekly livestreams, highlighting the current game and its developing support for Windows. Engagement and audience analytics aside, at least I have another means of showing my work and taking accountability for the game's development.

This livestream features porting over the keyboard and numpad made for the game.

A bright future

At the time of writing, the game's prototype is almost ready for a re-release with support for Windows, macOS, and even Linux (although untested). Soon, a new Itch.io page will launch where you can download the prototype for yourself, regardless of what desktop operating system you use. Likewise, future livestreams should show off new developments to the game such as new areas and mechanics, storylines, etc.

I'm excited for this new chapter of the game's development and look forward to continuing making it.