Aztec-Dark-Forest-v0.7 - Warptoad

Contact Details:

Summary:

We want to port Dark Forest and maintain as many of the features, plugins and look and feel of the game. Our approach is to re-use the existing UI by creating an adapter layer that plugs in the contract through Aztec.js. This way we can support the existing plugins and tx queue system out of the box.

Our team has already been building on Aztec for/over the past 9 months, and have gained deep technical knowledge and experience.
We are also fluent in Circom, Solidity, TypeScript, and Noir. And have experience with WebGL and playing Dark Forest in the past :smiley:

In short our approach:

  • Re-create game logic in an Aztec contract
  • Adapt to the existing Dark Forest Hardhat e2e tests to Aztec
  • Create an adapter so the frontend can connect to our Aztec contract
  • Document the new Aztec contract implementation and setup instructions
  • Optimize the game rendering for large maps (as a stretch goal)
  • Configure a new modern LLM for the interactive artifacts (as a stretch goal)

Timeline:

  • Start: ASAP (target Jan 15, 2026)
  • Tech demo before EthDenver (18 February)
  • Functional MVP (Mar 22, 2026)
  • Post-deadline competitive community round (after 22 march-TBD)

Our Team

Technical Approach:

  • Noir-based Aztec smart contracts
  • Frontend architecture and integration strategy
    • Reuse the existing frontend, create ts/js adapters for contract reads/writes to the contract on Aztec
    • Maintain and test plugin compatibility
    • Build a strategy to replace the subgraph system for syncing planets
  • Testing and documentation plan
    • Create reference documentation of all Circom circuits and differences between the Aztec contract.
    • Translate Hardhat tests of the Solidity contracts into Noir for the Aztec contracts
    • Add deployment and local sandbox instructions.
  • Innovations and optimizations

Grant Milestones and Roadmap:

  • 3-5 key milestones to MVP (functional game on Aztec)
    • Aztec contracts (1-2 weeks)
      • Created Aztec contracts
      • Document differences with original Circom circuits / Solidity contracts
      • Deploy scripts
    • Pass tests (~1 week)
      • Translate original tests
      • Translate frontend interface
    • Have a tech demo ready for ETH Denver (we will be there! :smiley: ), 18 February (1-2 weeks)
      • Frontend modified to connect to Aztec backend, fully playable
      • Just usable with taking over simple planets
    • Make feature complete (1 week)
      • Add items like: Spaceships, Artifacts, silver, etc
      • Planet types: Foundries, Spacetime rips, biomes
    • Extra Infrastructure (2 weeks)
      • Speed up syncing game state
      • Plugin marketplace
      • Artifact marketplace
    • Doing 3 competitive rounds on Aztec alpha (3 weeks)(after March 22)
      • Community: Twitter, Discord, support
      • 2 competitive round with a prize pool
      • Leaderboard
  • 2-3 stretch goals
    • Modern LLM for the interactive AI NFTs
    • Optimizations for rendering large maps
    • Create content: tutorials, gameplay, livestream.

Grant Budget Rationale

Total grant amount tequested: $75,000

  • The team (3 fulltime devs 3 months $20,000 each):
    • Jimjim fulltime backend dev: Aztec contracts, Aztec testing, documentation, research, Aztec.js integration.
    • Ben fulltime fullstack dev: Aztec testing, translation/documentation of Circom circuits, translation of frontend and tests, optimization on rendering WebGL
    • Danish fulltime fullstack dev: indexing and infra, frontend-end, documentation, community, WebGL
  • Miscellaneous funding ($13,000)
    • Extra funding for potential content creators
    • Community manager
    • Commissions for example: creating art for planet hats :smiley:
    • Hosting infrastructure
  • Competitive round prize pool
    • 1st round no prizes
    • 2nd round: $500
    • 3rd round: $1,500

Deliverables Breakdown

  • Aztec contracts
    • Convert 5 Circom circuits: Init, Move, Biomebase, Reveal, Whitelist
    • Create the public state / functions
    • Deploy scripts for aztec testnet
  • Tests and documentation
    • Documentation of the Aztec contract and differences to Circom and solidity contracts
    • Rewire test for the Aztec contracts
    • Document setup, deploying, tests, etc
  • Frontend contract interaction rewiring
    • Update reads in ContractsAPI.ts
    • Update 17 contract writes in GameManager.ts
    • Update 8 contract writes in Admin-Controls.ts
    • Update 1 contract write in CreateLobby.tsx

Questions

  • Scalability of Aztec.js logs: We have a large amount of game state that needs to be synced and we might need to have something similar to subgraphs on Aztec.