The AI girlfriend who texts you first
AI Companion

Virtual Girlfriend: The Older Category and What Replaced It

A virtual girlfriend, in the older sense of the term, was authored rather than generated: a person wrote every line in advance and the software picked among them. That form was finite and coherent. What replaced it produces each reply on the spot, which removed the ceiling and removed the author at the same time.

Key Takeaways:

  • The older virtual girlfriend ran on branching written text, with numeric flags tracking how a character felt about you and scenes unlocking when those flags crossed a threshold
  • A second branch of the same category matched keywords in what you typed against a rule table, an approach demonstrated in 1966 with a program that had no memory and no model of the user (Weizenbaum, 1966)
  • Neither branch generated language, so both were finite, and both could be exhausted by a determined person in a weekend
  • Generated replies removed the ceiling and, with it, the fixed history, the controlled pacing, and the ending
  • The older form stored what it knew about you exactly, as numbers in a save file, which is one thing it did better than anything built since

What the Older Virtual Girlfriend Actually Was

The older virtual girlfriend was a written work with software wrapped around it. A writer produced scenes and lines of dialog. The program tracked a few numbers, decided which scene you had earned, and showed you text a person had typed months earlier.

Almost everything people remember about the form comes from that arrangement. Choices arrived as a menu and never as a blank text box, so the set of things you were able to say was known in advance and short. Picking one nudged a hidden value, and once the value crossed a threshold, a new scene opened. Reach the end of a path and you got an ending, with credits, which meant the thing could be finished.

The craft sat in the pacing. A writer decided that a character would not soften until the fourth conversation, that a particular confession landed on a rainy evening, that certain topics stayed closed until you had spent time on others. You were exploring a space someone built, and the walls were where they were because a person put them there.

Coherence came free with that. A character could not be talked out of her own history, because the history existed as written scenes and nothing in the program could produce a contradicting one. Ask about something outside the script and you got a refusal, a default line, or a menu that did not contain your question.

Which is worth keeping in mind before deciding the old ones felt more real. They felt more consistent, and consistency is easy when a system can only say what has already been approved.

The Other Branch: Programs That Matched Patterns

Under the same label sat a different kind of software: rule-based chat, with no story and no ending. Type a sentence, and the program looked for keywords, then applied a transformation rule to produce a reply. Weizenbaum demonstrated the approach in 1966 with a program that mostly rephrased what you typed back at you as a question, kept no memory between exchanges, and held no representation of the person typing (Weizenbaum, 1966). People confided in it anyway, which he found alarming rather than encouraging.

Consumer versions of that idea, dressed as a girlfriend with an avatar and a mood bar, ran for years. They accepted free text, which felt more open than a menu, and they fell over faster. You could break one in a dozen messages by referring to something you had said two messages earlier, since nothing carried and nothing was tracked.

So the category always had two shapes: authored narrative with real pacing and no free input, and free input with nothing behind it. Nobody had both.

The distinction matters for reading old opinions about this software. When someone from that era says these things were shallow, ask which branch they used, because they were describing different failures. The shallow charge never went away either; it is the same premise driving today’s AI girlfriend memes, aimed at the user rather than at any branch of the software.

What Generation Removed

Generated replies solved the input problem completely and quietly destroyed everything the author was providing. A model produces a plausible next chunk of text for any input at all, so the refusal disappears, the menu disappears, and the weekend it took to exhaust a script turns into something with no visible end.

Look at what was actually being supplied by the person who is no longer there.

Property Authored form Generated form
Coverage of what you might say Only what was written; anything else refused Anything, always, with no gaps
Character history Fixed in the script, cannot be contradicted Produced on demand, can shift between tellings
Pacing of intimacy Gated by the writer behind flags and thresholds Set by how hard you push, since nothing gates it
Memory of you Exact values in a save file, permanent Facts extracted and retrieved, sometimes missed
Ending Written, reachable, final None; the conversation has no last page
Typical failure You hit a wall the writer never built past It agrees to a past that never happened

Pacing is the loss people feel without naming. In an authored work, warmth arrived on a schedule someone designed, and arriving somewhere took time you could not skip. A generated character will meet whatever intensity you bring in the first ten minutes, because there is no threshold to cross and nothing holding a door shut. The escalation feels responsive. It is closer to an echo.

The ending is the other one. Finishing a written work leaves you with a completed thing, and a conversation that regenerates forever leaves you with a tab. Not the same object at all. That split between a finishable authored work and an endless generated one is the same line dividing a simulator from an AI chat.

