 I'm Gub Sheep, and today I'm going to be talking about Dark Forest lessons from three years of on-chain gaming. So first, real brief introduction. I'm Gub Sheep. I've been working with the Ethereum Foundation since about 2018 on various education community and applied ZK research and development projects. I co-created Dark Forest and spent a lot of 2019 to 2021 building the game out with various friends including Ivan Chubb, Alan Luo, Bryce Huang, Robert Cunningham and more. And currently I'm working on applied ZK research and development and other applied crypto experiments with Zero X Park. So to give a little bit of context, Zero X Park is a research-focused organization that supports a network of teams that are all aiming to push the envelope on what is possible to build on blockchains or with new cryptographic primitives. And a lot of these experiments started with Dark Forest, which is a part of the Zero X Park community. So today's talk is nominally about Dark Forest, but the subject or the question that I'd really like to answer, looking back on three years of running this game, is what can projects like Dark Forest teach us about innovation and crypto more broadly? And to answer that, first we have to talk a little bit about what Dark Forest actually is. So summed up in a sentence, Dark Forest is a decentralized MMO RTS game built with ZK snarks on Ethereum. Now that's kind of a mouthful, so let's take a look at a few screenshots to understand what this really means. So first off, Dark Forest is a massively multiplayer strategy game that takes place on an infinite procedurally generated universe of all sorts of different types of planets and space entities. The most popular Dark Forest game mode is a week-long battle royale contest where thousands of players, bots, AIs and even smart contracts compete head-to-head for galactic supremacy. Players are dropped into the universe on a tiny home planet and they must harvest resources, conquer nearby planets and interact with their neighbors either through alliances or trade or negotiation or even war in order to expand their empires. It's a hardcore free-for-all space-themed strategy game and rounds can get pretty intense. The thing though that makes Dark Forest different from your typical strategy game is that it's entirely run on an EVM compatible blockchain. This means that all of the game state and all of the game rules are actually stored in smart contracts rather than a traditional back-end server. And every single move that any player makes is in fact an on-chain transaction. Because the game is so complex in comparison to a lot of modern Ethereum applications and production, each move can take up to millions of gas and players over the course of a single round can end up making thousands or even tens of thousands of moves per game. The other key mechanic of Dark Forest that is shared with a lot of other strategy games is that much of the intrigue in the game comes from the concept of hidden information or information asymmetry. The overall Dark Forest universe is practically infinite and it's teeming with thousands of adversarial players, bots, scripts, smart contract players, et cetera, et cetera. However, individual players upon joining the universe only have access to a very small slice of the total universe map. And this is exactly what gives Dark Forest its characteristic or namesake sort of Dark Forest feeling. So at first it might seem kind of paradoxical that we can have this on-chain application where there's so much complex private state being mutually moved around by different parties, especially because blockchains are systems where all information is public and transparent. In other words, any data that's stored inside of a smart contract is something that anyone can access. So how can we put a game where different players know different parts of the map on the blockchain? Well, the answer is that this is exactly what ZK Snark's enabled and thanks to the work of the IDEN3 team with SIRCOM and Snark.js back in 2019, these kinds of applications or incomplete information games first became possible to build on-chain. Okay, so hopefully that gives a little bit more color into what Dark Forest actually is. Next, I want to take a step back and just talk a little bit about how our thinking about the game has evolved over time. So we started working on Dark Forest back in 2019 and it started off as just a pie in the sky experiment. You know, let's build a ZK game where every single WASD move is in fact a blockchain transaction triggering a ZK Snark proof verification on-chain. Now, at the time, this seemed pretty ridiculous. Blockchains are super slow and super expensive databases that of course could only be used for critical financial applications or transfers. And games require pretty much the opposite. We did some benchmarking and we estimated that on Ethereum Mainnet, a move on Dark Forest could cost anywhere from 10 to 100 US dollars. And players might need to make up to thousands of moves in order to meaningfully interact with the game. So we originally built the game not because it was necessarily like possible or feasible, but it was an intellectual experiment to learn more about the tech. And obviously from a cynical or skeptical point of view, it would have seemed like pretty much a useless thing to do. But if you fast forward three years, a lot has happened since. Over 10,000 players from around the world have participated in Dark Forest rounds running entirely on-chain. They've collectively spent trillions of gas on Robson, Xdai, and Gnosis chain. And a rich developer ecosystem has emerged for player-built third-party plugins, alternate clients, GPU miners, player corporations, data marketplaces, chain analysis tools, and more. And we've seen some epic on-chain dramas featuring deception, betrayal, universe-wide alliances. One of my favorite examples of this is using running rivalry between these two player alliances. OrdinGG, a group of Ukrainian and Eastern European players, and DfDow, which is both of these are basically player groups that have teamed up using various crypto-native governance mechanisms in order to play the game. And one of my favorite sort of, you know, summaries of this story is this thread by Will Chang on Twitter where he basically, if you find this thread, you can read about the story of bitter rivals, the betrayal, redemption, it's kind of awesome. And beyond Dark Forest, we've seen this entire ecosystem of next-generation application-level R&D in the broader 0x part ecosystem, and beyond sort of emerge oftentimes taking some degree of inspiration from Dark Forest as key ideas from the game have clarified and been built on top of and extended. So the first question that we're often asked is why build games on the blockchain to begin with? And I think the answer to this question is pretty revealing about what crypto games can teach us about innovation at the application level more broadly. So there's been a lot of talk in the last couple of years about things like GameFi or Play to Earn or how crypto can help to financialize games. But to be quite honest, for me personally, these ideas are pretty much the least interesting parts of the possibilities of crypto gaming. I think that there's a kernel of some interesting stuff there. However, I think also 90% of it is a lot of times inflated by hype and speculation. And instead, I think that crypto-native games are powerful because they have this property which I sort of in my own head label as permissionless interoperability. Dark Forest is an Ethereum smart contract, which means that anyone, player, bot, script, or smart contract can interact with the game programmatically. This has led to some really interesting emergent behavior, which I'll show in the next couple of slides. So the first thing to note about any crypto-native game is that it is pretty much necessarily client-agnostic. Because the source of truth for the game rules and state is the blockchain itself, the game doesn't care about what client you use to read its data or interact with its API. In the first releases, we provided an out-of-the-box web client for players to use, and we noticed that players quickly got to work hacking the client to build automations, different kinds of data visualizations, or new skins. So Ivan and a number of other contributors released a plugins tool chain that allowed people to build and share snippets of JavaScript code that would allow them to customize or modify their front-end gameplay experience. And today, there's nearly 100 open-source plugins that players can use to remotely generate snark-proofs, outline enemy territory, or even wage automated war, and all sorts of different functions. So this has been fascinating to see over time. One step further than that, you have the idea of third-party client implementations. So again, dark forest or any crypto-native game starts to look more closely like resembling a protocol or a set of rules, digital physics that various people will subscribe to via whatever client they want. And this is an example of a client that Georgios and Koby Gurkin built for dark forest originally built in Rust. Now, the advantage of this is that it allows you to play dark forest in your terminal and it offers better performance perhaps than the typical vanilla JavaScript web client in that you can generate snark-proofs and explore the universe faster. However, this comes at the cost of having a nice visual UI. Finally, one more thing on the client side that I want to explicitly point out is the level of complexity that we began to see in automations and bots programmed by players to play the game. Again, all of that kind of activity is fair game on dark forest. Some of the most smart contracts simply specify the rules or almost the physics of the universe and subject to following those rules, you can do almost anything you want. By 2022, some top players had built tools that allowed them to almost entirely abstract away the base level gameplay mechanics of dark forest. Rather than making individual moves, players were instead operating these more complex dashboards of higher level heuristics and strategies, things like press a button to distribute silver to all upgraded planets in this region. Scripts would then translate these higher level strategies into base their moves, and at this point, players were basically programming their own gameplay experiences. You had players building third-party tools that became a part of their first-party player gameplay experience. So, so far, we've only talked about client-side programmability, and we've seen plugins, third-party clients, automations, et cetera, but I think that the true promise of crypto-native games comes even one step further. While all of those previous things are kind of reminiscent of things you might see in the modding ecosystem of games like Minecraft, et cetera, crypto-native games do allow you to do something that is fundamentally different, and that fundamentally was not possible in the same ways before. So, to illustrate exactly what's going on here, I want to bring up a hypothetical example. Say you're playing a traditional multiplayer RPG game, and you want to see a new feature added to the game. So this might be a game like RuneScape or World of Warcraft, or you might imagine like a multiplayer version of Pokemon or something. And let's say that you have a new feature that you would like to see implemented into the game, like player-to-player trading. So, in the traditional paradigm, here's what has to happen. First, I'd have to go to the core developers of the game and make my feature request, and maybe they decide to accept it or maybe they don't. Then after that, the core devs have to introduce a new data transformation on their proprietary backend and API routes on their web server that trigger these data transformations. And finally, they have to go to their canonical game client implementation that's distributed to everybody and add in a new UI component, like a button or something that, when clicked, triggers this new, or hits this new API route. Contrast that with Dark Forest, where in Dark Forest, any player can develop an escrow or marketplace contract that talks to the core Dark Forest contract. They can then deploy this contract to the blockchain and maybe it says something like, all right, if anyone deposits one ETH or contract, it will programmatically talk to the Dark Forest contract and trigger a release of like 100 silver from my planet to yours. Afterwards, they can write a JavaScript plugin that allows a web client to interact with this marketplace contract and distribute this to any player who wants to opt into this new core gameplay feature. In this way, players can add entirely new features to the game without having to go through specially permissioned developers. So, the broadcast market, which you can see on screen was the first example, actually, of a feature developed in this way. It was built by Blaine Bublitz and Jacob Rosenthal. And what it allows you to do is, it allows you to ask for someone to broadcast or share with you a certain set of map information for a fee. Now, this was extended earlier this year with Night Market, built by XeroxSage and PRXYZ, which is a trustless, ZK-enabled marketplace for you to exchange encrypted data with other players on the map. Again, for a fee. And we've also seen several groups build out marketplace contracts for in-game items, as well as some interesting experiments into player corporations or other coordination constructs. So, on the screen here, you can see a contract called Astro Colossus, built by DF Dow, Dark Forest Dow. So, this is really cool. Essentially, the Dark Forest contract does not distinguish between players as EOAs, externally owned accounts, or smart contracts. So, a smart contract can play the game just as much as a regular player can play the game. And the Astro Colossus was essentially a smart contract player that anyone could contribute to or pilot. And in just 48 hours of its operation, it reached, you know, among the top 50 places on the leaderboard with contributions from dozens of players. So, I just want to imagine, like, you know, you're playing Dark Forest and you run into this growing amoeba that's this like crazy, headless organism amalgamation of dozens of individuals. It's super interesting to speculate on how these kinds of things might evolve going forwards. And finally, new tools like those being built by teams like Lattice will make it easy for players to even add in new rules or resource types to the game. So, this is a screenshot from a mock-up of what it might look like for players to introduce plugins and third-party contracts that add in their own game modes, side objectives, or even resource types. So, to sum it all up, what does permissionless interoperability mean? Permissionless interoperability means that players can build the game experience, not just the core developers. And this unlocks a massive range of new kinds of affordances in games built in this fashion. Okay, so I think that's mostly my answer to question one. Why build games on the blockchain? In other words, what can blockchain do for games? The second question that I think is also very instructive to ask is, why build games on the blockchain? In other words, of all of the things that you could build on the blockchain, why bother with an application that doesn't have any obvious practical use case? And, you know, the text in the purple is sort of my, like, broader interpretation of what I want to answer this question for. And I think it's a big question to ask any R&D-facing org which is working on things that don't have a concrete practical use case. So, I've got three reasons. The first is that games and other experimental applications of this nature are technically demanding yet low stakes environment for us to rapidly push forward infrastructure without putting massive amounts of capital or social stake at risk. In the process of building crypto-native games and game infrastructure, the Dark Forest and Xerox Part communities have uncovered bugs in core infrastructure and motivated significant optimizations to, you know, things like NetherMind or Optimism Cannon or Akula or Aragon, et cetera, et cetera. This progress can happen rapidly and iteratively without putting hundreds of millions of dollars at stake as in DeFi. So we can move forward the ecosystem very quickly. We can move fast and break things, again, without suffering enormous consequences where people's real livelihoods are at stake. This is very reminiscent of, I would say, gaming's impacts on the early days of personal computing and of the internet. Games like Wolfenstein 3D and Doom massively advanced the graphics industry and stretched networking infrastructure to its limits back in the 90s and devs were forced to invent new techniques and optimizations, many of which we still use today. So the second reason is that games are a leading indicator in technology and player behavior in today's games can help us predict user behavior on tomorrow's digital systems. To draw a parallel back to the early days of mobile computing, another recent platform that has been hugely impactful for all of our lives, interactions such as swiping and rotating were initially popularized by, you know, someone would even say, invented by games like Cut the Rope or Angry Birds. And while these apps were just games, these interaction patterns that they pioneered have become ubiquitous across everything that we do on mobile apps today. So we've seen a few examples of this, a few early examples in crypto gaming. Thanks to the community management efforts of folks like Jordan Spence, Classic J, and Ivan, we've seen various crypto-native player cooperatives emerge using new crypto-enabled mechanisms such as voice voting and value distribution. The lead of D.F. Dow, Tony Goss, sums this up quite nicely in an article, the crypto-gaming governance thesis, in which he argues for the values of the value of games as a sandbox for innovation inside digital governance. And then the final reason that I would say that games are good for blockchain is that games are inherently playful. The crypto space currently is dominated, I would say, by technologists and financiers. And a thriving indie-game community can potentially help to bridge the gap between crypto and more creatively-leaning folks, such as artists, writers, thinkers, etc., introducing critical dimensions of intellectual diversity that crypto doesn't currently have. And I think that this kind of diversity is crucial for any intellectual movement or counterculture. Historically, many creatives have been extremely turned off or outright hostile to crypto due to the hyper-financialization of things like NFTs. But by really showing what the technology makes possible and what permissionless interoperability makes possible, we've been finally getting some indie-game devs to come around. So, for example, the Lattice team out at the autonomous world's residency has been pulling together a community of artists and creatives in London to introduce proper game devs and creators to blockchain technology. So now I want to zoom out even a bit more. What are some of the lessons that we can learn from Dark Forest and crypto gaming, which we've talked a lot about in this talk, that are even more broadly applicable to innovation on blockchain technology? In my head, three things really stick out. The first is, to put it bluntly, the importance of fucking around and finding out. So much innovation is the result of people being willing to work on seemingly blue-sky moonshots that seem impractical at the time and that are conceived, and for which we can't really predict what the outcome is going to be. So, to give a historical example that I think sums up this principle very nicely, I want to take us back to the 1970s. So, up until the 1970s, computers themselves were commonly conceived of as these like monolithic room-sized beasts, only accessible to select few organizations like government agencies and university labs simply because they were so expensive. The idea of the personal computer as a tool for personal expression and liberation was something that was not on the map at all, until researchers at Xerox PARC basically put together the Xerox ALTO which was the first personal computer somewhat resembling what we think of as a PC today. At the time, the ALTO seemed like a colossal waste of resources and money. It was one of the first devices to have a graphical display, like a monitor, and that took up two thirds of the memory of the entire unit. And in a world where memory was really scarce and really expensive, this seems extremely frivolous. Also, it cost like $20,000 per unit in 1970 dollars, which is pretty terrible. But Xerox PARC, what they were doing was they were looking at Moore's law at the time and they correctly predicted that all of these resources would become more accessible over time. And they decided to skate to where the puck was going. And in doing so, they quite likely either altered or accelerated the trajectory of computing technology by potentially even decades. Steve Jobs and Bill Gates in later decades cited Xerox PARC as the inspiration for so much of their own commercial visions for personal computing technology. Now, on a much smaller scale, again, we mentioned how three years ago Dark Forest and various other experiments started as Pine the Sky experiments. And we've seen firsthand how fucking around and then finding out has been so valuable to us in enabling us to uncover new research directions or new dimensions for crypto applications to really take the stage in the coming years. Another interesting that I've taken away from watching Dark Forest evolve is a mental model which I think of in my head as a dichotomy between systems and tools. So to give an example of what I mean or to explain what I mean by systems versus tools and the particular usage here, I'll give a few examples. So this is a screenshot from battle.net which is Blizzard's launcher for a number of very popular AAA games such as Warcraft or World of Warcraft, Starcraft, etc. Each of these games has a clearly defined canonical game mode, set of rules, ranking system, you know, methods of interacting with the game. It's a pretty prescriptive thing that tells you exactly how you can and can't interact with battle.net and it's a very well engineered, very large monolithic system. Similarly, this is a screenshot from the Facebook homepage. Facebook itself is also a monolithic system and they've specifically engineered ways that you are permitted to interact with other participants and components of the system. How you can log in and authenticate, how you can message other people and even what API routes you're permitted to access and how frequently you're permitted to access them. In both of these examples, battle.net and Facebook, we see monolithic systems that are disproportionately engineered to serve the goals and visions of a particular group. On the other hand, Dark Forest has found many of its coolest and most unexpected outcomes as a result of building tools for users. Tools, as opposed to systems, are small, modular and accessible things that aren't overly prescriptive in their use. A tool invites a user to uncover their own visions and use cases. In our case, the Dark Forest Plugins tool chain and many of the other developer tools that we built enabled people to do all sorts of those crazy creative experiments that we saw earlier in this presentation. This also means that tool builders have an enormous leverage in these kinds of early technology ecosystems. For example, Blaine Bublitz built the Dark Forest Plug & Dev server, which again enabled a ton of innovation, and the folks at DFDAO have been building out custom infrastructure that allows anyone to modify and run their own Dark Forest rounds with custom rule sets, leading to things like the Dark Forest Arena Grand Prix and more. Now, I don't think systems, at least as I'm referring to them, are necessarily better or worse than tools. They're quite necessary for the world to function. But there's a time and a place where you either want to be building systems or building tools. And early on in a technology's life cycle, before you can predict all of the serendipitous innovations or second-order effects of the technology, I think it's important to focus on tools, because tools empower people, future generators of innovators, to express their own visions that are unpredictable to us today. With crypto-native gaming, I think we're also just getting started. And I want to shout out, again, one particular team that will be releasing and demoing a lot of really cool stuff this week. So the Lattice team has been building out a tool stack for various crypto-native games and crypto-native applications. And if you're curious, their sessions are on the DevCon schedule. So the final note that I want to end on is the importance of playing what some people call the infinite game. So this is a term coined by James P. Kars, a religious scholar in his book, Finite and Infinite Games, which I highly recommend to anyone who's never heard of it. In this book, Kars basically puts forward the idea that there are two kinds of games, finite games and infinite games. A finite game is played for the purpose of winning. Think of a sports match, or a political election, or an MEV arbitrage genre. Conversely, infinite games are games that are played for the purpose of continuing the play. To me, this means engendering innovation, experimenting with new rule sets and ways of collaborating, and developing new tools for continued creative expression. I think that Dark Forest has done a good job of representing what it might look like to participate in the infinite game that is Ethereum. And I'll wrap this up with a quote from Tony Goss at DFDAO, where he outlines the philosophy of the DFDAO player group, which is to play Dark Forest is to build on Dark Forest. So thank you everyone, and if you're curious about any of the other work that we're doing to build on top of these communities, you can check out these sessions. But otherwise, yeah, I think that's all I've got for today. Thank you.