"Catacombs" does not try to solve any problem, its goal is to actually create problems so players can enjoy solving them :)
Having said that, Catacombs is a game designed for decentralised networks. Its game mechanics is sybil resistant and cater for human players rather than bots:
It remove the usefulness of sybil by requiring players to deposit a stake to play each character and encourage player to have several of them.
It makes the game more human by reducing the need to transact to the minimum and instead let the gameplay takes place in the social layer. To facilitate this, players play once a day with as many characters as they chose. Each move is then fully resolved onchain.
But in order to make their move, they first perform a series of actions locally and play a single player experience akin to “rogue-like” games where they move around the map to discover treasures and battle monsters using a fun card battle mechanics.
Once they are happy with their move, they also choose a strategy to play on that day against the other players. Once commited, they just need to wait the next day to see what other have been doing and play their next moves, and so on.
The fact that no one knows your move until the next day, encourage social game-play as who can collaborate stand a better chance.
Catacombs is also designed to abstract away blockchain entirely and player can start playing with their mobile phone without the need to own any crypto or wallet. They just sign-in with email and start the game. We are working on integrating NFT checkout with credit card but did not include it yet.
To summarize, with Catacombs, player can start playing right from their mobile phone, play a fun solo game and if they wish to start playing multiplayer they can stake and commit their move onchain and continue playing each day.
I also worked on an alternative frontend in the form of a farcaster frame using the exact same map: https://warpcast.com/ronan.eth/0x8baf83d6
Catacombs started as a small hackathon project in ETHBerlin where I managed to get a basic contract working with a character moving on a grid using a local EVM. The demo was barely working but was so happy with the direction it could take that I decided to continue to work on it as part of this buildathon.
The work for this buildathon starts at this commit: https://github.com/wighawag/catacombs/commit/44f432c80443a7417156177fa47d8a4e45cb9297
In this buildathon, I not only managed to make the game much more appealing by having a nice UI and intro, I also added a cool card mechanics for battle and even made the monster move arround the map as the player move.
While all of the game mechanics is resolved onchain, thank to the local simulation and commit/reveal system, it actually feels like a normal game with fast moves and feedback.
This was not without challenges though. HTML/CSS is not my main strength but got to learn a lot more by making the current UI. I still did not finish the battle screen and there is still a lot to do of course.
The main challenge though was probably how to structure the code in a way that I can take full benefit of the local EVM. I am quite happy with the result and it still please me each time I update the contract's solidity code I can instantly see the behavior change right in the browser, without even the need of deploying contracts until I need to test the commit mechanism.
The other challenge were the lack of time to finish the NFT checkout integration and full commit+reveal cycle. This will be for another time.
Yet another challenge is game design. The card mechanics offer a great potential for different type of monsters and weapons but balancing will need to be carefully consided.
There are further direction I want to tackle next on the game design side too: while the monsters you fight are a great solo experience, I intend to add boss monster that will require multi player to collaborate!
Tracks Applied (1)
GAMING with thirdweb
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