A Lightning Network-enabled Quake clone where players stake satoshis in Lightning channels and compete in first-person shooter matches. The winner takes all the staked satoshis.
- Lightning Network Integration: Players fund Lightning channels to participate
- Real-time Multiplayer: Fast-paced Quake-style FPS gameplay
- Satoshi Stakes: Players stake satoshis per match, winner takes all
- 3D Graphics: Three.js-powered 3D rendering with physics
- Secure Escrow: Lightning channels act as trustless escrow for match stakes
- Fund Channel: Players create and fund a Lightning channel with satoshis
- Find Match: Players specify stake amount and get matched with opponents
- Battle: Real-time FPS combat with movement, shooting, and health systems
- Winner Takes All: Match winner receives the combined stakes from both players
npm install# Start both client and server in development mode
npm run dev
# Start server only
npm run server:dev
# Start client only
npm run client:dev# Build client
npm run build
# Start production server
npm startTo enable Lightning Network functionality, you need:
- A running LND node
- Set environment variables:
export LND_HOST=localhost:10009 export LND_CERT_PATH=/path/to/tls.cert export LND_MACAROON_PATH=/path/to/admin.macaroon export NODE_PUBKEY=your_node_pubkey
Without Lightning setup, the game runs in demo mode.
- WASD: Move
- Mouse: Look around
- Click: Shoot (after pointer lock)
- Space: Jump
- Client: Three.js + Cannon.js for 3D graphics and physics
- Server: Node.js + Socket.io for real-time multiplayer
- Lightning: LND gRPC for Lightning Network integration
- Physics: Shared game state with client-side prediction
- Lightning channels provide trustless escrow
- Server validates all game actions
- No direct handling of private keys
- Channels can be closed to withdraw remaining balance
MIT