Limited co-op multiplayer

This forum is the ideal place for all discussion relating to X4. You will also find additional information from developers here.

Moderator: Moderators for English X Forum

Would You Like to see Multiplayer in some form in X4

Yes
96
36%
No
169
64%
 
Total votes: 265

Rei Ayanami
Posts: 3354
Joined: Wed, 6. Nov 02, 20:31
x4

Post by Rei Ayanami »

The only way i could think of right now for having multiplayer in an X game, where all AI ships are constantly being simulated, would be to have a MMO-like server structure with dedicated "sector servers", where each server is responsible for a few sectors and players are connected to the sector server their current sector belongs to.
And if the player opens the map he'll get updated map data every second or so from the other servers.

But that would, in the end, a game structure of a full-blown MMO and would be unlikely to work as a single player game.
Doomdog19 wrote:I vote yes to P2P invite multiplayer but not at launch. This is something that can be added later in down the line. Personally would prefer to have a solid single player game with P2P multiplayer invites patched in later.
For many games it's incredibly difficult, if not almost impossible without rewriting more than half of the games code, to convert a complex single player game such as X into a multiplayer game, because the game is probably written in such a way that it assumes that there is only one possible player.

I don't know how X4 is written, but lets take a quick pseudocode example how the placer recieving money could work:

Code: Select all

function NPC::GiveMoney(moneyamount)
  GetPlayer()->AddMoneyToAccount(moneyamount)
end
As a singleplayer game this is easy : We get the player object, of which in a singleplayer game only one exists so it's easy and fast to get and without ambiguity, and call a function which adds a certain amount of money to the players account.

In a multiplayer game this becomes alot more complicated:
Where is the information of all players saved?
How is this player information managed?
Which player is the host and has authority over other players accounts and how do we verify if he actually has the right to that authority?
How do we retrieve player information in a performant manner?
How do we determine if the player info that is saved is an active player or a player that is currently logged out?
Which player object are we supposed to get, aka how is it determined which player should get the money?
How do we determine if the chosen player is actually allowed to get that money, aka prevent cheating or mistakes?
What happens if a disconnect happens during the money transaction?
And that's probably not even half of the problems that would need to be solved for something simple as a money transfer.

As you can see adding multiplayer adds a whole new level of complexity to even simple functions like adding money to a players account. With other, more complex features like AI syncing, building stations, etc it would be a nightmare to convert singleplayer X to multiplayer X. And i won't even begin to talk about bugtesting.

In my experience forcibly shoving multiplayer into a singleplayer game/engine usually has alot of complications and for proper multiplayer a game needs to be written for multiplayer from the very beginning.

EDIT: That doesn't mean that i'm against X multiplayer, i'd love to be able to play X with other players but at the moment it just doesn't seem realistic to just have it added with an update or with the current engine.
LTerSlash
Posts: 1367
Joined: Mon, 27. Oct 08, 02:19
x4

Post by LTerSlash »

Rei Ayanami wrote:The only way i could think of right now for having multiplayer in an X game, where all AI ships are constantly being simulated, would be to have a MMO-like server structure with dedicated "sector servers", where each server is responsible for a few sectors and players are connected to the sector server their current sector belongs to.
And if the player opens the map he'll get updated map data every second or so from the other servers.

But that would, in the end, a game structure of a full-blown MMO and would be unlikely to work as a single player game.
Doomdog19 wrote:I vote yes to P2P invite multiplayer but not at launch. This is something that can be added later in down the line. Personally would prefer to have a solid single player game with P2P multiplayer invites patched in later.
For many games it's incredibly difficult, if not almost impossible without rewriting more than half of the games code, to convert a complex single player game such as X into a multiplayer game, because the game is probably written in such a way that it assumes that there is only one possible player.

I don't know how X4 is written, but lets take a quick pseudocode example how the placer recieving money could work:

Code: Select all

function NPC::GiveMoney(moneyamount)
  GetPlayer()->AddMoneyToAccount(moneyamount)
end
As a singleplayer game this is easy : We get the player object, of which in a singleplayer game only one exists so it's easy and fast to get and without ambiguity, and call a function which adds a certain amount of money to the players account.

