Posted May 16, 2025 by Shady Characters
Let's get the important part out of the way right away. There was no update this week, because we decided to delay the release of the Major update for a week, because sadly, it is not yet ready and still needs some time to cook. And of course, that delay pushed all the free releases back as well. But now, most of the preparations are completed, so I do believe that next week will be the week.
As always, the work on sprites took more time than I initially anticipated and that's why I spent most of last week programming the sprites for Violet, which got a sprite rework, and Katelyn's sprite. I also had to do some work on Aisling's sprite, but thankfully, just a little. Her sprite was the first of the really complex sprites that I did, and it really shows. Back then I was trying to make all the body parts and article of clothing universal, i.e. seamlessly working with each other regardless of the pose and combination. I did manage to do this for Aisling at that time, but it took a lot of work from both me and Shady 2, so we slowly walked away from this approach as we worked on the later sprites. This made current Aisling's current sprite completely incompatible with how other sprites work. I will have to rebuild her from ground up in one of the next updates.
You might be wondering, why bother with all these IKEA building blocks for the sprites and not just have a sprite ready for every pose I need? Here's why:
Let's take Violet, who has a relatively simple spriteset for now as an example. Right now Violet has 4 hand positions, 4 clothing combinations, 6 facial expressions, w/wo glasses, w/wo book, w/wo witch's hat combinations. These numbers are actually brought down, because there are sub-combinations within her clothing sets. But even with these variants, if I would make a separate full sprite for each of those, I would end up with 768 full sprites.
So, right now, Violet's sprite folder is 44 files that weigh 1.7 mb in total. If I would save full sprites - it would be 768 files 0.5mb each, meaning ~385mb for Violet's sprites only! An god forbid if I would need to update the sprites in any way, I would need to re-save all those hundreds of files. I would rather put in a few hours in advance and save myself dozens of hours later.
There's also this way how ren'py processes sprites. If I had even, say, 60 unique sprites for each girl, I would need to name them correctly and tell ren'py to load a certain sprite every time the girl's pose changes. With current setup, I can just put in commands like "handup" of "handdown" and only the girl's hand position changes keeping al the previously loaded inputs.
Of course I could go with a hybrid version where there are full sprites for the body, but separate sprites for glasses and faces. But you could argue, that even at my current point I could divide the sprites even more. Which turns even my approach a hybrid one.
It does make the sprite folders look like some macabre storage of a body parts collector, with a shelf full of girls' faces, but well, those are the nightmare images that I am willing to endure for the sake of our game.