Hello,
Some time ago I got an idea to make NFT based game on the EVM network as a hobby project, would like to introduce some points on it before starting working on the proof of concept project
- The game would be made of multiple NFT smart contracts
* LAND: the world would be split into x land NFT's. Land NFT's would have random attributes indicating what's good in there. For example, one land could have up to five NATURAL RESOURCES there: wood, stone, water, iron, gold etc.
* CHARACTERS: to be able to play, you would need to have at least one character, the character would also be an NFT and would have randomly assigned attributes: attack, defense, woodcutting and etc. Characters could be "bred" to make new character.
* RESOURCES: an ERC-1155 NFT which would hold different resource types retrieved from LAND or manufactured by user, like: wood, iron ore, potions and so on. Contract would allow to mint / create and burn / destroy these resources as part of the game.
- the game would be on EVM based network, but to make it playable I can't really use ethereum because of high transaction fees. Transactions must be fast and cheap, so I'm thinking about polygon network.
Now, the gameplayThe main idea of the game is resource gathering and building on the lands, so to be able to explore the world fully player will have to have a CHARACTER who would work on the LAND.
For CHARACTER to be able to work on LAND, LAND must be owned or rented to the player. There would also be LAND which would allow working there but with greatly reduced efficiency, so players without LAND would be able to get resources.
Once a player has enough NATURAL RESOURCES - he can use them to build a BUILDING (Woodcutter's Hut for woody LAND, Iron mine for LAND with iron deposit and etc), then would be able to assign CHARACTER to the BUILDING, so it would gather more resources.
There would be also BUILDINGS allowing you to exchange one RESOURCE for another (Smelter to transform Iron ore into Iron bar, Weaponsmith - Iron bar -> Sword, then again use Smelter to smelt sword back to iron bar), all BUILDINGs would require the character to work there.
LAND's that was not worked on (there are no CHARACTERs there) for some time will become infected by MONSTERS, players will need to eradicate them - otherwise, resource gathering efficiency will be reduced greatly.
Each BUILDING will have limit on how much of CHARACTER's can work there. Building owner can decide to allow only his own CHARACTER's there and make it open to anyone, and collect % of resources gathered.
Each LAND natural RESOURCES (wood, iron, stone etc) would have a max gathered resource limit before it's depleted, which means that resources are not unlimited.
Resource gatheringTo gather RESOURCES, player transfer their CHARACTER to the BUILDING contract assigning them to the work.
Each resource will have fixed time needed to get it, CHARACTER assigned to work for time required will be able to claim resources.
For example, to mint 1 gold ore your character will need to work for 1 hour. If you will leave your character at work for 12 hours, you will be able to claim 12 gold ores. If he worked only 30 minutes - you will still get 0.5 gold ore.
You will be required to stop work and withdraw your character from the building if you would want to assign it to another job or to go and kill monsters.
Character skill levels would decrease time needed to gather 1 resource. Giving tools (pickaxe for example) to character would decrease time needed.
Land infested by monsters would increase time needed to gather resources.
Some percentage of resources gathered would go to the game world itself as a tax, which then would be used as drop items for monsters - so killing monsters would also add some value to the players without LAND.
End notesSo, in the end, I'm excited about this idea and would like to make this come true.
Game backend would be fully on the blockchain (solidity), so true random is not possible here - players would be able to predict how everything is going to happen in the game, PvP would not be really possible here.
Ofc some L2 solutions could be introduced to make PvP battles off-chain and then sync states somehow.
Nice part of having it on blockchain and as NFT's is that game itself could have any amount of frontends which would interact it contracts.
Want a text based UI - here you go,
Want a 2d or 3d game - not a problem.
And because everything is still on the smart contracts, actions made on one frontend is visible on another. Oh, and anyone could make their own frontend too
If you have some insights on this please come forward - I would like to know possible problems that may come on making this.