In a multiplayer game this becomes alot more complicated:
Where is the information of all players saved?
How is this player information managed?
Which player is the host and has authority over other players accounts and how do we verify if he actually has the right to that authority?
How do we retrieve player information in a performant manner?
How do we determine if the player info that is saved is an active player or a player that is currently logged out?
Which player object are we supposed to get, aka how is it determined which player should get the money?
How do we determine if the chosen player is actually allowed to get that money, aka prevent cheating or mistakes?
What happens if a disconnect happens during the money transaction?
And that's probably not even half of the problems that would need to be solved for something simple as a money transfer.

As you can see adding multiplayer adds a whole new level of complexity to even simple functions like adding money to a players account. With other, more complex features like AI syncing, building stations, etc it would be a nightmare to convert singleplayer X to multiplayer X. And i won't even begin to talk about bugtesting.

In my experience forcibly shoving multiplayer into a singleplayer game/engine usually has alot of complications and for proper multiplayer a game needs to be written for multiplayer from the very beginning.

EDIT: That doesn't mean that i'm against X multiplayer, i'd love to be able to play X with other players but at the moment it just doesn't seem realistic to just have it added with an update or with the current engine.
Thats why i only suggested the limited coop MP there is not multiple players, there is only one player for the core of the game, the other clients just control a part of it, like another ship under my property, instead of having the AI to fly it.

Actually you could do this on X3 if in some way if you could seperate the controls for ships on the left and right monitors, never checked if a mod supported this. X3 was already close to supporting "Local/Split Screen MP", imagine having 2 extra joysticks and having able to set each one to ONLY control wharever was selected on the Left or Right monitor, thats local MP... on X3.

Now imagine to be able to route those 2 monitor to 2 real physical monitors instead of sharing the main screen, and being able to open UI menus on them to control property, etc...

Thats more like the kind of coop im talking about, on a local level.


As for sync, the easier solution for a first test run iteration i can think of, is not doing it at all, meaning, cheat it, video and input streaming. It whould work, quite well for LAN and high speed wan with low ping. This is certanly possible today.

That also means the max number of players will be limited to something like 2 to 4 as the absolutely max due to the high workload of the host gpu and internet.







NOW, for a option of a real MP mode means sync everything, coop only also gives some avantages to you here, for example, you can trust clients to do in-sector calculations if they are in diferent sectors so if you are alone in a sector you only need to send position of ships/stations and stats to the rest. And everything else is like as it will be on SP.

This opens the way to cheating but as coop you dont really care about it.

OOS is done by host and send the info to clients.

The mayor bottleneck is what to do with multiple clients in the same sector, this means 1 client acts as the sector host and sends/recive all data to everyone else.

So to clearify, the conventional MP mode that could for for a X game to me, is having a dedicated server (separated program that anyone could run to mount a server), the dedicated server does all OOS simulation and sync, when a player join in, that player acts as the sector host, so wharever sector he is in, he is the host for that sector, that player pc does all the simulation for wharever happening on his sector and sends the data to the server so it acts as OOS info for any other player.

When another player enters a sector already "hosted" by another player, those 2 players sends the data directly to each one.

This is the only way i could see it work and you could only do this in coop, this is not valid for a competitive MP or any other kind of MP as cheating will be a issue.



But im petty sure all of that is way more complicated that it sounds. Personally i whould be just be happy with a first iteration of the "fake mp", 2-4 players and video and input streaming over a network. the problem here is... they cant sell that as "Supporting MP", maybe only as a 4-player LAN MP.
I could already do that on X3 manually if i had a way to map controls to each ship on the left/right monitor separately. Well i whould also need to send those monitors to real physical monitors so i could encode and stream.
User avatar
Morkonan
Posts: 10113
Joined: Sun, 25. Sep 11, 04:33
x3tc

Post by Morkonan »

Falcrack wrote:The point is, you wouldn't be opening up your galaxy to some random pleb who might wreck it. You would be opening it up to a trusted friend, possibly sitting next to you.

