mlmihjaz's picture
Complete game: Laser Tag Party — name join, blaster w/ unlimited ammo, 5-heart elimination, WebAudio sounds, trees/rocks/houses/tower/lakes, bigger map
dd14326
|
Raw
History Blame Contribute Delete
1.83 kB
metadata
title: Laser Tag Party
emoji: 
colorFrom: blue
colorTo: green
sdk: docker
app_port: 7860
pinned: false

⚡ Laser Tag Party — kid-friendly multiplayer FPS

A friendly multiplayer laser-tag game built with Three.js + a WebSocket server. Type your name, jump in, and zap your friends with rainbow lasers! Nobody gets hurt — you have 5 hearts ❤️, and if you're zapped 5 times you're out (but you can rejoin instantly with fresh hearts). Unlimited ammo, unlimited time.

How to play

  • Enter your name and press Play
  • Click / hold — shoot lasers (unlimited bullets!)
  • WASD / Arrow keys — move · Mouse — look · Space — jump · Esc — pause
  • On phones/tablets: on-screen pad to move, 🔫 FIRE and JUMP buttons, drag to look
  • 🎤 button turns on voice chat (peer-to-peer WebRTC)
  • Each zap = +1 point on the scoreboard; 5 zaps knocks a player out

The world

Big open arena with trees 🌲, rocks 🪨, colorful houses 🏠, a watch tower, clouds ☁️ and three lakes 💧 you can wade through. Laser shots are blocked by scenery, so hide behind things!

Sound

All sound effects (laser pew, hit blips, knockout, fanfares) are synthesized live with the WebAudio API — no audio files needed.

How it works

  • server.js — Express + ws server: relays positions (~20/sec) and laser shots, tracks scores and hearts server-side, eliminates players after 5 hits, and relays WebRTC voice-chat signaling.
  • public/index.html — the entire Three.js client: first-person controls, blaster + tracer effects, hit detection via raycasting, HUD (hearts, scoreboard, toasts), mobile touch controls, and WebAudio sound effects.

Running locally

npm install
npm start
# open http://localhost:7860 in two or more browser tabs/windows