Some actions are just between tokens, but more sophisticated games need to track stats like hp, strength, position, etc. These stats, along with other global values, are called the game’s “state”.
games = state + actions (that modify state).
In EIP-5050, a Game is called a State Contract – a contract that manages state.
With a state contract, you can do things like create a slapping game where slapping nfts win, lose, and even die: github.com/alexi/eip-5050…
More accurately, a Game is the pattern of actions that can be sent/received by an emergent collection of interoperable smart contracts, with state controllers serving as sort of holographic root nodes (multiple state controllers might be compatible with the same game)
One of the cool things about State Contracts is they can import each other, but let's save that for another time...
3. The Network
ERC-721 introduced `tokenURI()`, allowing contracts to provide universally readable token definitions.
EIP-5050 introduces `sendable/receivableActions()` to allow contracts to provide universally readable rules for interaction.
The @opensea of hyperverse gaming will be able to automatically discover new Games and compatible contracts in a way that makes them fully usable automatically.
It will even be able to analyze action event logs to predict likely interaction paths, new/popular/trending games + contracts, and more.
You could build a decentralized @fractalwagmi with passes, game-specific nft marketplaces, and more.
Coins (ERC-20) made money real
NFTs (ERC-721) made assets real
Actions (EIP-5050) make the hyperverse real
EIP-5050 is currently just a proposal. An idea that anyone can help contribute to / co-author (🙏)
Spells itself is an EIP-2535 Diamond so it can be updated to support any changes made after launch (w/out breaking integrations ✨)
terraforms is a high watermark in on-chain art and hyperverse building. @0x113d@xaltgeist have done more than almost anyone else for the cause of open, decentralized world building.
the ancients understand this.
public 𝚝𝚘𝚔𝚎𝚗𝚂𝚅𝙶() and 𝚝𝚘𝚔𝚎𝚗𝙷𝚃𝙼𝙻() methods for deep composability.