Hello, world!
Sorry about being fairly quiet, but I’ve been trying to avoid as many distractions so I could get work done (and RL has thrown me a few curveballs as well).
I figured I should take a little break here to at least make sure people know I’m still working on things and let everyone know where we are. So, let’s get ready (for me) to ramble!
If you’ve been out-of-the-loop in the last few months, I’ll try to give you a summary of the main points.
Back in May-ish, I realized that the ancient code that controls the flow of events in the game was causing more headaches as I had to fight it to add new scenes to the game. I undertook the task of rebuilding it. This project consisted of:
- Building a new main schedule loop to track blocks of time through each day.
- Update the Python class created to hold data on each game event.
- Update all of the events that weren’t using the class yet (basically anything that wasn’t a free-time event) to the new class-based system.
- Build/revise systems for picking and playing scenes to use priorities and tags.
- Remove any vital code that was buried in obscure places and give them a new home that makes sense.
Part-way through this project, Twi from the Discord returned from a long absence with a working version of the time-log code and was ready to start building a version of Interns using this brand-new system.
On my end, this required:
- Creating a minimal version of Interns that preserved all of the user interface elements, but removed as much game content and my versions of old systems for game mechanics.
- Providing a detailed explanation of the purposes of existing variables and what they were intended to track.
- Writing up a detailed document covering plans for major game mechanics and how I’ve wanted to implement them.
- Providing lots of support in the form of answering the many questions that come up when someone tries to go through 6+-year-old, barely-commented code. (I suggested starting with some of my newer stuff, but Twi insisted on porting from the very beginning of the game. 😅)
So, what’s been going on recently?
We now have two versions of Interns in progress.
The New Hotness
On the Time-Log version, Twi is still working on porting over events from the 4-day+ “intro” section of the game. I was asked to work on porting the events from Day 2 in order to familiarize myself with this new way of doing things. I managed to get up to the start of the bonfire event before I got tripped up.
In some ways, the new system is far more complicated than what I had, as Twi has provided a means for very intricate time-tracking (even going so far as to make the game estimate how much time passes when characters are speaking based on how much text is in quotation marks).
Whereas my version has distinct scene-picking scripts for work events, free time events, at-work conversations, etc., Twi’s build has a single “while the game isn’t over, play the next scene” script that relies on the individual events containing all of the criteria required for it to know what to play next. I’m still wrapping my head around it.
Unfortunately, I clearly need more practice using Git for version management. Whatever it was I did, I managed to botch up sharing my code changes. Nothing is lost, however, but it’ll be a little while before I can do collaborative coding smoothly.
The Old…New Hotness
As the new time-log port of the game is going to be way behind on content for a not-inconsiderable period of time, my plan is to keep adding new content to the “old” version of the game so players still have something to look forward to.
…Only it’s not quite the old version of the game right now. As I said, I’ve been in the midst of a large rebuild, and the game has been torn apart in the process. I considered completely abandoning it and going back to the last working version, but the idea of tossing out months of hard work just doesn’t sit well with me, so I’d like to try to reassemble it in a way that at least allows me to take advantage of some of the improvements I’ve invested so much time and effort into.
Oh, and there was one major issue that showed up during all of this that I wanted to address as well…
Working with Twi allowed me to make a terrible realization about the existing game. I’m showing my age here, but it turns out the way “init blocks” in Ren’Py work changed around 2015 (long after the first time I did anything with the engine). The short version of the problem is that many of the game’s variables can change their values whenever the player loads a save file.
As you can imagine, this is probably the cause of a lot of bugs people have run into over the years.
At first, correcting it just seemed like a tedious matter of removing the init blocks and declaring all the initial variable values as “default,” instead… but I quickly learned that pulling on this particular thread caused a lot of other things to unravel, not the least of which is the avatar system used for showing images of the player character.
On the plus side, researching how to fix it has taught me more about how dynamic images work in Ren’Py, and hopefully, that’ll end up being helpful for future updates.
What I’m doing now
If you’ve looked at the video, you can see one of my latest tests of the new schedule system. This testing setup has been nice in that I’m able to turn different sections on and off without breaking the overall flow of the game. In the video, I’m checking to make sure the workday events play when they’re supposed to, and that the evaluations and job assignments with Mallory happen as intended. So far, this actually looks like it’s in good shape.
The new scene pickers for work events are in place, and I’ve been going over each event, tagging them with information like:
- What priority the scene should have
- Which characters (if any) are the focus of the scene
- Any special events they contain, like body transformations
As the time-log version of the game is driven entirely by this kind of information, I’m hoping this is killing two birds with one stone.
As the rest of the event-pickers aren’t nearly as dated, I’m hoping I’ll be able to give them quick updates and plug them into the new schedule loop. After that, my plan is to start adding some new scenes into the game and toss it out into the wild for some play-testing.
Oh, and since I’ve already got some work done on wallpapers for some additional resort girls, I’m hoping to have those ready in the near future, too.
Leave a comment