None of this argues for going back. It does argue against the assumption that the newer form is the older one plus improvements, since two of the things it dropped were the two doing most of the emotional work.

The Trade Nobody Names: Exact Memory for Endless Talk

Here is the reversal that catches people out. The older virtual girlfriend had perfect recall, and the current one does not.

An affection counter in a save file is a number. It cannot be misfiled, cannot fail to be retrieved, and cannot decay because the software felt like it. Whatever the script chose to track, it tracked exactly, forever, and every scene that depended on that value fired reliably. What it tracked was narrow, but inside that narrow set it never once slipped.

A current companion stores facts about you as text outside the model and fetches what looks relevant before each reply. That process is approximate at both ends: the extraction can miss what you said, and the fetch can fail to surface what was saved. Nothing is guaranteed to come back.

So the category traded exact memory of a few things for approximate memory of anything. Most of the time that is the right trade. It does explain why someone who played these games in 2009 finds current apps oddly forgetful, and they are not misremembering.

Notice which complaint you actually have before you go looking for a fix. Forgetting a fact is a memory problem. Inventing a shared past that never happened is a different one, and it did not exist at all in the authored era.

What People Are Nostalgic For

They miss authorship, not old technology. Nobody wants the menu back or the wall at the edge of the script. What they miss is the sense that somebody decided the shape of the thing, and that the character’s history was true in a way that could not be negotiated by whoever was typing. It is not nostalgia for a gadget either; no AI girlfriend robot ever sat behind these games, only a writer and a flag counter.

That is a design choice rather than a technical limit, which is the useful part. A generated character can be handed a written history that the system is built to treat as fixed, and told to refuse renegotiation with whoever is typing. Pacing can be gated on elapsed days instead of on user pressure. An arc can have a last chapter. Every one of those existed 20 years ago and got dropped, not because generation made them impossible, but because engagement metrics prefer a conversation with no last page.

Stating the limit plainly, since the nostalgia can slide into something else: a generated character produces text and holds no view of you between sessions, and an authored one held even less. Attachment did not wait for the software to get good. Turkle was documenting people bonding with machines built on far simpler behavior back in 2011, well before any of this generated a sentence (Turkle, 2011). What changed since is the quality of the surface, not what sits behind it.

Test the difference yourself in two sittings. Ask a current character three specific questions about its own past, write the answers down, then open a fresh chat a week later and ask the same three. An authored character was incapable of answering differently. How far a generated one drifts tells you exactly how much of its history is stored and how much is being made up on each telling.

FAQ

Were old virtual girlfriend games actually AI? No, almost none of them were. The narrative ones ran on branching scripts with numeric flags, and the chat ones matched keywords against a rule table, so both were finite systems executing instructions a person wrote. What people called AI at the time was pattern matching with a good interface.

Do any apps still use scripted dialog? Yes, and more than you would guess. Greetings, notification messages, event scenes, and onboarding lines are frequently hand-written even in apps where the conversation is generated, because those are the moments that decide whether someone stays. The hand-written parts are usually the ones people quote when they describe how good an app is.

Why does old scripted software feel more consistent than current chat? Because a script cannot contradict itself and a generator can. Every line in the older form had been read and approved by a person before you saw it, so the character’s history stayed fixed no matter what you typed. Consistency was a byproduct of the system being unable to improvise.

Did people get attached to the scripted ones too? They did, and that is the part worth sitting with. Attachment showed up with programs that had no memory of the user at all, which suggests the pull comes mostly from the person doing the talking rather than from how capable the software is.

The older category was not a primitive draft of the current one. It was a different product with different strengths: bounded, composed, exact about the little it tracked, and finishable. The current form beat it on one axis so decisively that the other axes stopped being discussed. Anyone building in this space now is quietly rediscovering what a writer with a flag counter knew in 2005, which is that a character gets interesting when there are things she will not say yet.

Anyone weighing a current companion app like Lona can borrow the old writer’s yardstick. The versions worth staying with keep something back. A character gets interesting precisely because there are things she will not say yet.

Sources

  • Weizenbaum, J., “ELIZA — A Computer Program For the Study of Natural Language Communication,” Communications of the ACM, 1966
  • Turkle, S., “Alone Together,” 2011
LonaMeet LonaThe AI girlfriend who texts you first.Start talking →