We built an EVM-based game that tests the limits of blockchain development and user experience.
Why Build a Blockchain Game?
You may wonder why Fission, a protocol engineering company building a decentralized edge app stack, would set out to make a blockchain game. Fission's developer-friendly SDK works for web apps built on the distributed or decentralized web. We want to bring our tools to blockchain dapps, but first, we need to better understand the current limitations for both users and developers.
Games require a sustained state of flow, so they tend to be very good at highlighting the constraints of a medium — and directing innovation. We feel so strongly about this we believe Block, Paper, Scissors will only be the first of many game-shaped experiments in what we're calling the SLW RK'D.
The insights we've garnered from building Block, Paper, Scissors have already helped focus our work on some exciting WNFS updates, as well as Filecoin-based endeavours to be announced soon.
So, what is Block, Paper, Scissors?
Block, Paper, Scissors is an updated take on the classic Rock, Paper, Scissors game. In our version, Block replaces Rock. So Block > Scissors, Scissors > Paper, and Paper > Block.
But, there are two critical differences.
You don't play as an individual. You play as a team. The network you choose to play on is the team you've chosen to join. Right now there are three: Filecoin (calibration testnet), Polygon (Mumbai testnet), and Ethereum (goerli testnet).
The play is asynchronous rather than synchronous. You're always playing against your own team's previous move. To make a move, each player casts their vote on the network. The move with the most votes is the one that is played. Sounds easy, right? Well, the strategy comes in when a player or group decides to break a streak and sabotage the other players' selections — perhaps you hop onto the Filecoin network to sabotage their vote and end their streak so that Team Polygon can take the lead. These networks are permissionless, after all.
Take a look at this quick demo video.
Bringing the Blockchain to the Fore
Because we are on the blockchain, and each frame is equivalent to one block, you might say Block, Paper, Scissors runs very slowly. Part of the challenge was not just accepting speed as a constraint but embracing it! It makes the game more reflective of the medium, and it helps to reveal some key points of friction and confusion.
Block production speed becomes painful as we attempt to use the blockchain for cases requiring a faster turnaround. And because the objective is to get the longest streak, the chain that is the fastest may have an advantage.
Finality isn't so cut and dry. A move won't be final until it's a few blocks deeper in the chain state. And if something changes, that has rippling effects on the moves that came after it. If there are a lot of outstanding votes, It's hard to be 100% sure what move you are presently playing against!
The Mempool is another potential source of information — a place where you might be able to detect an influx of saboteurs, for example. But accurately and reliably presenting its state is not a simple task.
We've constantly been wrestling with how much of the block-building process to reveal and incorporate and how much to abstract away. And in many cases, addressing the challenges above is most easily achieved by introducing centralization, neutralizing a key advantage of using blockchain technology in the first place.
Ultimately we've opted to abstract many things away and rely on centralized service providers to address many of these concerns. It's the pragmatic move right now. But we believe we can provide truly decentralized alternatives as our own protocols and platforms mature.
The blockchain is still quite volatile. The network goes down, and transactions can fail. Forge, the command line tool we use to test and deploy Ethereum-based smart contracts, has been breaking down as we deploy contracts to Filecoin. Speaking of Filecoin, not many wallet clients support it yet, making game adoption more challenging.
We hope the game helps to shed more light on the character of block production and how it differs across various blockchain networks. And that it helps identify targets for further decentralization without sacrificing similar improvements to UX.
Help us test! We invite you to play Block, Paper, Scissors while we're in Play Test mode on the three testnets. Once we've seen how it holds up, we'll deploy to mainnets, and the real game will be afoot!
New features! We were delighted to discover as we built the game that there are other ways to play. Since each move displays a color that corresponds to the selection (Block, Paper, or Scissors), and each color square is placed on a grid, it creates a visual canvas where users can coordinate to draw pixelated frames. We have a feature planned to recognize those who draft a plan for a future game state and successfully convince people to help them execute it. There will be a leaderboard for these A-Team players (because we love it when a plan comes together😉), and the tracker will be available soon.
Expansion of the SLW RK'D. We hope you enjoy playing our game so much that it inspires you to fork and build your own. If you do, we'll add it to our library of games. This library will be known as the SLW RK'D (Slow Arcade), and we hope it is both educational and fun for everyone involved. We'd love for you to join the effort and build out more games for people to play — on blockchains or any other type of distributed system! There's no wrong way to do it.
The Principles of SLW RK'D
- Feel the Network: Game mechanics reveal the capabilities and limitations of the networks the game operates on — typically blockchains.
- Embrace the Pace: Each game move corresponds to the speed of consensus on that network. For blockchains, each move is at least one block, tying game speed to block production rate.
- Casual Participation: Players might track their personal records & scores, but involvement in every block/move isn’t required. Come and go as you please!
- Collaborative Spirit: All players and each network jointly determine each move, encouraging teamwork — mostly.
- Cross-Network Competition: The leader is decided across all deployed networks.
- One World, One Game: Despite the number of networks the game is deployed to or how many participants are active, there’s a singular game state at any time. The game starts once, and…
- It’s Endless: With current technology and physics laws, the game’s end is out of sight—unless all deployed networks cease to exist.