Inspiration
Modern dating apps reduce connection to swipes and surface-level interactions. We wanted to explore something deeper:
👉 What if a game could simulate emotional dynamics in relationships?
Inspired by visual novels and real-life dating psychology, we aimed to build a system where conversations actually matter, and where players must navigate personality, timing, and emotional boundaries—not just pick the “right” answer.
What it does
Romance Simulator is an AI-driven dialogue game where players interact with a character, Sophia, through:
💬 Free-form dialogue (player types anything) 🔘 Multiple-choice responses (guided options) 🧠 Memory system (she remembers past interactions) 💔 Relationship mechanics (trust, intimacy, attraction, comfort)
The game features:
🎭 Dynamic scenarios (first meeting, texting, dates, conflict) ⏳ Conversation limits & cooldowns (to prevent spamming) 📅 Date planning system (choices affect relationship outcomes) 🧊 Avoidant personality model (Sophia doesn’t open up easily) 🏁 Three endings: Bad (rejection/ghosting) Neutral (no real connection) Good (earned emotional connection)
👉 Conversations evolve based on your behavior—not just your words.
How we built it
We designed the system around state + AI prompting + game rules:
🧠 AI Layer Used Groq API for fast LLM responses Built structured prompts combining: Character personality (Sophia) Current scenario Relationship stats Memory (past dialogue + extracted traits) 🧩 Game Engine Session state tracks: Relationship metrics Scenario progression Cooldowns and limits Modular system: memory.py → stores history + player traits relationship.py → updates stats based on choices scenario.py → controls narrative flow dialogue.py → builds prompts dynamically 🎭 Personality System
Sophia is modeled as:
Avoidant attachment style Emotionally guarded Reactive to player behavior
This creates non-linear responses—being too eager can actually push her away.
Challenges we ran into
- Making conversations feel real
Early versions felt:
Too agreeable Too predictable
👉 Fix: Added personality constraints + emotional states (e.g. “slightly bored”, “testing the player”)
- Balancing relationship mechanics
If too easy:
Game becomes boring
If too harsh:
Player feels punished
👉 Solution: Multi-dimensional system (trust, attraction, comfort) instead of a single “love score”
- Memory handling
Naive memory caused:
Repetition Inconsistent behavior
👉 Solution:
Short-term memory (recent dialogue) Long-term traits (player behavior patterns)
- Preventing spam interactions
Players could brute-force good outcomes
👉 Fix:
Conversation limits Cooldowns Scenario progression gates
Accomplishments that we're proud of
💡 Created a dynamic AI character with believable emotional behavior 🎭 Built a system where player behavior matters more than dialogue choices 🧠 Implemented memory that influences future interactions ⚖️ Designed a nuanced relationship system (not just “+1 love”) 🎮 Made conversations feel like a game with tension, not just chatting
What we learned
💬 Dialogue systems need constraints, not just generation 🧠 Personality design is more important than model size 🎮 Good game feel comes from: friction uncertainty consequences ⚖️ Balancing emotional systems is surprisingly similar to balancing gameplay mechanics
What's next for Romance simulator
🎭 More Characters Different attachment styles (anxious, secure, chaotic) 🌍 More Scenarios Group settings Long-distance interactions Breakups and reconciliation 🧠 Smarter Memory Persistent cross-session memory Player “profile” that evolves over time 🎮 Gameplay Features Visual UI / avatars Voice interaction Real-time emotional feedback indicators 🤖 AI Improvements More nuanced emotional transitions Better long-term narrative consistency
Log in or sign up for Devpost to join the conversation.