We believe playing together makes communities stronger. Everything we do, we try to enable and empower existing communities and their members. We just believe in the power of play.
Tavern enables web3 communities to launch their own onchain games without writing a single line of code. Games can be created, customized, and playable in minutes using the open-source Tavern protocol.
Solidity is strongly typed and doesn't support generics. It has limitations around sharing mappings between contracts and a very nuanced array typing implementaiton. This biggest challenge was building an abstract system within the confines of Solidity. I got around this by iterating constantly and not being afraid to throw out code that wouldn't enable the right capabilities. Once I started figuring out what works, I was able to use features of the protocol to build out the core functionality of the protocol - see the FlowEntity.
Tavern is technically dense, and I was deep in it for a long while. As I come out of that developer cave, it's incredibly complicated to explain concepts and abstractions for an ideally non-technical audience. I haven't gotten over this one yet, but chatgpt helps and I'm constantly trying to explain how it works to new people.
I want to support arbitrary multiple chains. I wrote some utility functions to track deployed addresses on different chains from the foundry/hardhat side, and then a custom hook and some typescript to dynamically and correctly load the appropriate address.
Tracks Applied (2)
CREATOR with Zora
Technologies used
Cheering for a project means supporting a project you like with as little as 0.0025 ETH. Right now, you can Cheer using ETH on Arbitrum, Optimism and Base.
Discussion