ChessBall
Football meets chess onchain
The problem ChessBall solves
What problem every game solves? Boringness.
This game - how I solved this problem 13 years ago.
Yes. this game already existed in my childhood, and I liked it so much!
But then the game is stopped working. And then disappeared. Forever. With all my stats, with my friends in that game. And, of course, with the main thing - ability to play it again.
I continued to live my life, but from times to times I remembered this game, cauze in some period of day it's a perfect choice of time spending. This game is not so long to play, and it's like combination of tactical from chess and randomness from football.
And this summer I got thoughts "why not to build it again?". Just from my memory. And I tutorial video on YouTube I managed to found.
It should be fully onchain ofc! I want to re-build this game to make it live forever. Even when I'll gone as a developer - the game will have ability to live and evolve. Thanks to crypto!
So, I did it. After 3 weeks of coding. It's not perfect, it's just starting of a journey.
But I like it! Now I can play with my friends (some old ones, which remembers the original game!), make new friends and build community around the game to improve it and make it stay here forever.
I really like what we can do onchain now! Yes, still challenges to overcome, but it's getting much much better!
Challenges I ran into
Firstly I build this game fully decentralised, using smart-contract on Base, and placed game engine (written in TypeScript) on Gelato Oracle.
So, users can interact with smart-contract directly, and game would be executed decentralized, and results would be written to smart-contract again.
Sounds fantastic! I don't even need my own servers for backend, only frontend part and interactions with smart-contracts.
First problem - transaction approval
But.. First problem I faced - used need to approve every transaction, and for the game it becomes mess. 45 moves during 1 game - users won't be happy with that :)
There is cool features just for that - sub-accounts, but it doesn't work for now in mini-apps..
So, I implemented relayer server. Now users only sign message once per 24h and that's it. Much smoother user experience.
Second problem - costly transactions
Second problem I faced.. transaction costs and Gelato Oracles.
So, usually transactions are quite cheap on Base, but during load spikes prices goes up by 10-20 times. it makes them costly, and 1 game to play can cost up to 5$.
And I cannot use Coinbase Paymaster for Gelato Oracles..
So, I've spent 3 more days to rewrite it without Gelato Oracles, and now move history not stored in smart-contract state, but in DB and smart-contract events.
80% transaction price reduction, ability to use Coinbase Paymaster.
Minuses - it's less decentralized now.
Looking forward to use Appchain for my game - should fix this problem too!
Because of those challanges I faced, I barely managed. to finish it technically in time. So, unfortunately, didn't work on promotion of the game as I expected.
But, it's matter of time.
And the last problem - X banned our newly created account, which was ready for launch Ads..
They banned us without any normal explanation, without reactions for emails..
That's why decentralized social networks is much better!
And I love what Base is doing, happy to be part of this! 🙂
Smart Contract Address(es)
0x739b4fc0DD8B592Da1F5216b1DcB19C77EE77dB3 (proxy)
0x0020347d04d50b2ade1d0792541c7c7070986d85 (current implementation)
Other Onchain Proof
Gelato Oracle -
Tracks Applied (1)
Top 5 New Mini Apps
Technologies used
Cheer Project
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.
