Announcing Indexing Your Heart
Hello, and welcome to the first official developer log for Indexing Your Heart, a visual novel and RPG hybrid game! I'm really excited to share with you all the culmination of several game prototype ideas over the course of a few months, and how I plan to shape this into a proper game.
Hello, and welcome to the first official developer log for Indexing Your Heart, a visual novel and RPG hybrid game! I'm really excited to share with you all the culmination of several game prototype ideas over the course of a few months, and how I plan to shape this into a proper game.
Before we delve into the details of this game's implementation and how it will play out, let me first address the main story of the game. You and Katorin, your closest colleague and friend, have recently finished a huge project at ArcAI Software, the company you work for, and you head to a bar that night to celebrate. After getting plastered with a couple of drinks, Katorin introduces you to the band that was performing that night, The Serif. While the lead singer, Chelsea Roslyn, ran out early to tend to personal matters, you manage to strike a conversation with the band, who Katorin is close friends with. Later that night, a mysterious figure shows up at the door in a hammer costume, explaining that they wanted to hand-deliver some mail to you in order to avoid paying for postage before promptly leaving. Upon opening the envelope, you discover a note with a phone number and a brief explanation of the figure's intent: getting a date out of you. Hesitantly, you text back and accept the offer. The game will follow with you meeting with this mysterious figure every Friday night.
Initially, I had planned to make this an unofficial sequel to Unscripted, where Katorin would wear a candle costume and secretly date you. However, I noticed that I started to get a little tired of the candle costume being reused across multiple projects (namely the Candella project), and I wanted to add something that will surprise people. After speaking with some colleagues and friends, I ultimately decided that I would change the story ever so slightly to keep the main premise, but provide some twists and turns. Thankfully, I had a canned prototype that shared similar story points that I reused, except the admirer was an anthropomorphic coyote.
The Technical Stack
Since I had a blast using the Godot Engine to make a few small games such as Bug Bounty, The Costumemaster: Reloaded, and Package Resolved, I decided that I will use it again for the second time in a major project. The bare-bones prototypes for Indexing Your Heart were initially written in the Kotlin programming language, thanks to the Godot Kotlin/JVM plugin. Despite its limitations and alpha state, I was set on writing a good game with the in-development technology. However, I did realize a few things that made me change my mind:
- First, I'd have to create a Java Runtime Environment (JRE) for each platform. While that isn't terrible in and of itself, it would mean I'd have to rely on CI to make the builds and download them for distribution. Given that the project is not open-source (at least not currently), I'd be looking at some decent times for GitHub Actions to compile the builds.
- Installing various toolchains for Kotlin can be a bit expensive, ranging from installing Gradle to getting IntelliJ CE (or even Ultimate). Additionally, the latest version of the Godot Kotlin/JVM plugin doesn't support the latest version of IntelliJ (at least at the time of writing). I'd be stuck running the previous versions of IntelliJ until the team releases a new plugin version compatible with the version of IntelliJ I would have installed.
- Finally, while I vowed that I would not use C# for games in the future, I realized that the only way I was going to be faster in the language is if I used it more. My friend made this more evident when he started working on a web application with ASP.NET on his device.
Thankfully, I don't need to set up a fancy IDE like I have in the past to jumpstart the project. Simply downloading the Mono version of Godot, the .NET SDK, and the C# extensions for Visual Studio Code were enough for me to get up and running. I only had to spend at most half an hour to get everything set up, including changing the build tool in Godot over to .NET CLI instead of Mono (since Mono support is still a work in progress on Apple Silicon). With all the setup out of the way, I rewrote my existing scripts in C#, which took about a couple of hours.
Since I was coming back to C# in a more supported environment, I also decided to try out the Dialogic plugin for Godot, which provides a nice utility for writing dialogue without the hassle of generating dialogues boxes, writing a custom JSON format, etc. Although Dialogic doesn't have the same niceties that my older system with the DSL did, it will handle a lot of the things that my version did not have, such as animations and sounds. Since Dialogic uses JSON files to store data for dialogue and characters, this also lets me quickly add in portraits and other properties using Python scripts.
A Roadmap to Follow
I plan to release Indexing Your Heart to the public commercially by the end of 2022 like I did with Unscripted, spending as much time as I can focusing on the core aspects of the game.
Currently, there are a few major milestones I have in mind to reach:
- Completing the story writing and visual novel aspects of the game
- Creating the RPG world and experimenting with game balance
- Gathering the assets to make the game look nice
- Starting a small feedback program and getting advice from you, the community
- Implementing feedback into the game and working on translations as necessary
- Releasing the game
There's a lot in mind, and this will be the first time I have set milestones in place (I didn't do this with Unscripted). Thankfully, I have some contributors and friends helping me craft the game as I work on the story. Ideally, I plan to finish off the story by the end of the month (coincidentally, it's National Novel Writing Month at the time of writing) so that I can begin on the more fun aspects with the RPG.
An Important Note on Licensing
I make a good handful of my projects open-source because I believe in contributing back to the open-source community as appreciation for all the help I get from looking at open-source code and using free and open-source tools such as Pixelorama and the Godot engine. And, like myself, I want to be able to help others in the same way, whether it be game modders, translators, or other members of the open-source community. However, I realize that there are quite a few components to my game that, if misused or abused, can seriously hurt people, especially those in the LGBTQ+ community.
After some deliberation, I have decided that, at release time, I will license the game under the Cooperative Non-violent Public License, an ethical source license that lets you download, modify, and redistribute the code to the game as long as the modified distributions don't cause any harm or violence towards others. I know this will be a controversial decision, especially within the free and open-source community; however, I need to take on the responsibility of making sure that my work doesn't get abused in a way that can hurt those that identify with the characters deeply. It's a sacrifice I'm willing to make to ensure safety while also allowing the freedoms of tinkering that have helped me make games like this possible.
I plan to make the source code available to the public around when the story is near completion.
I look forward to sharing more with you about this game as it progresses! Stay tuned for future updates and when I plan to release prototyping builds.