Mind Control Comics Forum

The Letters Page -- WILL CONTAIN SPOILERS => Starter Marriage => Topic started by: Daphne on May 02, 2025, 09:14:58 pm



Title: How "Starter Marriage" Thinks
Post by: Daphne on May 02, 2025, 09:14:58 pm
I am going to break my silence about the internal workings of Starter Marriage, at least a little bit. I don't know how useful this will be in following the story, but I hope you'll at least find it interesting.

As someone (thank you!) noted, the choices that you make early in the game don't just affect what comes later, but what has come before. In effect, as you select choices, you are picking which story the protagonist has been in since well before the story actually began. By the end of "The Girlfriend Experience," the story has resolved itself into a handful of plots. Each plot centers around the central mystery of Starter Marriage, which is: Why did Annie leave? The plot also controls which person or people are the primary engine driving the story forward, and it's not always the protagonist.

While there are literally hundreds of parameters that are constantly changing as the story evolves, two particularly important ones are "trustworthiness" and "attentiveness." "Trustworthiness" is what it sounds like: how often does the protagonist lie or tell the truth? "Attentiveness" is, more or less, how much the protagonist displays concern about the other people in the game, especially his lovers. Of course, those aren't the only factors that control what happens in the game. Changes in the direction of the story are often based on the particular way a choice is worded, taken as a statement of what kind of person the protagonist is.

An untrustworthy protagonist doesn't just lie to other people. He lies to himself, and covers things up. This is true even though the point of view of the story is free indirect, rather than first or second person. So, yes, the protagonist will (potentially) lie to you.

The motivations of the other characters in the story also change depending on how the story evolves, and can be quite different from plot to plot.

As the story plays out (especially in the earlier parts), the choices determine what kind of person the protagonist is, and what happened in the time before the story we're looking at started. These are alternative realities: each plot is incompatible with the others.

And now I'm going to drop a few facts, just to make things even more interesting (or confuisng):

  • Allison played no part in Annie's departure.
  • The voice the protagonist hears during the night between "The Girlfriend Experience" and "Relationship Goals" is not Dante.
  • Dante never controls the protagonist in the story so far.
  • The decision as to whether or not to fly out to Annie is less important than it might initially seem.
  • There are important characters who have not even been mentioned yet.

And: There is a huge clue to what plot you are in and what it means in Phase 4.1.

Thank you for all of your kind words and attention to Starter Marriage! It's been an enormous amount of work (and even more work to come), but the reception it has had makes that entirely worthwhile.


Title: Re: How "Starter Marriage" Thinks
Post by: Daphne on May 02, 2025, 09:32:45 pm
Oh, right, a couple more things I wanted to mention:

