Love Exalt 8372 release and the things that got us there


This is a repost of an post, and only includes my part of it. You may want to read the complete thing, since it also includes something from the game's writer. It's about a game I've been working on with a friend for a bit, and it's out on itch and steam, linked at the end of the post.

The post

Hi, we just recently released and I wanted to talk a bit about how we got this game working. When the idea to actually make a game from the story came to be, we discussed what engine we should choose. At that point, it wasn't exactly clear what kind of game it would be, though we settled quite fast that we should limit the scope of the game to something we could actually make in a reasonable amount of time with such a small team. The engines we thought of at that point were Unity, Godot, Ren'Py, and a custom engine. Custom engine and Unity were the first ones to be scratched off, since a custom engine meant it would likely take a long time to get anything presentable working. Unity, we both agreed, was too big and clunky for what we wanted to make, and, despite me having a lot of experience with Unity, or perhaps because of that, I have grown to dislike working with Unity and its many design flaws. Another proposition was RPGMaker, but we quickly decided that perhaps we didn't actually want a top-down RPG game, since that meant lots of sprite art, and we would've had to slow down the story with RPG gameplay, much like Danganronpa is slowed down by some of its gameplay, although it's a great game at many points.

In the end, we've stopped on Godot; we've never worked with it, so neither of us had much bad to say about it. It seemed like a good general-purpose engine that has good documentation and actual support for 2D games (unlike Unity). Godot is open-source, too, so patches could be made to the engine directly, if need be (and there was indeed a need, at some points). Working with it, we've also noted the quick release cycle they had for Godot 4, which meant that fixes for major issues would usually arrive within a week or sometimes even a few days. Speaking of Godot 4… initially, we tried 3, which is the current stable version, but it seemed to me that 3 lacked a lot of small quality of life things and GDScript language features that they've made available in 4, so early in the development process we made the decision to switch. Of course, since Godot 4 has no stable release yet, we encountered some issues and crashes within the editor and with exporting the game, but all of these issues were resolved within a few days or weeks with the new Godot releases, and we've steadily progressed on the demo up until its release.

We've opted to use Godot's resources system instead of just text files for the game's written content. That was mostly a decision of mine, and I've tried my best to make it as painless as possible to add content to the game by implementing custom resources and inspectors. Overall, there's a lot of clicking on buttons and expanding sub-objects, but it's far from how annoying it was at the start. The idea behind using resources instead of just text files was to make sure that we never had issues with typos in file structure or dialogue navigation. Plus, this meant not having to write a parser for all of that. Seems that this approach is not oft taken, and people do usually opt to make custom formats and parsers, but nevertheless, this is the path we chose; perhaps in the future something will change about our setup, but, for now, we're sticking with it.

Some time before the game's actual release we got the Steam and Itch pages set up. For Steam, things have been mostly smooth, and, after incorporating feedback from Valve, we released our demo. The paid release of the game will feature achievements, too, and the demo's save system will ensure that the achievements will be unlocked automatically when players move from the demo to the paid release. This way, we hope the migration from the demo should be mostly imperceptible, and you can just continue playing like nothing changed. On Itch's part, there was no review up until the game's actual release, at which point we discovered that if your game costs money, Itch won't let it be searched on the site until they've reviewed it. Unfortunately, we're still waiting on that review, so the game can only be accessed from someone's profile or from a direct link. Other than that, we haven't had issues with releasing on Itch either.

For the Steam release, we wanted to have Steam integrations like achievements. Turns out, the library that provides bindings to the Steamworks API, GodotSteam wasn't yet ported to Godot 4. Thankfully, it was fairly little work to do that, and in a few evenings I got it working with Godot's GDExtension and submitted the patch to the library. It was accepted, since it got the library working at least, but it's still not considered stable, because it hasn't been tested that thoroughly— but it should mostly work fine. If you're using Godot 4 and want Steam integration, take a look at it.

Close to the demo's release, when the story was mostly done, we got to work on polishing and fixing bugs that we and our playtesters had found. There were quite a lot of minor issues and some major bugs that slipped through up to that point, but now we've got them fixed, and the demo release should be mostly bug-free. It took a while, and I'd like to thank everyone who played the game and told us about the issues; with the help of those people, we also touched up some parts that didn't make sense to them, like providing a little tutorial at the start of the game which teaches you the main mechanic, but still lets you figure out the rest yourself.

So far this has been an interesting experience, and I like the Godot engine a lot more than Unity. I hope we can continue to have fun making this game and eventually make it a complete story. Thank you for reading this long post and sticking through to the end, and I hope you enjoy, or enjoyed, the demo!