Why we need blockchain-based MMOs
Blockchain technology is powerful. You know that, I know that, developers and maintainers of Steem certainly know that. But, aside of few projects (namecoin springs to mind) it's used mostly as a way to generate money. Which is totally fine!
This economical use, however, doesn't use blockchain and related technologies to its full potential.
What I want to do with this article, is to lay a blueprint for a blockchain-based MMO. Why I'm not doing it myself, you might ask. That is a fair question. I simply lack the financial resources and some of the finer technical know-how (a thing that can be fixed by hiring right people) to do it. But I still want to get it done, even if by someone else.
First of all, how it would utilize blockchain itself? We'll need to use some related tech as well, but we'll get to it in a moment.
The base of this MMO would be its own custom cryptocurrency. For the purpose of this article, we'll call it MMOCoin. MMOCoins will be minable (more about the way they can be mined that will benefit the game in a moment) and will be used in the game as game's currency. Just like it is case with regular cryptocurrencies, transfers between people would be possible and any MMOCoins used to buy things at NPC store as well as coins mined by game's maintainer will be distributed later back to players as quest rewards.
But, similarly to Namecoins, there will be special blocks that contain data such as players' inventories, profiles and other things that are needed in such MMO (or any MMO, really). Game's maintainer will be given the authority to change any data they like, where players would be allowed to change only their own data.
But, how processing of this data will work, the actual game logic? Well, this is where the way how MMOCoins are mined comes in.
In regular cryptocurrencies such as Bitcoin, the math problems computer have to solve to mine a coin are arbitrary and kinda abstract. In the case of MMOCoin, these problems will be related to calculation of gamelogic such as enemy AI, NPCs and so on. To prevent abuse, several miners would calculate the same problem at the time, for example path of NPC Whatwashisname going from Town #1 to City #17. The consensus of the result needs to be achieved before the result would be distributed to game's clients that would actually display the movement or other kind of action to the players in the area. To further prevent abuse, the miner (any miner needs to be a player and can mine either while playing or offline), the area that each miner calculates is far away from that miner's character (in case of "offline mining" the last position efore logging out of the game is considered as player position).
This setup would also make this game actually free to play, with the possibility of even making money out of the fact of you playing this game. How so, you ask? The game would have market where you can buy/sell MMOCoins for real money, 80% of the "buy MMOCoins" transaction going to the person who put them up for sale, while the remaining 20% would go towards game's maintainer so the development of the game can continue. This would let people get rich out of playing the game while people with itchy fingers and far more money that they need can get more MMOCoins fast. There would be no "premium currency" so to speak, all of in-game transactions with NPCs would be done with MMOCoins. And to get them you either pay with your time (doing quests and so on), your wallet (that's obvious) or with computational power to run the (game) world by mining MMOCoins.
Of course we've solved only computational part of hosting game by the users. What about handling game updates so game can grow? Well, this is where other decentralized technologies come in. After much deliberation on the subject, IPFS and Zeronet would be best suited, with strong preference on IPFS. After person with "update authority" on the IPFS/Zeronet resource containing patch data (game maintainer/developer) develops update, the update is then pushed to the players who in turn help host it so there is less and less stress on the game's company servers the more people are playing.
This would cheapen, if not completely remove need for game's server and it can be one permanent universe. Another thing is that the MMO done this way would be essentially immortal as long as people are playing it and buying/selling MMOCoins, even if original developer is no longer around. It would also be invulnerable to questionable politics - as long as people want to play it, even if it isn't developed any further, no one will be able to "pull the plug" and even game developer's MMOCoin Exchange could be replaced by third-party site, even if not as neatly integrated into the game as first-party one would be.
So, what do you think?
Have you made any progress on this? I know its been a while, but this is something I would love to help with.
In what way can you help? I’m looking into this and I have the blockchain technology for realtime confirmations.
Right now my brother and I have each purchased a few game development softwares and in our spare time learning the software. Have scripts being written for some rpg fantasy games. He lives 4 hours away so right now remote team and both of us having full time jobs is a small annoyance, but we are motivated to make games. Our next step is to have a few games launched on mobile (just small scale simple ones as practice) I have also been trying to work with block chain technology to further understand it. Literally all my free time
Actually I was thinking about this quite a time now.
The problem is that MMO game is so dynamic - building a blockchain protocol for the game is rather a complex task.
If each action of the player is a transaction - you have vast amount of data for each second. And above this you should have block confirmation time
~1scecond - 20ms (for technical time frame rate)
So it should be PoS or something.
Next thing is blockchain size - you cant keep it from the very beginning - too much data. So genesis will have to be moved to father blocknumber.
If you have ideas to discuss please contact me.
Yeah, that were the technical difficulties I was mentioning, but again these can be solved by hiring right people.
My solution is to use different distributed protocols for raw data storage like IPFS or zeronet. The blockchain itself would only facilitate financial transactions in game using MMOCoins. Also miners to mine MMOCoins would also need to dedicate part of HDD to data storage part.
The calculations done by miners as I was saying in the OP won't be abstract math problems and instead would be things like calculate AI in the region X, etc. Things that actually benefit the game and aren't as hard to calculate. Also there will be probably some "powerminers" - powerful machines both in storage and computation that run the miner software, some of them may be set up by game's company (since they'd get % of transactions at in-game $$$<->MMOCoin exchange) that would alleviate the problem.
Also to alleviate the problem of possible data manipulation (e.g. in response on aforementioned "calculate AI" sending falsified data that would freeze the AI or make them all die) the same "problem" would be sent to multiple miners and then any results too different from others (indicating fraud) would be thrown out. Miners would be chosen to be closest to the most players in specific regions to minimize lag.
Things like player card, eq, inventory and so on, basically any things that can't be sent in under a kilobyte would be sent using IPFS/zeronet which are good at this.
Now that I think of it, the hardest part would be probably marrying blockchain with IPFS/zeronet/some new protocol designed for it enough so it will work well.
I got thinking about this a little while ago and did a quick search, look what turns up on the google search. I'm going to try and take some initiative to make something like this to recreate some older slow turn-based strat games into MMO versions... very exciting :D
Congratulations @darkhog! You have received a personal award!
Click on the badge to view your Board of Honor.
Do not miss the last post from @steemitboard: