The Impermanence of Space, a first-generation decentralized MMO.

SmithgiftSmithgift Member Posts: 64


I've mentioned bits and pieces of this over the forum, but I've decided to explain it more completely here. Note that I don't have much to show in the way of code, yet, as between work and the occasional serious bug in mix development hasn't gone very fast.

I've always contemplated the possibilities of Ethereum for gaming, but the games I had in mind were simultaneously too small in scope for my long-term interest but too difficult for coding. But one day it occurred to me that a contract could create more contracts identical to itself, and therefore spread like a network. A network like solar systems linked together in a scifi game (the Space Empires series in particular.) The Impermanence of Space was born.

What is it?

The Impermanence of Space is a game like the PBeM games of the past, except it will be on the Ethereum network. Solar systems are represented by contracts, with ships inside controlled by accounts (or other contracts.) These ships can mine resources, transport cargo, build weapons and battle each other, decipher ancient monuments to gain technology, and eventually, even form an empire to take over planets.

Why Ethereum?

As anyone can create contracts, anyone can create Systems. Two systems of the same code will obey the same rules, and can therefore link to each other safely, even if there has been never been any previous contact. The game's galaxy is literally endless, limited only by how much gas players want to spend on expanding it.

Ethereum also has advantages for hobby game developers. There is never a need for server maintenance. The moderator can never make a disagreeable decision, or the developer a bad update. Data corruption and hacking are no threat. The game itself will never be taken down as long as the Ethereum network still hosts it, and as the players pay for its use directly, there is no cost to the creator beyond the initial set-up.

On the client side, anyone can write improved clients as the code will all be easily available, and there is no risk of cheating. Bots are also far easier to write by the same principle. In the game itself, all kinds of features that would have to be hard-coded, like guilds, mercenary fleets, in game currencies, or even little things like a blockade requiring a toll. If a contract can do it, it can be done.

Why is it called The Impermanence of Space

I had earlier imagined an online game called by the same name, similar in a few aspects, but decided I could not make it at the time. I thought later changes in technology would make it easier, and when I realized Ethereum could do something very much like it, it got the name.

The name also refers to a kind of mood I want to create. To give players the most freedom, there are no safe spaces, and it would be entirely possible to open up the Dapp one day and find someone destroyed your homeworld by making its sun go nova. I would like people to take it less seriously than if each little piece was a critical, irreplaceable, immortal digital property. As it is entirely possible that an game-breaking exploit might be discovered, and the game's rules cannot be changed by anyone, it's possible everything might be lost one day, anyway.

Why first generation?

Calling it the first seems a little too forward. Also, being one of the first of its kind this game will probably blunder into issues I could never have foreseen, which later games would fix.

Why post this thread

It's still early in development, but I am foreseeing theoretical issues on a regular basis. This thread is both to brainstorm about them and also let anyone trying to do the same thing know the problems before they encounter them.

The three biggest issues, in order of the amount of time I've spent thinking about them, are:
  1. Flooding - If anyone can play, what about the in-game version of Sybil attacks?
  2. Latency - A catch-all term for all kinds of issues with reacting to other player's moves and dealing with various forms of lag and network-level unfairness.
  3. Price - The more expensive the game is to play, the less it will be played. How can gas-wasting by opponents be prevented? If players have to invest a lot, what if they lose their investment?

