IOSG AW and Full-Chain Game Engine Narrative – What Will Dojo and Mud Bring?
Exploring the IOSG AW and Full-Chain Game Engine The Impact of Dojo and Mud on Narrative
From PC to mobile Internet, and even artificial intelligence, games have brought new applications of technology by educating the new generation of consumers and creating previously non-existent use cases.
In the process of playing games/creating interesting games, people have experimented with new technologies and come up with ideas on how to utilize them. Gamers can come to a simple conclusion – the gaming industry has the most outstanding designers and developers!
The #Devconnect Istanbul event hosted #Automous World Assembly, which has been one of the most insightful and innovative crypto events recently. During AW, we see people using cryptographic technology to do new things instead of just doing old things better, which is why IOSG sees AW/FOCG as one of the many ways to achieve mass adoption. (The following content is based on speeches by Sylve from Dojo and Kooshaba from Lattice at IOSG OFR Istanbul)
Why AW – Dojo:
“Why put games on the blockchain?” I want to try to answer this question. So far, blockchain games have focused on one thing, which is to put games on the blockchain as little as possible, only to put game assets on the chain. And that seems to make sense because it is decentralized and assets can interact with other assets. But what if the gameplay and utility of assets were also put on the blockchain?
Blockchain games promise a lot of things, and I want to summarize them. I would say they promise to bring to games what DeFi brings to traditional finance: decentralization and interoperability without permission. But we want to take it to a higher level, and that’s why we came up with another concept called Autonomous World.
This is still a very vague definition. But our idea is that, outside of any specific game’s control, you have a game that you are constantly involved in. Imagine being in a blockchain-based world where anyone can contribute to it. And that’s exactly what we’re based on. If you look at Twitter, everyone has their own ideas about what an autonomous world is, how it works, what it should be, and what it shouldn’t be. We have a lot of ideas. So a large group of people have spent a lot of time and effort, even trying to conceptually understand what this means. We even have companies trying to build game engines to help more people join and build blockchain games. We have Mud, Dojo, Argus, and Curio. We are very confident that this is an exciting thing, and we hope more people will join and build it.
Why? Why do we spend so much time and effort doing this? My answer is negative: why shouldn’t we do it? It is indeed a bad idea.
First of all, it is difficult to build games on the blockchain. For games, the blockchain is not fast enough and the cost is too high. This is not the first time we have heard this. I like Antonopoulos’s famous quote: “Most networks can’t elegantly scale, but those networks are ultimately what we need.” He uses this metaphor to describe the Internet. The usability is not suitable for the Internet, whenever we try to challenge the limits of the Internet, there is a group of people who say, you shouldn’t do it on the Internet. The Internet was not made for that.
For the blockchain, we are basically on the same starting line. Various initiatives say, “No, you can’t put coins on the blockchain, please, you will ruin the blockchain.” If you look at the history of the blockchain, most of it is games crashing the network, and now our situation is, “Please, you can’t put game tokens on the blockchain, you will ruin everyone’s fun.” Fortunately, we now have second and third layers and launch them as a service. Compared to before, this is a huge improvement.
I think there are three main things about putting games on the blockchain.
We are building this thing with your energy and resources. The blockchain is a legitimate machine. You don’t have to trust me, you don’t have to trust my reputation, you just need to trust my code. This is a good thing, many new independent developers and many people can benefit from the legitimacy the blockchain gives them to build this multiplayer world. You don’t need to be Valorant, you don’t need to be Fortnite, you just need to build your own game and benefit from the legitimacy the blockchain gives you. In this way, people will believe in the code, not you.
In my opinion, “permission is possible” is the most interesting part of it. Building this game on the blockchain allows people to mix and match. This doesn’t mean it can’t be done without the blockchain. It’s just that the blockchain is very convenient. You can achieve it through APIs or other means. But it’s even more convenient if you can access it directly.
For example, in this example, we have two worlds, A and B. They share the same map, but maybe you have another game where the applications are different, but they display the same game logic. If you go further, you can even find ways for people to contribute to this world. It is not always a single company providing all the value for the network. For example, now there are games being played on MUDs that people never get tired of. What would happen if you find a way to motivate people?
Finally, I think it all comes down to the temperament of George Mallory. When asked why he wanted to climb Mount Everest, he famously replied, “Because it’s there.” I think people are drawn to challenges, communities, and greatness. And why not do it on the blockchain?
The Lattice development team for the full-chain game engine Mud recently launched an L2 built on Op Stack, significantly reducing L1 submission costs to support full-chain game or autonomous world DApp operations. The Lattice team has been developing Mud, aiming to provide an open-source and modular framework for full-chain games or autonomous worlds, in hopes of creating a universal standard to lower the barriers for developers. Redstone takes it a step further by solving the issue of which chain to use for full-chain applications, further solidifying the moat of the Mud+Redstone one-stop development path. Perhaps this will greatly influence the determination of full-chain game or application developers to use RaaS to launch their own chains.
What AW – Lattice
“Why are on-chain games difficult, and how can we make them better?” Today, I want to discuss how to excel at on-chain games.
We have been working on on-chain games for some time now, and I have been pondering this question. For me, this is the dream, this is why we are here.
I work at Lattice, where we develop on-chain games using the main game engine called Mud, which is also an on-chain framework. I specialize in Sky Strife and game development at Lattice.
This is a screenshot from Runescape, a browser-based 3D online game that was released in 2001. It’s absolutely insane and still has millions of players today. Personally, I have spent thousands of hours in Runescape. If you haven’t played Runescape, then we can never be friends. It’s a really fun game, let me give you a brief description. You start at level one in the game, and you are very weak. The goal is to acquire new skills, money, influence, power, basically, it’s like a second life for kids and immature adults in real life. It’s a player-driven thriving economy where money is a major influencing factor in the game, along with PVP actions and permanent death in which you lose everything on your character.
Throughout the development of Runescape, there have been protests from players against the development team, mostly related to the economy. Now my question is, how can we make Runescape unstoppable? I think if you ask any average Runescape player, “Hey, do you want to kill the people who made this game?” I think they would all answer, “Yes, I wish they would disappear, no one should control me. What we want is an independent game, something that cannot be monopolized, so I’ve added a lot of constraints to this conversation.” The autonomous world, of course, is our dream. We want a Runescape and an on-chain game that will never be shut down, no one can control it, no one has the management keys, no one has the privilege to upgrade. The logic of this game is 100% on the chain, where no one has the authority to enter the game, they cannot change your mind, and the game is not dependent on the client. If possible, you can play the game in a terminal window without any graphics.
This is a more technical question, but just like there is no pre-compile, no specific application gene, I’m not discrediting these things, it’s just that if we want an autonomous world as a dream, these things, these technologies will sacrifice decentralization for playability. Today we are going to focus on the EVM, which is the most commonly used execution environment. Let’s keep it simple.
The game tick of “Runescape” is 1.66 Hz, which is very slow compared to traditional games. I believe the tick of “Valorant” and “CSgo” is 120 Hz or 140 Hz. So, it seems feasible on the chain, right? This is still faster than any other blockchain we have seen, but it has a very simple game loop. We can definitely achieve this on the chain, so what could go wrong?
Here is a picture of the starting area, right next to the starting area, there is a small goblin village where players start from level one. Generally, players need to walk here and start attacking goblins. There are many goblins around. You can spend several hours attacking goblins, picking up loot, and so on. Okay, the first thing we need to do is to make these little goblins move. Okay, should be no problem. In traditional game architecture, you need a server to determine where you want the goblins to go with a checkmark. The server just moves them step by step, and players chase after them and eventually defeat them. The first obstacle is we need pathfinding here. We need to calculate pathfinding on the chain, which is the first barrier. We need to run navigation on the chain, which is a completely unrestricted operation. For example, if a player runs out of the goblin’s starting area while being chased by the goblins, the goblins need to calculate the objects around them, which may exceed the gas limits of the block.
The first limitation is that the goblins will behave stupidly. You have to stand very close to the goblins to let them know you exist because they have five satellites running stars. Another problem is who sends these transactions. We don’t have a ticking server in the background. Someone must personally send the transaction, saying, “Hey, goblin, you should attack that player.” For example, if you let the players send the transactions themselves, the players will never send the transactions.
Why would I voluntarily let this little goblin attack? For this question, the traditional answer on the chain is that the only way to respond is for players to interact with the goblins first, and when they attack each other, counterattack at the same time. This doesn’t work either because if the game is nearing its end, you can no longer attack the goblins. You can escape, so there is no danger.
Therefore, we need to incentivize players to send transactions to operate the sprites in some way, and at the same time they have to pay Gasto operate these sprites. And all of this is in the game server, where the sprites walk around, feeling alive, and you should be afraid of them. For traditional games, this is just an appearance, but we already have some strange economic incentive mechanisms, and we need to tell players: “Hey, we’ll give you a small amount of tokens, so you can be captured by the sprites.”
We continue the game. We need to run somewhere in a certain place, and we need to know where to avoid the sprites, but this time we need to run a coordinate on the chain, and players can calculate a coordinate themselves. We provide it to our contract. The contract only needs to confirm its validity. Now, confirmation is still the computation we need to do, but it’s much simpler than running a coordinate, and technically, players can provide any path capacity they have calculated as long as it is valid. Let’s get started.
Okay, the result is that players and sprites run around and collide with each other. Apart from sprites and players, the game world generally only has terrain, such as trees, which are common elements in traditional games.
How do we know the existence of this tree on the chain? Let’s not argue for now about the best way to store this tree on the chain. Sometimes, this tree must enter a storage space, which is called “Gas”. The question is, who pays for the cost of storing this world. Just like as a game developer, you have to bear the cost of storing this world. This is just the starting area of Rune World, and the whole Rune World may be 1,000 or 2,000 times the starting area. And this is just a relatively simple online game that people can run in a browser. Due to various restrictions, no matter what we do on the chain, the scale will be greatly limited. Technically, it is feasible, if you want to spend millions of dollars to move the entire Rune World map to the chain, you can totally do it. It can also be done on the main network.
In the Realm of Runes, when you hit a small sprite, you will see a number ranging from 0 to 15. When you are at level 1, this number will have some randomness, and randomness is another thing that we cannot easily achieve on the chain. How do we achieve this? Whenever a player takes an action, we will submit a block hash value from the past, and then in the next attack, we will reveal this block hash value and reveal the randomness that this attack will bring. This is just a small technical detail, but it runs through the design of the entire chain game.
At any given moment in this disclosure scheme, you will know the consequences of your next move, so you will never think, oh, I don’t know how much damage my next move will cause. You will only think about how much damage you will cause after the next attack. It’s like a weird thing players have to figure out, but in reality, you just want to hide information throughout the stacking process. But okay, our battle adopts this strange randomness mechanism, goblins move around, we have a world map, and players are having a great time.
Great, what will fairies drop then? In the traditional Rune Realm, they would drop gold coins, you can see I have a few coins in my inventory. I don’t know, between 3 and 5 coins, in game design terms, it’s a faucet, even a small amount of coins, someone will sit here for an infinite time. They will abuse this faucet, getting infinite coins from the fairy starting area. The game is inflationary, that’s fine, but in a chain game, it will become a problem because no matter what token you bind to this reward, it will quickly return to zero, right? So we need synchronization, we need essential property destruction, we need a way for this goal to leave the ecosystem, I think this will become the main design decision for all on-chain games. It’s like in traditional online games, you don’t have to worry about inflation. But here, I think we need extreme permanent death, your character must be very fragile gold must leave the system at a faster rate, this is not a good experience for new players if every corner is fearful of death, this may just be an education problem, just like in our chain game, you should always feel fear, this is basically real life.
So well, I don’t have a completely satisfactory answer to explain how we can make everything better, but everything I just described can be implemented on the Mainnet from a technical standpoint. Except money, there is nothing stopping you from doing these things on the Mainnet, but it is indeed an education problem, as a shared original problem.
Currently, every on-chain game developer has to reinvent the wheel when making games. They have to write their own libraries or use their own professional skills. We need consensus. We need a shared game engine, a shared framework. You have to believe the results I calculated on the tissue, but I quickly made a small prototype: I think, if five players and five little fairies, it would require about 2.3 million Gas per second, this is crazy, if you want to compare with our current chain, the theoretical value of the mainnet is 2.5 million Gas per second. The so-called fastest and highest throughput Arbitram Nova is 7 million Gas per second, and Uh Base is 15 million Gas per second.
If I haven’t mentioned your favorite chain, I apologize. I speak fast, but the fact is we haven’t reached that point yet, the starting area of the UnstopLianGuaible. Runescape will consume all the resources of the Ethereum mainnet, so let that sink in. So, yes, just to clarify: our game is not yet physically exciting, like we only have a small village running on the Ethereum mainnet, and we need a chain that can support a large world.