Skip to content

Arcade › Mia Heartline

Mia Heartline

  • 3d
  • dating-sim
  • chatbot
  • story
  • cozy
  • companion
0
Remix it Discord

9 plays

How to play

Click the game above and it runs right here in your browser. No download, no installer, no account needed. Hg 3 built it with Cinevva, so it works on a phone or a tablet too.

Discussion

Nobody has said anything about Mia Heartline yet. Play it, then tell Hg 3 what you would add next.

Make your own game

Mia Heartline was built by Hg 3 with the Cinevva game creator: describe the game you want in chat, watch it get built, and play it in your browser minutes later.

Remix Mia Heartline opens the real game in the creator and forks its actual files, chat and design doc, so you start from the code rather than from a description.

Read the build brief for Mia Heartline

Cinevva's analyzer read this game's design doc and its source, then wrote the brief below. "Make your own" hands it to the game creator as your opening message, so you start from a real spec rather than a one-line idea.

Create a desktop/mobile-friendly 3D conversational dating-companion game titled “Mia Heartline.” The game is a local story chatbot paired with a Three.js 3D character scene; it is not an open-world game and has no player movement controls. Use a fixed, gently animated, front-facing perspective camera that looks at a small cozy dark-purple chat stage. The camera is a 48-degree perspective camera initially around (0, 2.7, 7.5), looking toward the character at approximately head/chest height. Let the scene subtly respond to pointer movement: horizontal pointer position shifts the camera up to about 0.65 units sideways and vertical pointer position shifts it slightly vertically. The character gently bobs, slowly turns side to side, and uses the idle/breathing/standing animation from the supplied GLB asset when available. Load `assets/Rig_model_mia.glb`, normalize it to approximately 2.35 units tall, center it on the stage, face it toward the camera, and give it soft shadows. If the model fails to load, show a simple pink capsule-shaped fallback character.

Build the 3D setting as a cozy stylized chat/lounge stage: a broad dark indigo circular raised floor with a smaller plum circular rug, a dark indigo curved/backdrop wall, and a pink sofa against the rear wall made from a low rectangular base and a taller back cushion. Add a small mauve-purple cylindrical table toward the right rear/front side, and a pale lavender floor lamp on the left with a pink cone shade and a warm glowing point light. Use a moody romantic palette of near-black navy, indigo, plum, pink, lavender, and warm magenta. Light it with a soft pink/cream hemisphere light, a strong warm directional key light with PCF soft shadows, a purple rim light, and the lamp’s warm glow. Enable ambient fog and a dark navy background, ACES filmic tone mapping, antialiasing, and shadows.

Surround Mia with ten small floating faceted pink/lilac heart-like crystals (implemented as low-detail icosahedron shapes). They orbit at varied radii and heights, bob up and down, rotate, and glow faintly. Their visible count represents relationship progress: always show at least 2, then show approximately bond/10 of the ten (rounded), so more appear as the bond increases. Increase the purple rim-light intensity slightly with bond, while retaining subtle pulsing light animation.

Overlay a responsive HTML/CSS interface above the 3D canvas. On desktop, use a two-column layout: a left HUD column and a right chat panel about 360px wide. On narrow screens stack the HUD above the chat panel. Use translucent dark navy/purple cards with rounded corners, thin subtle borders, blur/backdrop styling, and soft shadows. In the upper-left HUD show the title “Mia Heartline,” `Bond: 0 / 8`, `Mood: curious`, and `Patience: 3 / 3`. Beneath it show the goal text: “Be sweet, ask questions, and remember what Mia likes. Reach a bond of 8, then invite her to her favorite activity to win. Three rude messages and the chat ends.”

The right panel is headed “Chat with Mia” and includes the explanatory subtitle “This is a local story chatbot built into the game — no online AI, just a responsive companion sim you can play with right now.” Below it, show a vertically scrolling conversation log. Mia messages align left in translucent pink bubbles; player messages align right in translucent lavender bubbles; system messages are centered in a subtle neutral bubble. Below the log, show contextual pill-shaped suggestion buttons, and at the bottom provide a text field with placeholder “Say something kind…”, a `Send` button, and a `Reset` button. Support clicking suggestions, clicking Send, and pressing Enter to send. Limit typed messages to 180 characters and ignore blank submissions. Make controls touch-friendly.

