SakeTami
manyeyedhydra
manyeyedhydra

patreon


Load/Save and Little Black Notebook Plans for HoHH

In the weekly update post I mentioned I'd been looking into load/save functionality for House of Hellish Harlots, so I thought I'd go into that in more detail.

HoHH was originally envisioned to be a roguelite. Rather than go through a set sequence of 13 harlots, the player is presented with a sequence of 13 random harlots that changes for every run. They're not really expected to survive the first visit, but will come back stronger for each subsequent run. Traditional roguelites have meta-progression where the player unlocks new characters/weapons/artefacts for future runs. For HoHH that meta-progression is learning more information so they know how to survive (or avoid) particular harlots on future visits.

For my 'ideal' version of HoHH the game would remember and store this information, so the player could look it up at any time in a 'monsterpedia'. In lore it would be the Portly Gentleman's little black notebook. This would also add a nice feeling of progression as the player would see themselves slowly 100% a harlot as they found out more information on them through repeated visits.

Storing this information would also open up new gameplay possibilities.

One of the problems with roguelites is repetition. And I think one of the major weaknesses of the basic design plan I had for HoHH is it's going to end up with the player going through the same early round harlots over and over just to get back to the more dangerous high-tier harlots. Storing information on previous rounds will give the game the option to speed up the early rounds. If the player has already found a safe path to survive a harlot and meets the requirements for it, what I'd like the game to do is give the player the option to auto the safe route and skip right through it in a single click. This should mitigate the repetition problems as the player will be able to speed through the early rounds once they've solved most of the harlots.

The other gameplay possibility is a proper replay mode. HoHH is a H-game and for H-games players often end up with favourite characters they like to replay (usually through an unlockable gallery). If the game is storing data from previous runs, it should be possible to directly replay a harlot scenario from the notebook rather than the current system of starting a new game, giving the Madam a mulligan token and waiting until the next round.

If I was coding HoHH in C# or similar, I'd probably create an array/object structure to hold the meta-progression data and then dump it in a config file that can autoloaded every time the game starts up. Because Twine is designed to make .html files to run in a web browser, I didn't think it would be possible to do this.

Twine does have load/save functionality. My approach to HoHH so far has been to leave the loading and saving to Twine's default implementation and trust it will work. Which it does appear to do, quite nicely. The Save API has also been expanded in the last year, so it should have even more options.

And now, rather than push my ideas to a hypothetical HoHH 2 in a different engine, I think it can be done in Twine with the current version.

What I'm looking into doing is adding autosave and autoload functionality as well as adding additional data arrays for each harlot that track data between runs. These will be quite small as most harlot scenarios don't have all that many different outcomes. The game just hides which particular thing the harlot is interested in. Going in blind, the player has no idea if it's their physical stats, dispositions, gift or any number of other factors that are triggering the bad end. On the code side of things it's often a single binary "Did the player bring the Twig Fetish gift?" true/false.

Once I have that additional data array loaded at the start, I can then have the game access it to do the cool things I want – the notebook tracking harlot information, replays of fav harlots with set outcomes, skip options on already solved harlots, etc.

Currently I've been playing around with autosave and autoload functionality in a little test project. It seems to be giving me the basic functionality I want.

The next step will be similar to how I tested the new graphics options. I'll take 3 existing harlots and build the functionality into their scenarios.

I'll then put that limited demo out to patrons/subscribers to check the save/load functionality is working across a wider selection of devices and web browsers.

If that looks good, I'll add that code to the main HoHH project and start updating the existing harlot scenarios.

I imagine the main concern people will have is how much extra work is this going to be and will it have a risk of wrecking the existing codebase.

On the risk side of things, I'll be doing most of the testing in side projects using copies of the existing harlot scenarios. I won't be adding this to the main codebase until I'm confident I know what I'm doing.

As for the extra work side of things, I think it will comparable to the updates I did to add art for HoHH 1.5. I already have to go into the harlot scenario to add the appropriate <div> tags to make sure the text is displayed in the right box when I port them over. This will also require some minor additions to control which passages the game can be autosaved on as well as a line of code to update the harlot meta-visit array after each significant choice.

It will add some extra work, but once the components are in place, updating the individual harlot scenarios should be relatively straightforward (even more so than updating them to the art version).

Normally adding scope creep like this to a later stage of project development is A Very Bad Idea, but in this case I think it's going to make the difference between a fun H-game with a progression system that keeps players playing, and a not-so-fun game where players bounce off in frustration rather than play through the same low-tier harlot scenario for the fifth time. I think that makes it worth pursuing.

(And the slot of the day I use just for Twine coding is pretty much free at the moment anyway while I'm writing the larger mini-boss scenarios.)

I hope that's all clear. If you have any questions or concerns, fire away in the comments down below.

Comments

Fair. It's something which would be good to have in the game, though as a viewer it doesn't strike as super high priority until it comes to the later development stage (from that perspective it's new content that is top priority, though as a zero tech guy I'm totally ignorant as to whether it's actually easier to impliment these changes now rather than in separate stages). "Bonus scenes" Like that pervy angel character in the Jackson serial I'm a sucker for post-game content ;)

CrimsonCrown

I think it's a strike when the idea is hot kind of thing. I've kept work rolling on The Trapperess, so that's not been put to the side. If I don't make the end of the month, I don't think she'll be too long after. I'm not sure on bonus scenes. Originally I was thinking the bonus for 100% the harlot was to unlock the skip option to speed up the early rounds, but that would likely the require the player to deliberately die multiple times to that harlot to see all the variations. I'm still figuring out what mechanics the queen might have. Maybe there might be room to give them a special scene if the player identifies and 100% all harlots within a particular faction.

Many-Eyed Hydra

A concern from the last post was if it cuts into the time writing for the mini-bosses (we are already nearing the end of the month). My feeling there is it might be better saved for the natural break after the remaining Round 5s are done. In general I think it’s a nice idea, especially for the finished version. Could the tracked data be used to trigger completion bonuses and easter eggs e.g. a bonus scene if the player fills the journal 99%?

CrimsonCrown

I think it's a good and necessary addition. A lot of the game is intentionally hidden from the player, but it's important that we learn what does what the more we play, and manually keeping a notebook for a game is never fun.

Jimmy the Cannon


More Creators