Skip to content

Arcade › Bloodbound

Bloodbound

  • interactive-fiction
  • choice-driven
  • vampire
  • narrative
  • 3d
  • browser
  • horror
  • cinematic
0
Remix it Discord

7 plays

How to play

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

Discussion

Nobody has said anything about Bloodbound yet. Play it, then tell Jalen Robinson what you would add next.

Make your own game

Bloodbound was built by Jalen Robinson 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 Bloodbound 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 Bloodbound

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 choice-driven, Telltale-style interactive vampire story called “Bloodbound,” presented as a single-page browser game with a minimalist cinematic interface over simple Three.js 3D mood stages. The player controls Chloe, an 18-year-old whose walk home from a party becomes a vampire trap and who wakes in a stranger’s apartment in transition.

VISUAL PRESENTATION: Render a full-screen dark 3D background canvas with a fixed 2D HUD overlay. Use a nearly black palette with deep navy, burgundy, hot pink, warm peach, cyan, and occasional orange firelight. The 3D sets should be simple low-detail geometric stage props with fog, strong colored rim/key lighting, and very subtle camera breathing. Keep the camera in a fixed first-person/cinematic stage view aimed toward the middle distance; do not show character models or portraits. The base environment is a huge dark ground plane and dark rear backdrop. Change the visible set and lighting as the story progresses:
- Party: a dark rectangular neon-pink bar/sign structure with small scattered glowing tubes/lights; pink lighting and fog.
- Street/Outside: a dark road receding into the distance with a row of thin streetlight poles and warm glowing lamps.
- Alley: two tall dark walls forming a narrow passage, a dark reflective puddle, and a flickering hot-pink point light.
- Apartment/Hallway: a dark bed with a subtly reddish sheet, a large dark blue-black window, and warm lamp light.
- Fireplace Library: dark bookshelves with many varied book spines, a black fireplace/hearth with an orange-red flickering glow, two low bean bags, and a low table.
- Hideout Bar: dark floor and back bar, a counter, five stools, and a glowing hot-pink neon sign/point light.
Use exponential fog and mood-specific lighting: pink at the party, warm street lamps outside, heavier near-black/pink fog in the alley, warm apartment light, orange fireplace library light, and pink hideout-bar light. Add subtle flicker to the alley, fireplace, and hideout neon lights.

HUD: At the top, show the large bold title “Bloodbound” on the left and a small status line on the right reading `Scene: [current scene]   |   Trust:[number] Fear:[number] Haze:[number]`. At the bottom, show a speaker nameplate in a bordered translucent black box, then a large bordered translucent black dialogue box with white text and a small “Press Space / Enter” hint. Text should type on screen at a fast readable rate; clicking the dialogue or pressing Space/Enter while text is typing reveals it immediately, and clicking/Space/Enter again advances non-choice dialogue. When a node has choices, display two or three dark rounded rectangular choice buttons below the text, each prefixed with `1.`, `2.`, or `3.`. Choices are left-aligned, lightly bordered, and brighten/lift on hover. At the very bottom include pill hints: `1–3: choose`, `R: restart`, and `Esc: pause`.

