Name of Project
FishFight.one
Proposal overview
FishFight.one is an interactive NFT collectable game where users can catch, breed, and fight unique fish.
Fishing is a globally recognized activity, which allows us to build off well understood mechanics, but still include unique features to create a dynamic gameplay experience. This enables easy onboarding for players with the option for more advanced gameplay.
At it’s heart, FishFight aims to deploy a play-to-earn mechanic that is both financially beneficial to players but also creates an easy to understand and riveting player experience.
There will be multiple pathways for players to enjoy the game and earn rewards. We believe that our game appeals to the rapidly growing sector of blockchain gaming. Our unique take on 3D NFTs and the incorporation of Unity separates us from many of the other NFT experiences that currently dominate the market.
Harmony is the perfect blockchain for interactive games as it provides fast transaction times and cheap gas fees for its users. Our game will showcase the benefits of the Harmony network to our players, and in part with the help of this grant, the broader NFT and gaming ecosystems respectively.
Below we lay out proposed gameplay components, game and economic mechanics, and planned development milestones for launch. This proposal is largely based on our FishFight White-paper, which will be publicly available very soon.
The funding of this proposal would be used to help pay team salaries, for marketing campaigns and any necessary smart contract audit fees.
Game Tokens
- $FISH - ERC721: The main NFT component of the game. Players will catch, fight, and breed $FISH. Each $FISH is generated at time of mint and is then visually rendered from those unique traits using a Unity3D game environment.
-
$FISHFOOD - ERC20: All in-game rewards will be paid out as $FISHFOOD. Non $FISH supply actions (ex: $FISH modifiers, in-game items, tournament entrance fees, etc… can be purchased with $FISHFOOD).
-
$FFPLP - ERC721: (Fish Fight Pool Liquidity Provider) Given to players in exchange for their $FISH being added to the Fight Pool.
-
$FBPLP - ERC721: (Fish Breed Pool Liquidity Provider) Given to players in exchange for their $FISH being added to the Breed Pool.
Gameplay
FishFight.one will use a repeating emission schedule to start and end three (3) distinct Gameplay modes.
This is intended to allow the game to maintain a steady supply of Fish in the $FISH ecosystem, and create a dynamic ecosystem which is driven in-part by how the users choose to play.
Fishing Season → Fighting Season → Breeding Season
(Casually, Dangerously, or Carefully )
Each season in the cycle is controlled by total $FISH Supply and a block timer.
At the start of each new season there will be an amount of new $FISH available to be minted to mark the beginning of the Fishing Season.
Fishing Season
Season Start - If there are fewer fish than the emission schedule for this Season, then the difference between the emission schedule and the current population will be added to the ocean to be fished.
(Note: On launch, there will be a limited supply of $FISH made available for Fishing.)
Catching Fish - Users pay $ONE to catch (mint) a $FISH. $FISH can only be caught at certain times and will have a limited, slowly increasing supply dynamic. Catching fish in the game is a unique minting experience. While actually catching the fish requires no skill (other than using a crypto wallet), players will have to be proactive and quickly catch fish at the start of fishing season. Upon catching a fish the player is presented with their unique Fish in a reeling animation.
Season End - Once the number of $FISH caught this season is more than the emission schedule limit, the Fishing season will end, thus starting the Fighting season.
Fighting Season
Season Start - Players can now enter their $FISH to the Fight Pool, and players can start Fights with $FISH in the pool. Awards for the fight pool will also start accruing.
Join Fight Pool - The fighting pool is a listing of $FISH that are willing to fight. Entering your $FISH in the fighting pool risks them to being killed (burned), but qualifies you to receive rewards from the pool, as well as $FISHFOOD if your $FISH wins a fight. Any player that enters their $FISH to the pool is exchanging their $FISH for the matching $FFPLP token. This token can then be used to collect your rewards, and if your $FISH is still alive, it will also be retrieved. If your $FISH won a fight and you retrieve them they will be eligible for breeding.
Challenge Fish in Fight Pool - Owners of $FISH not in the Fight Pool can challenge $FISH in the Fight Pool. Be careful though! If your fish loses it dies (burned). Winners of the fight gain a win (making them eligible to breed), and earn a percentage of the $FISHFOOD dispersed for the burned $FISH (fish that lost). The owner of the $FISH that lost the fight will receive a percent of the $FISHFOOD, and the final two portions will be distributed to the Fight Pool LP token holders and FishFight Funds.
Season End - The fighting season ends when the number of fights completed reaches a number higher than the current Season’s Fighting threshold, or in other words a set number of Fish are burned. If this threshold is not reached, a block time fall back will end the fighting season. When the fighting season ends, final rewards will be dispersed, and $FISH will be transferred back to the owners of the LP token. This will then start the breeding season.
Breeding Season
Season Start - Players can now enter their $FISH to the (Alpha) Breeding Pool.
Join (Alpha) Breeding Pool - Any “Alpha” $FISH (has at least 1 Fight season win) may be entered into the Breeding Pool. When a wallet chooses to enter a fish into the breeding pool, they are issued an $FBPLP token. This token allows the $FISH holder to reclaim the fish which they put into the Breeding Pool and collect the rewards from the pool.
(Note: Any fish which does not successfully complete at least 1 Fight, is considered a “Betta” fish, and there is no Breeding Pool currently available to Betta $FISH. Betta $FISH are used to select an Alpha $FISH for breeding with.)
Breeding with a Fish in the Breed Pool - If there are any $FISH currently staked in the Alpha Breeding Pool, a wallet holder of another Betta $FISH may select an Alpha $FISH and pay $ONE to breed (mint) a $FISH using both of the $FISH metadata as a basis for a newly minted fish. The newly minted fish is then issued to the Betta $FISH owner’s wallet. The $ONE breeding fee is in part paid to the Alpha $FISH Selected for breeding, in part paid to the Breeding Pool, and in part to the FishFight Funds.
(Note: Any Betta Fish which chooses to attempt to breed, has a small chance of dying during the breeding event, but in the event of a death, the wallet will either receive the newly minted fish or some additional $FISHFOOD.)
Season End - The season ends if all Betta $FISH have reproduced, or once a block tine is hit. On season end rewards are dispersed and Alpha $FISH are transferred back to their owners. This will also trigger a new cycle. When a new cycle is started, $FISH seasonal stats are reset.
(Note: if a breeding season results in so many $FISH that the total population is higher than the emission schedule, a fishing season begins and ends at the same time/ is skipped.)
Non-Seasonal Gameplay
Daily Challenges - There will be daily challenges that $FISH holders can complete. These challenges can result in rewards such as $FISHFOOD, or other unique modifiers for their $FISH. Modifiers can help strengthen weak $FISH.
(Note: The given reward for challenges will be based on random chance and will be limited to once per day per $FISH.)
In-Game Items and Modifiers
Special items, modifiers, and visual enhancements are planned to enhance gameplay mechanics.
Special Events - Giveaways / Prizes / Tournaments
To incentivize certain aspects of gameplay, or help encourage certain gameplay for the health of the $FISH supply, we will offer a variety of in-game and social events. These events will be funded from the FishFight Promotional Fund.
Proposal ask
$50k
Metrics for success
Development Milestones
0: Testnet Deployment (completed)
-
Prototype $FISH contract
-
Basic fighting contract
-
Front-end website
-
Unity framework development
-
Initial server development for static $FISH metadata generation
-
Fish/game visuals
-
3D NFT Rendering via Multistep Minting Process
All initial development targets were built for the testnet deployment. The next phase includes adding features and improving each of the following components of the tech stack.
1: Contracts - Fighting/Breeding/Tokenomics (in-progress)
-
$FISH contract upgrades
-
FishFightPool contract
-
FishBreedPool contract
-
$FISHFOOD contract and tokenomics
-
Challenge contract
2: Whitepaper - Gameplay / Tokenomics (in-progress)
-
Finish whitepaper documentation
-
Determine tokenomics for healthy $FISH and $FISHFOOD ecosystem
-
Setup Multi-Sig Wallets for various funds
3: Front End - New contract interactions/bugs/polish (planned)
-
Improved UI to list $FISH available to fight
-
UI to list $FISH available to breed
-
Performance improvements
-
General UI and polish
-
Resolve known issues
4: Unity - Visuals/Breeding/New Views (planned)
-
Polish to 3D $FISH Assets
-
Additional 3D animations for $FISH ocean, fighting, and breeding interactions
-
Performance improvements
-
Resolve known/unknown issues
5: Server / Back End - Performance / Render Queues (planned)
-
Improved asset generation quality
-
Queue based rendering
6: Mainnet Launch - Targeting December launch
-
Launch to mainnet and kickoff season 1
-
Create FishFight.one DAO
7: Post-Launch
-
Monitor health of ecosystem, make adjustments as necessary
-
Create $FISH market where players can easily inspect, buy/sell, and trade $FISH
Success Metrics
-
10k users within Q1 2022
-
DAO creation and users
-
Active community and players
-
1k+ Daily Active Users
-
Active Discord community
-
Quarterly Promotional Events
External links
Team Site: TrustlessTeam.one
[TESTNET] Demo Site: FishFight.one
Team Github: @TrustlessTeam
Discord: FISHFIGHT.one Community
Twitter: @FishFight1NFT
Twitter: @TrustlessTeam
Video: Hackathon Youtube Submission
Developers
@eddnorris -
LinkedIn: LinkedIn.com/in/eddnorris
“I came to Harmony from a Game Development / Interactive Experience Background, and as soon as I understood exactly what was possible with affordable, easy-to-use, easy-to-dev, 2-second transactions without killing the environment? I knew I wanted to build interactive experiences on Harmony.
I feel really fortunate to have found such a great team through the incredible opportunity in one of the many #developers:hackathon I wanted to thank @papi for his words of wisdom back when the #Hackathon started, I might still be waiting for the right moment to dive in, or looking for the right team members. Thank you sir!
A few months later and we’ve won our track and can’t wait to share how Harmony can empower #GameDevelopers & #Gamers with radical profit sharing possibilities!"
@schwab16 -
LinkedIn: linkedin.com/in/isaac-schwab
“It was awesome meeting the Harmony team in person at NFT.NYC! Thanks for hosting so many great events. The Time Square video launch, followed by discussions at Bryan Park paired with the donuts @Sam picked up was a perfect afternoon. I’m really excited to continue building projects for the Harmony ecosystem and help onboard the next wave of blockchain users and developers.”