ZK Hunt is a prototype for an onchain game built on mud, which explores different ZK game mechanics and information asymmetry. The full technical write-up can be found on the 0xPARC blog.
You will need rust, which is required for both foundry and circom, installation instructions here.
You will need foundry, installation instructions here, I recommend using the 'Installing from Source' approach.
You will need circom and snarkjs, installation instructions here .
Run yarn to install all dependencies. If you run into a weird error about remote-ls failing, then try running
git config --global url."https://".insteadOf git://, and then running yarn again.
Inside packages/circuits, run node prepareAllCircuits.js to perform the powers of tau ceremony, and compile all the ZK circuits.
yarn start will start both the local anvil node and the client, press 2 to show the client console output, and restart it if it fails. yarn deploy in a separate console will deploy the game contracts, and give
you back the url to access the client with.
While inside packages/circuits:
node prepareCircuit.js <circuit name>, where <circuit_name> is the name of one of the circuits
in packages/circuits/src/ but without the .circom extension, will compile the circuit, generate and copy the
necessary files into static/circuits/, and generate a solidity verifier contract in
packages/contracts/src/dependencies/.
node prepareAllCircuits.js will perform the powers of tua ceremony (if not already performed, output save in
packages/circuits/pot/), and then run the above command for all circom files in packges/circuits/src/.
The 'Spawn' button in the component browser on the right can be used to spawn new units in, which can be selected by clicking on them. Holding E will display a potential path to the cursor, and clicking will confirm that path. If you keep holding down E after confirming the path then you can confirm the next waypoint by clicking again somewhere else. Tapping R while holding E will switch the axis bias of the potential path. You can access the spear with W and the search with Q.