Blog 2025-12-31

Blog 2025-12-31

Merry that-time-of-year again!

Another quarter has come and gone. So, what's been happening?

Sable's Grimoire 2

TL;DR: the game itself is more or less done. It's just needs some time for fixes, refinement, testing, and double-checking things.

More detail as follows.

Sprites

The sprites have now been exported, and their code updated.

This took longer than expected. I thought only the sprites for new characters needed to be exported. I forgot that the old sprites had been updated and needed to be re-exported.

The old sprites were originally done at a lower resolution (1600-2400px in height) than the newer sprites (4000px in height).

The old sprites have been updated to better match the newer sprites. They should look much the same as before, just a bit sharper, especially at higher resolutions.

One of the old sprites did end up getting a complete re-do though. You'll find out which one when the game is released.

Backgrounds, CGs, Music

...Are all done. They've now been scripted into the game as well, and the CG gallery and music player have both been updated.

The music for a few scenes might end up changing once I've done some playtesting. But for now I'm calling the music complete.

Coding

Aside from the gallery and music player mentioned above, a few other screens needed some work.

The preferences screen has been updated. It's been split into sections/categories for easier navigation and better space utilization. I've also added some basic accessibility settings.

The route map has been coded. It works, but it needs expanding and prettying-up.

The glossary and cast screens have both been adapted and updated.

As far as the game itself is concerned, everything has been coded in and works. The game can be run from start to finish for all routes, and all of the screens and functions work. It's just a matter of expanding and refining what's there.

Image oversampling

While coding the updated sprites, I wound up looking into image oversampling, which is a relatively new feature of the Renpy game engine.

If you're unfamiliar with image oversampling, it basically means that higher-resolution images can be used automatically when it makes sense to do so.

eg. A game can use lower-res images when playing at 1080p, and higher-res images when playing at 4k.

Since I was redoing all of the sprites anyway, I ended up implementing oversampling for all of the sprites (and CGs, and other images where possible).

So if you play Sable's Grimoire 2 at 1080p or below, it will use 1080p images. If you play at a higher resolution, it will substitute them for 4k images wherever they are available.

Writing

The writing is more or less done.

There aren't any unfinished scenes left, all character routes have been connected to the common route, and the scenes which needed rewriting have been updated.

There are still some scenes I want to refine a bit further. Mostly to make them shorter, and easier to understand.

There are also a couple of short scenes I'm considering adding to smooth the transition in places.

But as a whole, it's done. There shouldn't be any major changes from this point on.

Steam

Steam achievements have been added. Only a handful for now, but I'm planning on adding some more.

Cloud saves have been setup. So have the game repositories and build pipelines.

I submitted a build of the game to Steam for review, as well as the OST. Both have been approved.

What's next?

More testing, more proofreading, more editing. I'll also update some screens a bit more, and add some achievements and other nice-to-haves.

Once I've done that, I'll be playing through the game properly. So far I've only skipped through it or performed basic testing. I haven't run through it like an actual player would yet.

As mentioned in the last blog post, the first real playthrough will take a while, since that's when most of the minor adjustments (sprite positions, facial expressions, wording, scene transitions, music choices, etc.) will take place. Some things aren't obvious when reading through a script, and only really come into focus when actually playing the game. This process involves playing through the game line by line, stopping to edit the script whenever an adjustment is needed, and then reloading and resuming the game to make sure the edit works as intended. It's straightforward, but it takes a while.

After that, I'll be replaying the first three games, taking lots of notes and trying to ensure consistency. Then I'll play through Sable's Grimoire 2 again, focusing on the things I've noted from the first three games.

So things are getting pretty close. Hopefully the next blog post will be to announce that everything is complete, and that a release date has been decided.