[Podcast #4] David on Playmint and onchain games, Part 2
On the Hylé podcast, we talk about cool applications that leverage cryptography in general and zero-knowledge technology in particular, with a new guest for every episode.
David is the co-founder and CEO at Playmint, a team that builds decentralized games and recently introduced the concept of playerchains to make onchain gaming smoother than ever before. We had so much to talk about that this was a double episode, so if you’ve missed part 1, make sure to catch up before coming back here!
If you prefer the written format, you can read the highlights below!
Playerchains
There are different ways of approaching decentralization that don't involve a public blockchain. We created a game, Substream, that proves this.
That's a more suitable approach for games because it reintroduces a level of performance that players expect and removes gas fees, which can be confusing.
One thing we found missing in the EVM ecosystem was a tick, a fixed-delay refresh. You build games around this, and in traditional games, the absence of a tick causes many headaches. To build Downstream, we had to use several hacks to solve something that is considered part of the system in a traditional game.
When looking at playerchains, we're able to reintroduce a tick that goes at a steady rate every hundred milliseconds or so; that's something that can be set for Substream, something you can build a game around, allowing you to do a rollback if needed. But now we're decentralized, and we're back to more traditional gaming architecture.
That's more fluid. It has more presence. We deliberately built a game that would really stress test how fast we can get that to go.
In games, the world is generally limited by the speed of light. So there's always going to be some amount of time between hearing from people if they are far away. So you're always finding in-game ways of compensating for that. We were able to build an infrastructure that allowed us to solve those problems in the same way as we would in traditional games.
It ends up being a new type of Layer 1. I don't want to get too caught up in hyperbole, but it's a different type of blockchain. That's what we built Downstream on, but it's not the best architecture for building games. What we've built is as decentralized as a blockchain but designed in a very different way that is more suitable for building games.
Execution sharding in the blockchain world
Blockchains are great for some things, but not everything. So, let's find the correct technology for the task at hand.
Imagine that we built a game that involves flying down to a planet, building things Minecraft-style on that planet, and zooming off to another planet.
The universe doesn't need to know about every single thing that we're doing on a planet until you come and visit it. If somebody new comes and visits, then great; you can be part of this world. When we all leave, that world status needs to be saved somewhere. But you don't need to update the universe on every single block that you change. You just have to update people when it becomes necessary to know.
My analogy is that I don't care what's happening in Paris until I visit. I love Paris, and it's a beautiful city! But it only becomes relevant to me when I go there, and I need to know how the Metro works and what the good restaurants are.
Today, that's not very relevant to me, but it becomes very relevant when I go there. Similarly, we can organize ourselves in a playerchain format and then update people as and when they need to know about it. And we could use the blockchain for that, or maybe there are other systems for doing that.
Do you need decentralization?
I care about decentralization. That's what brought me to the space. Not really crypto, not really speculation, but like decentralization. In order to get that speed in fully onchain games, we've become more and more centralized.
We're guilty of this as a company: Downstream basically ran on a server at one point. On that server was a blockchain, sure. But it feels centralized: we're paying the bill for this, and it runs on an Azure server. In our efforts to become more performant and be a fully onchain game, then we've started to introduce centralization.
We should settle on another layer or something like that, but given that we're already using tricks and hacks in order to get the performance where we want it for fully onchain games, playerchains are okay. They're a different approach that actually ends up being more decentralized than a fully onchain game because we're introducing centralization to get the performance where we want it. So it's just a different line of thinking.
The origin of playerchains
Our first experience was building directly on Ethereum. That was challenging because Ethereum is slow and expensive. That was where we built our first game. And we've never built on MUD: MUD is an excellent framework for creating fully onchain games, and it arrived after we were some way into our game, so it's not something that we've used.
We then tried Starknet, the first example of a Layer 2. We talked earlier about needing to solve some performance issues, and L2s seemed like a good way of doing that. Starknet seemed like a good choice. But in doing so, we had to embrace Cairo Zero, which was a challenging development environment.
To achieve that performance, we built proof circuits and verified them onchain, and then we tried Redstone, and so on.
Pushing off in a different direction led to interesting results. Our experience with building circuits, the idea of state channels, and verifying onchain pushed us toward having the courage to ask, « Hang on a minute. Should we approach this in a completely different way? »
It leads us to more radical approaches, which is where we get to playerchains. Building in challenging environments forces us to come up with some new ideas.
The future of playerchains
I think we've lost our way in Web3 games and maybe even Web3 as a whole. The promise of Web3 for me was disintermediation. We've ended up in a situation where so much of the power and value of the internet has ended up in the hands of Apple, Google, Facebook, and Twitter… and it's avoidable. It shouldn't be that way.
You can address these issues with decentralization ideas. And it's a disappointment to me that Web3 gaming and maybe Web3, in general, have ended up being about crypto speculation. I'm excited about playerchains because they are a solution to a real problem, which is how you introduce decentralization to traditional video games or even to the future of games, including the Metaverse. And Metaverse is a bit of a taboo, but it's, in the widest possible sense, a place where we can exist digitally.
I don't want those to be siloed experiences. I want them to be more open. The internet is an amazing place because it's built on open standards, and you can build what you want permissionlessly.
That's not true of games. If I want to put a game on the Google Play Store, I have to ask for Google's permission, submit it to them, and ask if I can use Google's monetization method, and I can only build what they allow me to build. That isn't the case with the web; it's just things built on open standards. But in gaming, it's super centralized, and it's really holding the games industry back, and certainly holding the Metaverse back, a long answer to a short question. Still, playerchains are one step along the right path to decentralization. And crypto has gotten distracted by trying to make money on Bitcoin or whatever.
And that's fine, but not why I'm here. And playerchains represent the start of a better approach for decentralizing games.
If you think about a web browser, which is a centralized bit of technology, it works very well. We have a choice: we can use Firefox, Chrome, or Internet Explorer, or we can use whatever we want. And so there's that choice of centralized browser, but it looks in on a set of decentralized content. DNS, HTTP, SSL, and all of these open standards allow wonderful things to be built. Those companies can still monetize their browser if they want to. It's perfectly possible to create successful businesses on decentralized standards.
If I compare that with a Google Play Store, everything inside it is centrally controlled. Okay, the world keeps turning, but I want a better world. You’d get a much better result if games were more open. And I think opening up games will probably lead to some future version of the Internet.
Neutrality
Playerchains may use a specific set of technologies to approach serverless multiplayer, but we're also thinking about decentralized sign-in, decentralized in-app purchases, and decentralized distribution and ad networks.
All the pipework that sits above the very low-level Internet pipe work is centrally controlled right now, but it doesn’t need to be, and that's holding things back. I'd like to offer up to the games industry: «Here's a different way of approaching this that has better long-term effects. »
The winning strategy, whether you're Epic, Minecraft, or Roblox, is to embrace a more open strategy. Interestingly, the more enlightened leaders recognize that a decentralized approach is the correct approach.
Someone told me this story of how Microsoft kept Internet Explorer very much the dominant browser. And Bill Gates fought for years to keep it as a dominant browser on any Windows platform. Eventually, the government stopped him, and he admitted that it absolutely was the right thing to do for the world: open it up. It was in his business interest to make that the dominant browser, but the world is better with a choice of browsers and a choice of how you engage with the internet. Today, games or interactive experiences are very centralized, but the world becomes better when they're decentralized.
Trust infrastructure
We have blockchains built around 10,000 nodes agreeing that « this fact is true,» and that's interesting for some things but not all.
The level of trust necessary in a typical video game is not the same as that necessary in securing a million-dollar transaction. The level of trust present on public blockchains is heavy-handed for games and comes at the cost of gas fees and slow transactions.
You have to find a different way of approaching trust.
If you want to fix that, playerchains is an example of something that works well once there's a certain degree of trust. But how do you establish that initial trust? Trust infrastructure looks at things like attestations, where you can prove that I'm this person, or I've done this in the past, or I'm a trustworthy person for this, that… Moving away from the trustlessness that you see in a public blockchain, you need to find a different approach to trusting players.
I recognize that we need to solve the problem differently.
You can say, « You don't need to trust me because there is trustless infrastructure. » And that's what public blockchains are. Or you can take a different approach, which is «Here are reasons to trust me, » or «Here is a set of things about me that show I'm trustworthy enough to do what we're about to do. » And the latter is much more in tune with our society. That's how we go about our lives.
If I go and buy a sandwich at lunchtime, I have a level of trust that the baker is not going to put poison in my sandwich. I'm not going to buy a house from him without a contract in place, but I'm happy to buy a sandwich, and there's a level of trust because he's in our town, and people go there. That's how society works. We find an appropriate level of trust to do the thing we're about to do. And trying to do everything with trustlessness is problematic and unnecessary.
If I'm playing a game with my buddies, then we need the majority of us to agree on what happened. And sure, if there's a bad actor, then we need to know about them and kick them out so we don't play them in the next game. There is a scenario where a bunch of strangers join the game, get the consensus, and break it in some way. And you disagree with what happened. You can solve that by saying, «We need a trustless environment, » or you can say, «Should we just be a bit more careful to make sure that we don't have a bunch of people joining our group? »
In this case, the question becomes how to establish that they're untrustworthy. We do this every day with WhatsApp groups. There's a degree of trust in adding somebody to a WhatsApp group. We found a mechanism for doing that. We know them in real life, or there are some other KPIs that we use to establish whether we're happy for them to be in our group. It's not trustlessness, but it works in our society. We need a set of technical tools that allow us to create a level of trust that we're happy with for whatever it is we're about to do.
I'm really glad that Bitcoin is in the world. I like that it's provable. It works. It's a different economic system, and I wouldn't change anything about it. But that's not the only way that we can approach decentralization.
Closing remark
We've lost our way in crypto and got distracted by meme coins. We shouldn't be happy with where we are now. I believe that building games for people to speculate on—okay, it's a use case, and it has an audience—but this was supposed to be bigger than that.
I'd love people to contact me and say, «Look at what we're doing. » Look at why we've chosen the approaches that we have in playerchains; ask whether or not we can introduce decentralization rather than crypto to the world of gaming.
There's a better path, and I hope that Playmint is on it.