Gaming: PermisionlessRPG

The PermisionlessRPG Engine makes fully onchain game development easier. It solves three major problems: (1) Interoperability between arbitrary nfts and tokens (2) Asset transfers between players in game (3) Hacks and exploits by unrestricted wallet to wallet transfers of assets. The Permisionless engine solves these problems through virtual Location smart contracts that have full privilges to all assets controlled by NFT game entities at the current Location. This means that Locations can be added by anyone permisionlessly, since only a game entity's current Location has access to the entity's controlled assets. So users must be careful to only travel to Locations that are safe; but the advantage is that Locations can fully control asset transfers between game entitys and can define arbitraty rules defining how assets engage with each other. For instance, a Location might define rules for how an NFT Game Entity can equip or unequip certain item NFTs, while a different Location might grant bonuses to the Game Entity based on which items are equipped to determine the chance of winning assets from other players at the same Location. An additional benefit is if a Game Entity is transferred between different wallets, its in game state is retained.
The PermisionlessRPG Engine is a smart contract virtual location based rpg engine designed to run on EVM blockchain networks. It has 3 main components: (1) A singleton LocationController, storing Entity NFT locations and allows anyone to add new Locations to the game world (2) Storage vaults for both IERC20 and IERC721 tokens, which define which in game NFT entities control which assets, and (3) Interfaces for Locations which guide developers on which methods must be implemented for their Location to be compatible with the LocationController. Additionally, sample implementations of Entitys and Locations demonstrate common use cases such as restriction which Locations Entitys can travel to and from a Location, spawning new Entitys, and utility libraries for using Chainlink VRF to generate rolls for in game outcomes.