STORY AND MECHANICS: Implement a node-based narrative. Start variables at `trustLilly = 0`, `fear = 0`, and `bloodHaze = 0`; apply each choice’s listed deltas, clamping each variable between -3 and 6. Update the HUD after every choice. The story follows these exact beats and branches:
1. Party: narration establishes pounding music, Chloe being warm and tipsy, and Lilly watching how much she drinks. Lilly warns Chloe to let her drive or call an Uber. Choices: let Lilly walk her to the car (trust +2), insist on walking for air (trust -1), or tell Lilly to stop babysitting (trust -2, fear +1).
2. Outside/Street: Chloe leaves with Lilly or alone, then feels someone matching her rhythm. Choices: text Lilly (trust +1), speed up and do not look back (fear +2), or laugh it off and keep walking (fear -1). At an alley mouth, something clinks deliberately. Choices: call hello (fear +1), investigate (fear +2), or ignore it (fear +0); all lead toward the alley.
3. Alley: Chloe either approaches the sound or tries to pass, but a presence closes in. A hand covers her mouth, another grips her shoulder, and she is bitten at the neck. Choices: fight (fear +2, bloodHaze +1) or freeze (bloodHaze +2). She blacks out after a distant voice says “Not yet.”
4. Apartment awakening: Chloe wakes in an unfamiliar room, senses metal/sweet hunger, and remembers the bite. Choices: search quietly (fear +1), yell for someone (fear +2), or try to leave (fear +1). Show the bed/window mood stage. A staff member appears: a crisp, calm figure, explicitly not the vampire. Choices: demand answers (fear +1, leads to Butler dialogue), play nice and say she does not remember (no variable change, leads to Maid dialogue), or lie that a friend dropped her off (bloodHaze +1, leads to suspicious Staff dialogue).
5. Hallway/confrontation: staff asks Chloe to follow downstairs. Choices: go along for now (no change), or run (fear +2). The run is caught by impossibly fast movement, and both routes arrive at the fireplace library.
6. Fireplace Library: introduce Adrian, seated with dark wine while the maid lowers her eyes. He explains vampires are real and Chloe is in transition; the hunger is biological and she must feed to survive. When Adrian offers to talk, choices are “No.” (fear +1), “Fuck you.” (fear +2), or ask who he is/what he wants (fear +1, bloodHaze +1). Continue with Adrian explaining that vampires, witches, werewolves, ghosts, demons, and angels exist; demons and angels are stronger and do not stay on Earth, while vampires rule the streets. Explain the transition as hunger, heightened senses, and rules, with failure to feed meaning Chloe will die.
7. Feeding decision: Adrian sets a glass of dark liquid on the table and offers the easy way: feed and live. Choices: accept (bloodHaze +1), refuse (fear +1), or say there must be another way (fear +1). Refusal leads to a blood-wine offer: drink the metallic, sweet, alive wine (bloodHaze +2), or refuse it (fear +2) and Adrian forces a supernatural solution with a sharp unseen sting. All routes converge on Chloe’s senses becoming stronger and hunger becoming focused. Her response choices are hate Adrian (fear +1) or quietly thank him (fear -1), then travel outside with Adrian.
8. Hideout Bar: Adrian brings Chloe through a doorless-looking route to a low neon bar where conversation stops. A random vampire flirts and asks for her number. Choices: say no (no change), accept (fear -1), or threaten him (fear +1, bloodHaze +1). Adrian instantly appears and makes him leave. Adrian introduces his circle: Sasha, Jade, James, and Jeff. Narration describes Sasha’s sharp smile, Jade’s icy eyes, Jeff’s boredom, and James’s warmth. Choices: honestly say she is not okay (fear +1), act tough (fear -1), or stare silently at Adrian (bloodHaze +1).
9. Ending outside the bar: Adrian asks whether this lifestyle is for Chloe or whether she is out. Provide three endings: “I’m in.” (bloodHaze -1) ends with Adrian teaching her to survive and a chapter-ending note about feeding and the first hunt; “I’m out. I want my life back.” (fear +1) ends with an escape-attempt/consequences note; “I… need time.” (no change) ends with Adrian telling her to stay close and learn fast, with a note that James may reach out and crew tension will follow. These are text endings, not combat or free-roaming.

CONTROLS: Mouse/touch clicks advance dialogue and activate choices. Keyboard 1/2/3 selects choices, Space or Enter continues/reveals text, R restarts the story and resets all variables/history, and Escape toggles a pause overlay. Ignore repeated keydown events. Do not allow advancing a node with choices until a choice is selected.

PAUSE AND AUDIO: Escape opens a centered translucent black “Paused” panel with Resume and Restart buttons, Save, Load, and Clear Save buttons, a save-status line, and text explaining that audio starts after the first click/keydown plus “Prototype build — choices + variables + scene mood.” Add subtle Tone.js-style triangle-synth UI sounds: choice, continue, bad outcome, and awakening sounds. Start audio only after the first user interaction, and let the game continue functioning if audio cannot start.

SAVE SYSTEM: Auto-save to browser localStorage on every node transition, including current node ID, all three variables, and a capped choice/node history. The pause menu’s Save writes a manual save; Load restores the saved node, variables, and history; Clear Save removes it. On page load, automatically load a valid save if present, otherwise start at the Party opening. Keep the overall experience as a linear narrative with localized choice variations and converging branches, ending at the “To be continued” chapter endings.

More free browser games

Browse the whole Arcade →