ZkNoid way: progress recap from scratch

ZkNoid
7 min readMay 13, 2024

--

The first phase of the Mina Protocol navigator’s grant program had come to it’s end. While the second phase is not far off, it’s a good time to review our navigation through the open sea full of mines

Article’s cover

EthGlobal hackathon state

  • Implemented provable arkanoid game process
  • Won second prize on the hackathon
Project state after hackathon

December 2023

  • Improved arkanoid collision model. Optimized circuit
  • Implemented docs allowing to explore game verification and zk gaming overview
  • Implemented debug mode to trace contracts game objects state
  • Implemented UI for score, balance, competitions, leaderboard, debug mode
  • Blog article — Zero knowledge proofs for gaming: how it works & why do we need them
December 2023 improvements

January 2024

  • Migrated to recursive proofs in arkanoid
  • Multiplayer & matchmaking contracts & UI modules implementation
  • Designer Shiroy joined the team and designed landing page zknoid.io
  • Background sessions implementation
  • Changed game mechanics — added momentum
  • Added bricks map generation by seed in arkanoid
  • Finished competitions list page
  • Randzu game implementation
  • Mina and protokit networks interplay
  • Funds on-ramping to game network
  • Blog article — How protokit can revolutionize on-chain gaming & how to cook it to implement a multiplayer game
Jan 2024 arkanoid game state
Jan 2024 new randzu game and Shiroy in the team

February 2024

  • Implemented paid competitions
  • Designed snake logo for ZkNoid
  • Designed main game store page located at app.zknoid.io, also developed and design Arkanoid and randzu game page. For Arkanoid game page designed competititon page.
  • Frontender Nikita joined the team and helped to start build zkApp user interface
  • Road to modularity. Made framework and protokit client modular with reusable on-chain (now engine contracts) and front-end components used by games
  • Improved docs for devs to use the modules
  • Researched and implemented approach to deploy protokit sequencer. Launched games publicly, got first users
  • Greatly improved randzu game UX, played a part with @maht0rz. Implemented basic project token. Added prover keys caching that greatly improved contracts loading. Started project twitter https://twitter.com/ZkNoid.
  • Hired a motion animator to make interactive graphics.
  • Implemented contracts for snake game that was postponed in release
  • Researched how to do card games(with homomorhic encryption). Done simple card game with shuffle and card draw as proof of concept
  • Implemented blog article — Game types and how to implement them on Mina
  • In arkanoid reworked level generation, bugs, done round creation and visualization
New games store
New games introduced
Docs for SDK

March 2024

  • Poker contract and proofs done and tested Poker SDK is done. Created simple game using it
  • Implemented new thimblerig game
  • Implemented handy funds bridge that opens automatically if user has not enough funds or clicks bridge button
  • Matchmaking generalized and moved on framework level
  • Migrated to two new protokit versions with fees and balances support
  • Implemented proving of opponent timeout
  • Implemented matchmaking leaving after 20 blocks passed if no opponents found
  • Started user actions logging to reward players for features testing
  • Created educational posts in twitter and medium articles. Participated Mina London meetup, printed swag
  • Designed Randzu game page, all pages adaptived to mobile devices: main page, support, arkanoid, randzu
  • Created game sprites illustrations for arkanoid, randzu and thimlerig games.
  • Blog article — Thimblerig game architecture: commit reveal scheme
  • Implemented animations for Thimblerig game process
MVP for thimblerig game
Poker game
Redesigned arkanoid game

April 2024

  • Implemented lobby manager allowing to create private multiplayer competitions Implemented checkers game contracts & UI
  • Added support for mobile auro wallet Added trpc backend, user favorite games and game ratings saving, storing and fetching
  • Now game win rewards are automatically collected.
  • Unified opponent timeout proving for multiplayer games.
  • Designed Poker game page with all the components that can be changed during the game, created cards and chips illustrations.
  • Redesigned thimblerig game. Animations, game outcome is shown by sequential lifting of guessed and correct thimbles now Created design for Lobbys page for Thimblerig and Randzu games Implemented Lobby Ui\Ux in zkApp Redesigned game view that now shows game rules and become more intuitive
  • Debugged protokit issue, found a bug, added patch until fix is shipped Researched and implemented approach to enable code minification not breaking protokit. Optimized bundle size Added analytics, network monitoring to investigate platform support issues and bugs Created article about protokit tips and tricks
  • Added game lobby feature and multiple matchmaking option Updated arkanoid physics Added more tests to Poker game, tested multiple users play
  • Created testnet plan and tasks Designed & Developed testnet web-site with automatically checking progress feature for testers UX improvements allowing to launch public testnet soon
  • Blog article with our experience dealing with protokit — Protokit tips & tricks: our experience + bonus part
Lobbies system
New thimblerig design
New checkers game
Redesigned randu game

May 2024

  • Launched testnet. Implemented quest website for testnet event quest.zknoid.io. Implemented tasks solve checking
  • Real time communication with testers
  • Fixed a lot of bugs reported by testers in 55 commits
  • Upgraded to local protokit sequencer building
  • Migrated to o1js 1.1.0 experimentally supported by protokit
  • Implemented protokit persistent feature so networks state won’t reset on network restart
  • Optimized and fixed bugs in arkanoid
ZkNoid quest event

Achievements

The moments we’re proud of that happened during building the next-gen gaming platform

  • Took navigator’s rewards for best smartcontract & UI
  • Created articles exploring zk gaming and developer guides with total read 355 times
  • Launched testnet quest event where 105 players solved at least 1 task, 12 completed 100%
  • Created reusable zk gaming SDK currently used by 1 external developer for his game
  • Was first to deploy protokit sequencer, use persistent feature, implement appchain data initialization, set up minification not to break it
  • Our explorations mentioned above was reused by other teams. Article about protokit tips and tricks was reposted by protokit team and used as a material for Mina lecture
  • Created and animated unique and thoughtful design from scratch
  • Implemented docs for both users and developers
  • Was presenting our project on navigator’s call
  • Built a community in discord, telegram, twitter
  • Completely implemented checkers game using platform SDK in just 3 days

Project traction

During testnet, the following results achieved

  • Quest is started by 83 participants, half is completed by 12 users.
  • Wallets connected 414 times, game started 807 times, 128 times bridged in total 5863.0 $mina berkeley amount
  • Considering 3% service fee testnet generated 175 berkeley Mina revenue
  • Test balance received in faucet for 16000 $znakes
  • Got 45 feedbacks, 70 game reviews

Roadmap

Our plans on the future quite ambitious — we’re going to deliver the best of ZK games to regular users, bringing our games and attracting devs to join the mission. Here is our vision

June 2024

  • Implement L1 lottery game
  • Finish poker game
  • Working with Auro wallet team finish our token integration
  • Working with Pallad wallet team integrate it’s support to ZkNoid

Year 2024

  • Implement chess, backgammon, other board and card games based on ready SDK
  • Organize game hackathons and attract developers
  • Launch L1 games
  • Make audits & launch mainnet
  • Make long term beneficial connections with bloggers, acquire audience bringing ZK gaming to everyone

Ready to see what would be next? Our journey is not going to slow down! See you in the next navigator’s season!

--

--

ZkNoid

Platform for games with provable game process based on Mina protocol and o1js. Docs – docs.zknoid.io. Github – github.com/ZkNoid. Twitter – https://x.com/ZkNoid