Great topic.
Here I thought I was the only person who knew the game Joint Operations.
Star Citizen will be better no doubt!![]()
OP, the drum about P2P vs C/S has been banged to death. Even should FD decide they wanted to do it, it would require a massive effort at this stage, and delaying other plans. Not to mention a load of refinement and testing of the changed network code which would leave months of new bugs.
On top of that, it works "good enough" for most people for most of the time. There is little incentive to actually change.
Finally, C/S is not the panecea that some people seem to believe. Sure, there are some advantages, including making the game a little harder to hack, but you point to lag as being a problem of P2P, but C/S is also likely to have lag, perhaps worse lag. You want larger instances with a C/S architecture, you're actually asking for lots of lag.
And of course the big one - server costs. Then we start looking at monthly fees. I bought a game that didn't have monthly fees. It was a big selling point for me.
You might as well drop it, the drum has been well and truly banged over the months.
Nothing will drive me from open faster than a switch to a central server approach (except maybe hackers I suppose). Fine if you live relatively close to the server location, but unless Frontier would be prepared to host multiple servers in varied locations in multiple countries, a fully server-based approach will disadvantage those who live furthest away, due to latency. Against NPCs that ain't so bad, but terrible in multiplayer. From where I sit, P2P matchmaking is the better option as I'm in Australa - better than the latency I'd have to put up with connecting to a central server in the UK (sheesh, playing on a US-based multiplayer server is bad enough in most games, particularly with high player numbers). Some people need to realise it's not all about them, but rather trying to compromise so that everyone has a chance of good connectivity with the players they meet. P2P ain't perfect but I'll take it over a UK server-based approach thanks (unless Frontier put a server in Sydney lol).
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.
I'm not disagreeing with the points you raise (and it's good to see a well-written and argued post). A hybrid system would be an interesting idea, if it were necessary.
However, I don't think Elite is, at its core, a multiplayer PVP game, with all the demands for improved connection performance that brings. People want it to be, but it's not. It's a co-op game. All of the patches and tweaks have been focused around that - I would even argue that this is why CQC exists: It's a low-cost PVP arena for straight-up guns-out "interaction" between CMDRs. In the base game, with the three network flags, the only constant point of interaction between CMDRs is the abstract background simulation. A great many players ignore the BGS, but perhaps it's actually more important in terms of the design philosophy of the game than people realise. It seems to me that the game is built around the BGS, and PVP is a secondary concern. The co-op tools in the game - friendslists and wings influencing instancing, for example - work pretty well for me. I've only seen one issue in the last few months, and it was solved by the player logging out and logging in again. Perhaps our Princess is in another castle?
Incidentally, the interdiction tunnel jumps around even when you're the instance owner alone in a system.
Star Citizen will be better no doubt!![]()
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?
Do people still play Joint Operations? Eeeee' That were a fun Battlefield substitute back in t'day. Huge maps and a mental player limit (100? 150?).
But in a client-server setup, only the bad client gets the rubber-banding. With P2P, that client shows as laggy, X% of the NPCs in the instance show as laggy (where X depends on how many NPCs that client "owns"), if it's a station instance there's an X% chance that the station will be extremely slow/time out when you request docking clearance...How does having a client/server architecture solve the first two? You're still going to get rubber-banding and lag with clients in a client/server architecture if that particular client has a bad connection. That's only going to get worse with scale and obviously if you're relying on (for instance lets take AWS) regional data centres then some people are going to have higher latency to those centres than if they were matched with local players.
Not replacing, adding - Toumal rightly implies that hosting servers for the entire playerbase would probably bankrupt FD before too long. But having a limited client-server setup (possibly by having the server "pretend" it's Just Another Client that everyone else is relaying via) should be feasible.I really think that switching from a P2P architecture to a client-server one isn't a trivial task. Nor is deciding for an impairment of the development asset in the accounts. So that's likely a "No!" to server - client setup.