Skip to content

Arcade › Last Light

Last Light

  • top-down
  • survival
  • shooter
  • zombies
  • arcade
  • dark
  • mobile-friendly
0
Remix it Discord

0 plays

How to play

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

Discussion

Nobody has said anything about Last Light yet. Play it, then tell Boruto Otusuki what you would add next.

Make your own game

Last Light was built by Boruto Otusuki 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 Last Light 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 Last Light

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 browser-based top-down 2D survival shooter titled “Last Light.” Use a full-window HTML canvas with a dark, atmospheric night palette. The playfield should be nearly black blue-green (#0b1216), with a subtle 48px floor grid and scattered translucent dark green circular pools/blotches. Keep the camera fixed to the whole viewport: the player moves around the screen, with world entities drawn directly in screen coordinates and clamped inside a 24px border.

The player is a small cyan/blue circular survivor, radius about 15px, with two dark eye-like marks and a short pale rectangular weapon/barrel extending in the direction faced. Aim toward the mouse pointer (or the last active pointer position); the player continuously faces the aim direction. The player begins at the center with 100 HP, 12 ammunition out of a maximum of 12, zero kills, and wave 1. Move with WASD or the arrow keys. On touch devices, show a translucent circular virtual joystick in the lower-left; dragging it moves the player, normalized to a limited stick radius. Show a circular FIRE button in the lower-right; holding/clicking it fires. On desktop hide the touch controls.

The defining mechanic is the flashlight: after drawing the scene, overlay the entire screen with very dark translucent black, then cut out a soft radial flashlight beam centered on the player and extending in a cone in the facing/aim direction. The cone should be roughly 0.84 radians wide, have a bright center near the player and fade toward its outer distance, so objects outside the beam are barely visible. The HUD hint should explicitly say “Keep the flashlight on.” Do not add a flashlight toggle; it is continuously active.

Spawn five green zombies at the beginning, entering from random edges just outside the viewport. Continue spawning them at intervals that become shorter as waves rise, while limiting the active count to fewer than 8 + 3 times the current wave. Zombies are muted olive/green circular creatures, radius randomly around 15–19px, with pale rectangular facial/eye details and dark pupils, rotated to face the player. They constantly home toward the player at roughly 35 + 3*wave plus a random 0–18 speed. On contact they damage the player for 12 HP, with a 0.65 second invulnerability period and brief screen shake/red hit particles. Make the player flash pale while invulnerable. There is no zombie ranged attack.

Fire on mouse click/hold or the mobile FIRE button. Shots have a 0.22 second cooldown and consume one ammo. The shot travels in the player’s facing direction with slight random spread; it can hit the nearest zombie within 520px whose direction is within a narrow aim threshold (dot product above about 0.985), killing it in one hit. Add a brief muzzle particle burst, pale green zombie death particles, a small flash, and screen shake. Award 10 score and one kill per hit. When ammo reaches zero, display “Out of ammo — find a green crate.”

Killed zombies have a 16% chance to leave an animated green ammo pickup at their death position. Draw pickups as glowing, rotating green squares with a pale vertical stripe. Walking within 28px collects one, adds 4 ammo up to the 12-round maximum, displays “Ammo +4,” and emits green particles. When the player’s total kills reaches wave*8, advance the wave, refill up to 4 ammo (still capped at 12), and show “Wave [number] — +4 ammo.”

Render small colored particle bursts for muzzle fire, zombie deaths, damage, and pickups; particles drift, slow, fade, and expire. Use subtle random camera shake during firing and stronger shake on damage. Keep the game running with a capped timestep around 33ms.

Build a HUD over the canvas. At the top, put two translucent dark panels with thin bluish borders and rounded corners: on the left show spaced uppercase title “LAST LIGHT” and a bold live status line in this format: “Ammo 12/12 · HP 100 · Wave 1 · Kills 0”; on the right show: “WASD / arrows to move”, “Mouse to aim · Click to fire”, and “Keep the flashlight on” on separate lines, right-aligned. Put transient messages in a centered panel around the upper fifth of the screen and fade them out after about 1.8 seconds. On mobile keep the top HUD and add the joystick and FIRE button over the bottom playfield.

If health reaches zero, stop gameplay and draw a translucent black overlay with centered “OVERRUN” and “Press R to restart.” Pressing R resets the player, wave, score, kills, ammo, health, enemies, pickups, particles, and initial five-zombie spawn. Maintain the subdued, readable, cinematic survival-horror style shown: almost-black background, dimly visible world beyond the flashlight, cool cyan player, olive zombies, and warm amber firing UI.

More free browser games

Browse the whole Arcade →