5 Reasons Why We Build On Flow Blockchain
When we started out on Ethereum 3 years ago, there was a constant threat of clogging the network similar to what Cryptokitties and other projects had done. For a traditional game like ours - Free to Play, Realtime-Multiplayer, Behind-the-Scenes onboarding, etc - this was always going to become a problem eventually! Unfortunately so called "Layer 2" solutions were neither properly working nor being a "perfect" alternative to proper on-chain solutions.
2. Behind the Scenes On-boarding
When you play a game, you usually go to the distributing store on your platform of choice: Steam on PC/Mac, iOS Appstore, Google Play, Playstation, Xbox etc
You are used to starting the app and being pulled right into action. So why should it be different when the game uses a blockchain layer?
Well, in the traditional blockchain sense it is about security and decentralization. However this has a strong impact on the user experience!
Download the game, download an external wallet, create a private key, sign messages, import into the game... and then you are finally ready to... Wait! You need to pay to play for every step inside the game so let's charge up your wallet and wait for the transaction to go through....
This is bad... really bad! Sure this 100-step guide allows for potentially maximum decentralization but as a developer you always have to ask yourself: How can we improve user experience and provide a better user onboarding mechanism without sacrificing security and most of the dezentralized aspects? Because after all, most users have a limited attention span and need to be kept engaged - not waiting for hours before they can actually do something in-game!
Consumer-centric design offered by Flow allows us to take a very similar approach:
When a user launches our game, they just start playing. They have an anonymous account created in the background and once they decide to continue playing and take full responsibility over their earned digital assets, they can claim their account. That is easily accomplished, without over engineering, thanks to the multi-sig support Flow offers by default.
This approach is the way to go for onboarding traditional users and players and does not sacrifice decentralization or security. How does that work if you get real traction for your app? Well this is the next reason!
3. Super cheap and predictable network fees
One of the biggest difficulties when launching a blockchain app or game - and especially if you as the developer are paying fees on behalf of your users - is predicting how much it will cost you to keep the application running.
On Ethereum for example, this is extremely hard. One day a single transaction costs you a few cents while at the moment the costs are beyond good and evil ranging from $0.50 USD to $4 USD or more!
This unpredictable status quo is impossible to overcome and does not work in any way for our behind-the-scenes onboarding and free to play mechanics!
With Flow however, things are different and the reason lays right in the design of the blockchain architecture.
Read More here: https://www.onflow.org/primer
What that means for us is that a transaction is super cheap - orders of MAGNITUDE CHEAPER of what used to be the norm on ETH. Creating an account is cheap. Transferring a NFT is even cheaper than that!
How is that possible?
4. A blockchain designed for the new paradigm of digital ownership and scarcity
Blockchains represent a new kind of software domain, with autonomous software running on decentralized systems providing open access to all. Given that previous domains have given rise to new programming paradigms, it’s worth asking: What is new in the blockchain domain that might demand a new programming paradigm?
In Solidity and WASM, “scarce resources” are just data structures! With only one tool in their toolbelt, the onus of securing scarcity falls solely on the smart contract engineers… at no small cost. Linear Types are a more restrictive form of data structure that are used in languages like Rust to improve memory efficiency and prevent certain kinds of programming errors. On Flow, resources are linear types with controlled creation and runtime support. Resources are a perfect match for managing scarce assets; they have carefully controlled creation, they are uncopyable and unforgeable, and their destruction must be explicit and deliberate. When resources are combined with capability-based security to limit unauthorized access to scarce assets, a new paradigm is born. We call this new paradigm Resource-Oriented Programming, and it’s a natural fit for blockchains. Cadence, is the native resource-oriented programming language to develop smart contracts on Flow.
5. True digital ownership
If you are familiar with smart contracts in the traditional sense, then you are likely aware that on e.g. Ethereum the contracts hold all NFTs in them and the user just sends and receives references to those. On Flow it is actually the other way around: The user actually holds all of their assets directly in their account and the contract is handling references only.
This not only improves security since the user has full control of their actual assets all the time but it also does not push responsibility to a potentially flawed or malicious contract.
What that means for Chainmonsters
In Chainmonsters, players are onboarded into our systems and onto Flow in the background. When they start the game on their device, they are immediately pulled into action. This happens through an anonymous process and only if they want to play the game on more than one device - let's say they play on Steam and now want to log into their iPhone - then they simply connect their email address to their account and are ready to benefit from our cross-platform availability.
While playing, their progress including caught Chainmons, earned items and pretty much everything else is represented by a digital asset. And you guessed it - they are created and synced in the background with the smart contracts on Flow. Without them being aware that there is a blockchain layer in the first place!
Thanks to low transaction fees on Flow, subsidizing the initial on-boarding phase for users leads to comparable mainstream CAC levels.
Due to our native integration right into the game servers, this allows players to not only play the game completely free of charge - but also benefit from mechanics that would not otherwise be possible, including a native in-game marketplace exclusive to the game. This provides the best possible experience for traditional players who need a safe and sound native experience. But also enables our more experienced blockchain-savy users to benefit from a completely new audience that otherwise would have never participated in on-chain marketplaces and trades in any way!
For us going forward, Flow is the solution we have been searching for almost 2 years now, after experiencing limitations of traditional blockchains ourselves.