1st Rule: You do not talk about Dwight Club!
Dwight Club is an Ethereum Turn-based NFT Game built with React.js and Solidity.
We wanted to understand how Web3 play-to-earn games work, so we built a simple Ethereum turn-based NFT game where a user can mint an NFT character that can battle the evil boss Dwight Schrute!
The game's premise is simple. A user gets the option to mint one of three hero characters to fight Dwight Schrute. Once they've minted a character, that character NFT is available on-chain, including the associated metadata. The NFT image assets are stored on IPFS (InterPlanetary File System). After minting a hero character, the NFT and its metadata is viewable on marketplaces such as OpenSea and Rarible (see the link below).
Each character comes with different HP (health points) and attack damage rating. If Dwight lands a punch, HP will be deducted from the user. If the user lands a punch, then Dwight's HP will be reduced. The changes are recorded on-chain and the NFT's metadata will be updated.
We also implemented some turn-based randomness using the Chainlink VRF. We funded the contract with some 'test LINK' to pay the Chainlink oracle fees.
As it is a proof of concept, it was deployed to the Rinkeby testnet (an Ethereum test network), and not onto the Ethereum mainnet. This means you only need ‘test ETH’ to pay for the gas when minting your hero NFT and for interacting within the game. You'll also need a MetaMask wallet to connect to the app.
Note: interacting with wallets on mobiles is challenging, so best to use a laptop or desktop if you want to try it out.