<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[Indexing Your Heart]]></title><description><![CDATA[A Witness-like puzzle game with visual novel elements about self-discovery, identity, and what it means to be human.]]></description><link>https://indexingyourhe.art/</link><image><url>https://indexingyourhe.art/favicon.png</url><title>Indexing Your Heart</title><link>https://indexingyourhe.art/</link></image><generator>Ghost 5.80</generator><lastBuildDate>Tue, 14 Apr 2026 19:31:11 GMT</lastBuildDate><atom:link href="https://indexingyourhe.art/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[The new prototype release is here!]]></title><description><![CDATA[I'm super excited to announce that, as of today, the new prototype of the game has launched! Complete with the .NET rewrite and Windows/Linux* support, the prototype is now in a better state than it was a year ago.]]></description><link>https://indexingyourhe.art/the-new-prototype-release-is-here/</link><guid isPermaLink="false">671e6de5866d5a04f5921c99</guid><category><![CDATA[devlog]]></category><category><![CDATA[prototype]]></category><dc:creator><![CDATA[Marquis Kurt]]></dc:creator><pubDate>Sun, 27 Oct 2024 16:51:39 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1523191339508-68905a77d5e7?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDd8fHdpbmRvd3xlbnwwfHx8fDE3MzAwNDc4ODN8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1523191339508-68905a77d5e7?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDd8fHdpbmRvd3xlbnwwfHx8fDE3MzAwNDc4ODN8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" alt="The new prototype release is here!"><p>I&apos;m super excited to announce that, as of today, the new prototype of the game has launched. Complete with the .NET rewrite and Windows/Linux* support, the prototype is now in a better state than it was a year ago.</p><p>I&apos;m also excited to announce that the Itch.io page is finally up! You can head to <a href="https://marquiskurt.itch.io/indexing-your-heart?ref=indexingyourhe.art" rel="noreferrer">https://marquiskurt.itch.io/indexing-your-heart</a> right now and download the prototype for yourself. This took the most time during the rewrite phase, admittedly; there weren&apos;t a lot of screenshots to leverage, and I needed to make new assets that fit the current aesthetic of the game.</p><p>So, feel free to grab the latest prototype and play around with it! I plan to work on more puzzles and re-introduce mechanics such as the story as time goes on. Cheers.</p><hr><p>*<em>Linux support is untested. Only supporting the x86-64 architecture for now.</em></p>]]></content:encoded></item><item><title><![CDATA[Let's talk about [uinatu:s]*.]]></title><description><![CDATA[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.]]></description><link>https://indexingyourhe.art/lets-talk-about-windows/</link><guid isPermaLink="false">66c3553a866d5a04f5921bd8</guid><category><![CDATA[devlog]]></category><category><![CDATA[prototype]]></category><category><![CDATA[windows]]></category><dc:creator><![CDATA[Marquis Kurt]]></dc:creator><pubDate>Tue, 20 Aug 2024 00:00:00 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1640622300363-4f295638be2e?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDM4fHxXaW5kb3dzfGVufDB8fHx8MTcyNDA3NzM4N3ww&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<blockquote>*[uinatu:s] being the IPA spelling for &quot;Windows&quot; in [&#x294;a&#x283;a&#x283;at].</blockquote><blockquote>Update: Fixed phonetic spelling of Windows in [&#x294;a&#x283;a&#x283;at].</blockquote><img src="https://images.unsplash.com/photo-1640622300363-4f295638be2e?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDM4fHxXaW5kb3dzfGVufDB8fHx8MTcyNDA3NzM4N3ww&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" alt="Let&apos;s talk about [uinatu:s]*."><p>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 <em>Indexing Your Heart</em>&apos;s prototype missed.</p><p>When I made the decision to make the game specific to Apple&apos;s platforms just a couple of years ago, I knew that I&apos;d be limiting my target audience by a significant margin. At that time, I postulated that I&apos;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.</p><blockquote><strong>TL;DR</strong>: 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.</blockquote><h2 id="so-what-happened">So, what happened?</h2><p>The project&apos;s future became uncertain when 2024 got started. It was two months before the European Union&apos;s Digital Markets Act was set to be in full enforcement, and <a href="https://www.apple.com/newsroom/2024/01/apple-announces-changes-to-ios-safari-and-the-app-store-in-the-european-union/?ref=indexingyourhe.art" rel="noreferrer">Apple had announced their plans for compliance</a>. The next few days became turbulent, as I reflected on myself. I suddenly realized that my <a href="https://marquiskurt.net/my-love-of-developing-for-apples-platforms-is-dying/?ref=indexingyourhe.art" rel="noreferrer">passion for developing for Apple&apos;s ecosystem had been waning</a>, and it wasn&apos;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.</p><p>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.</p><h2 id="what-now">What now?</h2><p>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 <a href="https://youtrack.marquiskurt.net/youtrack/issue/IOH-42/Port-codebase-to-Windows?ref=indexingyourhe.art" rel="noreferrer">think about what options I had available</a> 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.</p><p>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:</p><ul><li>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&apos;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 <a href="https://mikeschulze.github.io/gdUnit4/?ref=indexingyourhe.art" rel="noreferrer">GdUnit4 </a>and hooks into the game&apos;s code directly, allowing for more thorough tests.</li><li>.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&apos;t limited to Apple&apos;s own tooling. I&apos;ve been using <a href="https://jetbrains.com/rider?ref=indexingyourhe.art" rel="noreferrer">Rider</a> to write all the code (though I did try Visual Studio 2022 for a little bit), and I&apos;m happy with the IDE overall.</li><li>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.</li></ul><p>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&apos;s development.</p><figure class="kg-card kg-embed-card kg-card-hascaption"><iframe width="200" height="113" src="https://www.youtube.com/embed/a0YEeOTAeR0?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen title="A Keyboard for a Conlang (Indexing Your Heart Dev) &#x1F534;"></iframe><figcaption><p><span style="white-space: pre-wrap;">This livestream features porting over the keyboard and numpad made for the game.</span></p></figcaption></figure><h2 id="a-bright-future">A bright future</h2><p>At the time of writing, the game&apos;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.</p><p>I&apos;m excited for this new chapter of the game&apos;s development and look forward to continuing making it.</p>]]></content:encoded></item><item><title><![CDATA[Something new, something old]]></title><description><![CDATA[It feels like it's been such a long time since the last update I've posted about Indexing Your Heart as a project. Suffice to say, a lot has changed with the game since the last prototype build I published back in April of this year, and it's about time I state where the project is headed.]]></description><link>https://indexingyourhe.art/something-new-something-old/</link><guid isPermaLink="false">65e26052dfbf151a8fc6d40e</guid><dc:creator><![CDATA[Marquis Kurt]]></dc:creator><pubDate>Mon, 30 Oct 2023 00:00:00 GMT</pubDate><media:content url="https://indexingyourhe.art/content/images/2024/03/Screenshot-2023-10-09-at-09.34.19-1.png" medium="image"/><content:encoded><![CDATA[<img src="https://indexingyourhe.art/content/images/2024/03/Screenshot-2023-10-09-at-09.34.19-1.png" alt="Something new, something old"><p>It feels like it&apos;s been such a long time since the last update I&apos;ve posted about <em>Indexing Your Heart</em> as a project. Suffice to say, a <em>lot</em> has changed with the game since the last prototype build I published back in April of this year, and it&apos;s about time I state where the project is headed.</p><hr><h2 id="coming-home-to-godot">Coming home (to Godot)</h2><p>When I started working on Indexing Your Heart in 2021, I envisioned making a game that fused two genres together, leveraging all that the <a href="https://godotengine.org/?ref=indexingyourhe.art">Godot game engine</a> offered to me at the time. During that time, I had switched between multiple languages: Kotlin, C#, and GDScript, but I still stuck with Godot as my engine of choice.</p><p>In the summer of last year, I decided to pivot towards using SpriteKit and utilizing what Apple offers for apps and games on Mac, iPhone, and iPad while I re-discovered the game I wanted to make:</p><blockquote>To say that I thought a lot about this is an understatement, but, suffice to say, I&#x2019;ve bitten the bullet and switched. As of a few days ago, I created the starter project for Indexing Your Heart in a multiplatform game template, using SwiftUI and SpriteKit, localizations and other goodies included. I&#x2019;m excited to take the next step in shaping the game to my next masterpiece.</blockquote><p>When WWDC23 happened this year, something completely unexpected occurred: Miguel de Icaza, co-founder of the GNOME project, Xamarin, Mono, etc., <a href="https://mastodon.social/@Migueldeicaza/110238213835630907?ref=indexingyourhe.art">created a brand-new Swift binding for Godot</a> using Godot 4&apos;s <a href="https://docs.godotengine.org/en/stable/tutorials/scripting/gdextension/what_is_gdextension.html?ref=indexingyourhe.art">GDExtension</a> system. I challenged myself to try recreating <em>Indexing Your Heart</em> using de Icaza&apos;s bindings, and I was impressed with how far I could take the project. The binding has improved over time thanks to new features Swift 5.9 introduced, such as macros and parameter packs, and I couldn&apos;t be more pleased with what I can do.</p><figure class="kg-card kg-image-card"><img src="https://indexingyourhe.art/content/images/2024/03/Screenshot-2023-10-30-at-11.51.45.png" class="kg-image" alt="Something new, something old" loading="lazy" width="2000" height="1293" srcset="https://indexingyourhe.art/content/images/size/w600/2024/03/Screenshot-2023-10-30-at-11.51.45.png 600w, https://indexingyourhe.art/content/images/size/w1000/2024/03/Screenshot-2023-10-30-at-11.51.45.png 1000w, https://indexingyourhe.art/content/images/size/w1600/2024/03/Screenshot-2023-10-30-at-11.51.45.png 1600w, https://indexingyourhe.art/content/images/2024/03/Screenshot-2023-10-30-at-11.51.45.png 2000w" sizes="(min-width: 720px) 720px"></figure><p>I am happy to report that, at the time of writing, <em>Indexing Your Heart</em> has fully returned to the Godot game engine, using SwiftGodot as its core for game scripts. I&apos;ve been able to successfully push out builds for macOS and iOS directly to TestFlight as well (albeit internally), enabling me to keep developing the game more efficiently.</p><p>Besides being a user of SwiftGodot, I&apos;ve also been contributing to the project where I can to make the experience even better for game developers. When Swift macros launched publicly, <a href="https://github.com/migueldeicaza/SwiftGodot/pull/129?ref=indexingyourhe.art">I brought over some macros that I&apos;ve developed</a>, such as <code>@SceneTree</code>, <code>#initSwiftExtension</code>, and <code>#texture2DLiteral</code>. Additionally, <a href="https://github.com/migueldeicaza/SwiftGodot/pull/98?ref=indexingyourhe.art">I wrote some of the tutorials for getting started</a> using DocC&apos;s built in tutorial system, which has been getting more updates thanks to the community. While de Icaza and I don&apos;t always agree on API design choices, it has been a pleasure to work with him and a group of passionate developers on making the marriage between Swift and Godot a reality. Our <a href="https://github.com/migueldeicaza/SwiftGodot/discussions/96?ref=indexingyourhe.art#discussion-5323629">Slack workspace</a> has been bustling as more developers join and get involved with SwiftGodot. Overall, I&apos;m excited to see where SwiftGodot goes and couldn&apos;t be any happier.</p><h2 id="a%CA%83ai%CA%94a%CA%83akasusate1-a-new-story">[a&#x283;ai&#x294;a&#x283;akasusate]<a href="#fn1-9930"><sup>1</sup></a> (A new story)</h2><p>While I liked the SpriteKit-based prototype as it existed, a few factors kept nagging at me. First, the story didn&apos;t really tie well into the puzzles I created, feeling disjointed and irrelevant. Furthermore, I struggled to design good puzzles <a href="https://indexingyourhe.art/post/697734643887292416/big-news-the-prototype-has-landed#A-paintbrush-and-a-canvas">using the Paintbrush system</a> because there were little to no restrictions on how to draw a line. Finally, I didn&apos;t get as many downloads of the prototype as I hoped, and this led to many parts of the game being unchecked, such as the writing of the story. A quick conversation with <a href="https://twitter.com/mvandevander?lang=en&amp;ref=indexingyourhe.art">Matthew VanDevander</a>, the creator of Taiji, made this last point glaringly obvious.</p><p>At first, I tried to rewrite the existing story to better fit with the puzzles and provide much needed clarity. However, I soon realized that the game&apos;s design was limiting what I could do, and it would&apos;ve been extremely difficult to make it work the way I wanted. So, I went back to the drawing board and reconsidered the game&apos;s design as a whole.</p><p>I sifted through my current notes, game design documents, etc., until I stumbled upon a set of bonus puzzles I planned out that utilized a conlang I made a while back, <a href="https://marquiskurt.itch.io/ashashat-lang?ref=indexingyourhe.art">[&#x294;a&#x283;a&#x283;at]</a>. Suddenly, I realized that I already created a system with its own rules and constraints: a language. Furthermore, a language can be tied into a story quite easily, because languages can be a part of people&apos;s identity. [&#x294;a&#x283;a&#x283;at] was the key to making <em>Indexing Your Heart</em> work.</p><p>I spent the next few months reworking the game alongside the codebase. Instead of drawing lines with Paintbrush, I created keyboards and number pads for entering words and numbers in. Additionally, I threw out the story in favor of a new one with just two characters, one of them being a native speaker of [&#x294;a&#x283;a&#x283;at]. I won&apos;t spoil too much of the story, but it&apos;s definitely pivoted from a romance story to one of self-discovery, reflection, and coming to terms with one&apos;s own identity.</p><figure class="kg-card kg-image-card"><img src="https://indexingyourhe.art/content/images/2024/03/obel_0.png" class="kg-image" alt="Something new, something old" loading="lazy" width="900" height="900" srcset="https://indexingyourhe.art/content/images/size/w600/2024/03/obel_0.png 600w, https://indexingyourhe.art/content/images/2024/03/obel_0.png 900w" sizes="(min-width: 720px) 720px"></figure><h2 id="a-new-code-hub">A new code hub</h2><p>I&#x2019;ve been a GitHub user for as long as I&#x2019;ve done software development. GitHub provides a lot out of the box, and I&#x2019;ve had no particular issues with the service. However, with <em>Indexing Your Heart</em>, I&#x2019;ve been slowly migrating everything over to GitLab (hosted at <a href="https://gitlab.com/Indexing-Your-Heart?ref=indexingyourhe.art">https://gitlab.com/Indexing-Your-Heart</a>), which has helped streamline development to some degree thanks to better organization.</p><p>Having all of the tooling for the game in one place is great, except when that one place becomes unreliable or inevitably shuts down. GitHub hasn&#x2019;t had this happen in a way that affects the game yet; however, I would prefer to have some redundancy in place to ensure the project remains alive. Thankfully, Git is decentralized by nature, so I can simply add another remote and push the code somewhere else. GitLab also makes it easy to mirror to a GitHub repository<a href="#fn2-9930"><sup>2</sup></a>, allowing me to have the game&#x2019;s source code in both GitHub and GitLab. I have yet to set up all the repositories this way, but I am grateful I can have the game in as many places as I can.</p><p>With that said, I did run into some challenges with such a migration. While moving the source was trivial, I realized that GitLab&#x2019;s CI tooling was lacking for what I needed, especially since I&#x2019;m not a premium subscriber. Nonetheless, I turned to CircleCI to fulfill the role of my CI jobs, ranging from running unit tests on the game&#x2019;s modules to building frameworks for testing. Some of my tests require running on an Apple Silicon Mac, though I should be able to re-enable these once CircleCI rolls out M1 runners to free users. Nonetheless, CircleCI&#x2019;s system works well with GitLab, and I couldn&#x2019;t be more pleased.</p><p>Finally, I&#x2019;m looking forward to an upcoming GitLab feature: federated merge requests. Currently, if you wanted to make a merge request to the game&#x2019;s source code, you need to make an account on <a href="https://gitlab.com/?ref=indexingyourhe.art">GitLab.com</a> and submit it there. However, <a href="https://gitlab.com/gitlab-org/gitlab/-/issues/6468?ref=indexingyourhe.art">some proposals</a> and <a href="https://gitlab.com/groups/gitlab-org/-/epics/11247?ref=indexingyourhe.art">merge requests</a> have been made to change this so that anyone can make a merge request in GitLab, regardless of where their account is. This will effectively use the same system that powers Mastodon, PixelFed, and others in the &#x201C;fediverse&#x201D;: ActivitiyPub. I&#x2019;m excited to see this feature roll out, as it will make contributing to the game more accessible than ever before.</p><h2 id="the-next-prototype">The next prototype</h2><p>I hope to get a new version of the prototype with the new codebase out soon, ideally by mid-November. I&apos;ve been continuing to make improvements as I test the game on physical devices to make sure it&apos;s decent enough for a public test like I had done prior. At the time of writing, I have a couple more things I&apos;d like to implement before releasing it (such as save states), but I should be on track to get it in everyone&apos;s hands soon.</p><hr><ol><li>To make it easier to write (and type, by extension), words written in my conlang will be typed by their pronunciation according to the International Phonetic Alphabet (IPA). <a href="#fnr1-9930">&#x21A9;&#xFE0E;</a></li><li>Setting up a mirror from GitHub -&gt; GitLab requires a premium plan, unfortunately. <a href="#fnr2-9930">&#x21A9;&#xFE0E;</a></li></ol>]]></content:encoded></item><item><title><![CDATA[A new prototype is out.]]></title><description><![CDATA[I’m pleased to announce a brand-new build of Indexing Your Heart, which includes some improvements and other enhancements.]]></description><link>https://indexingyourhe.art/a-new-prototype-is-out/</link><guid isPermaLink="false">65e261aadfbf151a8fc6d41f</guid><category><![CDATA[devlog]]></category><category><![CDATA[prototype]]></category><dc:creator><![CDATA[Marquis Kurt]]></dc:creator><pubDate>Sat, 08 Apr 2023 00:00:00 GMT</pubDate><media:content url="https://indexingyourhe.art/content/images/2024/03/tumblr_26be9589eb38774e2b1ccc22a31e79c0_36454f09_1280.png" medium="image"/><content:encoded><![CDATA[<img src="https://indexingyourhe.art/content/images/2024/03/tumblr_26be9589eb38774e2b1ccc22a31e79c0_36454f09_1280.png" alt="A new prototype is out."><p>I&#x2019;m pleased to announce a brand-new build of Indexing Your Heart, which includes some improvements and other enhancements.</p><p>First, a lot of time went into improving the performance and memory usage of the game. Some of these improvements include preloading tile sets on startup, reducing memory leaks when transitioning between scenes, and improved state management. This should make the game feel faster while taking up less resources.</p><p>Next, there&#x2019;s a new way to move around the map when in puzzle mode: sprinting! Double-tap on a given location, and Chelsea will run to that spot more quickly. This will allow for faster travel in larger environments.</p><p>On top of that, you&#x2019;ll finally be able to see the real Chelsea for the first time! The game includes new sprites created by&#xA0;<a href="https://href.li/?https%3A%2F%2Fwww.instagram.com%2Fkabora_mackraid%2F=&amp;ref=indexingyourhe.art">Kabora Mackraid</a>, and they look absolutely fantastic. In fact, Chelsea&#x2019;s iconic hammer costume has now become the game&#x2019;s default icon! Special thanks to her for making this possible. &#x1F64F;&#x1F3FB;</p><figure class="kg-card kg-image-card"><img src="https://64.media.tumblr.com/26be9589eb38774e2b1ccc22a31e79c0/1b8bca310a521ada-ea/s1280x1920/36454f0934d2ac4b263a13fc392e107ce5b491c4.png" class="kg-image" alt="A new prototype is out." loading="lazy" width="1280" height="889"></figure><p>This update is available in TestFlight for iPhone and iPad. If you aren&#x2019;t already part of the TestFlight program, head over to the prototype page (<a href="https://href.li/?https%3A%2F%2Findexingyourhe.art%2Fprototype=&amp;ref=indexingyourhe.art">https://indexingyourhe.art/prototype</a>) to become a part of the program.</p>]]></content:encoded></item><item><title><![CDATA[Another update is available for the prototype!]]></title><description><![CDATA[I’m pleased to announce the next update to the prototype, which includes some great quality-of-life improvements that I’d like to mention here.]]></description><link>https://indexingyourhe.art/another-update-is-available-for-the-prototype/</link><guid isPermaLink="false">65e2623fdfbf151a8fc6d431</guid><category><![CDATA[devlog]]></category><category><![CDATA[prototype]]></category><dc:creator><![CDATA[Marquis Kurt]]></dc:creator><pubDate>Fri, 11 Nov 2022 00:00:00 GMT</pubDate><media:content url="https://indexingyourhe.art/content/images/2024/03/tumblr_af18cc619f93fa42e838801185ebaf41_85bdeb63_500.webp" medium="image"/><content:encoded><![CDATA[<img src="https://indexingyourhe.art/content/images/2024/03/tumblr_af18cc619f93fa42e838801185ebaf41_85bdeb63_500.webp" alt="Another update is available for the prototype!"><p>I&#x2019;m pleased to announce the next update to the prototype, which includes some great quality-of-life improvements that I&#x2019;d like to mention here.</p><p>First, the game now has a proper tutorial that shows you how to move around in the environment and interact with puzzles. This also extends to the visual novel portion of the game. It&#x2019;s also platform-aware, so it will show the appropriate controls based on whether you&#x2019;re playing from your iPhone or on your Mac. I&#x2019;m so glad this finally got done, as it&#x2019;s been a top-priority item of mine since I released the very first prototype.</p><p>Next, I&#x2019;ve worked on adding images into the visual novel portion of the game. The prototype always had the support for&#xA0;<em>displaying</em>&#xA0;images, but the script didn&#x2019;t include any events in the timeline to do so. After adding some backgrounds by Minikle that I&#x2019;ve purchased years ago and some prototype sprites made in the Mannequin tool, the first chapter will&#xA0;<em>finally</em>&#xA0;display something instead of a black background. It&#x2019;s nice seeing how Caslon works with images, despite the characters not being incredibly expressive.</p><p>Finally, I&#x2019;ve spent additional time tweaking the general gameplay in the puzzle mode. For instance, each stage will now include dust particles, and you get a nice sparkly effect when you draw lines on the panels. The template for the final puzzle has also been altered slightly to be more representative of what the solution should be.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://64.media.tumblr.com/af18cc619f93fa42e838801185ebaf41/03160c26ea9a399a-89/s500x750/85bdeb6329c151adb52defd5201ea13b702508ec.gifv" class="kg-image" alt="Another update is available for the prototype!" loading="lazy" width="500" height="282"><figcaption><span style="white-space: pre-wrap;">Look at sparkles. Look at them!</span></figcaption></figure><p>This update is available in TestFlight for iPhone, iPad, and Mac. If you aren&#x2019;t already part of the TestFlight program, head over to the prototype page (<a href="https://indexingyourhe.art/prototype">https://indexingyourhe.art/prototype</a>) to become a part of the program. In the next milestone, I plan to include support for sound effects and finally address the player sprite being a white square.</p>]]></content:encoded></item><item><title><![CDATA[A new prototype has landed!]]></title><description><![CDATA[It’s with great pleasure to announce the first update to the prototype version of the game! I’ve spent a lot of time reworking some core aspects of the game that I’d like to briefly share.]]></description><link>https://indexingyourhe.art/a-new-prototype-has-landed/</link><guid isPermaLink="false">65e2633adfbf151a8fc6d43f</guid><category><![CDATA[devlog]]></category><category><![CDATA[prototype]]></category><dc:creator><![CDATA[Marquis Kurt]]></dc:creator><pubDate>Fri, 04 Nov 2022 00:00:00 GMT</pubDate><content:encoded><![CDATA[<p>It&#x2019;s with great pleasure to announce the first update to the prototype version of the game! I&#x2019;ve spent a lot of time reworking some core aspects of the game that I&#x2019;d like to briefly share.</p><p>First, the story has been completely rewritten to now come from Chelsea&#x2019;s POV. This is crucial since you now play as Chelsea instead of a nondescript character. Likewise, I&#x2019;ve introduced a new non-binary character: Sam, who takes the role of the previous &#x201C;MC&#x201D;.</p><p>Paintbrush, the puzzle system, now uses a more reliable approach to validate puzzle solutions. Although the idea of using machine learning to validate puzzles sounded fun, it was impractical in practice. Paintbrush now utilizes the&#xA0;<a href="https://depts.washington.edu/acelab/proj/dollar/index.html?ref=indexingyourhe.art">Protractor gesture recognition algorithm</a>. This approach should be less time-consuming to iterate and develop on, and it will increase performance by reducing the need to use machine learning.</p><p>Next, the &#x201C;random solve mode activation&#x201D; glitch has been resolved after discovering a race condition problem regarding player movement. This should make entering and leaving solve mode much more reliable.</p><p>Finally, some other small bugs in Caslon and the game have been resolved and should be much better.</p><p>I&#x2019;ve released an updated version of the prototype directly on to TestFlight for iOS and iPadOS, and the macOS version is currently under review by Apple for TestFlight. In the next milestone, I hope to tackle some of the bigger problems with the prototype, such as the lack of a tutorial and adding assets to the game to give it a more polished feel.</p><p>If you haven&#x2019;t signed up for the TestFlight program, you can get started here:&#xA0;<a href="https://indexingyourhe.art/prototype">https://indexingyourhe.art/prototype</a>.</p>]]></content:encoded></item><item><title><![CDATA[Big news - the prototype has landed!]]></title><description><![CDATA[Hey, all! It is with great pleasure that I am announcing the launch of the very first prototype for Indexing Your Heart today. Finally, after a year of planning, replanning, and development, a tiny prototype to show what this game’s potential is has finally landed.]]></description><link>https://indexingyourhe.art/big-news-the-prototype-has-landed/</link><guid isPermaLink="false">65e2636ddfbf151a8fc6d44c</guid><category><![CDATA[devlog]]></category><dc:creator><![CDATA[Marquis Kurt]]></dc:creator><pubDate>Mon, 10 Oct 2022 00:00:00 GMT</pubDate><content:encoded><![CDATA[<p>Hey, all! It is with great pleasure that I am announcing the launch of the very first prototype for Indexing Your Heart today. Finally, after a year of planning, replanning, and development, a tiny prototype to show what this game&#x2019;s potential is has finally landed.</p><p><strong>TL;DR</strong>&#xA0;- The prototype has launched for iOS. It&#x2019;s very rough, but demonstrates the technical aspects of how the game will function. Try the prototype at&#xA0;<a href="https://indexingyourhe.art/prototype/">https://indexingyourhe.art/prototype/</a>.</p><h1 id="a-paintbrush-and-a-canvas">A paintbrush and a canvas</h1><p>I&#x2019;ve done a lot of work since the last devlog, where I showcased a number predictor using SpriteKit and Core ML. The basic project for this became the foundation for one of the biggest parts of the game: the puzzle system (aka Paintbrush). I won&#x2019;t go into details as to how the puzzles work, as that would spoil the solutions, but the general idea of using a CNN to predict what solution the player has drawn works pretty effectively. It took about 900 images with slight augmentations in Create ML to get it working solidly; however, there&#x2019;s still a bit of leniency in the code that will need to be addressed.</p><p><a href="https://64.media.tumblr.com/f36a5aaad6797f5929334478f9bd175e/c7d6e2b0bbc5b4d9-3a/s1280x1920/63b0333d92e4ddca0404c71556caf2436144c212.png?ref=indexingyourhe.art"></a></p><p>I&#x2019;ve found that Paintbrush works really well for iPads with Apple Pencils, though drawing with your finger or cursor on a Mac also works as well. There&#x2019;s no boundary like there is in&#xA0;_The Witness_, though I do have some code that prevents the player from drawing outside the panel. I still have to tweak Paintbrush some more to be better with validation, but I&#x2019;m still pleased with the result.</p><p><a href="https://64.media.tumblr.com/e62eb70e3e2d1cec9922d5d257be8a1c/c7d6e2b0bbc5b4d9-0d/s1280x1920/e0825d26e50f126888c790911ed916d97e8acd64.png?ref=indexingyourhe.art"></a></p><p>Likewise, I&#x2019;m happy with the current setup for maps. Typically, when I make games with SpriteKit, I use the built-in tile map node, SKTileMapNode. However, I&#x2019;ve found this node isn&#x2019;t all that performant and can often cause memory leaks. Furthermore, making levels and maps using it can be painful, especially when working with tile sets; tile sets have to be generated in the SpriteKit tile set format, which takes a lot of work to set up if you have hundreds of tiles.</p><p>Recently, I discovered a framework that brings support for tile maps created with the&#xA0;<a href="https://href.li/?https%3A%2F%2Fmapeditor.org%2F=&amp;ref=indexingyourhe.art">Tiled</a>&#xA0;map editor called&#xA0;<a href="https://href.li/?https%3A%2F%2Fgithub.com%2Fmfessenden%2FSKTiled=&amp;ref=indexingyourhe.art">SKTiled</a>. After creating a tile set with the Tiled editor and mocked a simple tile map to use in SpriteKit, I wrote a small scene to import the tile map, and it works really well. I was able to cut down boilerplate code I usually wrote for parsing tile maps and still have the flexibility of the levels. I still need to measure the performance cost of SKTiled, but I&#x2019;m loving this new approach already.</p><p><a href="https://64.media.tumblr.com/dc95ecb4890dd9b22dfbe95ad9bb85b7/c7d6e2b0bbc5b4d9-77/s1280x1920/5154932c58bb535f10bf906206400a9f1f764b32.png?ref=indexingyourhe.art"></a></p><h1 id="a-quick-conversation">A quick conversation</h1><p>The story is the other big aspect of this game that I&#x2019;ve been fully developing, and it was the very first thing I did before doing any work on the game&#x2019;s code. This helped me focus a lot on the character development and the general direction of where to take the game.</p><p>Generally, my experience with writing stories for games comes from writing visual novels like&#xA0;<a href="https://href.li/?https%3A%2F%2Funscriptedvn.dev%2F=&amp;ref=indexingyourhe.art">Unscripted</a>. As such, I wanted to ensure the game has a solid experience as a visual novel in addition to Paintbrush and its Witness-like behavior. This includes a lightweight scripting system that is performant and expressive.</p><p><a href="https://64.media.tumblr.com/0d634abfb6557184afa0799500d774bf/c7d6e2b0bbc5b4d9-b5/s1280x1920/1056a78b7659f8b6378249689b77a6bec96e59b6.png?ref=indexingyourhe.art"></a></p><p>Enter Caslon, the visual novel component of the game, and Jenson, the file format for the game&#x2019;s dialogue. Both were designed to be lightweight, flexible, performant, and expressive in nature. I based the Jenson file format loosely off the Dialogic timeline format, which stores its data as JSON. To make it lightweight and performant, I&#x2019;ve compressed the files using the Brotli compression algorithm and store the compressed data as a Base64-encoded string. The tiny file size also helped my code read the files more quickly, making loading them a breeze. The current story, in its scripted form, takes only 77&#xA0;KB, which is even smaller than the Markdown source files they came from. If you&#x2019;re interested in playing around with the Jenson format, I recommend checking out JensonKit at&#xA0;<a href="https://href.li/?https%3A%2F%2Fgithub.com%2FIndexing-Your-Heart%2FJensonKit=&amp;ref=indexingyourhe.art">https://github.com/Indexing-Your-Heart/JensonKit</a>.</p><p>After building the Jenson format and converting the story files, I worked on creating a basic visual novel scene (aka Caslon) that took advantage of those files. It&#x2019;s a relatively basic scene that displays dialogue and menu options, when necessary. However, it works pretty well and behaves similarly to what Dialogic and Ren&apos;Py offer. I&#x2019;m pleased with the results and look forward to testing the support for loading images once I can conjure up some assets to use.</p><h1 id="a-cleaner-workspace">A cleaner workspace</h1><p><a href="https://64.media.tumblr.com/33a01a17063c1ee9ac4b47eec8ec318e/c7d6e2b0bbc5b4d9-b4/s1280x1920/16528e1bc859ad0dbe839f2fb5ef511d216a46bb.png?ref=indexingyourhe.art"></a></p><p>I focused a lot on making the game&#x2019;s codebase as portable, modular, and testable as I can. Though I haven&#x2019;t written unit tests for some of the game&#x2019;s functions yet, I tried to separate most of the concerns and subsystems into their own separate Swift packages, which get imported into the main game. Caslon and Paintbrush live in their own packages, and Shounin, the game project, imports the rest. Given the modules and how I structured the project, I can safely say this is the Swiftiest game I&#x2019;ve written, literally. I hope to further improve the codebase as the game grows.</p><p>Even though this is just the prototype version of the game that shows what the game will feel like, I am really proud of what I have accomplished. I&#x2019;m looking forward to hearing how others find the prototype and see where my target audience is.</p><p>Check out&#xA0;<a href="https://indexingyourhe.art/prototype/">https://indexingyourhe.art/prototype/</a>&#xA0;to join the TestFlight program and try the prototype today. I also highly encourage joining the Discord server at&#xA0;<a href="https://href.li/?https%3A%2F%2Fdiscord.gg%2FCXxnVhX=&amp;ref=indexingyourhe.art">https://discord.gg/CXxnVhX</a>&#xA0;to join the conversation.</p>]]></content:encoded></item><item><title><![CDATA[Good news - I’ve made up my mind]]></title><description><![CDATA[It’s been a week or so since the previous devlog where I raised a few important questions about the current trajectory of Indexing Your Heart, and I’ve been hard at work in terms of answering those questions.]]></description><link>https://indexingyourhe.art/good-news-ive-made-up-my-mind/</link><guid isPermaLink="false">65e263b7dfbf151a8fc6d45a</guid><category><![CDATA[devlog]]></category><dc:creator><![CDATA[Marquis Kurt]]></dc:creator><pubDate>Mon, 05 Sep 2022 00:00:00 GMT</pubDate><content:encoded><![CDATA[<p>It&#x2019;s been a week or so since the previous devlog where I raised a few important questions about the current trajectory of <em>Indexing Your Heart</em>, and I&#x2019;ve been hard at work in terms of answering those questions. I imagine this devlog post won&#x2019;t be a lot in terms of progress updates, but I figured this would be an important one to write.</p><hr><h2 id="the-crafter%E2%80%99s-hand">The crafter&#x2019;s hand</h2><p>In the previous devlog, I had discussed the possibility of moving away from Godot in favor of Swift and SpriteKit:</p><blockquote>I&apos;ve always been enamored with developing apps for iOS and macOS since I learned the Swift programming language years ago. [&#x2026;] I&apos;m torn. I could make <em>Indexing Your Heart</em> in Godot, tune it for the various platforms it will win on, reach a wide audience, and be happy. Or, I could make <em>Indexing Your Heart</em> the game I want it to be with the absolutely best integration at the risk of a small audience.</blockquote><p>To say that I thought a lot about this is an understatement, but, suffice to say, I&apos;ve bitten the bullet and switched. As of a few days ago, I created the starter project for Indexing Your Heart in a multiplatform game template, using SwiftUI and SpriteKit, localizations and other goodies included. I&#x2019;m excited to take the next step in shaping the game to my next masterpiece.</p><h2 id="setting-the-stage">Setting the stage</h2><p>Next, I mentioned that I was reconsidering the core gameplay loop:</p><blockquote>[&#x2026;] I&#x2019;m very much reconsidering the genre of this game to be a puzzle game. And instead of trying to come up with good puzzles in a short timespan, I&#x2019;ll keep working and reiterating until it feels just right. If it takes five years, then so be it. As for what the puzzles might entail, I have a few ideas floating around, but I&#x2019;m not 100% sure at the time of writing this.</blockquote><p>I did a little more than reconsider it; I spent nearly a week focusing on a brand-new gameplay loop. I&#x2019;m still working on fleshing out some of the more intricate details, but I can at least give you a small snippet from the specification I wrote up:</p><blockquote>The game will heavily focus on two primary aspects: [Marty&#x2019;s] inner fears and anxieties she faces on a regular basis, and [their] growing relationship with the other main character (MC). On each day, players will play as [Marty] while she prepares for her date [&#x2026;] However, each level will focus on a specific fear or anxiety that [they] faces on a regular basis, such as the fear of not being accepted into society. These fears and anxieties will manifest as obstacles for players to overcome with a series of puzzles tuned for that specific anxiety.</blockquote><p>This new gameplay loop was based off an idea I wrote up in a draft back in May that I&#x2019;ve since fleshed out in more detail. I&#x2019;m really excited about this new approach, as I&#x2019;ll get to play around with some interesting ideas as the game progresses. I don&#x2019;t want to spoil everything just yet, so I can&#x2019;t provide much for the time being; however, I can&#x2019;t wait for everyone to play around with these new ideas.</p><h2 id="to-act-gracefully">To act gracefully</h2><p>Finally, I spent some extra time working on a brand-new Code of Conduct. If you recall, from the very first blog post about this game, I mentioned how important it was for me to license the code under an ethical source license:</p><blockquote>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, [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.</blockquote><p>The last point is extremely important to me. I plan to explore a lot of ideas with this game (albeit not as many as Thekla&#x2019;s upcoming game), and I want to be able to do so in a safe environment. As such, in addition to licensing the code under a license that will ensure this safe environment at a source code level, I have also written up a new Code of Conduct that will ensure this safe environment in the entire project. You can already view this new Code of Conduct in the <a href="https://github.com/Indexing-Your-Heart/game/blob/root/.github/CODE_OF_CONDUCT.md?ref=indexingyourhe.art">source code repository</a>, though I plan to make a separate page on the website available that contains the most up-to-date information on it.</p><hr><p>In the coming weeks, I plan to show progress on a prototype for some levels and other bits about the journey. Let&#x2019;s make something great! &#x1F528;&#x1F43A;</p>]]></content:encoded></item><item><title><![CDATA[The revisit isn’t always nice the third time around…]]></title><description><![CDATA[It’s been nearly a few months since the last time I’ve posted an update to this project where I mentioned some minor changes being made as the game progressed. Now that it’s nearly the end of August, things haven’t really changed. What’s going on?]]></description><link>https://indexingyourhe.art/the-revisit-isnt-always-nice-the-third-time-around/</link><guid isPermaLink="false">65e263eddfbf151a8fc6d466</guid><category><![CDATA[devlog]]></category><dc:creator><![CDATA[Marquis Kurt]]></dc:creator><pubDate>Thu, 25 Aug 2022 00:00:00 GMT</pubDate><content:encoded><![CDATA[<p>It&#x2019;s been nearly a few months since the last time I&#x2019;ve posted an update to this project where I mentioned some minor changes being made as the game progressed. Now that it&#x2019;s nearly the end of August, things haven&#x2019;t really changed. What&#x2019;s going on?</p><hr><p>In the previous devlog, I briefly mentioned that I was looking into rearchitecting some parts of the game:</p><blockquote>Second, I will be revisiting the premise of the game as a whole and determine how to proceed with the project in the future. While having a mix of a visual novel and an RPG seems fun and unique, I&#x2019;m not sure if the story is well set up for this approach. Likewise, I&#x2019;m partially considering 3D games or games designed for mobile devices.</blockquote><p>This major task has been looming over my head since I started a new job, and I&#x2019;ve done lots of thinking about the game and what I want to shape it into. I&#x2019;d like to share some of these thoughts with you as I finish deliberating, although some of these thoughts may not fully make it into the game.</p><h2 id="a-swift-breakup">A swift breakup</h2><p>The Godot game engine has been an indispensable tool to creating a lot of the games I&#x2019;ve worked on in the past such as <em>Bug Bounty!</em>, <em>Package Resolved</em>, and <em>The Costumemaster: Reloaded</em>. It&#x2019;s quick, easy to use, and allows you to make games across platforms with ease. The internal scripting language, GDScript, is very Python-like and easy to pick up. There&#x2019;s a lot to like about Godot as a tool for making indie games, and I love making games with it.</p><p>However, I feel that love is starting to fade a bit, including the general prospect of creating cross-platform apps. While I understand the appeal to create an app that works across platforms with little to no effort, I&#x2019;ve come to fully appreciate writing apps native to the system it was designed for. Performance, integration, and compatibility are a few advantages I can name.</p><p>I&apos;ve always been enamored with developing apps for iOS and macOS since I learned the Swift programming language years ago. Time and time again, this love has faded and rekindled. Swift 5 and SwiftUI, SpriteKit and Game Center, Swift Playgrounds, and newer versions of Xcode have contributed greatly to this; in fact, <a href="https://github.com/Indexing-Your-Heart/marteau?ref=indexingyourhe.art">some internal tools</a> for <em>Indexing Your Heart</em> have been written completely in Swift. This love has rekindled again as I work as an iOS developer, doing the things I&apos;ve always wanted to do.</p><p>I&apos;m torn. I could make <em>Indexing Your Heart</em> in Godot, tune it for the various platforms it will win on, reach a wide audience, and be happy. Or, I could make <em>Indexing Your Heart</em> the game I want it to be with the absolutely best integration at the risk of a small audience. In a lot of ways, I&#x2019;m facing the same potential issues I would with the original version of <em>The Costumemaster</em>; however, I feel it isn&#x2019;t as bad because I&#x2019;d be designing for iOS first, which has a much larger market share than macOS does. It&#x2019;s a tricky situation to be in, and I value making a quality product with the best tools and skills needed.</p><p>Of course, this doesn&apos;t necessarily mean I&apos;m thinking of dropping Godot from my toolbox entirely; a good handful of games I&apos;m developing still use it, and I want those to be as accessible as possible. Furthermore, I may have plans for smaller games that I want to develop with Godot in the future.</p>]]></content:encoded></item><item><title><![CDATA[Did Indexing Your Heart die?]]></title><description><![CDATA[It’s been quite a long while since I started developing Indexing Your Heart, feeling confident on where the project would go. With a story nearly ready for revisions and a general idea for the gameplay, I felt that I could get the game done in a reasonable amount of time.]]></description><link>https://indexingyourhe.art/did-indexing-your-heart-die/</link><guid isPermaLink="false">65e26486dfbf151a8fc6d475</guid><category><![CDATA[devlog]]></category><dc:creator><![CDATA[Marquis Kurt]]></dc:creator><pubDate>Wed, 18 May 2022 00:00:00 GMT</pubDate><content:encoded><![CDATA[<blockquote>TLDR; Simply put, no; Indexing Your Heart is not dead. I have been busy with a bunch of other projects lately and haven&#x2019;t had the chance to give the game the attention it deserves. As I&#x2019;m wrapping other things up, I plan to get back to the game.</blockquote><p>It&#x2019;s been quite a long while since I started developing&#xA0;<em>Indexing Your Heart</em>, feeling confident on where the project would go. With a story nearly ready for revisions and a general idea for the gameplay, I felt that I could get the game done in a reasonable amount of time.</p><p>However, as winter break began, things began to slow down. Certain aspects about the game became uncertain, such as sprite artwork, budgeting, and music. Although I had done some work over winter break with importing the story into the game&#x2019;s codebase and creating prototype sprites with the excellent&#xA0;<a href="https://href.li/?https%3A%2F%2Far14.itch.io%2Fmannequin=&amp;ref=indexingyourhe.art">Mannequin</a>&#xA0;creator, I didn&#x2019;t really touch the project since February. The typical semester workload made it difficult to focus on the game and what I wanted to do with it in the future.</p><p>Fast-forward to today, where I&#x2019;m writing this blog post on a brand-new Tumblr blog. On my own personal website, I discussed&#xA0;<a href="https://href.li/?https%3A%2F%2Fmarquiskurt.net%2Fpost%2F682186817133527040%2Fmoving-on=&amp;ref=indexingyourhe.art">why I made the switch to Tumblr recently</a>:</p><p>While I&#x2019;ve had a blast being able to control every aspect of my website, I&#x2019;ve found that I&#x2019;ve updated my website less often enough to warrant using a static site generator like Jekyll. [&#x2026;] I feel confident in my content&#x2019;s new home. Additionally, Tumblr provides the controls I need for my website and blog, along with a simple interface for writing blog posts like this one.</p><p>_Indexing Your Heart_&#xA0;is still very much on my mind; not a single day passes where I stop thinking about the characters of that story and why I was so excited to build the game in the place. Because of this, I still want to develop the game and plan to finish it (at some point).</p><h2 id="so-what%E2%80%99s-changed">So, what&#x2019;s changed?</h2><p>In short, a few things have changed with the project going forward:</p><ul><li>First, while it was cool to have custom fonts and granular control over the website, I&#x2019;ve migrated all content for the website over to Tumblr for the same reasons I listed before. This will guarantee that I spend more time on the game and less time on the website itself. I will revisit theming in the future.</li><li>Second, I will be revisiting the premise of the game as a whole and determine how to proceed with the project in the future. While having a mix of a visual novel and an RPG seems fun and unique, I&#x2019;m not sure if the story is well set up for this approach. Likewise, I&#x2019;m partially considering 3D games or games designed for mobile devices.</li><li>Finally, I will be more transparent about the development process and post updates as frequently as I can. Because this blog is now on Tumblr, this should allow me to express my ideas more quickly.</li></ul><p>I&#x2019;m excited to tackle the game that is&#xA0;_Indexing Your Heart_&#xA0;again and give you all a wonderful experience.</p>]]></content:encoded></item><item><title><![CDATA[Announcing Indexing Your Heart]]></title><description><![CDATA[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.]]></description><link>https://indexingyourhe.art/announcing-indexing-your-heart/</link><guid isPermaLink="false">65e264c7dfbf151a8fc6d484</guid><category><![CDATA[devlog]]></category><dc:creator><![CDATA[Marquis Kurt]]></dc:creator><pubDate>Wed, 10 Nov 2021 00:00:00 GMT</pubDate><content:encoded><![CDATA[<p>Hello, and welcome to the first official developer log for <strong>Indexing Your Heart</strong>, a visual novel and RPG hybrid game! I&apos;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.</p><p>Before we delve into the details of this game&apos;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, <em>The Serif</em>. 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&apos;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.</p><p>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.</p><h2 id="the-technical-stack">The Technical Stack</h2><p>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 <a href="https://godot-kotl.in/?ref=indexingyourhe.art">Godot Kotlin/JVM plugin</a>. 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:</p><ul><li>First, I&apos;d have to create a Java Runtime Environment (JRE) for each platform. While that isn&apos;t terrible in and of itself, it would mean I&apos;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&apos;d be looking at some decent times for GitHub Actions to compile the builds.</li><li>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&apos;t support the latest version of IntelliJ (at least at the time of writing). I&apos;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.</li><li>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 <a href="http://asp.net/?ref=indexingyourhe.art">ASP.NET</a> on his device.</li></ul><p>Thankfully, I don&apos;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.</p><p>Since I was coming back to C# in a more supported environment, I also decided to try out the <a href="https://dialogic.coppolaemilio.com/?ref=indexingyourhe.art">Dialogic plugin for Godot</a>, which provides a nice utility for writing dialogue without the hassle of generating dialogues boxes, writing a custom JSON format, etc. Although Dialogic doesn&apos;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.</p><h2 id="a-roadmap-to-follow">A Roadmap to Follow</h2><p>I plan to release <strong>Indexing Your Heart</strong> 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.</p><p>Currently, there are a few major milestones I have in mind to reach:</p><ul><li>Completing the story writing and visual novel aspects of the game</li><li>Creating the RPG world and experimenting with game balance</li><li>Gathering the assets to make the game look nice</li><li>Starting a small feedback program and getting advice from you, the community</li><li>Implementing feedback into the game and working on translations as necessary</li><li>Releasing the game</li></ul><p>There&apos;s a lot in mind, and this will be the first time I have set milestones in place (I didn&apos;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&apos;s National Novel Writing Month at the time of writing) so that I can begin on the more fun aspects with the RPG.</p><h2 id="an-important-note-on-licensing">An Important Note on Licensing</h2><p>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.</p><p>After some deliberation, I have decided that, at release time, I will license the game under the <a href="https://thufie.lain.haus/NPL.html?ref=indexingyourhe.art">Cooperative Non-violent Public License</a>, an ethical source license that lets you download, modify, and redistribute the code to the game as long as the modified distributions don&apos;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&apos;t get abused in a way that can hurt those that identify with the characters deeply. It&apos;s a sacrifice I&apos;m willing to make to ensure safety while also allowing the freedoms of tinkering that have helped me make games like this possible.</p><p>I plan to make the source code available to the public around when the story is near completion.</p><hr><p>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.</p>]]></content:encoded></item></channel></rss>