You must be registered to see the links
Another super productive period. I've finished writing, rendering and coding all of the endings as well as most of the events. There's just a handful of story events left to render and a lot of optional short environment renders, which I'll explain later. I've also finished the Character Index UI, which replaces the former Character Hint, Schedule and Replay Galley.
UI CHARACTER INDEX:
One of the problems with free-roam or sandbox games is the sheer number of clicking and guessing to try and figure out how to advance the story. I tried to solve this in the old version of Personal Trainer, but I had no idea what I was doing both code and UI wise, and it ended up a bit of a mess.
The hint system required the player to first encounter the character doing an activity, then this activity day, time and location was recorded on a tracker. The character then had to open the hint window, select the character
AND THEN select a day on the schedule just to see where the character was located. It
(Convoluted & unintuitive mess)
The Memories (replay) Gallery was a separate window. I didn't know how to properly set one up in Ren'Py at the time so I ended up manually entering every line of text and code associated with each replay. Actually all of these UI elements, hints and schedules were manually entered by me. There were duplications of code with slight alterations all over the place and I'm shocked the game ran even
relatively stable. It was embarrassingly bad and pretty much every element of the game featured such terrible and time consuming code.
9200+ lines of manually entering each calendar event, for each character, for each day, for each time slot. If only there were some sort of way to
loop this coding
for each statement... could call it a for loop!
PT RE Solution:
I knew that I wanted all of this info in one easily accessible window for the player. I also knew I wanted to avoid as much manual work as possible and instead design modular components for the core functions of the game. This required a full rewrite of the code
(and why old save files won't work). There was no saving the old spaghetti code, it had to be burned with fire.
Now there is a Character Index window, which presents all of the girls in a single 3x3 grid. Selecting a girls portrait reveals the current in game hint and a scrollable replay gallery. At the bottom is the "Ending" section which unlocks once the selected characters storyline is completed. The player can then view the ending for that character and then resume playing the game at their own leisure.
THE MAP:
The original PT map left a lot to be desired. It took a lot of space but didn't really offer any useful information at a glance, it was solely a way of navigation.
(Six tiny labelless dots on a giant canvas... good work, Dom!)
One major complaint about sandbox games is the very tedious gameplay loop that looks something like this:
- Advance time
- Click every location known to mankind in hopes of seeing new content
- Repeat
I've addressed this by implementing live character tracking on both the map as well as sublocations. This solves the annoying classic sandbox gameplay loop while also being an excellent schedule tracker replacement of the previous version. Now you will always have immediate feedback on where the main characters are.
The new map is functionally complete, but the UI graphics are a placeholder. I will work on matching it to the look of the Character Index window later.
Optional Short Environment Renders:
As mentioned earlier, almost all of the content has been completed, aside for this smaller optional stuff. Although these renders don't contribute directly to the story, they're nice to have for the overall atmosphere of the game. These are the minor characters with 3-5 render length interactions. I've also wanted to add non-interacting background chars that create the atmosphere of a busy world.
Since I ended up cramming a 24 hour day into 8, there is a lot of existing content that's fighting for a time slot. I've addressed this by semi-randomizing their triggers. For each location and time slot there is a list of possible events that can play, selected at random. There's some logic in place that limits each unique event to trigger only once per day and tackles the unlikely event of the same event triggering every single time.
The biggest benefit of these environmental characters is the visual feedback of your story progress. For those who played PT before, you know that by the end of the game everyone was basically running around nude and having sex in public without issue. I now have the opportunity to code in logic which limits which random interactions occur depending on your progress in the game. So earlier on you will have more modest interactions with minor characters and as the main characters become more corrupted through the main story progress, the random interactions will reflect that. As it stands, although the MC joins a women's gym under the pretense of being gay, all of the random minor characters pounce on him immediately while the main characters take some time to corrupt. It's not a show stopper but it's a bit jarring.
This type of content is small enough where it's very quick to produce but there's a high enough quantity of it which makes it a non-trivial amount of time invested. This is why I'm saving it for last as a
maybe if the rest of development goes smoothly and I still have plenty of time left. Although I'm not announcing a release date yet, I've officially entered the "Crunch Time" portion of development. I can't wait to get back to working on In a Scent, to my beloved Gary.
Cheers,
Dom
You must be registered to see the links