
✨ Inspiration ✨
The main inspiration behind our project is Aim lab. However, we have strived to make it more engaging and competitive where players can not only play for leisure and fun but also compete for exciting prize money and NFTs based on their skills! The purpose of the project is to propagate the game dev community into the web3 world and reward the gaming community for their skills which they hone after putting in a lot of hard work and time. Our goal was to make a social impact by introducing a reward-based system for the gaming community that is transparent and reliable and we have achieved that with the help of Web3 which is a modern emerging technology.
What it does ⁉️
🕹️Game:🎮
Mirai shooter 🎯 is a modern web3-based shooting game. Users from all over the world can put their aiming and shooting skills to the test while also winning exciting prizes(NFTs) as well as money(ETH)! The user just needs to connect to a valid wallet and thereby enjoy our game.
This is a token-based game where a user needs 10 Mirai(short form MRI) tokens (custom-made ERC20 tokens) to play one game. More tokens can be bought directly from the game itself. Every time a new wallet account is connected to the game, the player is provided with an option to avail of 20 free MRI tokens.
Each game lasts for 2 minutes and has a variety of targets and a detailed scoring and points allocation system. At the end of the game, the user's high score for the day is updated and his position is decided in the leaderboard. The top 3 performers of the game (based on high scores) for every day will be rewarded from the prize pool based on their positions in the leaderboard.
🏅 Rewards and NFT Distribution 🎗️:
The top 3 players of the day are sent a random NFT each (which they can mint from our website) along with prize money (ETH). 10% of the pooled money is used for funding our organization while of the remaining amount, 50% is sent to the 1st ranked player. 30% is sent to the 2nd ranked player, while 20% is sent to the 3rd ranked player. (Note: No rewards will be distributed unless and until 3 or more players play the game)
The backend is fully automated and runs on a cron job which automatically allocates and sends the prizes and money to the respective winners every day at 00:00 GMT. The high scores and leaderboard are also reset.
👨🏫User Profile and NFT Marketplace 🛒
Moreover, the users get access to their very own personal profiles via our website (link) where they can modify their display pictures as well as set up funding accounts. The users can check out the daily Leaderboard to keep track of the top 3 players of the day.
The website also serves as an NFT marketplace wherein users can trade the NFTs that they get from playing and winning the game. Users can mint random NFTs (depending on the number of NFTs present in their wallets). They can view a list of minted NFTs which they can list for the desired ETH amount. They can also buy NFTs listed by other users from the marketplace and also unlist as well as update the listing price of their listed NFTs.
On clicking the "Play Now" button on the homepage, the user is shown a disclaimer and is then redirected to the site from where the game can be downloaded.
Hence, the Mirai Shooter project is an interactive and addictive deep dive into the web3 world familiarising its users with the wonders of blockchain gaming and NFTs!
How we built it
-> The game has been built using C#, CG, and Unity along with models which were designed on Blender, and the textures & sprites were designed via Photoshop and also taken from other external sources. Chainsafe Gaming SDK has been used to interact with the blockchain in the game.
-> The contracts are based on the EVM chain and written using solidity language. The contracts have been deployed on the Goerli testnet. They have been tested and deployed and scripts have been run using hardhat.
-> In the game, the currency is an ERC20(DeFi) token named Mirai token (MRI in short). The price of the token is kept at 1$ per token. We have used Chainlink Pricefeeds (AggregatorV3) to keep track of the real-time conversion rates of ETH to USD.
-> We have used OpenAI to generate 36 images and then we associated metadata with each to make our custom ERC721 NFTs and uploaded them to IPFS network using Filecoin. The NFTs given to the winners are randomly minted with the help of the Keccak algorithm. (##We had to discard the idea of using chainlink VRF as the gas prices would be higher and there wasn't a necessity to generate completely non-deterministic random numbers).
-> The frontend files are made using NEXT js in order to ensure smooth routing as well as enable server-side rendering.
-> The backend routes and sever have been set up in typescript and using Express js. The models have been defined in MongoDB.
Challenges we ran into❗
Honestly.... too many to enlist. The biggest was certainly the multiple deployments and redeployments of our various contracts as and when we encountered new and unforeseen errors. Moreover, the non-availability of an established game SDK that allows connecting to the blockchain was a big boulder in our way. The Chainsafe SDK which we have used has been only out for barely a few months and hence, most errors took quite some time to debug.
Last but not least, the entire process of establishing connections securely between the various components of our project (i.e connecting the game to the blockchain, blockchain to the backend, backend to frontend, and so on).
Accomplishments that we're proud of
Building a fully functional and interactive 3D and web3 (P2E) game that is linked to a full-fledged NFT marketplace is something we are proud of!
What we learned
We learned to better connect and interact with deployed contracts from our website using graph queries, ethers js, and Moralis. We also learned to coordinate and connect multiple tech stacks to produce a production-level project
What's next for Mirai Shooter
We have a lot of things in mind when it comes to future prospects. Some of them include:-
- Scaling the game to support multiplayer and VR.
- Improving the website responsiveness and further optimizing the blockchain contracts.
- Build a microservice architecture for the backend in place of the current monolith infrastructure.
- Making the game available for android devices.
and many more...
Built With
- blender
- c#
- cg
- chainsafesdk
- ethers.js
- express.js
- graph
- hardhat
- ipfs
- javascript
- mongodb
- moralis
- next.js
- node.js
- openai
- polygon
- solidity
- typescript
- unity
- vercel




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