[DevLog] Summertime Saga Devlogs #1
posted by Dogeek Summertime Saga Developer
I mentioned a while back that I was going to talk a bit more about what is going on behind the scenes, and this is the kick off.
As you already know, it has been a week since the official release of Summertime Saga 0.18, and following that, we have made two hotfix patches in order to fix some issues that were reported to us, fortunately though, only one of them was a pretty major one, and some issues have been reported to be fixed at a later date, as to not drag the release of the hotfix too long.
Save compatibility
That is a topic that I have not talked about in a quite long time, 4 months ago if I recall.
With jenny now on an FSM, things should go a lot smoother as far as retrocompatibility goes. I have recently pushed some major changes to the codebase in an effort to address this issue, obviously, there is still plenty of stuff to do in order to achieve this, but progress is still progress. So, what are those changes, you might (rightfully) ask?
The changes I made pushed the Location instanciation to the init time, rather than to play time, meaning that everytime you run the game, new location objects will be created, thus eliminating the need to save those in the save files, thus, theoretically, any further change to Locations won't break save compatibility. Granted, that is not much, since locations have not been touched in a while, but that is still a good improvement.
Ass a side benefit from that change, save files should now be less cluttered. Now, you might ask, how do we save a location's state in the game, are we going to have to reunlock every location again after loading a save file? Well, no! The state of each location is now stored outside of the Location object, specifically as part of the player object.
As for the FSMs, I am working on a similar improvement, storing only what is necessary in a separate object, which should work just fine, unless an FSM changes (in the source). I will however try to find a workaround to that. Deletions of states/triggers should not be a big problem to deal with, but addition will pose some serious design challenges.
Asset reworks
Starting in 0.18.5, we are going to get rid of some art assets of the game, in an effort to make the game translatable, as well as to lighten the workload (ever so slightly) on DC, and make the game's size smaller. So, in 0.18.5, Location unlock popups will be done in code, instead of having dedicated art assets, and items should follow through quite quickly.
As soon as renpy 7.2 is stable enough, and doesn't cause issues with android builds, we will move to that new version of the engine, which will provide a new image manipulator object : im.Blur(). This will allow use to create blurred assets dynamically, instead of having dedicated assets, all in an effort to once again lighten the workload on DC, and making the game smaller. We take pride in having an optimized game, given that so many developpers out there don't take the time to address these issues.
Concerning Jenny's update
I know a lot of you guys felt dissapointed in 0.18, but be assured that it was a necessary step, and along with a brand new story, it brought modding capabilities into summertime saga, as well as birth control pills for anyone not interested in pregnancy content.
Additionnally, 0.18 requires two playthroughs to be "completed". Indeed, jenny has two paths the player can take, a more dominant path, and a more submissive one. Most of the changes are just dialogue changes, but I found that it adds an extra layer of flavor to the character.
I've also seen quite a few people complaining that the update took 6 months to make, which is not true at all. Once 0.17 was released, we immediately started to work on 0.17.5, which introduced Daisy. It released at around christmas of last year, and we took the following couple of weeks off for the holidays. Developpment for 0.18 started January 2nd, and was released May 2nd, so exactly 4 months later, which is not unlike our other updates. You can't rush art.