From Dogeek's Reddit:
You must be registered to see the links
[DevLog] Summertime Saga Sundays #4
it's not really sunday, but I was busy this weekend, and therefore could not write an updated DevLog. Anyways, let's get to it.
0.19 tasking
As you might have noticed, the progress bar for 0.19 has taken a slight hit, because several tasks have been added, tasks which were forgottent back when DC did the tasking for this update. All of those tasks concern the character buttons, therefore it impacts code, posing and writing. It doesn't change the amount of work to be done though, as we would have done them anyways. It mostly serves as a way to more accurately display how far along in the update we are, and for us to track progress and various files more efficiently.
Reworks update
It's with greaet pleasure that I can say that all of the reworks planned for 0.19 are finally complete. So far, it includes :
The ATM rework
The background naming conventions rework (something that has not been discussed much, so I'll delve in deeper details about that in the next section)
- The FSMs reworks (moving FSMs instanciation at init time instead of loading time)
- Location label names rework
- Moving to the new navigation system
- Erik on an FSM
- New popups & computer rewrite
ATM rework
It's already been discussed at length in a previous DevLog, so I won't spend time explaining that. In short : the ATM allows you to input any amount of money into your savings account, as well as input any amount of money into debbie's account as it is going to be necessary for the 0.20 update. The ATM will also show an estimate for your next interests payment from the bank.
Background naming conventions rework
This deserves a bit of a write up. I've already mentionned in another DevLog that Ren'Py 7.3 introduced a new image manipulator : im.Blur(). This new image manipulator allows us to create blurs dynamically through code, which is obviously very interesting given the amount of blurred backgrounds in the codebase.
The consequence of using these dynamic blurs is that it's computationnaly expensive to do, and recalculating gaussian blurs all the time is terribly innefficient. To alleviate that issue, backgrounds are now defined at init time, including blurs, closeups etc.
Because of that, and because it's much better to have that definition done programmatically, it's necessary for some backgrounds to be renamed according to a strict convention so that the code can find them, define them and if necessary, blur them. It took me quite a while to do, because I had to find stray references to these backgrounds and rename them accordingly as well throughout the code.
A side effect from this change is that some backgrounds appear blurred when they should not because of clashes with previously defined backgrounds. All in all, it's a big mess that will get sorted out in time.
FSM reworks
FSMs have been moved to init time instead of load time, which means that the FSMs themselves are no longer saved when you save your game. Only the relevant data is saved in the fsm_data object. This should improve compatibility in the future, and avoid weird behaviours that could be caused by FSMs clashing with each other.
Incidently, it creates a clearer and cleaner flow of how FSMs are defined.
Location label names rework & new nav system
From back when I was hired at Kompas, there was a need for a clean and easy to implement nav system, but up until now, the code wasn't stable enough to do so. Location labels have been renamed to follow a strict convention now, which allows us to find and call these labels programmatically, automating the action of moving the player to another location.
Additionnally, the nav system has been reworked, to allow for a clean flow of locks and events for specific locations. It's all handled in a single label which defers to individual location labels to get the actual events and locks for that location, or its children. Small reminder that locations in summertime saga are organized along a tree data structure to simplify the flow of data from one location to the next, and allow for stuff like pathfinding, and several checks with minimal pain.
Erik on an FSM
Yeah, it happened, thanks to strayerror. He moved all of erik's stuff to an FSM, which made the whole event sytem finally deprecated. Finally, that horrible code is scrapped to pieces. Good riddance.
Not much to say about that, except that his quest has been somewhat simplified, or at least made clearer, with some extra bits of dialogue added to guide the player on his journey with his friend's landlady wink wink.
New popups & computer rewrite
In an effort to reduce the game size even more and alleviate as much workload as we can off of DC, we've decided to make popups through code, which will also allow them to be translated. All of that once again thanks to strayerror. He also completely rewrote the computers (jenny's and mc's) so that there shouldn't be anymore weird behaviours and bugs with them.
New features
This time around, only one new feature will be discussed in this DevLog : UI Messages.
We've decided to modernize the UI a little bit, and to draw the eye to it whenever there is a change. So fa, UI messaged will show a message when the player gains or spends money, or when he gains stats. In the future though, this may be expanded to a vibrating cellphone when a text message is received, or time ticking animation, or even items going in the backpack. Here's a gif of the virst version of that system.
Since that first version, I've improved it to be able to show up to 10 UI Messages at once, using a technique called "object pooling" which consists on having a set number of objects available, and just using the oldest one that has been updated, since renpy can't show the same screen several times at once, and building the UI message screen to display those messages wouldn't be practical.
Final thoughts
That's it for this DevLog guys, hope you enjoyed the update on 0.19 progress. This is definitely the largest update so far, whether it's about content (eve's story is about the same size as roxxy's), but even more about behind the scenes stuff, as you can probably tell. Definitely excited to get you this update as soon as possible so that you can try out the new features that it brings to summertime saga.
it's not really sunday, but I was busy this weekend, and therefore could not write an updated DevLog. Anyways, let's get to it.
0.19 tasking
As you might have noticed, the progress bar for 0.19 has taken a slight hit, because several tasks have been added, tasks which were forgottent back when DC did the tasking for this update. All of those tasks concern the character buttons, therefore it impacts code, posing and writing. It doesn't change the amount of work to be done though, as we would have done them anyways. It mostly serves as a way to more accurately display how far along in the update we are, and for us to track progress and various files more efficiently.
Reworks update
It's with greaet pleasure that I can say that all of the reworks planned for 0.19 are finally complete. So far, it includes :
The ATM rework
The background naming conventions rework (something that has not been discussed much, so I'll delve in deeper details about that in the next section)
The FSMs reworks (moving FSMs instanciation at init time instead of loading time)
Location label names rework
Moving to the new navigation system
Erik on an FSM
New popups & computer rewrite
ATM rework
It's already been discussed at length in a previous DevLog, so I won't spend time explaining that. In short : the ATM allows you to input any amount of money into your savings account, as well as input any amount of money into debbie's account as it is going to be necessary for the 0.20 update. The ATM will also show an estimate for your next interests payment from the bank.
Background naming conventions rework
This deserves a bit of a write up. I've already mentionned in another DevLog that Ren'Py 7.3 introduced a new image manipulator : im.Blur(). This new image manipulator allows us to create blurs dynamically through code, which is obviously very interesting given the amount of blurred backgrounds in the codebase.
The consequence of using these dynamic blurs is that it's computationnaly expensive to do, and recalculating gaussian blurs all the time is terribly innefficient. To alleviate that issue, backgrounds are now defined at init time, including blurs, closeups etc.
Because of that, and because it's much better to have that definition done programmatically, it's necessary for some backgrounds to be renamed according to a strict convention so that the code can find them, define them and if necessary, blur them. It took me quite a while to do, because I had to find stray references to these backgrounds and rename them accordingly as well throughout the code.
A side effect from this change is that some backgrounds appear blurred when they should not because of clashes with previously defined backgrounds. All in all, it's a big mess that will get sorted out in time.
FSM reworks
FSMs have been moved to init time instead of load time, which means that the FSMs themselves are no longer saved when you save your game. Only the relevant data is saved in the fsm_data object. This should improve compatibility in the future, and avoid weird behaviours that could be caused by FSMs clashing with each other.
Incidently, it creates a clearer and cleaner flow of how FSMs are defined.
Location label names rework & new nav system
From back when I was hired at Kompas, there was a need for a clean and easy to implement nav system, but up until now, the code wasn't stable enough to do so. Location labels have been renamed to follow a strict convention now, which allows us to find and call these labels programmatically, automating the action of moving the player to another location.
Additionnally, the nav system has been reworked, to allow for a clean flow of locks and events for specific locations. It's all handled in a single label which defers to individual location labels to get the actual events and locks for that location, or its children. Small reminder that locations in summertime saga are organized along a tree data structure to simplify the flow of data from one location to the next, and allow for stuff like pathfinding, and several checks with minimal pain.
Erik on an FSM
Yeah, it happened, thanks to strayerror. He moved all of erik's stuff to an FSM, which made the whole event sytem finally deprecated. Finally, that horrible code is scrapped to pieces. Good riddance.
Not much to say about that, except that his quest has been somewhat simplified, or at least made clearer, with some extra bits of dialogue added to guide the player on his journey with his friend's landlady wink wink.
New popups & computer rewrite
In an effort to reduce the game size even more and alleviate as much workload as we can off of DC, we've decided to make popups through code, which will also allow them to be translated. All of that once again thanks to strayerror. He also completely rewrote the computers (jenny's and mc's) so that there shouldn't be anymore weird behaviours and bugs with them.
New features
This time around, only one new feature will be discussed in this DevLog : UI Messages.
We've decided to modernize the UI a little bit, and to draw the eye to it whenever there is a change. So fa, UI messaged will show a message when the player gains or spends money, or when he gains stats. In the future though, this may be expanded to a vibrating cellphone when a text message is received, or time ticking animation, or even items going in the backpack. Here's a gif of the virst version of that system.
Since that first version, I've improved it to be able to show up to 10 UI Messages at once, using a technique called "object pooling" which consists on having a set number of objects available, and just using the oldest one that has been updated, since renpy can't show the same screen several times at once, and building the UI message screen to display those messages wouldn't be practical.
Final thoughts
That's it for this DevLog guys, hope you enjoyed the update on 0.19 progress. This is definitely the largest update so far, whether it's about content (eve's story is about the same size as roxxy's), but even more about behind the scenes stuff, as you can probably tell. Definitely excited to get you this update as soon as possible so that you can try out the new features that it brings to summertime saga.