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.
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:
- Flooding - If anyone can play, what about the in-game version of Sybil attacks?
- 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.
- 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.