This project includes a downloadable game client, a WebSocket server, and an API server. Follow the steps below to set everything up and run it locally on your machine.
Unzip the file to a folder of your choice.
Open your terminal and run:
xattr -rd com.apple.quarantine "/Users/your-machine-name/Downloads/Noir WereWolf.app"git clone https://github.com/NuttakitDW/noirhack-game-engine.gitIf Rust isn’t installed, run:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | shcd wss-server
cargo run --bin wss-servergit clone https://github.com/NuttakitDW/noirhack-backend.gitIf Bun isn’t installed, run:
curl -fsSL https://bun.sh/install | bashbun installbun startTo use WebSockets in your game, the server must be accessible via a public HTTPS domain. For local development, use ngrok to expose your WebSocket server securely.
brew install ngrokVisit:
https://dashboard.ngrok.com/get-started/setup/macos
Get your auth token from:
https://dashboard.ngrok.com/get-started/your-authtoken
Then run:
ngrok config add-authtoken <YOUR_TOKEN>ngrok http http://localhost:8080You’ll get a URL like:
https://your-domain-name.ngrok-free.appwss://your-domain-name.ngrok-free.app/wsAfter configuring the server and game engine, you’re ready to start the game.
⚠️ Note: All players must use the same WebSocket server to connect.
Due to time constraints, not all ZK circuits have been fully implemented or integrated into the Unity demo. The shuffle phase, role reveal, kill, and peek actions are functional, but features like announcing the role of the dead to the server and voting are still missing.
As a result, the current demo cannot proceed through the night phase.
Additionally, the game requires exactly 4 players to start.
A running WebSocket (wss) server is also absolutely required for the demo to function.