I plan for three further posts later on each of these topics individually and the current strategies I have for them. For the moment, feel free to talk about any of them.


  • SmithgiftSmithgift Member Posts: 64
    Dang it, I didn't see there was a Projects section. Could a kind moderator please move this?
  • StephanTualStephanTual London, EnglandMember, Moderator Posts: 1,282 mod
    Moved this for you, Smithgift :)
  • SmithgiftSmithgift Member Posts: 64
    @StephanTual: Thank you.

    While I'm here, let's talk about problem numero uno.


    Flooding is what I call the problems of dividing a zero-sum good (game resources) is divided among a practically unlimited number of potential participants (game players).

    The simplest example of Flooding in centralized MMOs is what's sometimes called alt abuse. If a player can get an in-game advantage by having multiple accounts, inevitably there will be players trying to use multiple accounts. If completely unchecked, this would logically lead to an arms race of players using more and more accounts until either the game effectively changes to accommodate an alt-covered world, or stops being played at all.

    Centralized MMOs usually combat this problem mechanically by requiring things such as captchas, sign-ups, and an email address to start playing. For another kind of barrier, creators often outlaw multiple accounts via ToS to both set a social expectation that this is cheating and add the additional threat of banning anyone who does it.

    How does a decentralized MMO do the same?

    The Entrance Problem

    An Ethereum-based DMMO has no need of specialized accounts, as it can use the player's Ethereum addresses to identify them, instead. This also trivially allows contracts to "play" as well. So where does flooding come in?

    The question is how to enter the game.

    Players have to start somewhere. A completely naive system is to give any account that calls a certain contract's function a single starter kit. Say, for a space game like this, a weak starter ship. Call this Naive Free Entrance.

    If it only takes a single call, then a single wealthy player or troll can start practically unlimited accounts by creating as many accounts as possible and funding them all to call the starter function. With bots to automatically control this one man navy, the player/troll does not even have to personally "play."

    In a essentially single-player game, this is irrelevant. In a multiplayer game with limited contestable resources, either one of two things happen. If those resources (say, undefended asteroids) can be contested by starter ships, then the one man navy can add up all its ships and squish the opposition. On the other hand, if those resources (say, a planetary fortress) cannot be contested at all by starter ships, then the one man navy and the single ship player are on equal footing.

    However, can previous resources (say, warship factories) be taken by starter ships to be able to later fight for those more difficult ones? If so, then we're back to where we started, except that whoever gets to the secondary resources first will likely have the advantage. Alternately, if it's actually impossible through any chain of events to get from starter ship to planetary emperor, that part of the game is essentially brokenly inaccessible.

    This is not quite as dire as it sounds. I've thought of multiple possibilities for a DMMO to deal with Flooding like this, and I am sure there are many more.

    Entrance Systems I have thought of

    Note that few of these are necessarily exclusive, and if players can donate the equivalent of starter kits to other players, all of them are theoretically possible.

    The social:
    Locked Entrance/Entrance by Agreement: Either by initial agreement, or later agreement by enough players are new players ever allowed in. While this has both simplicity and it absolutely prevents Flooding, it isn't really a massively multiplayer online game.
    Entrance by Invitation: A slightly more open version is to allow players who are already playing to give some of their resources to new players. (Indeed, I have never thought of DMMOs where this wasn't possible in some fashion.) This would seem to rely on the generosity of the current players. It is conceivable for a player to be in somewhat-enviable position of having to find more players to manage his in-game possessions, though with computer aid this might be unlikely. Or maybe the inviting player is selling them outright for outside goods. (See: Entrance by Purchase.) In any case, the entrance of new players is at the mercy of the old in some way.
    Entrance by Reputation: It's not impossible that Ethereum based reputation systems will become trustworthy enough to serve as ways to tell users apart. Perhaps a Game-DAO could issue memberships for a fee or with some other requirement and only members could play certain games run by the Game-DAO?

    The monetary:
    Entrance by Purchase: You get what you pay for. You buy game-tokens outright with ETH or some other token, and the game is balanced against the possibilities of whales buying whole navies. Perhaps the game could have anti-whale mechanics where small but skilled players (whalers?) can compete against whales. I have not contemplated this one deeply. There remains the question of who is it purchased from if not other players.
    Entrance by Burn: Either by sending the proceeds to charity or sheer deliberate gas-guzzling, it is simply expensive to get a starter kit but not profitable for the first or second party. The charity option has much to say for itself. Donate2Win might not be as obnoxious as Pay2Win, if practically the same in-game.
    Entrance by Auction: An option I thought about frequently. There are a limited number of starter kits per day, given to the highest bidder. One-man navies will be both expensive and difficult to accumulate all at once. On the other hand, it will be slow and potentially expensive for a new player to start playing. A sub-variant is to randomly choose a winner from all bidders, weighted by their bids. (Random systems would tend to devolve to that)
    Entrance by Stake: Getting a starter kit requires setting giving some ETH or other tokens to the contract, which will eventually, or possibly, be returned. A simple version would be requiring a small real collateral for a in-game debt. I would recommend that the stake, if it will be lost, be lost immediately without possibility of getting it back, lest anyone get deep in real debts trying to get money back from virtual debts.
    Entrance by Poker Chips/Jackpot: Why not allow game tokens to be converted to ETH (or some other valuable thing) and vice versa? Or have money spent go to a future winner? Because it's a terrible idea! Aside from the ethics, realize that poker works because more chips do not generally give you better cards. If more money means more ships means more chance of getting that original money back with interest, there will not be players but competing investors. Ick.

    The odd:
    Entrance by Mining: Tokens to buy starter kits are distributed to the coinbases of miners. Conceivably, a more popular game will benefit the whole network by subsidizing miners.
    Entrance by Fake Mining: An bizarre form of Entrance by Burn. As Ethereum contracts can verify a sha3 hash, it is possible for a potential player to have to "mine" a starter kit by hashing a nonce, some salt, and their address repeatedly until they hit a target. At the very least a would-be one man navy would have to have a bunch of computing power, too.
    Entrance by Tournament: Only players who have proved their skill in a previous, more open game can get into a higher game. Why not?
    Open players/Opportunities: Why does a player have to be one human being? Why not let anyone send a limited set of orders to a given piece? While constructing a smart contract to allow this without Flooding in the orders risks recursion, I find it conceivably possible. I also can see that perhaps a move might sometimes allow someone to seize sole control (think a spirit breaking its binding in a fantasy game, or a ship mutinying in a scifi space game.)
    Free Room/CRANES: My current idea. Does it matter if the starter ships are possibly unlimited if the galaxy is possibly unlimited as well? The current method of doing this is a little up and the air... and I've ran out of room and time here. My next post will hopefully be on this particular solution and its own potential problems.
Sign In or Register to comment.