Jump to content

Multiplayer (what else?)


Recommended Posts

Hello everyone,

I wanted to talk about the multi in KSP.

I'm learning english, so, pardon me if I make some mistakes.

I know, programming a multiplayer mod for KSP, what a pain! There's so much to think about and depending on how KSP was programmed, it's probably not possible.

But let us dream a little.

Just put on this thread what do you think about. How could we make it possible?

What would be the greatest things to do?

Private/public docking port

Instead of playing directly on-line, it could be really useful to give to the players the ability to share theyr stations with theyr friends and to set some docking ports for "Guest 1", "Guest 2" ...

Just imagine, you're playing with your friends, (or some thousande of youtubers) and your station is growing up, pieces by pieces. You can use your own computer or a server.

Direct multiplayer

Well, I don't have anyting to say about it except that it's obvious, KSP with multiplayer would be great. And to make possible to launch your rocket for a mun ruch (a race with other players), to start fighting in the stars or just to start a colony with your friends... it would be so great!

Corporation mod

You start with some scrap parts and your goal is to earn money and to found a corporation with some friends.

The player have to build a launcher for his own corporation (on an other planet, in orbit or on Kerbal, far away from the public launchers).

The corporations would have to earn money by building mining stations, placing satelites in orbit and more. It would also have do make some sience points, by building labs.

Link to comment
Share on other sites

I don't think it's a suggestion, exactly. The original post is attempting to have a discussion about ways which we might like to implement multiplayer or what the general playerbase thinks about it.

Talking about things on the do-not-suggest list isn't against the rules and SQUAD have said that they don't mind it one bit when people start talking about those things...so long as it's not just a "i want multiplayer, make multiplayer k". IN those cases, the thread will get locked.

But as for actual multiplayer discussion...there's nothing SQUAD disapproves of when it comes to just talkin' about stuff. At least, that's what they said.

As for the multiplayer, the only way I personally see any kind of multiplayer being implemented into KSP without breaking things is like making a Moonbase Alpha type of game-mode, where you load up a base or space station that you've made and have your friends load in with you. You can't control vehicles(except rovers(vehicles with no rockets, just wheels and rover seats)), just EVA/IVA around with your friends. You could dig up samples, perform simple/silly experiments with each other, maintain or repair structures and basically just show off things you've created with your buddies, while having small busywork to give you somethin' to do while you're there.

