# Blade Games

This Whitepaper set out to showcase the unique features and opportunities that Blade Games bring to 3 sectors, Gaming, AI and Zero Knowledge technology. The Whitepaper will be maintained and continuously updated by Blade Games' team.

[<br>](https://whitepaper.ambrus.studio/e4c-whitepaper/whitepaper-overview)


# Who We Are

Blade Games is an on-chain game studio and infrastructure provider, built around the WebAssembly and zkVM (zero knowledge virtual machine) tech stack. Games built with our ZK game engine can run their game logic in a zkVM, and settle game results by verifying the ZKP (zero knowledge proof) on L2s.

Our journey started from late 2022 when the team was playing around the intersection of ZKPs and Gaming. We began by building a dungeon game with hidden information mechanism, then quickly tested a few other product ideas in early 2023. By the third quarter of 2023, we had formed a full-fledged team and raised our seed round at the beginning of 2024 co-led by PTC Crypto and IOSG Ventures.&#x20;

Our ZK game engine, zkUnity was then released in Q1 2024 with a growing ecosystem of 5 games. We also introduced the "Play-to-Mine" concept through the release of our core strategy game, *Dune Factory*. Our campaigns with Arbitrum, Mantle, 0G Labs, Delphinus Labs saw a total of 400,000 registered users and a great amount of incentives being distributed to our community.

At this date, Blade Games is evolving into a game and AI agent ecosystem, where you can interact with our AI agent on social media, deploy different strategies via agents to play-and-mine, and even go cross-chain to use your existing game profiles to win extra mining incentives and seasonal rewards.&#x20;

Our new game will be released in early Q1 2025, please stay tuned!


# Key Partnerships

Arbitrum: We are one of the few gaming teams that received official [Arbitrum grant](https://x.com/arbitrum/status/1800929677290156233) in Q1 2024 and are consistently featured by their social media and game streaming accounts.

Mantle: We are backed by Mantle Ecosystem Fund and secured a [$100,000 incentive grant ](https://medium.com/@BladeGames/dune-factory-beta-test-is-live-on-mantle-0726b0d2c86b)from Mantle to drive user engagement and incentivize players.

[0G Labs](https://x.com/0G_labs/status/1810411156634562665):  We have co-hosted the FOCG Summer Campaign with 0G Labs in July 2024. 741,192 unique active wallets participated, and 1,165,776 transactions were processed on the testnet.&#x20;

Delphinus Labs: Key partner of our game engine and ZK game development. Players playing our games will receive their points rewards.

Hyperplay: Hyperplay is a leading crypto game store and wallet solution provider and Dune Factory is featured as one of their partners.  &#x20;

[Kaia](https://chainwire.org/2024/08/29/kaia-announces-mainnet-launch-with-lines-next-web-sdk-to-accelerate-consumer-adoption/) / Line: We have been accepted into their Kaia Wave Pre-launch program. Integrating with their SDK and being featured on Line Dapp Portal gives us access to Line’s 187 million monthly active users player base.


# Our Team

Our team comes from Tencent, Shanda Games, Konami, Matrixport, Dell and other leading internet companies.&#x20;

We have a variety of expertise in game production, cryptography, DeFi and token design.&#x20;

Our core contributor, 0xBrawler previously built a crypto media company with over 200k subscribers, before serving as an advisor for a few game studios. He then co-founded Blade Games with a few other core team members in 2023.&#x20;


# Gameplay, Play-and-Mine


# Dune Factory Gameplay Guide

Video Guide:\
<https://x.com/BladeGamesHQ/status/1847255328364409290>

<figure><img src="/files/0xifat4Sfm2N6AKp0MNg" alt=""><figcaption><p>Live Gameplay Screenshot During Season 1</p></figcaption></figure>

Resources and Items

<figure><img src="https://miro.medium.com/v2/resize:fit:165/0*HHiwUnT_ujEw-DdS" alt="" height="117" width="132"><figcaption><p>Stove</p></figcaption></figure>

Stove is your main base to defend.

<figure><img src="https://miro.medium.com/v2/resize:fit:180/0*GOgvJCcak63xuVCg" alt="" height="150" width="144"><figcaption><p>Bag</p></figcaption></figure>

Bag is used to keep items that are not needed at the moment **(sometimes the turret will automatically be stored in the bag)**.

**Processed Materials**

Processed Materials are used to upgrade Turrets. You can get Processed Materials by crafting and by conquering stages.

<figure><img src="https://miro.medium.com/v2/resize:fit:80/0*KorG3VX_0Kuc4rZ0" alt="" height="64" width="64"><figcaption><p>Stick</p></figcaption></figure>

<figure><img src="https://miro.medium.com/v2/resize:fit:80/0*khL9WjQ6k7QifWag" alt="" height="64" width="64"><figcaption><p>Beads</p></figcaption></figure>

<figure><img src="https://miro.medium.com/v2/resize:fit:80/0*pmq0eMz9CzCVc7Np" alt="" height="64" width="64"><figcaption><p>Box</p></figcaption></figure>

<figure><img src="https://miro.medium.com/v2/resize:fit:80/0*7gY4whNvnyBlZLlF" alt="" height="64" width="64"><figcaption><p>Powder</p></figcaption></figure>

<figure><img src="https://miro.medium.com/v2/resize:fit:80/0*xMBh5fH0WcFQZj-Q" alt="" height="64" width="64"><figcaption><p>Horn</p></figcaption></figure>

**Raw Materials**

Raw Materials are used to craft Processed Materials. They have chance to drop when a creep is killed. Every 20 Raw Materials can be crafted into a Processed Material.

<figure><img src="https://miro.medium.com/v2/resize:fit:80/0*3J_bvLHazuApIjYf" alt="" height="64" width="64"><figcaption><p>Raw Stick</p></figcaption></figure>

<figure><img src="https://miro.medium.com/v2/resize:fit:80/0*4vQm6Mhc-fyAMSVg" alt="" height="64" width="64"><figcaption><p>Raw Beads</p></figcaption></figure>

<figure><img src="https://miro.medium.com/v2/resize:fit:80/0*lj-9K_sq03crEfRw" alt="" height="64" width="64"><figcaption><p>Raw Box</p></figcaption></figure>

<figure><img src="https://miro.medium.com/v2/resize:fit:80/0*bcgydrzDUW1nmUx-" alt="" height="64" width="64"><figcaption><p>Raw Powder</p></figcaption></figure>

<figure><img src="https://miro.medium.com/v2/resize:fit:80/0*E5KHYpgJJMqQzq3H" alt="" height="64" width="64"><figcaption><p>Raw Horn</p></figcaption></figure>

**Turrets (You can find detailed explaination in Resources page)**

Turrets are the main force to defend your base. All Turrets are upgradable.

**Click “E” to turn the Turrets around**.

<figure><img src="https://miro.medium.com/v2/resize:fit:120/0*_iIkv3f7wjl3-cis" alt="" height="95" width="96"><figcaption><p>Area Damage</p></figcaption></figure>

Area Damage attacks enemies in surrounding areas

<figure><img src="https://miro.medium.com/v2/resize:fit:119/0*blTx_E0c2U79thvX" alt="" height="99" width="95"><figcaption><p>Laser Weapon Robot</p></figcaption></figure>

Laser Weapon Robot shoots enemies in front of it **(Click E to turn the turrets around)**

<figure><img src="https://miro.medium.com/v2/resize:fit:118/0*tZhBC9tfZGlL3fbc" alt="" height="101" width="94"><figcaption><p>Cannon</p></figcaption></figure>

Cannon attacks the creeps in a single direction **(Click E to turn the turrets around)**

## How to Play <a href="#id-5351" id="id-5351"></a>

<figure><img src="https://miro.medium.com/v2/resize:fit:875/0*Cjyqp4SD2_2jcCjM" alt="" height="315" width="700"><figcaption></figcaption></figure>

1.Start laying your building (highlighted in red) around the blue line which is the creep’s walking route. The other icons on the bottom taskbar in the bag are your resources indicators that can be used to upgrade turrets.

<figure><img src="https://miro.medium.com/v2/resize:fit:875/0*5nu-i156o3_o6pI6" alt="" height="314" width="700"><figcaption></figcaption></figure>

2.Each stage begins in a paused state. Click the play button at the top right of the screen and the monsters will start to spawn.

<figure><img src="https://miro.medium.com/v2/resize:fit:875/0*tU3c1Lz1bHDD18KF" alt="" height="314" width="700"><figcaption></figcaption></figure>

3.You can place all turrets around the creep path and they will attack the creep. Once killed, creeps will drop materials. Click those materials to pick them up, and use them to craft processed materials for turret upgrades.

<figure><img src="https://miro.medium.com/v2/resize:fit:875/0*XiHbkeI8Go85224Q" alt="" height="314" width="700"><figcaption></figcaption></figure>

4.Once the number of creeps you’ve killed reaches the displayed amount (highlighted in red), you can proceed to the next level. Please click ‘Next Stage’ to enter the next stage.

<figure><img src="https://miro.medium.com/v2/resize:fit:875/0*ksFVTCgBQSNcaA1z" alt="" height="313" width="700"><figcaption></figcaption></figure>

5.After gathering enough resources from slain enemies, you can use the raw resources to craft items. Once you have processed materials, you can click on the turret and select to use the corresponding processed materials (highlighted in red) to upgrade it.<br>

#### Extra Info

\
**1. Click Q or E to turn the turrets around.**

**2. Use the WASD buttons to move the game screen.**

**3. Right-click on the turret to cancel its placement.**

**4. Bullets fired from the turret will be blocked by walls.**

**5.If you purchase something in the mall, go to the mailbox to receive it, and then the gift pack rewards will automatically go into your backpack.**

**6.When you find it challenging to defeat monsters, don’t rush into the next level immediately after completing the current one. Instead, focus on killing more monsters to gather materials and upgrade your turrets, which will make it easier to tackle the next level’s challenges.**

<br>

<br>


# Play-and-Mine (Please Wait For New Season)

## Play the Game, Mine Treasures and $xBlade! (Finished) <a href="#faef" id="faef"></a>

Play *Dune Factory*: <https://df.bladedao.games/>

Players can now access the **play-to-mine features** in Dune Factory. There are currently 3 ways to earn $xBlade, which we will explain below. Additionally, we have partner incentives from **Mantle, Delphinus Lab and OKX wallet available for our players**!

**xBlade Mining**

**Prize Pool:** 18,000,000 xBlade

**Venue:** Click “Mining Pool” in [*Dune Factory*](https://df.bladedao.games/)

<figure><img src="https://miro.medium.com/v2/resize:fit:875/0*wHNDmpS0fcjyxq5_" alt="" height="325" width="700"><figcaption></figcaption></figure>

**Duration:** 1 Month (October 2024)

**Ways to earn:**

* Simply play Dune Factory
* Get a monthly pass in [*Store*](https://df.bladedao.games/) or through community events
* Purchase items in [*Store*](https://df.bladedao.games/) to accumulate Achievement Points (AP), which can boost mining efficiencies

**Boost your mining efficiency:**

* Conquer more levels or level up turrets to unlock APs in the Achievement section
* Purchase items in [*Store*](https://df.bladedao.games/)
* Check the Achievement section in[ Dune Factory](https://df.bladedao.games/) for more ways to boost your Achievement Points

<figure><img src="https://miro.medium.com/v2/resize:fit:875/0*m8il9xKElZoc-PZS" alt="" height="381" width="700"><figcaption><p><strong>Note: The numbers here are STRICTLY for illustrative purposes</strong></p></figcaption></figure>

**xBlade Utility:**

* xBlade can be redeemed for Blade Games Token upon TGE

**Partnership Incentives**

Blade Games’ partners are ready to roll up their sleeves and mine some fun for the *Dune Factory* Beta!

While enjoying the game, remind yourself to keep an eye on our [community announcements](https://discord.gg/bladegames)!

**Partner Incentives are in** [**Blade Games Portal**](http://portal.bladedao.games/)

In [Blade Game Portal](https://portal.bladedao.games/), you can enjoy daily rewards from Blade Games and participate in a series of campaigns to explore more incentives.

We had past events with: Mantle ($MNT rewards available), OKX wallet (cash and token giveaways), Delphinus Lab (zkVM company backed by Binance Labs and OKX ventures). Please stay tuned for more!

\ <br>


# Resources

Here you can find a list of units and materials needed to navigate through the game.

![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXcVhgFFycbmvfcMqVP9bF9MWfknkORO9lUikkmi2rA0jcpGSwDIeBTpD80u-JIYo0NtiAHvfl9kqbRYO7NR9smbaOMd4g4HZoWu3k1Q1fRFGBYMptXNHOI6nVtDVtlsZrlNgwUguroFn5Ua5ilWo52kYMI?key=7AljlCDdwVanGqQc_FomWQ)&#x20;

Main Base: The target you need to defend.

![](/files/jV0jcS8AcsqhmUB2qsVI)

Spawning Point: This is where enemies come from.<br>

![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXex_tQuS44JS6s9kAeL0tdNnYSMsKCJaiApItxKDJVm-sqzMOlN76U9FHNq4m6cqXv-zHTPEcP4Ba5C3i-DRRbm5wDwL85DWJ8S0j3k8oUtMUtH-XLVOe9Kgb3TsdN0XuxEAOUyhBvuwwUXt3xVCdquehFK?key=7AljlCDdwVanGqQc_FomWQ)

Backpack: Used to store items that aren't currently needed (towers may automatically be stored here).

<br>

**Processed Materials (Used for Tower Upgrades):**<br>

&#x20;![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXdNWTe7iIsJPckk8e0aGFNbT5pvRFUXEEc5n2XO8Og7ANn1L2zfQbYxNV40DEi26vBFCLrOqMR8-a-x81OcJWYmExPlo_PjZxiJBX2TgKYl4J0w0kYf2ymrRs14govFeJc_ira9sQ2OHs6hMMhWkg3SWqE?key=7AljlCDdwVanGqQc_FomWQ)              ![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXcyYaIPIdGhLCTepNfm3pbTCDBFaA7s6q1lhljoGAP25q16Am1YNXDrrgGFN7P-x6uby-zwNXiz5v3Ivv3n5Hv5ovVuaxOsciJ9bteGF9uFzUlKPOqQcTdCT4xEX-VxZiPKMZFKDpK5a0_o7jiYwGSRTysI?key=7AljlCDdwVanGqQc_FomWQ)               ![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXfXnaw4pW8k4vdxTMmJA5CvQLA834mpssaa-Mm42m35VGmjWnCF-tI8kZaO8iwlby0bLrAdSUuo7dtr1lvHvRSHD6m477rDfHGTsHxzS6kKxZOO4TdWZGxzlUkvuzAjLTujyzQea5z7o2gqYr5Dtk0xQdAG?key=7AljlCDdwVanGqQc_FomWQ)                 ![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXdUpJ4WgI3e0-mpd09XQ4DNUFtv5m9vr-dLH1jKiuHuu1BPH_Vw1F_9irH96MJSDXNn_xXeg7yS9tO58COff4Z_xAd9TsawqhiK-ezt74BYTkQiuZgr5MK5VIOYVmgx8YXoBAIJ7VqIE_nSdwd6G1ZqW20?key=7AljlCDdwVanGqQc_FomWQ)               ![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXdAiMyKTpuQsPeV6A-BIKNCoax1LOFA_lkYUZLC0NX8rwZSbKbmL-kvSzdDDPMsieslW4DphjD-tbdVD2GEQ7zRrgMiSrIAFqMXEtRgzUH5Xhq5K1llhSrs5LdZGuZ_RkZ_6vWa3CHLZ5_pKA1_ax0UXczy?key=7AljlCDdwVanGqQc_FomWQ)

&#x20;   Stick                        Bead                        Box                        Powders                    Horns

\ <br>

**Raw Materials (Used to create Processed Materials):**<br>

![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXcXK-fE56l8BAokJ0q18uG5tjGzc0oRzN3XpJw4nk7d-FwAKoP_vBPvXrodWr3Wc3BpnAtcLP8uASKytx1awVrtbY80hAEInDQCoKYknFg4Xv8-udp-jgo9K17kGPmlKL-Qo0iXDZgCPOp8II-Rdtammtv3?key=7AljlCDdwVanGqQc_FomWQ)&#x20;

Raw Sticks: May drop when killing monsters. Every 20 raw sticks can be crafted into 1 processed stick.<br>

&#x20;![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXcHlms-w4IgJYDkR9G-ALn5lqAXu6jrNY3m_pmJgOLHWEsomgs8i46on0tmQY2hL8F1T5NQWSyqxgmjJTnXNw37G_nQbFt8GQG1NviikRhB7gK1TTFuDtpZOgPh911_fswTly8weAhx58sCUxKeqOFPomB0?key=7AljlCDdwVanGqQc_FomWQ)&#x20;

Raw Beads: May drop when killing monsters. Every 20 raw beads can be crafted into 1 processed bead.<br>

![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXcV_6nOJ73eDK4GgXah17A9esFlVJs8IwunEaMMIjlMPVeNyj9e2G1XGN65AuQOc8_MKO8_HdeTBlC1TXl1711-uwBY_HKDdSCJCBXDwut_dPna_l8tMLU14rmJiFr_Bb9CRXFPfswAfHmN0Ph2r3yYkNc?key=7AljlCDdwVanGqQc_FomWQ) &#x20;

Raw Boxes: May drop when killing monsters. Every 20 raw boxes can be crafted into 1 processed box.<br>

&#x20;![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXcmHdxi0eub8_sl-yzqAwbygwh0nIefWQ9D025en7C1-FF93W8k_D2yeqSVx9v9mlAmhcvcrVbCYg2afWtP-ovnyE_VDNtlAsM2ULfiqv7X8rFVV2KtAW9qDj7rfPkD29An5I5j1wSaaT9L5Gh0fomCb5M?key=7AljlCDdwVanGqQc_FomWQ)&#x20;

Raw Powder: May drop when killing monsters. Every 20 raw powders can be crafted into 1 processed powder.<br>

![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXew_fg0JzR_Ua2xgt3k6ZtIZKv4fVbeZDAXzsbxVYl7ZFTaPktrCDtc3DD4gZ-op9heWU608TFBbIXrxGtBt6rYvFs-t1ENswhK0BpsMawLfGZGUpTJPGuO52GT3d9ZtQCVf0w4UuC1j4e4jLpzmUmS6C5v?key=7AljlCDdwVanGqQc_FomWQ)&#x20;

Raw Horns: May drop when killing monsters. Every 20 raw horns can be crafted into 1 processed horn.

\ <br>

**Turret Types  (Press Q or E to rotate tower direction)**\ <br>

![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXe2ZCEsHmFzgOodeinAFGApoCsvTDlKWTHc8CRHaQGXzx_vJBvwjQDazteoPMEDe88hOc-90d1vG-AaHa4eNO7N3NUcuKXzEVdDVHhu4KG7WASTYtKkWtj8yIyyRkFw5_o9iQ2pzecTNxpijJJ9l7-5bNk?key=7AljlCDdwVanGqQc_FomWQ)

&#x20;Aerial Damage Tower: Can attack enemies in surrounding areas

<br>

![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXdaKsHukBXYNQDWDB1x78wE4rJ7Cgt5_bhdg-9RNPO1KftHXbo_SvxMy4PUqbsWcsEAq1e6s9b6faSE8DSkgoxO2w8vJhMnPha5aC0DPjaKAi0rnznIHZCTXIHcnGgRKn5MaiExF5MTqtN_LZNzzg9TLtY?key=7AljlCDdwVanGqQc_FomWQ)

Laser Robot: Shoots enemies in a straight line of laser

<br>

![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXfpXDK9zIu_P91XChrd6Cx4HulLYST135TbS2eiZEHHUad35TzgmYZmiWFAWsZGEUa3WcDzI4CX8HOHVZA5DFiz7H2XvSMKvDysJ9YsKQMwQuYuk5nu0PUtaUWiawibyeOUX-3h7d20S4JFEYYvSas5cs_9?key=7AljlCDdwVanGqQc_FomWQ)

Cannon: Attacks enemies in the direction that the cannon is facing towards

<br>

![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXcn-4eNZ36w1MEmb1iXFT0ZS0A_a-NQrWqv1iti1_2DfCbl_6PMml8Pklk7QnJ2_lff8D65Do5myhwr6IC1uM8zDPCL07lqymDYEncD5aZTfoaXPOwoRHPO9bCC1SFN5tgXxvDq_NvCLQVZoEsZFliqE7A?key=7AljlCDdwVanGqQc_FomWQ)

Plasma Ball: Generates electrical arcs that damage nearby monsters

\ <br>

![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXfCALRPB_b4k14Ia8_6JIvWZpgPK-1aXtFZFC-SNjSsulrDACLYdY3Z1l5CMCBEpLWp6O1O3THpNvN8DDw2oIBG7bkCMcqKRJR2J2a6SbHFyRGRvb6lSiK6K5pxO2u1POt7Y7etBogJzqm7hxvYZmDUl_o?key=7AljlCDdwVanGqQc_FomWQ)

Howitzer: Can launch a row of shells in a designated direction

<br>

**Advanced Components (Turret Power-ups)**

These components do not deal direct damages to monsters, they provide buffs/debuffs to monsters or turrets.

![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXeZ6gE11GAz9CUVGRAyhyyBoQlzVh17arDl28hZzPI3HyQ_egOI2jMQ9vG3_WdMGc4VX4QOYKOvfDUjMQMUAQKv6O1vh1GDoH1Or0T4zznnsqqDe9Akp_HTB9nJ9vOfv4Aai1ujVRNL9Silm-kuLJAbSDn2?key=7AljlCDdwVanGqQc_FomWQ)

T-Rex: Weakens enemy abilities and reduces their damage to the base

![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXdfPaWNhpEk6P2BKfuSx63WLf-2WgJziBNEkkig5mZMKU86JdljkiCdEhaC1F4-GGOLzuzagGf-cRAtWiboIzlS66Km8Sh2nBQHlzphclffJ0i17ziyRb66uai8LkJ7vmOpwdFzB8dpWEVnSiXdkMp_-Jgr?key=7AljlCDdwVanGqQc_FomWQ)&#x20;

Volcano: Applies a burning effect to nearby turrets’ bullets, causing continuous damage as monsters move

![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXdjW9B2mtIEzq6sbtbnbD3Y30Gj0jsEIwGYh5uU__KOxrTgLdvDktcj97I3F6yqJlCX3GwBzlXiPydYdEc3g499EG83Q8DaPAlwRQnTbQ31GV-aNxRCfOmGBKtYbEDp5_F9wOGEB-P8RwMSPk2TwabVlWB8?key=7AljlCDdwVanGqQc_FomWQ)

King of Vomit: Applies a slowing effect to nearby turrets’ bullets, reducing monsters movement

![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXckZAiJ5xRW0n3ZNfMhAtZhJ9dzzKe846o5OFLEr6jFIdfsVPOotDbCvJLDkbNOhVpKdzGnOqI5zQUvmLczJeni8D3tN631pxjuvlnTZ7CTZEDc-cLinhwjxuwzUOmp5MY5qemx0cvu6hzBuW5dgsMI6KU?key=7AljlCDdwVanGqQc_FomWQ)

Water Gun: Provides a 2x increase of the output of turret bullets or lasers nearby

<br>


# Monster Compendium

| Name             | Appearance                                                          | Species    | Description                                                                                                                                                                                                                                 |
| ---------------- | ------------------------------------------------------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Slime            | <img src="/files/GoGWGbV0lYjiXBiPrlYU" alt="" data-size="original"> | Gelatinous | Invertebrate Basic Monster: A common low-level monster in the game. It has a round white body with red spots, and a single eye exposed. It possesses low attack power and HP , and is weak against  both fire damage and explosive attacks. |
| Poison Spider    | <img src="/files/MWiGTOxEIUXBJg9OJ5rd" alt="" data-size="original"> | Animal     | Blue Poisonous Spider: A high HP Monster. It is vulnerable to explosive and fire attacks.                                                                                                                                                   |
| Bouncing Blossom | <img src="/files/ewn1KA2u7wvAwKip551D" alt="" data-size="original"> | Plant      | A Jumping Plant: A plant that moves by jumping. It is weak against Howitzer and Lasers.                                                                                                                                                     |
| Alien Mutation   | <img src="/files/6xwPsOStLuFmLvBUwuXp" alt="" data-size="original"> | Animal     | Highly mutated aberrations of grotesque, mysterious form. Rapid movement speed with charging ability.                                                                                                                                       |
| Armored Headfish | <img src="/files/1RPvlH9k3iknOdaFpnUe" alt="" data-size="original"> | Armored    | Covered in a full shell, especially hard on the front-facing head. It cannot be attacked from the front. It is sensitive to high temperatures, has weak resistance to fire damages.                                                         |


# Private Test (Finished)


# Must-knows

All you need to know about Dune Factory Private Test

**Requirements to play the Test:**

Hold a Primary Invite Code

**Requirements to pre-register the Beta S1:**

Hold a Secondary Invite Code

**Private Test Starts at:**

8am UTC, May 1st, 2024

**Private Test Ends at:**

8am UTC, May 12nd, 2024

**Private Test Entry:**

{% embed url="<https://dunefactory.bladedao.games/>" %}

**Zealy Quest Entry (for Primary Invite Code Holders only):**

<https://zealy.io/cw/bladegames/invite/QHdz2F-5jonUoO_ZUofUU>


# Invite Codes

Hold Invite Codes to play the game and win Airdrops!

**Primary Invite Code Brief**

Introduction

* There are only 500 Primary Invite Codes in total, distributed to Blade Games’ partners and in Blade Games’ Community (X and Discord)

Ways to get Primary Invite Code

* Follow [@BladeGamesHQ](https://twitter.com/BladeGamesHQ) on Twitter and join our [Discord](https://discord.gg/bladegames) for chances to get the Code
* Fill in this [Form](https://docs.google.com/forms/d/e/1FAIpQLSeInmtvFBmElLN4AjEFp4rKdfSwyS7PAkYJgeovW137zXM6AQ/viewform)

Primary Invite Code Utility

* Primary Invite Code Holders are invited to play the Private Test. Playing the Private will bring players Achievements Reward in Beta Test
* Primary Invite Code holders are eligible for a 2000U prize pool in Zealy, just by finishing some social quests
* A Primary Invite Code could generate 10 Secondary Invite Code. Each Secondary Invite Code could allow one user (wallet) to pre-register the Dune Factory Public Test Season Ⅰ. Upon one pre-registration completed, the following Primary Invite Code Holder will win a reward of 10 USD

***

**Secondary Invite Code Brief**

Secondary Invite Code Utility

* A Secondary Invite Code allows one user (wallet) to pre-register the Dune Factory Beta Test
* Secondary Invite Code Holders will win Achievements Reward in Beta Test


# Dune Factory Public Test

The public test for Blade Games is live during October to early December 2024. You can find out more down below.&#x20;

Mantle Season 1: <https://medium.com/@BladeGames/dune-factory-beta-test-is-live-on-mantle-0726b0d2c86b>

Arbitrum Season 1 and 2: <https://medium.com/@BladeGames/dune-factory-beta-test-is-live-4591a676b6d9>


# Blade Games AI Agent Overview

When we first started out building on-chain games, we envisioned a new type of game that would be played on AI agents on-chain instead of human players, a kind of virtual world that is populated by agents and governed by smart contracts. This seemed far-fetched in 2022, but the infrastructure and community have matured enough in 2024 to bring this into reality.

We are testing out and building on a variety of existing frameworks and infrastructures. This include the G.A.M.E framework from Virtuals Protocol (for overall agent actions and logic), the ElizaOS framework from ai16z (for agent interactions on social media), and other AI infrastructure such as 0G Labs.

We already have a working agent, and have previously built Machine Learning based on-chain game that involves training new agent strategies for PvP purposes.

Our vision is to build games that are primarily playable by AI agents, with rewards stored on-chain and distributed via smart contracts verification. We see ourselves breaking new grounds for an AI society where agents go beyond just social media interactions, but actually strategize and fight over resources.


# Our Design Framework

1. AGENT INITIALIZATION ARCHITECTURE

A. Character Consciousness Layer

* Initialize unique personality profiles through the Agent Prompting Interface
* Create a persistent memory footprint via Long Term Memory Processor

B. Building Behavioral Foundation

* Define core character motivations and goals
* Establish relationship parameters with other NPCs/players
* Set initial knowledge boundaries and learning parameters

&#x20;

2. PERCEPTION AND RESPONSE SYSTEM

A. Environmental Understanding

* Perception Subsystem processes real-time game world data
* Analyzes player movements, actions, and environmental changes
* Creates contextual awareness for decision-making

B. Strategic Response Generation

* Strategic Planning Engine evaluates multiple action possibilities
* Weighs decisions against character personality and past experiences
* Generates appropriate responses based on current context and memory

&#x20;

3. MEMORY AND LEARNING FRAMEWORK

A. Knowledge Evolution

* Develops new behavior patterns based on successful interactions
* Updates character personality based on significant events
* Refines decision-making through accumulated experiences

&#x20;

4. INTERACTION DYNAMICS

A. Player Engagement

* Dialogue Processing Module handles natural conversations
* Adapts communication style based on relationship history
* Maintains conversation coherence through memory context

&#x20;

5. SCALING CONSIDERATIONS

A. Multi-Agent Management

* Coordinates multiple AI agents efficiently
* Manages resource allocation across agent networks
* Handles concurrent agent interactions

B. World Integration

* Syncs agent behaviors with the game world state
* Maintain consistent character development
* Scales system based on world complexity


# How AI Agents Drive Revenue in the Ecosystem

There a few mechanisms that agents can drive revenue production.

**1. Taxation of in-game economy**

When AI agents interact with players or other AI agents, certain in-game taxes and percentage of transactions will be retained as that season’s final rewards or used to buy back $BLADE.

&#x20;

**2. Training and fine tuning of models**

If users are able to fine tune models for better agent performance, they can potentially sell the right to use, or the model itself on the model marketplace.

&#x20;

**3. Usage of other infrastructures and their respective incentives**

If agents engage in on-chain activities related to the usage of Data Availability layers, zkVM and other L1/L2s, airdrop plans will be arranged between the infrastructure project and Blade Games’ users.


# Blade Games AI Agent Use Cases

**Social Network Influence Systems for NPCs**

NPCs will be able to maintain relationship networks that dynamically shift based on player actions. Actions affecting one NPC will ripple through their social connections, creating emergent storylines. Because some of the main NPCs in AI games will have their own social media account, the storylines will be generated from the new content and interaction posted.

Every NPC remembers past interactions and shares information with their social circle, similar to Rimworld's social interaction system but with deeper consequences.

&#x20;

**Procedural Quest Generation**

AI generates contextually relevant side quests based on the player's current status, location, and past choices. Missions can dynamically adapt difficulty and rewards are based on player performance metrics.

For example, think No Man's Sky's procedural mission system, but with deeper narrative coherence.

&#x20;

**Automated Trading Bot**

Users can create trading bots with Blade Games’ AI agents to automate in-game asset trading and portfolio management. By providing training materials on topics like asset allocation and arbitrage, users can customize bots for different strategies based on their risk tolerance and goals.

Simple dollar cost averaging is easy to implement, while more complex tactics like mirroring volume weighted average price targets over time require greater bot discretion. Overall, this allows users to deploy customized bots that opportunistically trade and manage portfolios according to their in-game goals and investment targets    .


# Blade Games AI Agent Plan

We are actively testing the deployment of AI agents and related assets on Base/Hyperliquid/Solana. These plans cannot be disclosed yet, but we will update our community throughout December 2024, January 2025.


# Games Ecosystem That You Can Play

**We are actively Incorporating on-chain mechanisms to deploy AI agents into these games.**

**Game (Tower Defense):**&#x20;

* Arbitrum version: df.bladedao.games
* Mantle version: mntdf.bladedao.games

**Meme Party Game:**

* <https://disco.zkplay.app/>

**ZK Mining Game:**&#x20;

* <https://automata.zkplay.app/&#x20>;

**Casual Telegram Game:**&#x20;

* @coinpupsbot&#x20;

**SLG Game:**&#x20;

* <https://x.com/0xpioneer>


# ZKUnity Guide


# zkWASM

### What is zkWASM?

zkWASM stands for **Zero-Knowledge WebAssembly**. It’s a fascinating technology that enables developers to write zero-knowledge applications in their favorite programming language and run them in any environment that supports WebAssembly (Wasm). Let me break it down for you:

1. **WebAssembly (WASM)**: Wasm is a portable virtual machine that runs in web browsers, cloud platforms, and blockchains. It’s an open standard binary code format similar to assembly. Initially, it aimed to provide an alternative to JavaScript with improved performance for the web ecosystem. [Nowadays, it’s used in distributed cloud and edge computing, even running customized functions on platforms like AWS Lambda, Azure, and Open Yurt](https://github.com/DelphinusLab/zkWasm).
2. **Zero-Knowledge WebAssembly (zkWASM)**: zkWASM takes the concept of zero-knowledge proofs (ZKSNARKs) and applies it to the bytecode level of a virtual machine. Instead of implementing ZKSNARKs directly on the source code, zkWASM writes the entire WASM virtual machine in ZKSNARK circuits. This way, existing WASM applications can benefit from zero-knowledge proofs without modification. [It ensures secure and verifiable trustworthiness, making it useful for privacy-preserving computations](https://blog.icme.io/zkwasm-state-of-the-art/).

zkWASM allows developers to execute code and verify it without re-running the entire computation, making it a powerful tool for privacy and security in various contexts. 🚀

### How it works

**Zero-Knowledge WebAssembly (zkWASM)** combines the power of WebAssembly (WASM) with zero-knowledge proofs (ZKSNARKs) to achieve privacy and security. Here’s how it works:

1. **Compilation to ZKSNARK Circuits**:
   * Developers write their code in a high-level language (e.g., Rust, C++, or Solidity).
   * The code is then compiled to WASM bytecode.
   * zkWASM takes this WASM bytecode and compiles it further into ZKSNARK circuits.
   * These circuits represent the entire program’s logic and data flow.
2. **Execution and Verification**:
   * A user runs the zkWASM program on their local machine or a remote server.
   * During execution, the program generates proofs for specific computations.
   * These proofs are cryptographic evidence that the program executed correctly without revealing any sensitive information.
   * The user can verify these proofs without re-executing the entire computation.
3. **Privacy and Trust**:
   * zkWASM ensures privacy by allowing users to prove statements (e.g., “I have a valid signature”) without revealing the actual data.
   * It’s useful for confidential transactions, private smart contracts, and secure data sharing.
   * Since ZKSNARKs are mathematically sound, users can trust the correctness of the computation without seeing the details.

In summary, zkWASM enables privacy-preserving applications while maintaining trust and security. 🛡️🔒


# ZKUnity

### What is ZKUnity

ZKUnity is a game engine powered by Zero Knowledge Proof technology. It is open-sourced and developed by Blade Games.&#x20;

ZKUnity can support real-time game categories such as tower defense, RPG, and game genres such as idle games, trading cards, and interactive novels. The game’s logic is run within zkWASM, a “zkServer” to handle computing, and the game result is posted as a zkSNARK proof. We also support languages such as C++, Go, and Rust, with C# and Unity support coming soon.

With a typical 6-minute, 100 monster wave tower defense game, the proof generation time is \~3 minutes. This is a preliminary result, and we are improving the proof generation time quickly.

Game studio partners of ZKUnity include:

[Dune Factory](https://twitter.com/BladeGamesHQ): a base building + tower defense strategy game

[0xPioneer](https://twitter.com/0xpioneer): a survival game similar to “Don’t Starve Together”

[Craftpunk](https://twitter.com/craftpunk_FOCG): an open world space-themed MMORPG with moddable spaceships and procedurally generated map

### Paradigm

ZKUnity implements the paradigm of FOCG (Fully On-Chain Game), based on zkWASM. The following diagram illustrates the relationship between the zkWASM game engine and the blockchain.

<figure><img src="https://miro.medium.com/v2/resize:fit:764/0*O6CBlBKUtAHSS_dq" alt="" height="444" width="700"><figcaption></figcaption></figure>

We call this type of game a trustless game.

For a deep understanding of the paradigm transition, please refer to <https://medium.com/@BladeResearch/blade-games-releases-its-primer-on-trustless-game-engine-909eca075ee2>


# Architecture

### The Architecture of ZKUnity

Here is the architecture of ZKUnity:

<figure><img src="/files/U8PLKNlQV0CPbmuRth3t" alt=""><figcaption></figcaption></figure>

### Components

As you can see in the above diagram, ZKUnity is composed of some components:

* Compiler
* zkServer
* Game engine SDKs

We supply integrated SDKs with Unity, Unreal, Bevy, React, and other game engine frameworks, therefore, game developers can use the tech stacks they feel familiar with.

Then, We use dedicated compilers to compile the core logic of the game code to zk code of ZKWasm, RiscZero, or other ZKVMs.

We use zkServer to encapsulate the zk bytecode part with the runtime part (e. g. C# runtime for a Unity game).

Here is the difference between the traditional way and the ZKUnity way:

<figure><img src="/files/fSGNMScBPVuK08PZ9jIV" alt=""><figcaption></figcaption></figure>


# MVC Programming Pattern

### Using MVC for FOC Game in ZKWASM <a href="#de10" id="de10"></a>

#### Brief of MVC <a href="#id-386e" id="id-386e"></a>

The Model-View-Controller (MVC) pattern, while traditionally associated with web and enterprise application development, can also be applied to game development, albeit with some adaptations. Here’s how the MVC components might be interpreted in the context of game development:

**Model:**\
In game development, the Model represents the game’s data and logic. This includes the game state (like the score, level, and player stats), game objects, and the rules that govern the game world. The Model is responsible for managing the data and the state of the game, and it typically doesn’t have any knowledge about how this data will be presented or displayed.

**View:**\
The View in game development is concerned with presenting the game state to the player. This involves rendering the game graphics, playing sounds, and displaying UI elements like scores, health bars, and menus. The View observes the Model and updates the visual and auditory representations of the game world to the player. In many game engines, this might be encapsulated within the rendering engine and the UI system.

**Controller**\
The Controller interprets user input from keyboards, mice, gamepads, or other input devices, and translates it into actions within the game. For instance, when a player presses a button to make the character jump, the Controller would handle this input and communicate the action to the Model. The Controller in a game acts as a mediator between the input devices and the game logic.

<figure><img src="https://miro.medium.com/v2/resize:fit:764/0*nxuWokb8URVl5KP1" alt="" height="532" width="700"><figcaption></figcaption></figure>

Applying MVC in Game Development has considerable benefits:

1. Separation of Concerns: MVC can help in organizing code and separating the game logic from the user interface, which can make the development process more manageable and the code more maintainable.
2. Flexibility: MVC can allow different views to be created for the same model. This can be useful in games that offer multiple perspectives or need to support various display modes.
3. ZK friendly: By separating game logic from presentation, the model is the only part needs to be trustlessly executed. By putting the model into ZKWASM, the core game mechanics are naturally proved as the game runs.


# Demo - a roguelike card game

There is a roguelike card game in the repository: <https://github.com/riddles-are-us/trustless-browser-sandbox/tree/td>.

This card game itself is a simple card battle game. It is a good start to demonstrate the key ideas behind the ZKUnity.


# Prerequisites

Some prerequisites should be filled in before compiling the demo code.

### Install Rust

```
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
```

### Install \`wasm-pack\`

```
curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
```

### Install nodejs and npm

Please refer <https://nodejs.org/en/download/package-manager> to install nodejs and npm.

If in the following steps, your OS complains that some tool is missing, please install it regarding the prompts.


# How to run

Clone code

First, please clone the code from: <https://github.com/riddles-are-us/trustless-browser-sandbox>

```
git clone 
https://github.com/riddles-are-us/trustless-browser-sandbox
```

### Check out the \`td\` branch

```
cd trustless-browser-sandbox
git check td
```

### Update submodules

```
git submodule init
git submodule update
```

### Compile and run

```
cd roguelike
make wasm
cd ..
npm install
npm run start
```

then the nodejs will boot up a web server, you can access this service by: <http://localhost:3000/>.

You will see a page displayed in your default browser like this:

<figure><img src="/files/AN3AwDYoJNpAGBA80LZy" alt=""><figcaption></figcaption></figure>

The first one: Card Game Demo is the one we will talk about in the following documents.


# How to play

### Connect to a wallet

Firstly, you have to connect to an existing wallet. The most common wallet is the MetaMask. If you have not installed it, please install the MetaMask web browser plugin.

After the game has been connected to the wallet, you will find that the UI has some little changes:

<figure><img src="/files/m1nhZ4ZhZPwpSz6goAaP" alt=""><figcaption></figcaption></figure>

### Play the Card Game Demo

Click the "play" button of the first game card,&#x20;

<figure><img src="/files/rf7Ob96VaUVQDMvv8MkM" alt=""><figcaption></figcaption></figure>

You will look at a new page:

<figure><img src="/files/msiwi6He5WT5EaXzdrNo" alt=""><figcaption></figcaption></figure>

Click the "Start Play" button to continue further.

After a signature request to the wallet, you will see the demonstrated game UI:&#x20;

<figure><img src="/files/XjaJ33L0z06PDf5hj6aC" alt=""><figcaption></figcaption></figure>

It has the simplest card battle form: you (the user) are the doge on the left, and every round you have 3 times of attack abilities, you can choose to strike on the first round and choose to defend on the next round,  and so on and on. At every turn change, the enemy (the doge on the right) will attack you. If your HP <= 0, you lose; if the enemy's HP <=0, you will go ahead and face a new doge enemy.

The game mechanism is very simple, you can dig it by yourself. Good luck.


# Dir Structure

Let's dive into the nutshell to learn how to implement it. The code directory of the project \`trustless-browser-sandbox\` is:

```
╭────┬─────────────────────┬──────┬──────────┬──────────────╮
│  # │        name         │ type │   size   │   modified   │
├────┼─────────────────────┼──────┼──────────┼──────────────┤
│  0 │ README.md           │ file │     35 B │ 2 months ago │
│  1 │ config-overrides.js │ file │  1.7 KiB │ 2 months ago │
│  2 │ demo-game           │ dir  │  4.0 KiB │ 2 months ago │
│  3 │ node_modules        │ dir  │ 40.0 KiB │ 2 months ago │
│  4 │ package-lock.json   │ file │  1.0 MiB │ 2 months ago │
│  5 │ package.json        │ file │  2.8 KiB │ 2 months ago │
│  6 │ planet              │ dir  │  4.0 KiB │ 2 months ago │
│  7 │ public              │ dir  │  4.0 KiB │ 2 months ago │
│  8 │ publish-td.sh       │ file │    268 B │ 2 months ago │
│  9 │ publish.sh          │ file │    281 B │ 2 months ago │
│ 10 │ roguelike           │ dir  │  4.0 KiB │ 2 months ago │
│ 11 │ src                 │ dir  │  4.0 KiB │ 2 weeks ago  │
│ 12 │ tdengine            │ dir  │  4.0 KiB │ 2 months ago │
│ 13 │ tsconfig.json       │ file │    561 B │ 2 months ago │
╰────┴─────────────────────┴──────┴──────────┴──────────────╯
```

In it, the subdirectory \`roguelike\` implements the game **backend** logic (which is a Rust project) that we will talk about later. Let's look into the src subdirectory:

```
╭────┬────────────────────────┬──────┬─────────┬──────────────╮
│  # │          name          │ type │  size   │   modified   │
├────┼────────────────────────┼──────┼─────────┼──────────────┤
│  0 │ src/data               │ dir  │ 4.0 KiB │ 2 months ago │
│  1 │ src/sdk                │ dir  │ 4.0 KiB │ 2 months ago │
│  2 │ src/react-app-env.d.ts │ file │    40 B │ 2 months ago │
│  3 │ src/logo.svg           │ file │ 1.1 KiB │ 2 months ago │
│  4 │ src/types              │ dir  │ 4.0 KiB │ 2 months ago │
│  5 │ src/layout             │ dir  │ 4.0 KiB │ 2 months ago │
│  6 │ src/index.css          │ file │ 1.0 KiB │ 2 months ago │
│  7 │ src/serviceWorker.ts   │ file │ 5.2 KiB │ 2 months ago │
│  8 │ src/styles             │ dir  │ 4.0 KiB │ 2 months ago │
│  9 │ src/games              │ dir  │ 4.0 KiB │ 2 months ago │
│ 10 │ src/modals             │ dir  │ 4.0 KiB │ 2 months ago │
│ 11 │ src/assets             │ dir  │ 4.0 KiB │ 2 months ago │
│ 12 │ src/app                │ dir  │ 4.0 KiB │ 2 months ago │
│ 13 │ src/utils              │ dir  │ 4.0 KiB │ 2 months ago │
│ 14 │ src/setupTests.ts      │ file │   255 B │ 2 months ago │
│ 15 │ src/components         │ dir  │ 4.0 KiB │ 2 months ago │
│ 16 │ src/fonts              │ dir  │ 4.0 KiB │ 2 months ago │
│ 17 │ src/index.tsx          │ file │   690 B │ 2 months ago │
│ 18 │ src/App.css            │ file │   623 B │ 2 months ago │
│ 19 │ src/App.tsx            │ file │   283 B │ 2 months ago │
│ 20 │ src/images             │ dir  │ 4.0 KiB │ 2 months ago │
╰────┴────────────────────────┴──────┴─────────┴──────────────╯
```

This is a typescript project implementing the frontend app,  it forms the basic bone of the entire frontend app. The card roguelike game is located in \`src/games\`, as you can see:

```
╭───┬────────────────────────┬──────┬─────────┬──────────────╮
│ # │          name          │ type │  size   │   modified   │
├───┼────────────────────────┼──────┼─────────┼──────────────┤
│ 0 │ src/games/sumgame      │ dir  │ 4.0 KiB │ 2 months ago │
│ 1 │ src/games/towerdefence │ dir  │ 4.0 KiB │ 2 months ago │
│ 2 │ src/games/style.scss   │ file │   240 B │ 2 months ago │
│ 3 │ src/games/roguelike    │ dir  │ 4.0 KiB │ 2 months ago │
│ 4 │ src/games/demogame     │ dir  │ 4.0 KiB │ 2 months ago │
│ 5 │ src/games/planet       │ dir  │ 4.0 KiB │ 2 months ago │
╰───┴────────────────────────┴──────┴─────────┴──────────────╯
```

The \`src/games/roguelike\` is the right place for the frontend of our card roguelike game which is shown on the previous page.


# Guide for the backend code

This is a simple guide for the backend code structure, therefore we will not discuss every line of this codebase. Its structure looks like this:

```
.
├── Cargo.lock
├── Cargo.toml
├── Makefile
├── crates
│   ├── bin
│   │   ├── Cargo.toml
│   │   └── src
│   │       └── bin.rs
│   └── core
│       ├── Cargo.toml
│       └── src
│           ├── config.rs
│           ├── engine
│           │   ├── cards
│           │   │   ├── defend.rs
│           │   │   ├── mod.rs
│           │   │   └── strike.rs
│           │   ├── combat.rs
│           │   ├── mod.rs
│           │   ├── roles
│           │   │   ├── enemy
│           │   │   │   ├── mod.rs
│           │   │   │   └── monster
│           │   │   │       ├── mod.rs
│           │   │   │       ├── robot.rs
│           │   │   │       └── turkey.rs
│           │   │   ├── mod.rs
│           │   │   └── player.rs
│           │   └── state.rs
│           ├── lib.rs
│           ├── test.rs
│           ├── utils
│           │   ├── mod.rs
│           │   └── state.rs
│           └── wasm
│               └── mod.rs
├── rust-toolchain
└── test_cli.sh
```

The main logic body of the game is defined in the \`engine\` subdirectory.  As you can see, it is a relatively simple turn-based game, which defines cards, roles, combat, etc.&#x20;

The player and monsters both have \`HP\` representing their left life. They use handy cards to attack the opponent or defend himself.

There are two monsters: a robot and a turkey.

In \`engine/mod.rs\`, there is a definition of Engine:

```
pub struct Engine {
    pub(crate) player: Player,
    pub floor: usize,
}
```

It seems just preliminary right now, but enough for a demo.

In \`utils/state.rs\`, it defines the global game state singleton:

```
#[derive(Serialize)]
pub struct GameState {
    floor: usize,
    turn: usize,

    hero_hp: i32,
    hero_power: i32,
    hero_block: i32,
    hand_of_card: Vec<Card>,

    enemy_name: &'static str,
    enemy_hp: i32,
    enemy_block: i32,
    enemy_action: SkillEffect,
}
```

The game will use this GameState to manage the state of the instance of this roguelike card game.

Another important component is the \`wasm/mod.rs\`, it bridges the game and the underneath zkwasm SDK. Let's look into it:

```
use wasm_bindgen::prelude::wasm_bindgen;
use zkwasm_rust_sdk::require;
use zkwasm_rust_sdk::jubjub::BabyJubjubPoint;
use zkwasm_rust_sdk::jubjub::JubjubSignature;
use zkwasm_rust_sdk::wasm_input;
use primitive_types::U256;
use sha2::{Sha256, Digest};
```

As you can see, we import some functionalities from `zkwasm_rust_sdk`.

We will compile this Rust project into wasm target, and the target wasm file will contain some facilities provided by zkwasm.&#x20;

In the same file, we find:

```
#[wasm_bindgen]
pub fn zkmain() {
}
```

The `zkmain()` is the entry of this game project.

### Compile method

Given the output of this backend implementation are some wasm files, how to compile it, and how to export it to frontend is a challege.

We use a `Makefile` to overcome it. In the \`Makefile\`, we can see:

```
wasm:
	wasm-pack build --release crates/core --out-name gameplay --out-dir pkg
	cp crates/core/pkg/gameplay.d.ts ../src/games/roguelike/js/gameplay.d.ts
	cp crates/core/pkg/gameplay_bg.wasm ../src/games/roguelike/js/gameplay_bg.wasm
	cp crates/core/pkg/gameplay_bg.wasm.d.ts ../src/games/roguelike/js/gameplay_bg.wasm.d.ts
	cp crates/core/pkg/gameplay_bg.js ../src/games/roguelike/js/gameplay_bg.js
```

While we run \`make wasm\` in the game backend directory, it actually uses wasm-pack to execute the process of compilation. This process will compile wasm files to the pkg dir, and copy those facilities to the frontend directory. Then the frontend code can import these wasm files and call the functions written by Rust.


# Guide for the frontend code

As we prompted previously, the entire frontend project is located in \`src/\`, and the frontend of the rogoulike card game is located in \`src/games/roguelike\`.&#x20;

\`src/games/roguelike\` has the following structure. These file names are self-explanation.

```
.
├── card.tsx
├── controller.tsx
├── death.tsx
├── images
│   ├── cheems-monster-01.jpg
│   ├── cheems-monster-02.jpg
│   ├── cheems.jpg
│   ├── d0.png
│   ├── d1.png
│   ├── d10.png
│   ├── d11.png
│   ├── d2.png
│   ├── d3.png
│   ├── d4.png
│   ├── d5.png
│   ├── d6.png
│   ├── d7.png
│   ├── d8.png
│   ├── d9.png
│   └── gameover.png
├── js
│   ├── config.js
│   ├── game.js
│   ├── gameplay.d.ts
│   ├── gameplay_bg.js
│   ├── gameplay_bg.wasm
│   ├── gameplay_bg.wasm.d.ts
│   └── package.json
├── style.scss
└── tile.ts
```

Files in js dir were copied from the backend project.&#x20;

In the \`controller.tsx\`, we can see:

```
import init, * as gameplay from "./js";

  function initGame(l2account: number) {
    (init as any)().then(() => {
      console.log("setting instance");
      console.log(gameplay);
      gameplay.new_game();
      gameplay.challenge_next_floor();
      const stateStr = gameplay.state();
      const state = JSON.parse(stateStr);
            console.log(":state:", state);
      setState(state);
      dispatch(setMD5(ImageMD5));
      dispatch(setLoaded(true));
      //drawObjects(objects);
    });
  }

...
```

We import the exported facilities of the backend into the frontend project, naming it as \`gameplay\`, and later use this handle to call functions in wasm. Just like:

```
      gameplay.new_game();
      gameplay.challenge_next_floor();
```

in the above code snippet.

Once you get it, the thing will become clear to you. Other code is just ordinary typescript/tsx code, which is easy to study.


# ZK Proof

We have one last thing to investigate - the zk proof generation of the gameplay procedure.

Now click the "Game Proof" button on the top header of this page:

<figure><img src="/files/ZkdQMWYAK716EhNmYCGC" alt=""><figcaption></figcaption></figure>

You will see a popup window like this:

<figure><img src="/files/JyBAae4oAjNQpWjzFTbz" alt=""><figcaption></figcaption></figure>

This is the step history record window of your gameplay. After you play some steps, it will become:

<figure><img src="/files/jy8ES2b1QdO2JXGIkeb7" alt=""><figcaption></figcaption></figure>

Every square like "3:i64" is a step record of this gameplay. And while you end this game, such like:

<figure><img src="/files/iQ9dGeauwgJmeFVNOb9i" alt=""><figcaption></figcaption></figure>

Check the game proof window:

<figure><img src="/files/3lUPZOHtq323Pso4tijS" alt=""><figcaption></figcaption></figure>

The steps increased, and right now we can create a proof for it.

Click the red button at the right-bottom corner. A wallet popup will be triggered, like:

<figure><img src="/files/zRCakrmctSGYu24OUILy" alt=""><figcaption></figcaption></figure>

After the signing process, it will generate a zk proof for this gameplay and submit it to the Blade game server.

<figure><img src="/files/uCjkkmBc8hERJqJFq8Qe" alt=""><figcaption></figcaption></figure>

Now we have finished the entire ZK game development flow, next you can make your own game according to this guide. Good luck!


# Token Utility

1\) Multi-token airdrop campaign with Infrastructure partners, holding BLADE gives extra perks for campaign we co-host:

* Campaign rewards based on dApp usage together with BLADE to provide adoption for ZKP and DA layer infra (i.e. 0g Labs, Delphinus Lab, Arbitrum, Mantle)

2\) In-game purchases (consumes $BLADE): Take Dune Factory for example on $BLADE token, similar logic applies to other Blade’s ecosystem games

* The token emission revolves around xBlade mining pool (Note: xBlade is a virtual item)
* There are 3 ways to enter mining pool, 1) unlock higher levels, 2) purchasing monthly bundles, 3) purchasing certain items in the game
* $BLADE token can only be mined from xBlade mining pool, the mining design is similar to an AMM Liquidity Provider pool that changes emission rate based on the number of people in it
* The mining rate of $BLADE depends on the efficiency rate of the xBlade mining pool, which in turn depends on players progress in the game, the money spent in-game and efforts promoting Dune Factory
* Completing levels of a certain difficulty level will generate achievement points that adds to efficiency of mining

$BLADE can be used in the following ways in Dune:

* Purchase monthly bundle
* Purchase turret components
* Purchase turret skins

3\) ZK Game Engine is generating revenue, and it will used to buyback BLADE token

* ZKP generation fee share with prover/zkVM provider
* Sequencer fee / gas token on appchain / L2
* incentivize other game developers to use Blade’s ZK game engine


# Token Distribution/Allocation

|                            | Token Amount | Percentage | Vesting                                                           |
| -------------------------- | ------------ | ---------- | ----------------------------------------------------------------- |
| Play & Earn (Dune Factory) | 20,000,000   | 20.00%     | 7.5% unlocked from month 1, the rest release over 24 months       |
| Play & Earn (Other Games)  | 17,000,000   | 17.00%     | 6 months cliff, the rest release over 24 months                   |
| Ecosystem & Development    | 15,000,000   | 15.00%     | 10% unlock at TGE, the rest release over 18 months                |
| Market Making              | 1,000,000    | 1.00%      | Vest via demand                                                   |
| Community & Marketing      | 12,000,000   | 12.00%     | Linear release over 24 months                                     |
| Team                       | 18,250,000   | 18.25%     | 9 months cliff, then release over 24 months                       |
| Investor (Angel)           | 3,000,000    | 3.00%      | 5% unlock at TGE, 6 months cliff, the rest release over 18 months |
| Investor (Seed)            | 10,000,000   | 10.00%     | 5% unlock at TGE, 6 months cliff, the rest release over 18 months |
| Advisor                    | 3,000,000    | 3.00%      | 9 months cliff, then release over 24 months                       |
| Investor (Series A)        | 750,000      | 0.75%      | 5% unlock at TGE, 6 months cliff, the rest release over 18 months |


# Treasury Wallets Disclosure

For Transparency reasons, here shows all the Treasury Wallets of Blade Games

**Ecosystem Development**\
Initial Token Amount: 15,000,000\
Address (Arbitrum One): 0xe8C2A45dAaBb96945D8Cd0Fc5453f6D25491107C

**Community and Marketing**\
Initial Token Amount: 12,000,000\
Address (Arbitrum One): 0xd5776a05b1b411B06E8987E0f048D2DFe2265e6D

**Play and Earn (Dune Factory)**\
Initial Token Amount: 17,500,000\
Address (Arbitrum One): 0x633e58EA997cB7cb136689a09Bcf3807d5bdBC05

**Play and Earn (Other Games)**\
Initial Token Amount: 17,000,000\
Address (Arbitrum One): 0xBAe6532790B7f66a994c84b81E2864C75fC4F21f

**Investor**\
Initial Token Amount: 13,750,000\
Address (Arbitrum One): 0xbe60e94f38d7BDc9ac11F114A2e1bF44025c1b72

**Advisor**\
Initial Token Amount: 3,000,000\
Address (Arbitrum One): 0x7fEDB4be37c1Bed2352C09d9F57502fdE8E96fCe

**Team**\
Initial Token Amount: 18,250,000\
Address (Arbitrum One): 0x3f62177422932A551130D36890d15D5B84acdE2A

**Market Maker**\
Initial Token Amount: 1,000,000\
Address (Arbitrum One): 0xB5E8283143e780266464A85A1E20A778f9E1B34d


# Roadmap

<https://portal.bladedao.games/road-map>

**2024 Q1**

Close of $2.4m Seed round led by Palmtree Crypto and IOSG Ventures

Release of zkUnity, the first trustless ZK game engine in the industry

3 more games adopted Blade Gamestrustless ZK game engine

**2024 Q2**

Dune Factory Private Testing

Received grant from Arbitrum Foundation

Featured by Mantle Ecosystem Fund

**2024 July-August**

Co-host FOCG campaign with 0G Labs

Dune Factory live on Arbitrum Testnet

Kick-off incentive points system

Dune Factory whitepaper release

**2024 September**

Incentive points system season 2

Website and Dune Factory Upgrade

**2024 October**

Dune Factory Beta Test

Airdrop Activities with CEX wallets

ZK Game Campaign with DelphinusLab / zkWASM

**2024 November**

Dune Factory mainnet Season 1 on Arbitrum

Dune Factory mainnet Season 2 on Mantle

Ecosystem game campaigns

**2024 December**

Token Generation Event and token airdrop

Major CEXs Listing

Trustless onchain game SDK release

New in-house game beta test

AI Agent Launch

2025 Q1:

1\. Official Release of Blade Games’ in-house game on mobile and browser

2\. Release of updated version of zkUnity, Blade’s proprietary game engine

3\. FOCG hackathon at ethDenver

4\. Mobile version release for DuneFactory

5\. Game Campaign with leading infrastructure projects&#x20;

6\. Additional Ecosystem game release and related campaigns

7\. Ecosystem partner token campaign


# Feedback

**We Value Player Feedback!**

We are eager to learn from our players' experiences. Your insights on the game and your suggestions for future changes and additions are crucial to us. Please submit your feedback as well as bug report here. <https://discord.com/invite/bladegameshq><br>


# Investors

<figure><img src="/files/Oz8SvBwTK2f3QtPVTSzq" alt=""><figcaption></figcaption></figure>

### Our Fundraise <a href="#our-fundraise" id="our-fundraise"></a>

PTC Crypto and IOSG Ventures lead Blade Games $2.4M Seed Round to Build Modular ZK Game Engine

* ZK onchain game engine builder Blade Games raised $2.4M seed round funding
* Blade Games’ POC game, Dune Factory will kick off private alpha test in early May, with public test scheduled for late May

Blade Games, an on-chain game studio and infrastructure provider, has successfully closed its $2.4 million seed funding round. The round is co-led by PTC Crypto and IOSG Ventures, with participation from Bonfire Union Ventures, Animoca Ventures, Mantle, ForesightX, Formless Capital, Public Works, Puzzle Ventures, K300 Ventures, Cogitent Ventures and more.

[*Fundraising PR*](https://www.theblock.co/post/291451/ptc-crypto-and-iosg-ventures-lead-blade-games-2-4m-seed-round-to-build-modular-zk-game-engine)


# Official Links

**Website:** [**https://www.bladedao.games/**](https://www.bladedao.games/)

**Dune Factory:** [**https://df.bladedao.games/**](https://df.bladedao.games/)

**Twitter:** [**https://x.com/BladeGamesHQ**](https://x.com/BladeGamesHQ)

**Medium:** [**https://medium.com/@BladeGames**](https://medium.com/@BladeGames)

**Discord:** [**https://discord.com/invite/bladegames**](https://discord.com/invite/bladegames)


