Please NOTE: We have moved development on this project to closed source for security reasons.
We will be creating a more details tutorial for how to build games like ours in the near future.
FishFight.ONE TESTNET Only
Harmony Hackathon submission: Harmony - Bridging TradFi to DeFi
c. DeFi/NFT/DAO. Metamask, Web3.js, randomness opcode, FlyClient bridges vs rollups, BLS aggregated signatures
FishFight.one is a casual but entertaining exploration of Blockchain Technologies, NFT Collectables and Play-2-Earn Mechanics, using the globally recognized framework of fishing to appear to a broad but mature audience.
This project is meant to be an easy on ramp for users to seamlessly start playing blockchain games. Compared to the market leader Axie Infinity, we aim to create an experience where users can start playing without high introductory costs and transaction fees. Players can still partake in a play-to-earn model that is popular in blockchain gaming but we’ve built the system to be more affordable than ever. The game is built upon the standard ERC721 NFT tokens and Harmony $ONE coin to power the in-game economy. Our initial prototype will allow users to start playing and earning with as little as 25 $ONE.
https://www.cryptoblades.io/CryptoBlades_Whitepaper.pdf https://whitepaper.axieinfinity.com/
FishFight takes place on a cold and icy moon around saturn. The players are meant to see what’s happening in this world from a swimming/flying drone that navigates the game area. Not much is known about this location by the players but over time, more and more details will be revealed.
- Unity setup in React template
- Smart Contract base (ERC721)
- Interact with contracts in Unity
- Multi-Wallet Connection
- Simple Navigation Hub
- Public/Owned Fish Selection Drawer
- Standard Disclaimer
- Home/Idle Screen
- Fishing Screen
- Ocean View
- Fight View
- Fish View
- Backend Server Rendering
- Unity Based PNG/MP4 NFT rendering
- Server Post-Mint NFT IPFS hosting
- Server Post-Mint NFT metadata updating
- Trading
- Reselling
- Updatable uri by contract
- Percentage Chance based minting
- Lock % of fishing costs in Fishing Contract as Locked Fishing Costs
- Using Fish metadata to handle fight logic
- Burn defeated fish
- Lock defeated fish
- Burn but mint DEAD version of your NFT
- Update fish metadata post fight
- Only allow breeding after winning 1 Fish Fight
- Use metadata in the parent fish, to blend colors/stats
- Create a revenue share between breeding fish, and public fish wishing to breed
- Using the Locked Fishing costs, create an exchange rate for selling any FishFight $Fish based on how many fights it has won.
- We’re avoiding the need for an ERC20 token at this time, because we can directly pay out of the contract we use to mint fish.
There are a few ways to interact with the $Fish token NFT. These interactions are meant to be easy to understand and straightforward for both crypto-natives and crypto-hesitant people.
Fishing is meant to be as simple as it sounds. During our initial launch to the Harmony Protocol Testnet there will be a 100% purchase option but this option may not remain in the full Mainnet launch.
- Select “Go Fishing”
- Select Bait Fee
- Confirm Transaction on Metamask/MathWallet/OneWallet
- Wait for Fish to arrive on screen
Fighting is meant to be as simple as it sounds. During our initial launch to the Harmony Protocol Testnet there will be a simple visual to illustrate how combat will be visualized. These visuals will be updated as we continue development towards Mainnet launch. Currently the fish fighting does not destroy the losing fish but the plan is to have several fishing modes, which will be more or less risk averse.
- Select “Fight Fish”
- Select one of your “Owned Fish” to fight with
- Select “Public Fish”
- Select one of the “Public Fish” to fight with
- Select “Fight Fish”
- Confirm Transaction on Metamask/MathWallet/OneWallet
- Wait for Fish Fight Results
The Ocean View Game mode is one of the non-gameplay modes in the game. Ocean view is intended to be a place to see either your fish or all public fish. It’s a kind of screensaver.
- Select “See Fish”
- Toggle Public or Private fish
- Enjoy Ocean View
The Fish View Game mode is another one of the non-gameplay modes in the game. Fish view is intended to be a place to see either your fish or all public fish. It’s a kind of screensaver.
- Select “See Fish” or “Fight Fish”
- Select one of the Fish on the bottom tray
- View Fish specific metadata detail
Our $Fish token is a unique NFT that is “caught” by players (minted), they then gain ownership. The minting of a fish uses Harmony’s built in VRF function to determine randomness for the fish being caught.
The mint function will take in a few parameters to also determine the fish minted:
- Certain fish can only be caught at certain locations
- Genesis Landing
- Betta Spot
- Deep Ocean
- Any fish available at a fishing location can be caught at any cost.
- Small Bait (extra-low chance)
- Medium Bait (low chance)
- Large Bait (medium chance)
- Perfect Bait (100% chance)
- 25 $ONE is all you need to get started with FishFight.one
currently the game supplies everything needed to play but the option in the future to have items which the users could unlock to increase their fishing/breeding skills is an exciting viable option
- Standard rod
- Heavy rod
- Single Use Net
- Block-Time Lures
- Strength
- Intelligence
- Agility
- Which textures to use for which parts of a $FISH
- Which colors are used for each parts of a $FISH
- Which unique visuals traits are used for special parts of a $FISH
- Win Count
- Challenger Count
- Challenged Count
- Breed Count
- Fish Name
- Fish Caught Date
- Fish Type
- Token ID
- https://github.com/TrustlessTeam/FishFight
- https://github.com/TrustlessTeam/FishFight-Unity
- https://github.com/TrustlessTeam/FishFight-Server
- React
- Unity
- Solidity
- Harmony Protocol
- hardat/truffle
- Live on Harmony Protocol Testnet
- Fishing Minting
- Ocean view of public fish
- Basic Fighting visuals and contracts
- Server side live NFT Minting.
- All basic ERC721 Functionality
- Live on Harmony Protocol Mainnet
- Breeding Policy
- Upgrades to Fighting visuals and contracts.
- Selling $FISH NFTs to the FishingPool Market
- Once loaded connect account before clicking the Catch fish button.
- Routes do not reload on page refresh.
- The backend server that renders static metadata has been hit or miss, so fish images along the bottom may not load until the meta data is successfully rendered.