Anno 1404 with a trusted friend who can help manage stuff (I usually focus on the Occident side of things, my wife specializes on the Oriental building side) makes the game a lot more fun.
I can see that being fun. But, that game was designed for it and it's certainly set up better for that kind of gameplay.

There are no "sides" in an Xgame, really. It's "you" and "everything else."

I could see the sort of gameplay you're describing being in a different sort of Xgame, one like a "versus" sort of game, where you pick a faction and, still with much the same sort of interface/gameplay there is now, you help that faction do... something. Win a war, conquer the galaxy, etc.

In Anno, there's a goal. The goal is to watch those little houses turn into mansions and to watch your citizens grow into affluency, thanks to your efforts. The only possible connection here is in X3TC, where due to certain coding and gameplay mechanics, the Terrans are doomed to "just sit there" until you really work hard to help them. And, if you don't? No big deal, since they don't have to be a really viable faction in the game for any particular reason.

NOW, that being said, as my first priority, I always focus on helping the Terrans grow their economy. Why? Because I like that sort of feedback mechanism and the satisfaction of achieving something difficult and seeing the fruits of my labor.

If the Xgames were more like that, a sort of really complex 4x economics/combat game, then multiplayer would be a very nice fit. They're just not that sort of game, though.

IMO, for multiplayer to be actually worth trying to introduce, it'd have to use mechanics that lie outside of the normal gameplay in the single-player experience.
vadiolive
Posts: 337
Joined: Wed, 18. Dec 13, 04:36
x4

Post by vadiolive »

I wish but i know egosoft dont have resource to make this
even take option to make player host servers
like freelancer with 64 player server or 128 player server

ofcourse its make whole new level dynamic and shutup fews mouths for people say "its singleplayer game BORING and SUX"

But i know its not going happen ;/
After all since i am coder i know Netcode its not easy thing to deal in special with complex X-serie required
HaradaTaro
Posts: 17
Joined: Tue, 29. Aug 17, 18:19

Post by HaradaTaro »

Egosoft has limited ressources.
X is a SOLO game

They already have lost money and time with the trivial walk around station that 99% of the players will take the mod "NEVER WALK IN STATION AGAIN for X4"

They don't have to lose more money and time with a futile Multiplayer.

If you want multiplayer either go play another game like Elite dangerous either start up a crowdfunding of a couple hundred thousands bucks and give them to egosoft to hire more people and develop the MP of X4.
User avatar
Vandragorax
Posts: 1190
Joined: Fri, 13. Feb 04, 04:25
x4

Post by Vandragorax »

LTerSlash wrote:
Nanook wrote:Hmm, interesting poll results so far. Pretty much the same results as all the MP X game polls from time immemorial. :wink:
Well i dont blame them, Multiplayer means compromises for SP gameplay, no one wants that, not even I.

I just want to invite a friend to take control over an NPC and do the same stuff that i do sharing the same player data, whiout having to do any kind of MP balacing or take away any part of SP gameplay.

X4 is not going to have SETA, the only feature that could have got in the way of doing that on X3. So i really i dont see the problem, X4 SP and X4 with limited coop MP should have the exact same SP gameplay, thats the whole point of not going over the limited coop MP.
Completely agree with this 100%. It would be the next logical step now that SETA is not needed in the game (because of better game design to remove elements that required SETA in the past).

Those people saying "go to ED or SC if you want multiplayer" are totally missing the point of this thread. This thread is for CO-OP 2-player drop-in experience, not PvP MMO crap that is overdone these days.

PvP would be a bad idea, too much difficulty in balancing and getting it to work correctly. But drop-in co-op where you're literally controlling the exact same assets as the host would be phenomenally good for a 2-player experience and relatively not that much of a step up from where we are now in the X series.
User avatar
notaterran
Posts: 1096
Joined: Thu, 10. Sep 09, 05:22
x3tc

Post by notaterran »

I don't think it would work. Osiris: New Dawn has a multiplayer component but, as much as I've been enjoying that game, it's much simpler than a proper X game. Tale Of Two Wastelands would also be a different experience with multiplayer. It would be like watching Nosferatu in color. To each his own I guess. My point is, the devs don't have tons of resources to throw at the game.
-Skinny women look good in clothes, fit women look good naked.
Ezarkal
Posts: 1610
Joined: Wed, 22. Apr 15, 02:27
x4