Sometimes, it's obvious when a choice will affect one of the parameters.  If the protagonist evades telling Allison that it was Annie who texted at the start of the story, that has an affect on his trustworthiness.  Sometimes, it's very subtle.  Sometimes, it's impossible to tell, because you-the-player doesn't know what the truth is, but the protagonist does.  (Yes, that's extremely unfair and oh well.)

One thing that will be forever a mystery is the way those parameters control the plot. Some of it is that, like I mentioned, so many different factors go into it that it's not easy to say things like, "More trustworthy protagonists are more likely to make a successful pass at Lorelei." (I don't even know if that's true or not!)

The other reason is that, to be completely honest, this is a story not a philosophical dissertation, and I don't want anyone to be offended or to feel they have to argue with a particular decision I've made about how the personality characteristics of the protagonist affect the outcome. I don't even agree with every choice in that regard! But, you know, 11,819 lines of Python, 18,470 lines of templates, decisions had to be made.


Title: Re: How "Starter Marriage" Thinks
Post by: Daphne on May 02, 2025, 09:38:55 pm
Oh, and as long as we are talking about statistics… I have a 'bot that repeatedly "plays" the story looking for different paths. It's extremely handy for finding bugs, since I get a set of a huge number of different possible states.

But it never gets them all. The best I can hope for is about 95% coverage, and that's with 250,000+ playthroughs. So, there are a lot of choices in this game.


Title: Re: How "Starter Marriage" Thinks
Post by: hereno on May 02, 2025, 11:45:17 pm
This is great! Thank you for writing this.

Each plot centers around the central mystery of Starter Marriage, which is: Why did Annie leave?
This might be the most surprising thing you said here. I'm not sure this question has particularly been forefront for me, though I know the protag and Lorelei occasionally talk about it. Plus, until now, rejecting Annie has seemed pretty final. I guess there's a lot more coming than I realized! (How long are you planning to develop this game for? Even the amount of content I could foresee is a lot of dev time!)

The voice the protagonist hears during the night between "The Girlfriend Experience" and "Relationship Goals" is not Dante.
Do you mean, "is not Renee"? It's a woman's voice, right? Unless there's a dark room sequence I've never seen...

Dante never controls the protagonist in the story so far.
Well, I got that one wrong. Very curious what exactly is going on after that particular dark room sequence then.

The decision as to whether or not to fly out to Annie is less important than it might initially seem.
That would track with what you said about her leaving being the central mystery.

There are important characters who have not even been mentioned yet.
I had a sneaking suspicion this was true; I only recently encountered dialogue from Lorelei that mentioned Allison might have been enslaved by someone from an office party. If there are lots of big characters we're yet to even meet, that sort of opens this game much wider than I'd been thinking about it. There's no way to figure out what's going on if I literally don't even know all the pieces yet! I guess I need to relax a bit more and just let the game unfold. (Spoiler: I will not relax a bit more lol.)


Title: Re: How "Starter Marriage" Thinks
Post by: Daphne on May 02, 2025, 11:53:50 pm
This is great! Thank you for writing this.

Each plot centers around the central mystery of Starter Marriage, which is: Why did Annie leave?
This might be the most surprising thing you said here. I'm not sure this question has particularly been forefront for me, though I know the protag and Lorelei occasionally talk about it. Plus, until now, rejecting Annie has seemed pretty final.

This may be giving away more than I intend, but: The importance of why Annie left and whether the protagonist ever even speaks to Annie again are not, technically, the same question.

Quote
(How long are you planning to develop this game for? Even the amount of content I could foresee is a lot of dev time!)

I try not to think about that, lest I become completely demoralized! The person whose shoulders it *really* falls, though, is Plutonian Knight, who is not only producing all the line art for SM, but is also keeping SJI going. The man is a miracle of industry, let me tell you.


Title: Re: How "Starter Marriage" Thinks
Post by: twobears on May 02, 2025, 11:59:46 pm
I have occasionally wondered whether the "surprise" that Renee occasionally mentions regarding the party is that Annie will be in attendance


Title: Re: How "Starter Marriage" Thinks
Post by: ktc1221 on May 03, 2025, 07:41:04 am
Personally find this fascinating, and it does help to understand a bit. I feel like hereno particularly figured out choices impacted prior states of the protagonist character, but even I figured out that how you said things impacted choices made previously. I think the most blatant one being whether you say "text from Annie " or "Nobody important". That single line of dialogue effectively chooses polygamy or monogamy for you as the protagonist, as the next morning you will either be in the story where Lorelei is a lover still (affair) or she is just your friend (though still a lover from your past). I'm sure (we know) it impacts other things too that's just the most obvious.

I'm kinda glad you gave the numbers on what a bot does etc and just how many indidivual choices there were. I had at one point thought about cataloging each choice but always felt like there would be too many branches so to speak. Now I know there's too many branches, and it's better to make broad strokes. Ala polygamy and monogamy state, exhibitionist or private, master /slave or cuck boy to name a few.

A herculean task you've made for yourself but one I hope to see through to the end. Looking forward to 4.1, it sounds like at least some answers will be given in that update.


Title: Re: How "Starter Marriage" Thinks
Post by: Haight on May 03, 2025, 12:50:19 pm
This definitely is interesting to hear about. More characters, though? Character bloat could get a bit crazy... exponentially branching choice trees... I'm surprised you don't force more linearity.


Title: Re: How "Starter Marriage" Thinks
Post by: Flintnsteal on May 03, 2025, 07:53:42 pm
The alertness point is really interesting, because to me, I was imagining some things as being like, not being concerned about them because you are causing them, stuff like Allison being more generally horny, I was envisioning a mentally of, yeah she is, that's what I've been training her to do. I imagine some stuff like that is just the inherent fact of, eventually someone needs to decide how things flow, and that won't always be the same way a person playing the game will interpret things flowing. None of this by way of trying to bash yourself Daphne or anyone else working on the project.

As an aside a like, zoomed out level understanding how those decisions work internally would be super fascinating, just cause these kinds of projects are very interesting imo.


Title: Re: How "Starter Marriage" Thinks
Post by: jwik01 on May 16, 2025, 11:18:40 am
Yeah, the sheer volume of possible gamestates that can exist at the point where you open the door to your apartment is staggering. It's actually something of a relief to hear that there's a limited number of paths the game sorts into. My assumption is that Allison's disposition and outfit are the huge clue in question: she can be worried a man/Dante is mind-controlling her, worried a woman/Renee is mind-controlling her (for Dante), worried she is being mind-controlled by an unknown force, in character as a French maid, in character as a not-French maid, in a slave costume loosely reminiscent of Leia in Return of the Jedi, in a black fucktoy dress, in falsies and a She-Hulk leotard, plus I don't know what else.  She can even be none of these, and seem like a more or less normal (albeit highly-sexed and poly) girlfriend!

I dunno whether the different variants of Allison's mind-control worry are separate paths, or whether that path can split depending on whether you take her worries seriously or choose to activate her fucktoy mode instead.  Ditto the French maid versus the not-French maid.
I also assume (some of) the subplots are independent of which 'main path' you are on. I'm thinking specifically of Emma and Annie -- what your relationship with Renee can be is probably more constrained. But maybe they're all constrained, I dunno. On the one hand I don't want to painfully grind though the possibility space to explore every variant, but on the other hand there's at least one route that others have described that I haven't seen, and several that I wouldn't have seen without explicit instructions from others in this forum.  And if there's a route that ends with Allison your devoted tradwife and Emma your doting workwife/mistress, without anyone else a significant presence, it'll probably involve tuning variables juuust right, and I'll want to see it...

Is it reasonable to ask how many parts you're projecting? My guess is six, although I would also guess that with the X.Y version numbering there's probably going to be  five or six more updates the size of 4.1 before it's all through.


Title: Re: How "Starter Marriage" Thinks
Post by: twobears on May 16, 2025, 11:36:23 am
If anyone has complete paths for the trad wife poka dot dress and the black dress, I'd appreciate them


Title: Re: How "Starter Marriage" Thinks
Post by: Daphne on May 16, 2025, 11:39:54 am
Is it reasonable to ask how many parts you're projecting?

Not sure. There are four current major "paths": going out to see Annie, going on the road trip, staying home and going to the party, or just staying home. So… it could be a lot.


Title: Re: How "Starter Marriage" Thinks
Post by: jwik01 on May 19, 2025, 08:46:28 am
Mulling this over I have a thought about this structure. What process do you use to ensure that you don't accidentally create a situation where a particular path or element can't be activated?  Like, say every time you flirt with Emma you get a point to your likes_redheads stat, and if your likes_redheads stat is high enough Allison decides to dye her hair red. But also flirting with other women increases your allisons_jealousy stat, and if that it above a certain threshhold, instead of the scene where Allison might dye her hair red you get a scene where Allison complains about your tomcatting. There are multiple options that increment likes_redheads and that increment making_allison_jealous, but the only way to get your likes_redheads high enough to trigger the dye job is to do scenes that also boost allisons_jealousy, such that you can't hit the former trigger without it being preempted by the latter.  (I know that Allison not getting jealous is a plot point, this is just a hypothetical example.)

Mostly I think that if *I* was trying to create this, I would struggle to ensure that I wasn't accidentally dead-heading paths in this way, and I assume you, Daphne, have a very solid handle on the whole, very complex, black-box aspects of the project, so this is a process question about how you go about checking to confirm not just that two options are mutually exclusive (which seems easy enough to see) but that one might automatically preclude the other in any situation where the other might activate?


Title: Re: How "Starter Marriage" Thinks
Post by: mns_95125 on May 19, 2025, 01:48:56 pm
My first thought on this would be to brute force it. Create a test harness that systematically works through all possible input combinations,  marking nodes as they are visited. Leave it running overnight. If, at the end, there are unvisited nodes, you have a bug.

Obviously this only works if the combinatorical explosion doesn't grow too large.


Title: Re: How "Starter Marriage" Thinks
Post by: Daphne on May 19, 2025, 04:29:16 pm
My first thought on this would be to brute force it. Create a test harness that systematically works through all possible input combinations,  marking nodes as they are visited.

In fact, I have exactly that. It grinds through the story start to finish, picking random choices (while giving weight to choices it hasn't visited so far).

After 250,000 iterations, it's achieved about 94% coverage.


Title: Re: How "Starter Marriage" Thinks
Post by: mns_95125 on May 19, 2025, 05:04:21 pm
I'm a little surprised you use a weighted random traversal instead of a deterministic one. Why not just BFS or DFS the option graph?


Title: Re: How "Starter Marriage" Thinks
Post by: Daphne on May 19, 2025, 05:48:56 pm
I'm a little surprised you use a weighted random traversal instead of a deterministic one. Why not just BFS or DFS the option graph?

Well, consider the size of the graph. To get from the first scene to the transition to the bedroom takes 80 to 130 choices. Each scene has an average of about 2.1 exits, so we're talking about 2.1^80 to 2.1^130 possible paths. It takes the script between 0.5 to 1.1 seconds to process each playthrough.

Of course, the game doesn't have that many distinct scenes, but since the text and choices (and sometimes image) vary with each path, each scene is basically a new node depending on the path that was used to get there.

(In fact, I initially tried a DFS, and then realized that the universe would collapse into heat death before it finished.)


Title: Re: How "Starter Marriage" Thinks
Post by: ozymandias on May 21, 2025, 07:47:59 am
Well, consider the size of the graph. To get from the first scene to the transition to the bedroom takes 80 to 130 choices. Each scene has an average of about 2.1 exits, so we're talking about 2.1^80 to 2.1^130 possible paths. It takes the script between 0.5 to 1.1 seconds to process each playthrough.

I don't think the size of the graph is 2.1^130 (though that's an interesting bound), because every decision doesn't modify the *next* node in the graph; it only modifies the state vector "a bit", right? So calculating the graph is actually the interesting problem--what are the probabilities of each scene following a given scene? And do those match your desired probabilities? (And also: really? 1.1 seconds to traverse the graph once? Are you making http requests or just processing the files? Can you load the whole thing into memory and just traverse the graph in memory?) Drawing the state machine would be hard, but given that you have a way to traverse the thing pretty quickly, you should be able to build up a probability map of each scene's entries and exits. Looking for near-zeros should tell you if you have a problem or not.

It's an interesting problem, though.


Title: Re: How "Starter Marriage" Thinks
Post by: twobears on May 21, 2025, 08:34:30 am
You might consider add a counter to the different pages on the actual web site.

This would only give a retrospective view of what's been deployed (and is subject to bias by the end users preferences, but it might prove helpful)


Title: Re: How "Starter Marriage" Thinks
Post by: jwik01 on May 21, 2025, 08:38:27 am
I feel quite low-tech with my paper and pencil but I'm from the humanities so


Title: Re: How "Starter Marriage" Thinks
Post by: Daphne on May 21, 2025, 08:52:07 am
really? 1.1 seconds to traverse the graph once?

Well, keep in mind that we're not just "traversing the graph." At each scene, we need to:

1. Read the state in from disk.
2. Apply any state changes to it.
3. Render the template for the page, including choices.
4. If the image is generated rather than static, generate the image (spoiler alert!).
5. Write the state back out to disk.

We could skip #1, I guess, but we can't skip #5, because having the trace of moves and state is very helpful for debugging. We can't skip #3, because that's essential for debugging the page text (and templates can have errors that only show up in particular states).

One of the other functions of the playthrough 'bot is to get test coverage on the code as it is run in the real-life system, so I try to minimize the number of special magical things that the playthrough 'bot does that the regular website does not.

Yes, there are potential optimizations to how the state is handled besides reading the whole thing in and writing it out, but that would require some pretty smart code, and the possibility for very hard-to-find bugs there is pretty high.


Title: Re: How "Starter Marriage" Thinks
Post by: afurydarkly on May 21, 2025, 10:06:12 am
And don't skip #4 cause generative boobs...


Title: Re: How "Starter Marriage" Thinks
Post by: Toby Dammit on June 18, 2025, 11:25:14 pm
I'm curious (and forgive me if I've skimmed past the answer to this on another post) what is the actual total word count for the *whole* text? if you add up all possible dialogue options and pathways and choices, just how many words have been written so far?