On reset/start, clear the chat and show Mia’s opening message: “Hey. I’m Mia. Be kind, be curious, and if you really listen, you’ll figure out my ideal date.” Then show a system message: “Game loop: build bond to 8, then invite Mia to her favorite activity.” Initial suggestions are “How was your day?”, “What do you like to do?”, and “You look beautiful”. Randomly choose exactly one hidden favorite activity from: `stargazing`, `late-night ramen`, `arcades`, or `rainy walks`. The win objective is to build bond to 8, learn or infer that favorite activity, and invite Mia to it.

Implement the conversation as deterministic local keyword analysis plus varied response pools, not online AI. Track bond from 0 to 10 but use target bond 8, patience from 3 down to 0, mood, message count, whether the favorite has been revealed, game-over state, win state, and lightweight memory for the player’s name and last compliment. Detect rude phrases/words including “shut up,” “stupid,” “idiot,” “hate you,” “dumb,” “ugly,” and “bitch.” A rude message reduces patience by 1 and bond by 1, changes mood to `guarded` while patience is above 1 or `upset` at 1 or below, and Mia replies with an admonishment such as “Ouch. If you want this to go well, talk to me like a person.”, “That was rough. Try kindness instead.”, or “Not cute. I’m still here, but barely.” At zero patience, end the conversation with mood `done` and the system text “Chat over — three rude messages ended the conversation.”

Detect apologies such as “sorry,” “my bad,” or “forgive me.” If patience is below 3, an apology restores one patience and one bond, sets mood to `softening`, and replies “That helps. Thank you for saying it straight. Let’s reset the vibe.” Detect sweet words such as “cute,” “beautiful,” “pretty,” “sweet,” “kind,” “lovely,” and “amazing”; these add 2 bond, store the raw compliment, set mood `flattered`, and use a response such as “Okay, that was smooth. Keep talking like that and I might blush.” Detect questions/general interest such as “how are you,” “what do you like,” “favorite,” “tell me about yourself,” “music,” “movie,” “food,” “day,” or any question mark; these generally add 1 bond and make Mia warmer, curious, talkative, or excited depending on the exact topic.

Use these response behaviors: questions about Mia’s name/identity receive “I’m Mia — a cozy little chatbot version of her, anyway. I like playful chats and people who actually listen.” and set mood `open`; “how are you” receives “Better now that you asked. I was bored until this chat started.” and sets `warm`; favorite/what-do-you-like prompts reveal the favorite through one of these exact hint styles: “I could talk about stars for hours. Quiet skies are kind of my weakness.” for stargazing, “Warm ramen after midnight just fixes everything.” for late-night ramen, “I love somewhere playful — lights, music, a little competition.” for arcades, or “A calm walk in the rain sounds weirdly perfect to me.” for rainy walks, and set mood `excited`; music prompts get “Soft pop, dreamy synths, and anything that sounds good in neon rain.” with mood `nostalgic`; food prompts get “Something warm, spicy, and way too late at night. That’s the mood.” with mood `playful`; movie prompts get “Give me something romantic with weird sci-fi lighting and I’m happy.” with mood `dreamy`; greetings get a friendly personalized “Hey, [name]. Come in with charm and I’ll meet you halfway.”; otherwise use encouraging fallback replies asking for personality, a compliment, question, or date idea.

Recognize names from patterns like “I am NAME,” “I’m NAME,” “Im NAME,” or “My name is NAME,” capitalize and remember the name, and use it in later greetings. After at least 3 messages and bond at least 3, if the favorite is still hidden, append a small favorite hint and reveal it. Once bond reaches 8, set mood `ready` and tell the player to remember Mia’s favorite activity and invite her. If the player’s message both mentions the revealed favorite and is an invitation (phrases such as “let’s,” “lets,” “want to,” “go,” “date,” or “hang out”), then it wins only when bond is at least 8. The win reply should say the activity sounds perfect and Mia is in, set mood `smitten`, mark game over and win, clamp bond to at least 8, and add: “Win — you remembered Mia’s favorite activity and made the chat click.” For invitations before enough trust, reply that the player should build more trust and ask again later. After either win or loss, offer “Start over” plus context options; any post-game message containing “start over,” “reset,” or “again” resets the game, while other post-game input says the chat can be reset. On win, display the bond target as achieved; on loss, retain the final patience and mood.

Suggestion buttons should adapt to state: before revealing the favorite, offer “How was your day?”, “What do you like to do?”, and “You look beautiful”; after revealing it, include “Let’s [favorite]”, “How was your day?”, and “You seem sweet”; at bond 8 include “Let’s [favorite]”, “What music do you like?”, and “You look beautiful”. Keep the visual presentation intimate, polished, and game-like, with the 3D Mia lounge always visible behind the translucent conversational UI.”

More free browser games

Browse the whole Arcade →