Post by Ezarkal »

Here's a crazy idea. We all love crazy ideas, right? :gruebel:

Say X games eventually get support for multiple monitor, as discussed in this thread.
Now convert the second monitor into a second UI independent from the first, plug in a second set of input device (m&k, joystick, controller, whatever), then let a second player jump in. The game becomes like any console split-screen coop, but on 2 separate screens. Now the game is still running on a single save file, so there's shouldn't be any data issue, and since everything is run by a single machine you don't have that issue with latency.

Ok, it would take lots of development to get there, and reasonable more powerful computers to run the game, but hey, we're in the crazy here.

Food for thought? :roll:
Humans are deuterostomes, which means that when they develop in the womb the first opening they develop is the anus.
This means that at one point you were nothing but an asshole.

Some people never develop beyond this stage.
wizaerd
Posts: 299
Joined: Sat, 28. Apr 07, 21:06
x4

Post by wizaerd »

I would be totally against adding MP to X4, or any X game outside of a dedicated MMO. There are so many things in the single player experience that's going to take a lot of time and effort from developers, and I wouldn't want to see them scrap great SP ideas and concepts just because they're under the gun to get MP working. One of the things that drew me to X games to begin with was because it was soley a single player experience.
Nanook
Moderator (English)
Moderator (English)
Posts: 28245
Joined: Thu, 15. May 03, 20:57
x4

Post by Nanook »

LTerSlash wrote:...
X4 is not going to have SETA...
Not sure where you got that info, but it's incorrect. To quote CBJ in the X4 Foundations sticky:
Will SETA be a part of X4?
Yes, SETA will be part of the game.
Have a great idea for the current or a future game? You can post it in the [L3+] Ideas forum.

X4 is a journey, not a destination. Have fun on your travels.
patient zero
Posts: 329
Joined: Sun, 25. Mar 07, 19:19
x3tc

Post by patient zero »

I would like to see something similar to the X-verse Fleet Fest. Basically just put one player in control of each race and let them declare war against each other instead of using the AI.
This is only a virtual reality.
lostProfitssssArrgh
Posts: 161
Joined: Tue, 22. Aug 17, 13:14

Post by lostProfitssssArrgh »

wizaerd wrote:One of the things that drew me to X games to begin with was because it was soley a single player experience.
Every time I see debates about SP/MP, i'm reminded of this gem [NSFW]:
http://theoatmeal.com/comics/online_gaming . Well, it's 2P in this case ;)

On a more serious note, good network play isn't that easy to implement, least of all at MMO scales. Entire games are designed around net-play as a priority feature and I highly doubt it can be 'bolted on'.

SP X forever!


Edit: "[NSFW]" tag added - Sparky
LTerSlash
Posts: 1367
Joined: Mon, 27. Oct 08, 02:19
x4

Post by LTerSlash »

Just to clarify, because it seems to hard to understand... I dont want to fight another player, i want to play with another player against the AI, i dont want any kind of SP mechaninc to be touched at all, hell i dont even want the other player to even be another player but part of "me". And i definately dont want MMO crap that it seems to be so used these.

Im talking about to something similar to the original L4D gameplay that made the 4-player coop so popular on several games.

Thats the whole point of asking coop and not a full blow MP experience.

As for the technical, yes, the harder things, like universe sync is need to be done for any kind of MP to work.

But i also suggested, that for a first try to dont go that far as having to do all the core MP code and just stick to video and input streaming, everying is done and rendered on the host. As i already said, X3 is already way too close to supporting this. This whould work fine on some systems and mostly on LAN. That looks fine for a first attempt and Egosoft can wait to see people reaction to that system.

Go back to X3 and add the posibility to map the in-game monitors to secondary external monitors and the posibility to map separate joysticks to wharever property those monitors are assigned to. And let us do the rest, i can make a rudimentary coop MP out of that. Actually i just need to map different joysticks to diferent monitors as i can stream a part of my screen.
wizaerd
Posts: 299
Joined: Sat, 28. Apr 07, 21:06
x4

