Skip to content

Arcade › Crossed Lines

Crossed Lines

  • interactive-fiction
  • choice-based
  • narrative
  • drama
  • 3d
  • atmospheric
  • branching
  • timed-action
0
Remix it Discord

6 plays

How to play

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

Discussion

Nobody has said anything about Crossed Lines yet. Play it, then tell Madyson Roney what you would add next.

Make your own game

Crossed Lines was built by Madyson Roney 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 Crossed Lines 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 Crossed Lines

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 single-screen, story-driven interactive drama titled “Crossed Lines.” The player controls Mika, a teenager caught between two rival groups during a tense confrontation in Riverside Park at midnight. The game should feel grounded, uneasy, and atmospheric, emphasizing fear, loyalty, identity, regret, and consequences rather than glamorizing violence.

Use a Three.js 3D nighttime park scene as the background. Show a dark cracked-looking ground plane and a muted blue-gray basketball-court-like paved area, silhouetted trees around the perimeter, a simple bench, a chain-link fence represented by thin vertical and horizontal lines in the distance, and one weak streetlamp with a warm light. Place stylized low-detail human silhouettes in the confrontation: Mika centered, Jae close on the left, Rico on the right, Nina farther right near the fence, plus additional figures for both groups. Use muted gray, brown, blue, and desaturated red materials, heavy dark fog, a vignette, and a slow uneasy camera drift. Animate the trees with subtle swaying, figures with tiny movements, and make the streetlamp flicker/pulse. The scene should remain a single environment behind the interface.

Overlay a large readable narrative UI. At the top-left show the uppercase title “CROSSED LINES” and subtitle “A park. Midnight. One bad choice can echo for years.” At the top-right show a labeled “Tension” meter ranging from 0–100, filled with a blue-gray to tan to red gradient, plus the hint “M — mute.” At the bottom/center show a translucent near-black dialogue panel with the scene label “NIGHT — RIVERSIDE PARK,” an optional speaker name, story text, and interactive choice cards. Include the footer note “This story focuses on consequences, not spectacle.” Use clean sans-serif typography, pale gray/white text, thin translucent borders, subtle blur, and responsive mobile layout.

Implement branching dialogue and stateful choices. Begin with tension 22. The opening narration describes an abandoned but not silent park, dragging leaves, distant traffic, a weak streetlight, and two groups staring each other down; Jae warns Mika that they can still walk. Give three choices: step forward and ask everyone to slow down (lower tension, increase pacifist/courage), stay close to Jae and whisper about leaving (slightly lower tension, increase Jae trust and avoidance), or confront Rico and demand he say what he came to say (raise tension and aggression).

Continue through branching narrative scenes involving these characters: Jae is loyal but nervous and wants to leave; Rico is provocative, prideful, and escalating; Nina is quiet and observant near the fence and may intervene. Track at minimum tension, Jae trust, Nina trust, courage, pacifist behavior, aggression, loyalty, violence, outside-help/escape behavior, fear, avoidance, and insight. Choices should visibly alter tension and those values, and eventually converge on the confrontation. Include branches where Mika calms the groups, protects Jae, argues that pride is not worth blood, promises not to leave Jae, starts toward the exit for help, challenges territorial thinking, or shoves Rico and triggers physical escalation.

At the midpoint, Nina warns that if somebody swings, the conflict will spread to school, siblings, and everyone looking for a reason. Offer choices to back Nina and de-escalate, tell Jae to leave while Mika holds the line, or tell Nina it is past words. Escalation should lead to a brief timed action prompt: an opponent lunges and the player has 1.8 seconds to press the specifically displayed key “F” to brace and protect Jae. A successful press says Mika catches the shove and keeps Jae on his feet, raises tension by 6, and proceeds to the final choice; failure says Jae is clipped and crashes into the bench, raises tension by 12, lowers Jae trust, and proceeds onward. Any wrong key or timeout counts as failure. Make clear on-screen that the action prompt is active and disable normal choices during it.

At the final choice, show that Rico has wiped his mouth and everyone looks older, then offer four choices: put Mika between both groups and refuse to move; swing at Rico; grab Jae and run toward the streetlights; or freeze and wait for somebody else. Resolve five possible aftermath endings: (1) “Walked Back From the Edge” / peace, only when the player has enough pacifist choices, Nina support, and tension is no higher than about 52; (2) otherwise the defensive path becomes “Bruised but Breathing” / injury; (3) “Blue Lights” / intervention, when Mika runs for help or flees with Jae, with sirens, adults/officers/older siblings, paperwork, and divided opinions; (4) “Nobody Really Won” / collapse, when Mika joins the violence aggressively enough, with a severe emotional aftermath; and (5) “Left Behind” / freeze, where Jae is hurt while Nina calls for help and people remember Mika’s absence. The aftermath should remain sober and non-spectacular, focusing on consequences, damaged trust, rumors, regret, and the fact that nobody truly wins.

Support mouse/tap clicks on choice cards, keyboard number keys 1–4 for choices, Space to continue where applicable, F for the timed action, M to mute/unmute, and R to restart after an ending. Add restrained procedural audio using Tone.js: a low synth/drone pulse and wind-like tension that changes notes as tension rises, with small UI tones for choices and action success/failure. Start audio after the first click or keypress. Include restart/play-again behavior and expose state inspection/mutation through window.getGameState() and window.setGameState() with the story node, tension, relationship/behavior values, action status/result, ending, ended state, mute state, and a non-playing cutscene status.

More free browser games

Browse the whole Arcade →