This is turning out to be quite a feat in terms of interactive fiction, and as a game developer who is delving more and more into this territory (especially salivating over the systems design going on here) I can't help but marvel at the mountain of work that's gone into this, not to even mention bug fixes and testing and so on!


Title: Re: How "Starter Marriage" Thinks
Post by: Daphne on June 19, 2025, 06:05:47 am
It's a bit hard to get an accurate count, since the text can appear in both Python code and HTML templates.  Just doing a quick sum across the HTML templates only comes up with 154,806 words. As a (very!) rough guess, the text in the Python code probably adds about 15% to that.


Title: Re: How "Starter Marriage" Thinks
Post by: macavity on June 19, 2025, 06:28:41 am
It's a bit hard to get an accurate count, since the text can appear in both Python code and HTML templates.  Just doing a quick sum across the HTML templates only comes up with 154,806 words. As a (very!) rough guess, the text in the Python code probably adds about 15% to that.
That's a very impressive word count. Alone that's more than the average size of the Harry Potter books although alas I fear not as profitable...


Title: Re: How "Starter Marriage" Thinks
Post by: Toby Dammit on June 19, 2025, 12:48:56 pm
thanks for the response! that's impressive work, especially since so much of the job requires fitting the script in between several spots at once and make it flow-- and you certainly aren't half-ass-ing it!