Post by wizaerd »

LTerSlash wrote:Just to clarify, because it seems to hard to understand... I dont want to fight another player, i want to play with another player against the AI, i dont want any kind of SP mechaninc to be touched at all, hell i dont even want the other player to even be another player but part of "me". And i definately dont want MMO crap that it seems to be so used these.

Im talking about to something similar to the original L4D gameplay that made the 4-player coop so popular on several games.

Thats the whole point of asking coop and not a full blow MP experience.

As for the technical, yes, the harder things, like universe sync is need to be done for any kind of MP to work.

But i also suggested, that for a first try to dont go that far as having to do all the core MP code and just stick to video and input streaming, everying is done and rendered on the host. As i already said, X3 is already way too close to supporting this. This whould work fine on some systems and mostly on LAN. That looks fine for a first attempt and Egosoft can wait to see people reaction to that system.

Go back to X3 and add the posibility to map the in-game monitors to secondary external monitors and the posibility to map separate joysticks to wharever property those monitors are assigned to. And let us do the rest, i can make a rudimentary coop MP out of that. Actually i just need to map different joysticks to diferent monitors as i can stream a part of my screen.
Everyone says a human player is better than AI, but an AI follows orders. They do exactly what you want them to do (well for the most part). At the very least they're predictable, and easily controlled. A human player joining a game changes many things that have to be balanced for two thinking individuals versus a single player and AI. A game must be balanced for fun and challenge if two players are playing it versus just one. Enemies are harder, economy is affected, etc... Doing so usually shortcuts the MP experience, or the SP experience. I'd rather MP be left out altogether, even coop, so as to not affect the single player experience. Even if it's optional, it still has adverse affects on the single player experience.
wwdragon
Posts: 3765
Joined: Mon, 1. Oct 07, 02:18
x4

Post by wwdragon »

I have no desire to share my universe with the rest of you.

... except to discuss it outside the game. :lol:
Editing posts since long before I remember.
adeine
Posts: 1429
Joined: Thu, 31. Aug 17, 17:34
x4

Post by adeine »

Slightly different take on this, with interesting possibilities: What if instead of sinking resources into implementing anything remotely this complex, Egosoft just implemented an API to communicate with the game as it is running, able to inject commands? It'd kind of be like msci via command line. :wink:

This would allow intrepid modders to elegantly create, say, a mobile or browser based app or widget to control your empire while you're doing something else (with the game running in the background on your machine). Or what about importing external data into your game (internet/player community based stock market?). Or, be extra crazy and try and implement some sort of syncing/limited multiplayer as described in this thread on their own.

It could really take modding to the next level.
User avatar
Crimsonraziel
Posts: 1075
Joined: Sun, 27. Jul 08, 16:12
x4

Post by Crimsonraziel »

adeine wrote: This would allow intrepid modders to elegantly create, say, a mobile or browser based app or widget to control your empire while you're doing something else (with the game running in the background on your machine).
Yeah, sounds like this could be for X4 what interior walking was for X:R 1.0.
Don't make me hungry. You wouldn't like me when I'm hungry!
#MakeNishalaGreatAgain #BoronLivesMatter :boron:
#LoveAldrin #FreeAlbion #ReturnOfMegalodon
adeine
Posts: 1429
Joined: Thu, 31. Aug 17, 17:34
x4

Post by adeine »

Crimsonraziel wrote:Yeah, sounds like this could be for X4 what interior walking was for X:R 1.0.
Care to elaborate the analogy? (genuinely curious)
HeadClot
Posts: 3
Joined: Sat, 6. Feb 10, 17:06

Post by HeadClot »

I personally would like to see some form of limited cooperative Multiplayer. :)

Either in X4 or another X game.
Tharrg
Posts: 323
Joined: Thu, 17. Feb 05, 16:09
x4

Post by Tharrg »

I personally would not like to see some form of limited cooperative Multiplayer.

Neither in X4 nor another X game.

Although if someone found a clever way of modding it in, good luck to them.

Return to “X4: Foundations”