Star Citizen will be better no doubt!
But seriously: We have a mostly-offline game at the moment, with players often not noticing when the matchmaking fails because you can play just as well alone. People asking where everyone else is on the forums... it's not that they're far out, it's that for some the P2P just doesn't work.
THIS IS NOT A DEBATE ABOUT OFFLINE MODE.
This is about the issues of P2P networking and the limitations thereof, as well as my suggestion on how to improve it.
I've warned repeatedly about the problems and challenges of P2P in a multiplayer game like this. I've warned the Nornware guys (Space Beast Terror Fright) but they too said that "they know what they're doing".
Turns out that their main dev almost burned out of the problems of P2P. Why? Because you can't have consistency, availability, and partition tolerance all at once. You can trick a bit with eventual consistency, but the problem remains that P2P inherently brings with it the question of how to define truth. You can't establish facts when two equal-level participants talk to each other. You start giving one or the other authority over things in the game world - but then you get the problem of partitioning, which is when participants drop out and perhaps even back in again. If this sounds complex, that's because it is. I've spent the past 15 years of my life learning about this. It's *really* difficult. But don't get me wrong, I totally understand why Frontier chose P2P for Elite Dangerous, and their argument for that is sound. I do have a suggestion, but first let me state the current issues.
So what problems do we see in Elite right now:
1) Low player numbers per instance.
That's because P2P degrades for everyone when one participant with a bad connection joins. This is terrible for Elite because that's the reason why you often can't see your wingmate. Either he or you just happened to be put into an instance with an already low health, and it won't take both of you. There's no solution for this within P2P. This is the biggest issue with Elite at the moment.
2) Bad performance.
Look around in supercruise. Often times you can see ship trails jump and shudder around. Worse, interdictions get unfair because of the shudders and jerking around. One bad client ruins the entire instance for everyone in it. Dogfights work perfectly fine, but then everything goes to hell if one other player with a bad connection joins. Proper matchmaking can only help to a certain degree here.
3) Inconsistent world state.
Allegedly, Jesus said to Pontius Pilate: "What is truth?"
I am certain that he was a programmer of distributed systems, because that question is fundamental for a working multiplayer game. Elite currently "mostly" works. Mostly. It utterly fails when the situation isn't perfect. A few examples: You can duplicate mining fragments if there's more than one client in the instance. You might see cargo that your wingman can't. You can have visible cargo that you can't scoop up (also only when more than 1 player in that instance). You can see different elements in asteroids than your wingman. A wingman shooting a mining laser which you have placed prospector drone on will find that it will spew fragments indefinitely, even after the asteroid has been depleted.
I think P2P is here to stay for the general universe, and most of these issues can be resolved by server-moderation, just like they did with the landing pad assignments and the refinery. The point of truth is no longer one of the peers but a central server. Using a lightweight backend, for example nodejs with redis as storage, will support tens of thousands of clients per server, and you can scale that out if you're choosing the right way to do the business transactions (idempotent operations, optimistic locking, etc)
But for central areas of the game, we absolutely need client/server. This doesn't mean Frontier should host thousands of game servers - just a couple dozen would suffice. These servers could host client/server sessions for warzones, Sol, Eravate, and other well-frequented systems and places. These client/server sessions could be used for all parts of the game: Supercruise, normal flight, you name it. They could be assigned dynamically and support a large number of players (128, 256, maybe even 500 or more). If a server is full or not available, the game could just fall back to P2P.
This would allow for...
1) Giant warzones that really do feel like there's a war going on
2) Systems that feel alive and buzzing with human traffic
3) Much more interaction and communication between commanders, something Elite more or less completely lacks atm.
Best of all, Frontier could scale the available servers up and down depending on current budget and playerbase. They wouldn't lose the flexibility of P2P, but they'd still have the ability to make community goals and warzones actually a giant thing that everyone wants to participate because it's something you experience anywhere else at that time.
I'm posting this in the hopes that this catches the eye of someone at Frontier. But also for everyone to discuss. I know the game works "most of the time" and I'm not saying that they did a bad job. However, before you disagree saying that we don't "need" any of this, I implore you to think about this. For you nothing would change. You don't have to participate in a big warzone. But people who WANT that sort of thing, would then have the option to. At the moment, they don't.
And I really want Elite to become a little... bigger in it's multiplayer ambition
Agreed? Disagreed? Bananas?