Appearance
Arcade › Heartline
Click the game above and it runs right here in your browser. No download, no installer, no account needed. therealbeckham2012 built it with Cinevva, so it works on a phone or a tablet too.
Nobody has said anything about Heartline yet. Play it, then tell therealbeckham2012 what you would add next.
Heartline was built by therealbeckham2012 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 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.
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 mobile-first local companion roleplay app called “Heartline,” presented inside a dark rounded phone shell over an animated Three.js background. The background should be nearly black/plum with soft fog, pink and blue point-light glows, and roughly three dozen slowly drifting, rotating 3D hearts and occasional faceted star/octahedron shapes in pink, orange, and periwinkle. The camera should have a subtle floating motion. The foreground UI is a translucent deep-purple glassmorphism interface with pale lavender text, muted lavender secondary text, thin translucent borders, rounded controls, pink-orange primary gradients, and blue/pink highlights. Implement two screens. The roster screen is the default and shows a Heartline header with a heart logo and subtitle explaining it is a roleplay-style companion app with memory, photo requests, and organized profiles. Include a Companion type selector with Girlfriends and Boyfriends buttons, plus an Organizer row of hair filters: All, Blonde, Black hair, Brown hair, Auburn, and Curly. Filter the visible profile cards by both type and hair. Show eight profile cards total: girlfriends Luna (blonde, sweet, soft; warm and calm late-night talks; likes beach/music/coffee), Nyla (black hair, flirty, bold; confident and teasing; likes cars/night drives/mirror selfies), Ava (brown hair, funny, playful; smart comments; likes coffee/jokes/city walks), and Skye (auburn, chill, calm; steady no-drama energy; likes sunsets/beach/quiet dates); boyfriends Leo (blonde, sweet, gentle; easygoing and safe; likes beach/coffee/long talks), Zane (black hair, flirty, confident; direct and smooth; likes cars/night drives/selfies), Mason (brown hair, chill, grounded; calm low-pressure energy; likes coffee/music/quiet nights), and Jace (curly hair, funny, chaotic good; big grin and nonstop jokes; likes memes/coffee/beach). Each card is a tappable wide rounded panel with a portrait/photo area, name, trait, tags for Girlfriend/Boyfriend, hair, and vibe, a blurb, and “Tap to open chat.” Use realistic portrait imagery if available, with a colorful pink/blue gradient initial fallback if an image fails. Tapping a card opens that character’s direct chat and switches to a chat screen. The chat top bar has a back arrow, portrait, name, metadata such as “Girlfriend • blonde • sweet,” a relationship stage, and a green status reading “Ready to chat” or “[name] is typing...” while a response is pending. Below it show a Connection meter starting at 28 with a pink-to-blue progress fill, and the numeric value. Each profile has an independent persistent local session. On first opening, seed the chat with a system message “Roleplay-style local chat with memory.” and a character-specific greeting followed by their blurb. Provide five quick action buttons: Compliment, Tell a joke, Plan a date, Need comfort, and Share music. These send preset messages. Add a normal text composer with a max-length short message field and Send button; Enter should send too. Responses must be rule-driven/local, not an external AI service: classify messages as affection, comfort, fun, date, music, or general using keywords, then reply in the selected character’s voice. Sweet, flirty, funny, and chill profiles need distinct banks of greetings, affection, comfort, and teasing lines. Responses should combine a suitable voice line with contextual lines about the current scene (chat, beach, cafe, or car), encouragement to continue, and occasional question answers. Messages should update affinity and mood, clamp both from 0–100, and update stages: below 25 “Just met,” below 50 “Getting closer,” below 75 “Crushing hard,” otherwise “Locked in.” Positive interactions should increase connection; comfort slightly changes mood differently. Implement lightweight memory per profile. Detect and remember the user’s name from “my name is …”; remember likes such as beach, coffee, music, and cars; track the current scene based on beach/ocean, coffee/cafe, car/drive, night/late, sad/rough/lonely/tired, and joke/funny language. Later replies should sometimes address the remembered name, refer back to recurring beach/coffee/music preferences, and mention previously sent photos. Sessions and histories remain available when switching profiles; “Reset this chat” clears only the current character session and recreates its initial greeting. Below the quick actions, add an image-request panel labeled “Request image from them,” with helper text suggesting “sitting on beach, hoodie mirror selfie, car selfie, coffee pic.” Include a text field, “Request pic” button, and a status hint. Recognize only four photo themes: beach (including ocean/shore/sand/sitting on beach), mirror (mirror, hoodie, bedroom, selfie), car (car/drive/passenger/driver), and cafe (coffee/cafe/latte/restaurant). After a short simulated typing delay, add the user request to chat and either respond with a supported generated/library image, reject an explicit request, explain unsupported themes, or remember that the same theme was already sent. Explicit keywords including nude, naked, lingerie, underwear, sex, sexy, topless, and nsfw must be refused with a respectful boundary response and a small connection decrease. For accepted first-time requests, add a companion response followed by a portrait-oriented photo bubble with a caption like “[name] sent a [theme] pic: [request],” track the sent theme, and increase connection. For repeats, tell the user to scroll up because the character remembers it. Use separate girlfriend/boyfriend image libraries for the four themes, with image fallback behavior. Make the layout responsive: on narrow screens the phone shell fills the viewport with square corners, roster and chat areas scroll internally, and composer rows may stack vertically. The visual tone is romantic, cozy, non-explicit, polished, and app-like. Keep all data local in the browser and expose optional debug state functions equivalent to window.getGameState() and window.setGameState() for inspecting or patching screen, filters, selected profile, and current connection/mood.