Appearance
Arcade › Velvet Oath
Click the game above and it runs right here in your browser. No download, no installer, no account needed. WOmp built it with Cinevva, so it works on a phone or a tablet too.
Nobody has said anything about Velvet Oath yet. Play it, then tell WOmp what you would add next.
Velvet Oath was built by WOmp 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 Velvet Oath 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.
Recreate a browser-based visual-novel dating sim titled “Velvet Oath,” presented as a polished adult gay romance game set against a dark luxury nightlife/mafia world. The game should be a single-page responsive experience, especially usable on a narrow mobile viewport with vertical scrolling panels. Use a dark midnight-blue/black glassmorphism interface with gold, crimson, muted lavender/blue, and occasional mint accents; rounded panels, thin translucent borders, soft shadows, large bold sans-serif headings, pill-shaped tags, and high-contrast readable text. Build four UI screens: (1) a home/title screen, (2) route selection, (3) the route visual-novel scene screen, and (4) an ending screen. Keep a fixed top bar with a pill logo reading “VELVET OATH” and a back/navigation button when not on the home screen. The home screen has a large hero panel with the title, copy describing an adult romance where choices build chemistry and lead to a kiss ending, badges such as “Original adult cast,” “5 romance routes,” “Flirty choices + affection meter,” and “Kiss endings,” plus a prominent gold gradient “Start the night” button and a dark “How to play” button. Include a decorative hero card with a blurred glowing human silhouette and luxury nightlife color gradients. The route-selection screen should show a header explaining that the player chooses a dangerous man to spend the night with and a counter “Routes cleared: 0 / 5” (updated as routes are completed). Display five responsive selectable route cards in a grid. Each card contains a stylized shirtless masculine bust portrait made from layered shapes/gradients, the character name, heritage, role, height, build, hairstyle, and a short bio. Add a “Shirtless” tag and, after completion, a “Cleared ✓” tag. The five routes and exact characterization are: Nabil Ashraf, Egyptian strategist, 6'4", muscular, short black crop, a polished Cairo-born fixer with gold cufflinks who is intense and associated with rooftop/penthouse scenes; Alexandros Vale, Greek enforcer, 6'5", broad-shouldered, short dark fade, a Piraeus-born powerhouse with scarred knuckles and gentleness, associated with a moonlit dock and safehouse; Jian Wei, Chinese heir, 6'3", lean muscle, short textured cut, a restrained elegant high-rise/casino heir with gloves and perfect posture; Luca Moretti, White charmer, 6'2", athletic muscle, short chestnut cut, an Italian-American dealmaker with a movie-star smile and playful energy, associated with a club and hotel terrace; Mateo Cross, mixed-race wildcard, 6'4", heavy muscle, short wave fade, a grounded tattooed fixer with a velvet voice, associated with an underground gym, diner, and streetlight. For every character, use a distinct palette and portrait details: Nabil gold/crimson, warm brown skin, black crop hair, chain and hieroglyph-like tattoo; Alexandros cool blue/pink, lighter warm skin, dark fade, pale cross accessory and scar detail; Jian mint/blue-green, warm tan skin, textured dark hair, scarf-like accessory and dragon-like tattoo; Luca peach/red, light warm skin, chestnut hair, chain and heart-like tattoo; Mateo violet/coral, medium brown skin, wave fade, tape accessory and rose-like tattoo. The portrait art can be stylized CSS layered head, hair, face, shoulders, pecs, abs, arms, necklace/accessory, tattoo, and dark briefs; it should read as a graphic illustrated shirtless bust rather than realistic photography. When a card is clicked/tapped, begin that route at scene 1 with affection reset to 0. The route screen should be a glass panel split responsively into a portrait/profile area and a dialogue area. Show the selected shirtless bust in a large colored portrait panel, route name, bio, tags, an “Affection: N” meter/text, and “Progress: 1 / 3.” The dialogue area shows the route-specific intro title and subtitle, scene location label, speaker name, narrative dialogue, and exactly three selectable response buttons. Each choice displays its text, a short note explaining its tone, and its affection gain; gains are always +1, +2, or +3. After a choice, replace the choices with a “Chemistry rises” response box explaining that the character reacts and the tension increases, update affection, and reveal a prominent continue button. Clicking/tapping continue advances through exactly three scenes; pressing Enter does the same only after a choice has been made. Do not allow advancing before a choice. Escape or the back button returns from a route or ending to route selection. Use these exact scene themes and romance beats. Nabil: “Golden smoke” / rooftop lounge, then private drive, then penthouse confession; his dialogue is about keeping up, truth, masks, and reckless desire, ending with a hungry city-lit kiss. Alexandros: “Harbor after midnight” / moonlit dock, then safehouse kitchen, then balcony promise; his dialogue involves lending a coat, dangerous reputation, vulnerability, rain, and a deep kiss under the rain. Jian: “Silk and steel” / casino retreat, then high-rise study, then window glow; his dialogue involves tea, composure, hidden heat, removing gloves, self-control, and a restrained kiss that becomes passionate. Luca: “Velvet booth” / club booth, then getaway ride, then hotel terrace; his dialogue involves fake crimes, banter, money versus desire, teasing, honesty, and whiskey-and-city-light kisses. Mateo: “Midnight dare” / underground gym, then after-hours diner, then streetlight pause; his dialogue involves wrapped knuckles, being someone’s type, pie and personal history, slowing down, and a careful kiss beneath an amber streetlight. Each scene must offer three flirtatious choices with different tones such as bold/intimate, sincere, playful, vulnerable, teasing, or romantic; choices should affect affection but all paths reach the same route-specific kiss ending. After the third choice and continue action, show an ending screen titled “[Character] ending.” Mark that route cleared, update “Routes cleared: X / 5,” and display the route-specific romantic kiss-ending prose. Add a small conditional closing sentence: affection 8 or more says the chemistry was electric from the first scene; below 8 says the slower path made the payoff sweeter. Include buttons to replay/return to route selection and return to title. Show “Last ending: [character]” in the selection/home HUD when available. There are no combat systems, enemies, inventory, timers, failure states, multiple endings, music requirements, or player name entry; the core loop is choose one of five routes, make one response per scene across three scenes, accumulate affection, see one kiss ending, and return to clear the remaining routes. Behind the UI, create an animated Three.js-style 3D background visible through translucent panels: a foggy near-black scene with a circular metallic gold torus/ring near the floor, a rotating ring of simple dark city skyscraper blocks, floating gold and crimson particles, colored point lights (warm gold, pink/crimson, and blue), and a slowly bobbing/rotating shirtless low-poly bust silhouette. Tie the 3D bust’s skin/shadow/hair/accent colors to the selected route and default to Nabil on the title screen. Animate the camera subtly side-to-side and up/down, rotate the ring and skyline slowly, rotate the bust gently, and let particles drift upward and reset. Maintain the luxurious, nocturnal, cinematic atmosphere while ensuring the foreground glass UI remains the focus. Expose a simple state API equivalent to getGameState/setGameState with screen, selected route ID, scene index, affection, completed routes, and last ending for live testing/debugging.