Close Enough To Multiplayer Mod Online

The place to discuss scripting and game modifications for X³: Terran Conflict and X³: Albion Prelude.

Moderators: Moderators for English X Forum, Scripting / Modding Moderators

Post Reply
wolvern
Posts: 149
Joined: Mon, 16. Jul 07, 12:10
xr

Close Enough To Multiplayer Mod Online

Post by wolvern » Sat, 1. Dec 12, 15:04

CET:MMO

what the project is called atm is looking into implementing multiplayer to X universe without multiplayer functions on X games at all.

Basically after looking at skyrim online i found it was likely possible to take data from 1 game and push it into another, i'd need to ask a modder to contact me to see if it's entirely possible but the idea is not to have actual multiplayer but more so data fed ships that will sync every few minutes with a friends game.

Issue would be stations / player stations and having them collide if using an existing game in which case an entirely new game would be needed each run. Best idea to combat this would be joining someone else's universe without saving or having some sort of storage ship with unlimited space / bays on it... Even something that could be bought and then flown to a sector to aid in transferring items to other saves, like how torchlight 2 has a shared stash.

This may require a custom sector where each player has their own storage that was independent and never updated with other clients games.

So in all players could exchange items to a ship but that ship wouldn't die / that players ships wouldn't die unless killed in their own game.

---
It may be a lot to take in but it seems easier sending data to a game than changing the engine.

User avatar
Jack08
Posts: 2971
Joined: Sun, 25. Dec 05, 11:42
x3tc

Post by Jack08 » Sat, 1. Dec 12, 16:34

This has been attempted and failed so many times in the past, heres a rough overview of why:
  • Bandwidth (not just network bandwidth, but file IO bandwidth within the script engine is extremely limited.)
  • Savegame Paradox's
  • Not enough access to the engine to input data "correctly" and keep it synced.
  • No way to sync the games random seed values (!)
  • Would require rewriting of every game script that uses the random value generators with new script written sync-able RNG's.
  • No way to fully export the command, script and state data from a ship in order to transmit to a friend, you can grab most of it but not all.
Don't get me wrong i'd love a multiplayer X, and i've attempted it myself in the past - but its just not going to work.
Image
"One sure mark of a fool is to dismiss anything that falls outside his experience as being impossible."
―Farengar Secret-Fire

User avatar
LV
Sith Lord
Posts: 6361
Joined: Wed, 6. Nov 02, 21:31
x3tc

Post by LV » Sat, 1. Dec 12, 17:55

There is only ever one answer

rearrange the following two words

possible not
LV's TC Scripts
Readme's For All My Scripts


I felt a great disturbance in the forum, Like millions of voices cried out in terror, then were silenced

si tacuisses, philosophus mansisses

wolvern
Posts: 149
Joined: Mon, 16. Jul 07, 12:10
xr

Post by wolvern » Sun, 2. Dec 12, 06:32

Jack08 wrote:This has been attempted and failed so many times in the past, heres a rough overview of why:
  • [1]Bandwidth (not just network bandwidth, but file IO bandwidth within the script engine is extremely limited.)
    [2]Savegame Paradox's
    [3]Not enough access to the engine to input data "correctly" and keep it synced.
    [4]No way to sync the games random seed values (!)
    [5]Would require rewriting of every game script that uses the random value generators with new script written sync-able RNG's.
    [6]No way to fully export the command, script and state data from a ship in order to transmit to a friend, you can grab most of it but not all.
Don't get me wrong i'd love a multiplayer X, and i've attempted it myself in the past - but its just not going to work.
so only problem is really 1 and 3...?
access vs bandwidth, what about something localized? a 2nd client that manages the multiplayer? how much can we change with an external program during the game?

[2] Save game manager interface?
[4] Basically the Seed value problem could be solved by sending save files? you also state below it that there is basically a way but requires effort.
[5] Requiring the rewrite of the game scripts isn't that bad, needs to at least have some effort to make such a change
[6] Don't need all the data from a ship, basically you'd kinda want to do a ball park effect where having the ship within an area is good enough, having it *aid* the other player as assisting ships that your friend bought to the system.

User avatar
Jack08
Posts: 2971
Joined: Sun, 25. Dec 05, 11:42
x3tc

Post by Jack08 » Sun, 2. Dec 12, 06:59

wolvern wrote: so only problem is really 1 and 3...?
access vs bandwidth, what about something localized? a 2nd client that manages the multiplayer? how much can we change with an external program during the game?

[2] Save game manager interface?
[4] Basically the Seed value problem could be solved by sending save files? you also state below it that there is basically a way but requires effort.
[5] Requiring the rewrite of the game scripts isn't that bad, needs to at least have some effort to make such a change
[6] Don't need all the data from a ship, basically you'd kinda want to do a ball park effect where having the ship within an area is good enough, having it *aid* the other player as assisting ships that your friend bought to the system.
a Savegame manager wont stop people from creating a savegame paradox.

To my knowledge, the random seed value is randomly generated when the game is opened, and not saved in the save-game (its a single player game, there would be no point in keeping it) - Also in order to keep a RNG in sync you need to ensure that the exact same number of calls to it are made on both computers, you just don't have that type of control over the engine.

There are alot of scripts that would need rewriting, as well as performance concerns that a sudo random number generator made in MSCI would create.

You will need all data from a ship, including its internal state data for scripts in order for them to execute the same way on two computers - yes you could get away with a partial transfer, but the games would go out of sync only moments after the sync is complete - There's the added problem of the only way to get an idea of what is running on a ship is to loop though every task id from 1 to 65535, and check each stack for every script in the game. Which cant be done programatically because you cant get a list of all installed scripts.
LV wrote:There is only ever one answer

rearrange the following two words

possible not
-------------^I love this post :D
Image
"One sure mark of a fool is to dismiss anything that falls outside his experience as being impossible."
―Farengar Secret-Fire

Post Reply

Return to “X³: Terran Conflict / Albion Prelude - Scripts and Modding”