Inspiration

NFTs are exploding in popularity but a lot of the current use cases revolve around speculative artwork. Owners of NFTs often purchase them with the hope that the price will increase. Instead of being rooted in speculation, we hope to create NFT characters that people can connect to, that have practical use cases and that are just plain fun!

We were inspired by a lot of browser based web games from the 2000s such as Neopets. We think there will be an resurgence of web based games; but this time they will be blockchain based with a lot more interoperability thanks to NFT Metaverses. We were also influenced by the crypto project Euler Beats which implemented an earlier version of templating with royalties that we expanded upon.

What it does

Crypto Champz is a Universal Character Generator that takes advantage of NFT composability to create robust characters that are playable in an endless variety of games. We use Chainlink VRF to randomly generate Champion characteristics such as Hometown, Background, Skills, Traits, Stats (Strength, Charisma, etc.) and more! Each Champion also has artwork that was custom designed for our project, and there are multiple variations of artwork available. Putting it all together, there are over 100 trillion different combinations, ensuring each Champion is special.

Crypto Champz serve as NFT primitives that can be used to traverse the Metaverse of blockchain games. For example, your Champion might be used in a card game, a virtual board game, a farming simulator, or even your next D&D campaign! Of course, it can also be traded as a collectible. To jump start the ecosystem, we have created two mini games. One game lets you battle your Champz with other players. Chainlink oracles are used to retrieve weather conditions which can affect the outcome of the duel. Another game has a DeFi twist with Chainlink Price Feeds - players get rewarded for loyalty to high performing assets.

How we built it

We had virtual whiteboarding sessions using Miro to brain storm and and solidify the game theory of Crypto Champz. We wanted to make sure there were different types of incentivization available for different types of players, and that no player would have unfair advantages. We took a lot of care into planning the Prototyping and Templating system of Elder Spirits. Similar care was put into the other parts of the system. We always made sure not to take any shortcuts for a quick cash grab, but instead to focus on making things as fun as possible.

After finalizing the game theory, part of our team worked on the back end and part worked on the front end. Our project was built with Solidity using the Brownie React mix. We use Chainlink VRF to randomize things like Champion attributes and Battle conditions. We use Chainlink oracles to retrieve weather data which affects Battles. Chainlink Price Feeds are used to retrieve cryptocurrency data which is then bound to characters who can earn rewards based on the performance of their bound cryptocurrency. IPFS is used to store Champion avatars, and the Champion NFTs are viewable on Open Sea. We are deployed on the Rinkeby testnet.

Challenges we ran into

We had originally hoped to have our Champion artwork be completely randomly generated using Chainlink VRF. This turned out not to be feasible so we pivoted into a stronger focus on Mini Games.

We also had issues when deploying on the Ethereum testnets. For example, Kovan ETH faucets were not working for some time. Meanwhile Chainlink oracles were not working on Rinkeby. We reached out to Patrick who was able to assist us in getting Kovan ETH so we could continue.

Another issue we had is the size of our smart contract when minting Champions. We learned that we had to pick and choose what types of data to include because otherwise the contract gas fees would be too much to mint in one step. We made some compromises such as storing Skills and Traits as numbers and mapping them to strings on the front end.

In the very beginning of the project, we had trouble finding an artist. We wanted high quality artwork, but could only find developers interested in a hackathon. After cold calling dozens of artists, we finally found one about a week after the hackathon started. We mutually clicked with and onboarded them to our team.

Accomplishments that we're proud of

We are very proud of everything that we have done! We are especially proud that we were able to complete a full end to end Web3 full stack project. Not only did we code a solid back end that utilizes lots of different technologies, but it is also complete with comments and tests. We also designed and then implemented a great front end UI. Additionally, we're proud of the game theory behind our project and the fact that people will be able to have genuine fun playing our games. All of this was possible because of some great collaboration from team members located in 3 different countries interacting online through helpful tools such as Discord, Trello, Miro, and Figma.

What we learned

We learned a lot of putting together different pieces of blockchain technology, such as how to connect a front end app to a solidity back end. We learned to integrate IPFS for decentralized file storage and how to use pinning services. We also learned about the importance of L2 solutions such as Polygon. Of course we also had a lot of fun learning to use Chainlink technologies such as VRF and Price Feeds. Finally, we became more familiar with Solidity and Brownie in general.

What's next for Crypto Champz

We hope to continue the project and launch on Mainnet and then Polygon. We want to add new features utilizing dynamic NFTs (like Champions that level up). We also want to build out our ecosystem by creating a token marketplace, more mini games, and incentives for the community.

Built With

Share this project:

Updates

posted an update

Hey all, we are continuing work on this project! Currently we are refactoring our code to make it more robust and extensible and so that it can be used as a platform. We are also working on redesigning some of the UI/UX.

Log in or sign up for Devpost to join the conversation.