Engines such as Dojo are making it easier to spin up composables and persistent games running entirely on the blockchain. The architecture relies on having a world contract listing down all the systems, components and entities in that particular world, making it easy to follow changes and providing a single point of entry to the world.
Let's say we built a game built with Dojo and deployed it on the blockchain. The world contract of this game will have its own dedicated address and that's all well and good. But how do you find this world?
You can find it by googling the name of the game, the team, and find one client that is serving this game. But how do you know for sure the world contract address is the real one? When deploying a world contract you give it a name, but there could be multiple world contracts with the same name, making it difficult to find which is the legitimate one.
This is not an uncommon problem in blockchain. When sending funds to a friend you need to be extra careful you're using the correct address: that you haven't made any mistake and that it was indeed your friend who sent you their address and not someone impersonating them.
These issues can be mitigated by using a naming system, like the Ethereum Naming System. ENS allows users to register a name, similarly to a domain name, that will resolve to their address. Rather than sending funds to 0xc0ffee254729296a45a3885639AC7E10F9d54979
, you send the funds to myfirstname.eth
through compatible wallets and the resolver will take care of using the correct address.
Users will pay a fee to register their name for a period of time. On ENS the price depends on the duration of the registration, and how many letters the name name has.
What if we used a similar system to register and name worlds contracts?
Imagine a world registry where worlds creators would register their world contract address and give it a name. This would have several benefits:
We could even imagine different registries for different usage: all the games in the RPG registry would need to use the "RPG-compliant" systems, the Dojo official registry would require games to be built using Dojo. Registering a world to a given registry would require passing an onchain test attesting the world contract and the systems/components/entities comply with a set of rules.