Appearance
Arcade › Moonlight Courier
Click the game above and it runs right here in your browser. No download, no installer, no account needed. Bobb Ross built it with Cinevva, so it works on a phone or a tablet too.
Nobody has said anything about Moonlight Courier yet. Play it, then tell Bobb Ross what you would add next.
Moonlight Courier was built by Bobb Ross 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 Moonlight Courier 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 fullscreen portrait-friendly 2D canvas arcade survival game titled “Moonlight Courier.” The game should run edge-to-edge beneath a fixed HTML-style HUD and use a dark, polished moonlit visual style. Presentation and scene: Render a vertical linear gradient background from deep blue (#102c4c) at the top to nearly black navy (#050b16) at the bottom. Overlay subtle diagonal thin blue/cyan streaks moving slowly across the screen, plus a soft pale moonlight radial glow near the upper-right area. Keep the playfield uncluttered and atmospheric. The game is viewed from a fixed top-down/flat 2D perspective with no camera scrolling. Start/menu state: Initially show a centered translucent dark-blue rounded card with a fine pale-blue border and shadow. It contains the large white title “Moonlight Courier,” the message “Guide the little lantern through the dark, gather drifting fireflies, and stay clear of the shadows.” and a rounded cyan “Start run” button. At the bottom center display the small hint “WASD / arrows or drag anywhere to steer.” The overlay should cover the game but the dim atmospheric background remains visible. HUD: At the top, show three evenly spaced rounded dark translucent pills with subtle blue borders and shadow: “LIGHT” followed by the collected-light count, “TIME” followed by elapsed whole seconds, and “BEST” followed by the best light count. Begin all displayed values at 0, and preserve BEST between runs using persistent local storage or an equivalent high score mechanism. Player and controls: The player is a small glowing golden lantern/light represented by a filled pale-gold circular body about 15 pixels in radius, with a thin cream outline and a small bright cream highlight circle slightly above center. Draw a warm radial glow around it that gently pulses. Start the player around the horizontal center and 56% down the screen. Support keyboard movement with WASD and the arrow keys; normalize diagonal movement, use a movement speed around 250 pixels/second, and constrain the player inside the screen with about 22 pixels of side/bottom padding and 78 pixels of top padding so it cannot overlap the top HUD. Also support pointer/touch steering: while the pointer/finger is held and dragged, move toward the pointer position (with no movement when it is within roughly 18 pixels of the player), and allow dragging anywhere on the canvas. Do not require a virtual joystick. Objective and entities: The goal is an endless run: collect as many drifting fireflies as possible while surviving for as long as possible. On each fresh run, clear all entities and particles, reset score and timer, then spawn 5 fireflies and 2 shadows. Fireflies are small warm yellow/gold glowing dots, randomly placed with at least roughly 42 pixels of edge padding and below the HUD, with radii randomly around 5–8 pixels. Give them gentle independent drifting velocities of about -12 to 12 pixels/second in each axis, make them bounce off playfield boundaries, and animate a subtle pulsing glow. When the player touches one (distance less than player radius + firefly radius + 4), increment LIGHT, remove that firefly, and emit a brief burst of around 12 golden particles. Spawning and difficulty: During play, spawn another firefly initially every 1.25 seconds, with the interval gradually shortening as elapsed time rises but never below 0.4 seconds. Spawn chasing shadows initially every 2.2 seconds, also shortening over time but never below 0.65 seconds. A shadow enters from a random screen edge: left/right around y 80 through the bottom, or top/bottom at a random x. Give it a dark near-black circular body with a radius randomly around 18–28 pixels, a tiny muted purple eye/accent offset toward its upper-left, and a slight wobble animation. It homes directly toward the player. Its speed should start randomly around 32–52 pixels/second and increase with elapsed time (about 1.5 pixels/second per elapsed second). Remove shadows only after they travel well beyond the screen. If a shadow touches the player (distance less than player radius + shadow radius - 3), immediately end the run. Scoring, timing, and game over: TIME counts upward in seconds during active play and is displayed as the floored integer. LIGHT is the number of collected fireflies. On game over, update BEST to the maximum LIGHT achieved and persist it. Show the centered overlay card again, with title “The shadows caught you,” message formatted as “You carried X light” (pluralize “light” only when X is not 1) “for Y seconds. Try a new route.” and a button labeled “Run again.” Emit a larger burst of roughly 24 pink/magenta particles at the player on defeat. Starting a run from the button resets everything; pressing Space when not actively playing can also start a run. Effects and style: Collected fireflies should burst into small circular particles colored warm yellow, while defeat particles are pink (#ff7196). Particles should have randomized radial directions and speeds, fade out over roughly 0.35–0.8 seconds, and slow slightly over time. Use smooth circles, gradients, translucent glows, rounded UI, cool navy/cyan typography, and high contrast against the dark background. Keep the HUD and hint non-interactive except for the start/restart button; prevent page scrolling on touch devices and make it responsive to different viewport sizes and device pixel ratios.