There could maybe be a kind of shuttle ferry that could essentially teleport you(because you can't control rockets in this coop mode) to another base or station for a change of scenery...maybe with the ability to travel to one of their crafts as well. Bases could even be essentially enclosed spaces with maybe like a big invisible wall around the root command module for the base/vehicle you're loading to. Simple, not as complicated to figure out as actual multiplayer with physics and junk and it'd still be fun enough to be a game-mode, bouncin' around on the surface with your friends.

Link to comment
Share on other sites

Just for conversations sake, this kind of game has always been in the back of my mind. I got into programming for the purpose of building a game EXACTLY like this. Early in my day dreaming phase, multiplayer was one of the things I was really interested in working out, but I knew for a game like this, it would be very tough to pull it off in a way that is not a total mess. It bring up a lot of problems that are not easy to see until you are neck deep. That said, one of the ideas I tried to work out was multiplayer via a crew mechanic, where each crew member (player) could be assigned a set of operations that only they were able to manipulate during multiyplayer game play.

For example:

A multi-crew ship could separate out navigation tasks to one player. They would be in charge of planning nodes and orbital mechanics. Another could be captain that commands flight controls and physical maneuvering, another could be Scientist or Engineer or something to that effect, and they control the deployment of instruments or experiments etc..

Another example: Even for a single crew member flight, ground crew/mission control could be one player or players, and the flight crew could be one. The ground crew could monitor and plan nodes while the player in the ship executes the maneuvering to and from the nodes.

I'm am sure there are programmatic pitfalls associated with approaching it in this way as well. But I thought it was an interesting way to go about it. I'm a big fan of co-op game play, and I think it would be a blast to set off on a science and exploration mission, where we had to depend on our fellow crew members to each accomplish their responsibilities correctly for us to succeed.

Link to comment
Share on other sites

That would probably work for another game but not so much for KSP. Like, that would be extremely fun for a Star Trek inspired exploration game. Like a 3D FTL or something. For KSP, though, the mechanics of flying a rocket are just too simple to be splitting up for multiple people.

Link to comment
Share on other sites

I'm a total noob (1st post, woo), and maybe my opinions aren't as just, but maybe it could work like so:

Rocket Control: If a rocket is launched, control is only given to that player until said player opens control of that craft to the public (or a white-list) and enters a spectator mode/goes to the space center.

Clogged Space Centers: To keep them unclogged, the server would create one per player that joins somewhere on Kerbin to a maximum of *insert number here*. Let's say for this example, 64. You may end flights at another space center, but landing there or occupying that space at the same time the owning player of that runway/launch pad rolls out a spacecraft, your craft is effectively recovered/destroyed and the player's creation is spawned. Possibly, a countdown timer is presented to both players and the person launching a craft can choose to abort loading because they wouldn't want to see the craft at their space center destroyed.

Time Warp: This issue is effectively solved in the Introversion game, DEFCON: Everybody Dies. The basics of it is, if someone has a slower warp selected, that's what the server uses. Of course physics warp would have to be disabled because if someone has 100000x selected on their large Joolian mission and someone in a space plane selects 4x, that mission will surely blow up, but maybe these aspects can be handled by the server administrator though configuration files.

Docking: Docking could be just like spacecraft control, but who will be left will be decided by a vote by the two players docking, or in the case of a draw, a coin flip followed by the looser proceeding to spectator mode. Also, docking should be limited to a white-list, like spacecraft control, just so someone couldn't just rendevous and grab your satellite by the tail and reenter it.

Weapons: Macey Dean has showed me that, "Yes, it is possible to mash other people's ships to a pulp with torpedoes with a low part count ship." This possibility means that some *explicit* could sneak up on you and blow you up, but just like in minecraft, griefers are banned, and so are weaponizers. Maybe just like Kerbal Livefeed, a live picture feed, updating roughly every 5 seconds is made between all ships so people can sense incoming doom. In the event that people would like to have a real-time war in KSP, the livefeed system could be reconfigured to only allow feeds between teammates, defined in the savefile. Possible referring to the cluttered space centers, each team would get closely spaced space centers so they could coordinate launch attacks. Maybe even a voice system could be implemented, or teamspeak could suffice.

Generally, in my eyes, the multiplayer functionality of KSP shouldn't be engraved in stone, and just like the conics system in the KSP config file, people can change it to their needs and their friends needs and have KSP multiplayer behave how they like it, that way everyone's happy. (Then again, not everyone's happy)

Link to comment
Share on other sites

This has been discussed oh so many times. If you really must re-hash it over again, do it carefully. 90% of multiplayer threads devolve into flame wars within a couple of pages. Yeah, that's a made up statistic, but it's pretty close. I'm too tired to do real math :)

Link to comment
Share on other sites

This has been discussed oh so many times. If you really must re-hash it over again, do it carefully. 90% of multiplayer threads devolve into flame wars within a couple of pages. Yeah, that's a made up statistic, but it's pretty close. I'm too tired to do real math :)

I'd say that statistic is pretty close. The only threads to not end up that way are the ones where they get locked early on for being what not to suggest and lacking actual discussion to justify the discussion tag.

If this is a suggestion it is breaking a couple or rules, and if it is a discussion why not read through these ;

http://forum.kerbalspaceprogram.com/showthread.php/21126-Multiplayer?highlight=multiplayer

So many multiplayer threads exist, that by this point in time nearly every easily conceived multiplayer approach and even a few farfetched ideas have been theorized and discussed.

Ultimately anyone wishing to create a multiplayer mod for KSP could find everything they need to do it except the actual working codebase just by searching the forum for different ideas people have had and the advantages and disadvantages of them.

It's been agreed upon that there will be no multiplayer. There are many reasons for this, and having to list them out AGAIN feels like being a broken record.

At the present time Squad has indeed maintained that they will not add multiplayer anytime soon, due in no small part to the sheer size of the codebase required for it to work as well as the fact that they would rather make a working and enjoyable single player game first.

If multiplayer happens at all it will be done as a mod. A lot of people now have said they would accomplish this, but to date nobody has succeeded. The closest so far is KLF, which lets you chat with other players and displays moving markers on your map where they are. It does not yet support interaction with other vessels due to the complications involved, and timing is not synchronized.

For now since you guys seem to have a discussion going I will leave this thread open. However please note that posts along the lines of "in before lock" and the like can and will result in punishments for spam/useless posts. They serve no purpose in a discussion and only act to derail it or incite an argument.

Link to comment
Share on other sites

Elaborate, please. I made a post about this in this thread and I think it's pretty airtight, so I really don't understand what you're talking about.

If you time warp the positions of the planets in your client will be different relative to everyone else.

There are ways around this of course, none of them really convenient to implement.

Link to comment
Share on other sites

Elaborate, please. I made a post about this in this thread and I think it's pretty airtight, so I really don't understand what you're talking about.

The idea of using the lowest time warp of all players would be stable, but not effective beyond two or three players. There will always be someone launching, or someone driving their rover around or landing; or anything else that needs physical simulation. Your long missions will never finish in a reasonable amount of time because there'll always be a ship somewhere doing a two-hour ion burn, if there are enough people on the server. With even a dozen or more players it would be no better than locking on to 1x time.

Defcon uses the system successfully because there are never more than a small handful of players in the match, and the same would be true of the system implemented in KSP. It would work reasonably well for a few players, but beyond that it would become too conservative.

Link to comment
Share on other sites

One way it might work would be to use asynchronous time warp where all players are logged into a central persistence tracker which is then disseminated to the clients at appropriate times.

Basically, the server starts and is always ticking. All the players are free to come and go as they please and time warp however they please. However, all their telemetry data is logged into the server with timestamps and then sent to the clients at the appropriate time. For example:

(Format DD/MM/YY HH:MM)

Server Start: 01/01/01 00:00

Player One: Craft One: Launch!: 01/01/01 00:00

Player Two: Craft Two: Launch!: 01/01/01 00:07

Player One: Craft One: Orbit: 01/01/01 00:13

Player Two: Craft Two: Orbit: 01/01/01 00:20

Player One: Craft One: Crash! 01/01/01 00:21

Player One: Craft Three: Launch! 01/01/01 00:30

Player Two: Craft Two: Landed (Mun) 01/01/01 03:49

In the above case, the server logs these events (and the data between them) and then sends that data at the appropriate time to the client. For example, when Player Two's client is at 01/01/01 00:21, he'll see Player One crash. When he gets to 00:30, he'll see the next craft launch. Likewise, when Player One is at 01/01/01 00:20, he'll see Player Two in orbit...assuming Player Two has gotten to that point himself as well. If Player Two's client hasn't yet made it to 00:20, then Player One will be "leading" in the future; he'll be under the impression he's alone in that time realm.

There would be an option for full-server sync, where everyone is timewarped to the furthest-forward position to "catch up" (which might be done on a regular basis as maintenance), as well as an option for client-client sync, where two players agree to sync at a set time in order to play in real-time together. While in "partner" mode, timewarp acts in unison for everyone within that partnership. Players can leave the partnership at any time and break the synchronization to timewarp as they see fit, then resync at another point.

TL;DR - Make everyone's client write in a big history book and then tell the history stories to everyone as they get to that point.

Link to comment
Share on other sites

Which would not work, you'd get complaints about someone else "unfairly beating me" because he was using timewarp.

In a multi-user persistent universe either everyone warps at the same time for the same duration (extremely impractical) or noone warps ever (equally impractical for KSP given the times/distances involved).

http://forum.kerbalspaceprogram.com/showthread.php/36863-What-not-to-suggest next time please take a few seconds to read the list of things not to suggest before you start beating up another dead horse.

Link to comment
Share on other sites

Even if you can get an asynchronous warp working, you are stuck with one undeniable truth -- there will almost never be instances of players actually interacting in real time. As a result, you introduce what is essentially time travel paradoxes -- Player A has time warped a solar orbit to get to Dune, or example, but afterwards Player B, warping at different rates and times, manages to crash into and destroy player A's craft before it ever reaches Duna. Meanwhile, player A has already landed on Duna.

There is no way to resolve that. Even if there were, you'd still be playing a mostly single player game, because everyone time warps according to what they're doing, leaving nobody able to interact with anyone else in real time. You'd see other players here and there, but they'd already be years ahead of you. You'd see only their afterimage.

Link to comment
Share on other sites

If you time warp the positions of the planets in your client will be different relative to everyone else.

There are ways around this of course, none of them really convenient to implement.

The easiest way to implement this would be to export code managing time and user input to a server which would spit out locations and attitudes to the clients. Of course the flaw is that the physics would be handled with the server, so this method is impossible until a multi-threaded physics engine is produced and would limit games to a LAN.

The idea of using the lowest time warp of all players would be stable, but not effective beyond two or three players. There will always be someone launching, or someone driving their rover around or landing; or anything else that needs physical simulation. Your long missions will never finish in a reasonable amount of time because there'll always be a ship somewhere doing a two-hour ion burn, if there are enough people on the server. With even a dozen or more players it would be no better than locking on to 1x time.

Defcon uses the system successfully because there are never more than a small handful of players in the match, and the same would be true of the system implemented in KSP. It would work reasonably well for a few players, but beyond that it would become too conservative.

You're right about that. I agree completely. Other people may see the need for a large multiplayer server, but I guess my mp gameplay image is radically different to that. I'd just use mp so I could help my friends out and run a collaborative mission with them in real time.

If you want Multiplayer grab a friend or two and take turns passing a save file around. That's the closest you will get to Multiplayer in KSP. Can we lock this thread now?

Thanks Nutt007, I'll do that.

One way it might work would be to use asynchronous time warp where all players are logged into a central persistence tracker which is then disseminated to the clients at appropriate times.

Basically, the server starts and is always ticking. All the players are free to come and go as they please and time warp however they please. However, all their telemetry data is logged into the server with timestamps and then sent to the clients at the appropriate time. For example:

(Format DD/MM/YY HH:MM)

Server Start: 01/01/01 00:00

Player One: Craft One: Launch!: 01/01/01 00:00

Player Two: Craft Two: Launch!: 01/01/01 00:07

Player One: Craft One: Orbit: 01/01/01 00:13

Player Two: Craft Two: Orbit: 01/01/01 00:20

Player One: Craft One: Crash! 01/01/01 00:21

Player One: Craft Three: Launch! 01/01/01 00:30

Player Two: Craft Two: Landed (Mun) 01/01/01 03:49

In the above case, the server logs these events (and the data between them) and then sends that data at the appropriate time to the client. For example, when Player Two's client is at 01/01/01 00:21, he'll see Player One crash. When he gets to 00:30, he'll see the next craft launch. Likewise, when Player One is at 01/01/01 00:20, he'll see Player Two in orbit...assuming Player Two has gotten to that point himself as well. If Player Two's client hasn't yet made it to 00:20, then Player One will be "leading" in the future; he'll be under the impression he's alone in that time realm.

There would be an option for full-server sync, where everyone is timewarped to the furthest-forward position to "catch up" (which might be done on a regular basis as maintenance), as well as an option for client-client sync, where two players agree to sync at a set time in order to play in real-time together. While in "partner" mode, timewarp acts in unison for everyone within that partnership. Players can leave the partnership at any time and break the synchronization to timewarp as they see fit, then resync at another point.

TL;DR - Make everyone's client write in a big history book and then tell the history stories to everyone as they get to that point.

In my opinion, asynch will never be a reality for KSP multiplayer because with asynch, people play in the same manner as single player but with time paradoxes and probably at a cost, because running a server capable of doing this would not be easy or cheap. Cooling problems could occur as well as bandwidth and CPU timeshares. Synchronous adds the problem of small playerbases and long waits for someone else to finish their long task, but it would be feasible with todays technology and is just like what Nutt007 said, but in realtime, so some people could use the same savefile at the same time.

Even if you can get an asynchronous warp working, you are stuck with one undeniable truth -- there will almost never be instances of players actually interacting in real time. As a result, you introduce what is essentially time travel paradoxes -- Player A has time warped a solar orbit to get to Dune, or example, but afterwards Player B, warping at different rates and times, manages to crash into and destroy player A's craft before it ever reaches Duna. Meanwhile, player A has already landed on Duna.

There is no way to resolve that. Even if there were, you'd still be playing a mostly single player game, because everyone time warps according to what they're doing, leaving nobody able to interact with anyone else in real time. You'd see other players here and there, but they'd already be years ahead of you. You'd see only their afterimage.

This is in the case of asynchronous multiplayer. Asynchronous mp really doesn't work for many games, and I've frankly never played an asynch mp game. Synch wouldn't be as free in terms of getting things done as quickly, but I think some chat system might be able to convince the slowpokes to finish what their doing so the final month of the Hohmann transfer could finish.

Which would not work, you'd get complaints about someone else "unfairly beating me" because he was using timewarp.

In a multi-user persistent universe either everyone warps at the same time for the same duration (extremely impractical) or noone warps ever (equally impractical for KSP given the times/distances involved).

http://forum.kerbalspaceprogram.com/showthread.php/36863-What-not-to-suggest next time please take a few seconds to read the list of things not to suggest before you start beating up another dead horse.

I agree, it's pretty impractical, but when it gets released, maybe people will want to play with their friends bad enough to endure the waiting, but that's just me.

About the what not to suggest, no one started this thread asking the devs to start working on multiplayer, this was a discussion regarding the mechanics of a multiplayer system and the pros and cons of other systems. You probably aren't going to read over this so I'll re-cap:

Synchronous is manageable by current systems and wouldn't take much rewiring to work, but users would have to endure time-warp problems, depending on how squad implements that.

Asynchronous is either managed client-side, exactly how kerbal livefeed works, or managed server-side, requiring a logbook of everything everyone does and what happened to everyplayer every second, something that would take immense CPU power and Unity optimization for it to work.

Link to comment
Share on other sites

I think an important thing to consider is that "multiplayer" doesn't necessarily mean massively multiplayer. The "use the current slowest warp" model would work very well for a 4 player co-op game. Online or over a LAN it would be great to run missions in a small group, or even just with two players.

A KSP MMO wouldn't work though.

Fingers crossed that a modder out there will put a 2-4 player co-op mod together!

Link to comment
Share on other sites

What i dont understand is why people want MP in KSP in the first place. I can understand it for most other games but not KSP.

- most of the time players will just block each other if one wants to timewarp - but not the other

- any parts of both players will be in the other players memory - producing even more memory issues

- players would probably have to have the same mods installed

- there will be hardly any interaction not to mention chances are players wont even see each other because of the huge distances

- even if you meet up it will not actually be that interactive or make huge sense you you would have all disadvantages for meeting up on purpose for no real reason?

- flying together is not an option because controls dont require 2 players and would probably be chaotic anyway

- building together would be chaotic aswell and slow

- there is nothing to do for a second player and if you just want to build up a space-station together you can pretty much exchange saves

From my point of view MP is about some sort of interaction - which is simply not what KSP is - there are neither elements that can be used by 2 players nor are there many elements that will make people interact and last but not least players will most of the time not even see each other.

Maybe someone can explaint to me what the benefits of MP in KSP would be and why it would be fun for more than 1 forced encounter for 5 minutes of fun?

Link to comment
Share on other sites

I think that what we really need in multiplayer, is a mod that allows multiple people being assigned to one or more kerbals. Because they are in the same ship, anybody can initiate a time warp without having any problems. People need to be able to eva independently. There may also be the option that they could go into 2 different crafts for apollo style missions but without time warp. There could be time warp but it would require that all other ships are in a stable orbit or unoccupied (but this isn't very important because A. there are 2 guys going down to the mun and B. who would want to miss out on mucking around on the mun). It is very easy to share ships and merge worlds but what people really want is to eva and iva together and maybe in the future have a manned mission control. It can be a great way for beginners or having an expert to help/teach with/about things like nodes, landing etc. So really what I'm trying to say is all we need at the minimum is a mod that;

- Allows Multiple simultaneous independent camera views

- Allow simultaneous control of multiple different kerbals through multiple LAN PCs

- allows input from multiple LAN PCs

- streaming data and receiving input server and client (maybe the client PC uses the mod to edit the various parameters i.e. speed, position in realtime, swell as send back control inputs + edited nodes

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...