gm fellow adventurers!
I would like to propose a composable system for going on adventures. Instead of just holding the NFT, you should be able to go on epic adventures with it, in order to level it up and collect rewards.
There is some work-in-progress contract code here: https://github.com/karmacoma-eth/loot-dungeon. I wrote this as quickly as I could to demonstrate the concept, so this has not been tested or deployed yet, and it has no UI. But it is open for feedback and PRs!
-
eligibility: anyone should be able to play, either with a real Loot / More Loot token as well as anybody with their Synthetic Loot. Hence, a player is a simple abstraction over real and synthetic tokens.
-
to start, a player would select one of the adventures that is available to them (i.e. they meet the requirements like minimum level or having a specific piece of equipment). Starting the adventure means entering a cooldown period after which rewards can be claimed.
Composability
To keep this is as composable as possible, the system supports:
-
an adventure registry that knows about available adventures and rewards and if a given player is currently adventuring.
-
new adventures that can be created by anyone. They are contracts that implement the
Adventure
interface and are registered in theAdventureRegistry
. An adventure has some requirements for players, a time to complete, and offers some rewards. -
new reward types that can also be created by anyone. They are contracts that implement the
Reward
interface and are registered in theAdventureRegistry
. A reward keeps track of balances for players, a bit like ERC20 tokens. In fact, we could imagine a “gold coin” ERC20 token reward type that could be tradable between players.
Example
As an example, the contracts above have a couple of built-in adventures:
-
the Dungeon of Noobing has no requirements, takes 20 minutes to complete and offers between 100 and 200 XP on completion
-
the Dungeon of Unremarkable Dangers is for players level 2 and above, takes 30 minutes to complete and offers between 150 and 400 XP on completion.
-
XP is a non-transferable reward type attached to the player (i.e. either the NFT or the wallet). I believe this is pretty profound: if you level up your Loot token to, say, level 5, the token itself is now level 5. If you transfer it to a new owner, the token would still be recognized as level 5 by the game!
Going further
Farming and grinding by yourself will get old, I think the real fun will begin with multi-player adventures! This means creating an adventure contract that requires multiple players to enter, such as:
-
a simple dungeon that would require 3 players
-
a more advanced dungeon that would require players with specific pieces of equipment, e.g. at least one Katana and one Divine Robe in the party (as a proxy for DPS and healer roles).
-
a really challenging adventure that would require 20-40 players and a longer time to completion. See the excellent World Boss proposal!
-
as mentioned above, we can get creative with reward types: tradable tokens, consumable NFTs, resources to be used in crafting…
Let me know what you think! The thing that worries me the most about this would be the prohibitive gas cost on mainnet, so it seems like the only viable way to deploy this would be on an L2.