NokiMo
longlivetheprincess
longlivetheprincess

patreon


Progress Report

Hello again, everyone!

This has been a good week for LLtP. By putting all my attention towards finishing all the required renders for version 0.38, I finally managed to achieve that goal with time to spare. The 0.38 image folder now counts 1575 images, an absolutely staggering amount compared to earlier updates. No wonder this took ages to do.

Because of changes to file names and the improved animations, the night scenes no longer work in the game. My first priority right now is to painstakingly go through the code for all the existing scenes and update it to point to the new images and the new animations, playing them at the right time and never using the wrong image. This is a lot of work and requires careful and deliberate testing. This part of the process won't add any new content to the game except the updated animations, but there is no getting around it.

I'm still aiming to get the update out this month, but nothing has changed since the previous update. I'm a little more hopeful now, perhaps. However, I still maintain that the likelihood of version 0.38 being released in November is low. We'll see what happens. If I keep this tempo up, anything could happen.

If you're only interested in last week's progress, you can safely stop reading here. The rest of the update only contains a bit of technical insight into what I'm doing right now.

Going over the old scenes like this, particularly for Evelyn and Primrose, makes it painfully apparent how much I have learned about using the Ren'py engine more efficiently since I started out. The earliest night scenes contain a lot of pointless baggage that I could have easily worked my way around had I known how at the time. Because of how complicated and extensive these scenes are, I haven't really dared touch them more than absolutely necessary since then, either. But with these changes to the images and animations, I have to go over every line of code anyway, so I might as well update things to the standards seen elsewhere in the code. 

This kind of thing doesn't really change anything that you can see when you play the game. The purpose behind these changes is to make the code easier to read and maintain. Additionally, they keep it more stable and less prone to bugs. For example, the night scenes have a lot of images with numerous variations representing such things as the girl's state of dress, whether or not she is shaved, and so on. Before, I used to check for all these conditions before displaying an image, and that got bloated quick. Worse still, if I changed how one of these images worked, for example, by adding an additional variation, I would have to locate every instance of this image being displayed and update it. As any halfway decent programmer will know, this is simply unacceptable and incredibly risky. 

What I'm doing instead is to have the images themselves check for variations. By doing some basic setup at the beginning of the code, the image will be "self-aware" in a way, able to identify which file to display based on the game's current state. Thanks to this, I can focus on displaying a single image during the scenes themselves, allowing the image to handle the rest behind the scenes. It makes the code way more readable and leaves me with only a single spot to make changes to if something is wrong with the image or I need to add to it. The worst-case scenario in LLtP is an image in Evelyn's scene that has 14 (!) variations. Previously, I had to have an entire subroutine dedicated to displaying the proper image (two actually, due to the way I handled transitions). But now, I have already been able to delete those. They are no longer needed, and the code looks much simpler as a result. It's very satisfying.

Still, as much as these changes are healthy for the code, they take time to do. Stepping through every single line of code to make sure they point to the new images and that these images are "self-aware" (for lack of a better term) is a slow and mind-numbing process. It's not particularly exciting for the players, either. I hope to be done with it ASAP, but I can't rush it. Everything has to be tested again, every single image variation, and there is no way around it if I want to release a stable, bug-free update. 

This kind of thing is often referred to as "technical debt" in programming. It is something that you could have done at an earlier point but chose not to for one reason or another. Sooner or later, the things you held off on doing catch up with you, and you are up to the ears in old problems that now have to be dealt with. That is what I'm doing right now: catching up with technical debt. And when it comes to debt, I'm a Lannister at heart.

Until next time!



Related Creators