Skip to content

Arcade › Graveyard Hold

Graveyard Hold

  • 3d
  • local-coop
  • survival
  • zombie
  • arcade
  • wave-defense
  • twin-stick-like
0
Remix it Discord

15 plays

How to play

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

Discussion

Nobody has said anything about Graveyard Hold yet. Play it, then tell Frosted_52 what you would add next.

Make your own game

Graveyard Hold was built by Frosted_52 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 Graveyard Hold 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 Graveyard Hold

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-playable local two-player cooperative 3D arcade survival game titled "GRAVEYARD HOLD". Use Three.js ES modules via an import map with no build step, and make the renderer resize cleanly with a high-DPI pixel ratio capped at 2.

World and camera: Build a dark circular graveyard arena with radius about 22 units. The ground is a nearly black-blue rough circular disk, surrounded by a low torus rim colored deep blue/purple with a subtle emissive glow. Place about 18 simple grave markers around the outer perimeter: each is a small dark rectangular base and a chunky upright rectangular stone. Use a very dark night background with exponential fog, a cool blue hemisphere light, and a pale blue directional moonlight casting soft shadows. Use a perspective camera positioned high above and behind the players (roughly an offset of (0,22,18)), looking down toward the arena center. Smoothly follow the midpoint between the two players, so both players remain visible as they move.

Players: Have exactly two chunky capsule-shaped avatars on the same screen. Player 1 is cyan/light blue with a darker blue emissive accent and starts at approximately (-4,0,0); Player 2 is pink/magenta with a hot-pink accent and starts at (4,0,0). Give each a glowing flat ring on the ground beneath them, matching their accent color. Each player starts with 100 HP, can move at approximately 9 units per second, and is constrained inside the circular arena. Player 1 movement uses WASD and shooting uses Space. Player 2 movement uses the arrow keys and shooting uses Enter or Numpad Enter. Normalize diagonal movement. A player's facing/aim direction follows their current movement direction; when a movement key is held, rotate the capsule toward that direction. Holding the shoot key fires continuously with a roughly 0.18-second fire cooldown. The simple blaster fires small pale-blue glowing spherical projectiles in the current aim direction, at about 22 units per second, with a lifetime around 1.1 seconds; bullets disappear at the arena edge.

Enemies and combat: At the beginning of each wave, spawn zombies evenly/randomly around the arena edge. Zombies are chunky green capsules, about the same footprint as the players, with a dark green emissive tint and a small warm yellow glowing eye detail on the front. Every zombie chases the nearest living player, rotates toward that target, and stays within the arena. Zombie speed starts around 2.2 units/sec and increases slightly with each wave plus a small random variation. Each zombie has 2 HP initially, with a small additional HP increase on later waves. A projectile hit removes one zombie HP and briefly flashes the zombie brighter; destroy it at zero HP and add 10 to the shared score. Zombies inflict continuous contact damage of about 16 HP per second when close to a player. When a player's HP reaches zero, mark that player DOWN, dim their avatar and ring, and stop their movement and shooting; they are not revived during the current run. Zombies retarget the other player if one is down.

Wave loop and rules: Start with a short approximately 1.5-second delay, then begin Wave 1. Spawn approximately floor(6 + wave number * 2.2) zombies, so Wave 1 visibly contains 8 zombies. Display the current wave and remaining zombie count. When all zombies are destroyed, wait approximately 2 seconds, increment the wave, and spawn a larger/faster wave. Continue indefinitely with no victory condition. When both players are down, stop wave progression, show a dark translucent game-over/fade overlay, and display "GAME OVER — press R to restart". Pressing R resets wave to 1, score to 0, both players to 100 HP and alive, clears all bullets and zombies, restores their starting positions and glow, and restarts the initial delay.

HUD and presentation: Overlay a clean text HUD in the upper-left over the 3D scene. Use large light gray/white text with a bold letter-spaced title reading "GRAVEYARD HOLD", followed by lines such as "Wave: 1  Zombies: 8" (or a next-wave countdown while between waves), "Score: 0", "P1 HP: 100", and "P2 HP: 100"; append "(DOWN)" for defeated players. Beneath it show the control legend: "P1: WASD + Space | P2: Arrows + Enter | Click to enable audio | R to restart". Keep the HUD readable against the nearly black foggy background. Add minimal synth sound effects using Tone.js: clicking or pressing a key enables audio; use short synth/noise sounds for shooting, bullet hits, player down, wave start/transition, and game over, with rate limiting so sounds do not become overwhelming. Use simple readable low-poly 3D geometry, neon-colored player accents, green glowing-eyed zombies, moonlit shadows, and a foggy dark graveyard atmosphere rather than detailed textures.

More free browser games

Browse the whole Arcade →