Jump to content

Time warp mechanic


Recommended Posts

2 hours ago, Reckless Pilot said:

Discuss possible concepts for timewarp in a multiplayer setting.

Timewarp in multiplayer would be rather tricky. I can guess one of two things would be used:

  • The 'host' of the multiplayer server is the one who controls timewarp
  • Timewarp is voted upon by all the players in the current game, and the lowest requested timewarp amount will occur.
Link to comment
Share on other sites

2 minutes ago, intelliCom said:

Timewarp in multiplayer would be rather tricky. I can guess one of two things would be used:

  • The 'host' of the multiplayer server is the one who controls timewarp
  • Timewarp is voted upon by all the players in the current game, and the lowest requested timewarp amount will occur.

Maybe if it's like "Kerbol Rising" and they get turn points or something it might work.

 

Link to comment
Share on other sites

10 minutes ago, The Aziz said:

Everyone is in their own time bubble unless they want to rendezvous or interact in any way, then the game forces both to sync up to one universal server time when they meet.

That would be quite difficult to figure out though. Let's say this time bubble system is specific for each gravitational influence (I.e, the planets, the moons, and kerbol.) If a player needs Duna itself to remain in real time because they're moving across the surface in a rover, and another player wants to timewarp for an amount of time where Duna takes half a rotation around the sun, what happens to Duna?

Does Duna remain in its same position around the sun for the entire timewarp, or does it move around the sun at sped-up time, while the planet's own daily rotation remains in 1x time, resulting in the sun going to the other side of the planet from the surface being unaffected by timewarp?

Edited by intelliCom
Link to comment
Share on other sites

We're used to have people share saves to play in the same game, any system is easier than that and often times the more the logic of a system is complex "behind the scenes" the less of that complexity gets offloaded onto the players.

With that in mind if you combine a permission/owner system for crafts and a sync-up logic that allows you to sync up to other player ahead of you but not back to people behind you shouldn't have problems of sorts. 

Obviously "sync-up" means that you just timewarp until you reach the other player.

Link to comment
Share on other sites

8 minutes ago, Master39 said:

We're used to have people share saves to play in the same game, any system is easier than that and often times the more the logic of a system is complex "behind the scenes" the less of that complexity gets offloaded onto the players.

With that in mind if you combine a permission/owner system for crafts and a sync-up logic that allows you to sync up to other player ahead of you but not back to people behind you shouldn't have problems of sorts. 

Obviously "sync-up" means that you just timewarp until you reach the other player.

I am still of the belief that everyone should be under the same Universal Time (UT). Let's say that someone who stays in x1 timewarp on a planet mines ore, while another player goes for x100000 timewarp between planets, simply trying to complete a hohmann transfer. The x1 player's ore is not finished, still without leaving x1 time. The x100000 player finishes their hohmann transfer, and is now in x1 time as well. Since that timewarp happened, does the ore mining get affected by the timewarping of the other player? If not, should it be, and why?

Edited by intelliCom
Link to comment
Share on other sites

10 minutes ago, intelliCom said:

I am still of the belief that everyone should be under the same Universal Time (UT). Let's say that someone who stays in x1 timewarp on a planet mines ore, while another player goes for x100000 timewarp between planets, simply trying to complete a hohmann transfer. The x1 player's ore is not finished, still without leaving x1 time. The x100000 player finishes their hohmann transfer, and is now in x1 time as well. Since that timewarp happened, does the ore mining get affected by the timewarping of the other player? If not, should it be, and why?

The x100000 player would be at a different time in the future, so it wouldn't make sense to change anything for the x1 player, except having the x100000 ship slowly plod its way along in x1 timescale. The game would need to keep track of multiple timestreams in high detail, and if the x1 player catches up to a construct that the x100000 player made, we would have to have it impossible to interact with, so it couldn't change the future that the x100000 player is already in. But then, even landing at or building near the x100000 player construct could alter the timeline... Unless we ignore that for gameplay purposes, and treat x100000 player's constructs as something that can be changed in x1s timeline, and let x100000 continue unmolested in their conquest of space. Of course, in this case, they would have to timesync to interact... We're dealing with time travel. I don't know how it could be done. Maybe we are overthinking it. Perhaps players on a server all share the same world, and can accelerate their own time while others plod along? So warping would be obvious to everyone when your ship is blasting around Kerbin orbit at 30 times the speed of light. I can't see a way to reconcile the timeline differences, so maybe they won't even try? 

Link to comment
Share on other sites

45 minutes ago, intelliCom said:

That would be quite difficult to figure out though. Let's say this time bubble system is specific for each gravitational influence (I.e, the planets, the moons, and kerbol.) If a player needs Duna itself to remain in real time because they're moving across the surface in a rover, and another player wants to timewarp for an amount of time where Duna takes half a rotation around the sun, what happens to Duna?

Does Duna remain in its same position around the sun for the entire timewarp, or does it move around the sun at sped-up time, while the planet's own daily rotation remains in 1x time, resulting in the sun going to the other side of the planet from the surface being unaffected by timewarp?

 

32 minutes ago, intelliCom said:

I am still of the belief that everyone should be under the same Universal Time (UT). Let's say that someone who stays in x1 timewarp on a planet mines ore, while another player goes for x100000 timewarp between planets, simply trying to complete a hohmann transfer. The x1 player's ore is not finished, still without leaving x1 time. The x100000 player finishes their hohmann transfer, and is now in x1 time as well. Since that timewarp happened, does the ore mining get affected by the timewarping of the other player? If not, should it be, and why?

Everyone's game is calculated locally unless needed.  But, server-side, the main UT follows the player that is the furthest in the future. If you don't want to interact with anyone (there could be a planner of sorts to set up things ahead), you'll be unaffected by any time warping etc, but: let's say, you want to fly to Duna and land in someone's base. The other guy is not finished with building or needs to drive up to the place in order to prepare for your arrival. So you warp all the way to Duna orbit with no problem, all done client-side, but only then you want to sync UT with the other guy, so at chosen moment the warp applies and boom, you're both in the same timeline, and you can begin your descent because your target is ready and exactly where it's supposed to be.

Link to comment
Share on other sites

1 minute ago, TLTay said:

We're dealing with time travel. I don't know how it could be done. Maybe we are overthinking it.

Or we could go with the first suggestion of this thread, an earlier idea I already proposed, which makes more sense:

1 hour ago, intelliCom said:

Timewarp in multiplayer would be rather tricky. I can guess one of two things would be used:

  • The 'host' of the multiplayer server is the one who controls timewarp
  • Timewarp is voted upon by all the players in the current game, and the lowest requested timewarp amount will occur.

I think the voting system is probably best. How it basically works is this: Let's say a player only wants to timewarp for about 5 hours to do an orbital maneuver around Kerbin, while another wants to timewarp for 5 years for a hohmann transfer to Jool. A timewarp happens for 5 hours, and the Kerbin player peforms their maneuver. After this, the Kerbin player says the Transfer player can timewarp as much as they'd like. Of course, in KSP 2, these timewarps should have a much higher maximum than KSP 1, as 5 years at x100,000 speed is about 7 minutes and 40 seconds of waiting. At x1,000,000 speed, which is currently unavailable in KSP 1, this is only 46 seconds. Although, even during gameplay, this can interfere with some player's work, so x10,000,000 speed results in 4.6 seconds. In other words: hohmann planetary transfers are probably going to be much faster in KSP 2, especially with interstellar travel.

As long as the Kerbin player isn't entering Kerbin's atmosphere, it's fine. The game has to check for how long it will take for the Kerbin player to enter the atmosphere, and only timewarp by that much time. The player moving through Kerbin's atmosphere forces the entire game to remain in the physics warp range (x1 to x4), as long as other players allow it. (e.g. a player wanting to do some station construction definitely doesn't want x2 timewarp, so the player moving through Kerbin's atmosphere won't get it.) Of course, the only way that players in atmospheres could allow for the massively faster timewarps that come with empty space is for those atmosphere-dwelling players to stay still.

Link to comment
Share on other sites

38 minutes ago, intelliCom said:

I am still of the belief that everyone should be under the same Universal Time (UT). Let's say that someone who stays in x1 timewarp on a planet mines ore, while another player goes for x100000 timewarp between planets, simply trying to complete a hohmann transfer. The x1 player's ore is not finished, still without leaving x1 time. The x100000 player finishes their hohmann transfer, and is now in x1 time as well. Since that timewarp happened, does the ore mining get affected by the timewarping of the other player? If not, should it be, and why?

It's easier if you think about it like players merging their saves more than player connecting to another, external and universal save.

The 1x player would see the other player crafts at 1x in their save, the x100000 would see the 1x player at warp speed until they pass and go into 1x's future and then just as a "?" maker on the map view.

To interact the 1x player has to timewarp ahead to sync with the 10000x player.

14 minutes ago, TLTay said:

We're dealing with time travel. I don't know how it could be done. Maybe we are overthinking it.

Yep, absolutely, you deal with timewarp the same way we deal with it in single player, you warp only in one direction, the 1000000x player can't "warp back" to the 1x player, if they try the 1x player receives an invite to warp ahead.

 

The permission/ownership system helps this allowing people ahead to share station by simply granting permission to use and/or ownership of bases and stations to the player behind and allowing them to use it without syncing up. Example: I can allow you to use my LKO station while I'm warping ahead to make an Eve transfer.

Link to comment
Share on other sites

13 minutes ago, The Aziz said:

So you warp all the way to Duna orbit with no problem, all done client-side, but only then you want to sync UT with the other guy, so at chosen moment the warp applies and boom, you're both in the same timeline, and you can begin your descent because your target is ready and exactly where it's supposed to be.

I suppose what you mean is this: when player "A" sits in x1 timewarp around Duna for a long time, and does a bunch of stuff for a long time, he is unaffected by timewarp. But, if player "B" does a hohmann transfer for a year to Duna, the game calculates where "A" would be after 1 year, and everything is caught up again? It works, but it leads to issues of the authority of "B" to do something like that, and if it's done at a time convenient for the other player. I'll re-use an analogy I mentioned earlier: Let's say player "X" is performing station construction around Jool, while player "Y" enters Jool after a 5-year hohmann transfer. All of a sudden, player "Y" is thrown really, really far away from the station they were working on. They could have even had been flung out of Jool from a gravity assist from any of Jool's moons. It would probably take some time for the game to calculate all of that, and it wouldn't be good for "X".

10 minutes ago, Master39 said:

Yep, absolutely, you deal with timewarp the same way we deal with it in single player, you warp only in one direction, the 1000000x player can't "warp back" to the 1x player, if they try the 1x player receives an invite to warp ahead. The permission/ownership system helps this allowing people ahead to share station by simply granting permission to use and/or ownership of bases and stations to the player behind and allowing them to use it without syncing up.

So I guess the permission idea is combined with the de-sync/re-sync? It sounds a bit better, but I'm wondering if you could simplify the idea a little further? It's quite a bit to think about.

Edited by intelliCom
Link to comment
Share on other sites

Just now, intelliCom said:

I suppose what you mean is this: when player "A" sits in x1 timewarp around Duna for a long time, and does a bunch of stuff for a long time, he is unaffected by timewarp. But, if player "B" does a hohmann transfer for a year to Duna, the game calculates where "A" would be after 1 year, and everything is caught up again? It works, but it leads to issues of a player's authority to do that, and if it's done at a time convenient for the other player. I'll re-use an analogy I mentioned earlier: Let's say player "X" is performing station construction around Jool, while player "Y" enters Jool after a 5-year hohmann transfer. All of a sudden, player "Y" is thrown really, really far away from the station they were working on. They could have even had been flung out of Jool from a gravity assist from any of Jool's moons. It would probably take some time for the game to calculate all of that, and it wouldn't be good for other players.

Um, invite system.

You ask the player A if they want to warp, display the elapsed time and project where they'll end up. If the player doesn't agree, B gets to deal.

The calculations are minimal because rails, so it would be as cheap as displaying a manuever node. And you're only syncing when a player requests it, and when the receiving player accepts.

Keeping everyone, at all times, always synchronized is a recipe for disaster.  So KSP2 multiplayer will only synch players when absolutely needed.

 

Link to comment
Share on other sites

12 minutes ago, Incarnation of Chaos said:

You ask the player A if they want to warp, display the elapsed time and project where they'll end up. If the player doesn't agree, B gets to deal.

Ok, that's similar to what I said, but it's just between two players. Although, how does the game know when to make the request? What if "player A" leaves Duna, where will he appear after leaving Duna's sphere of influence? A ship at escape velocity will eventually force a re-synchronisation, regardless of permissions.

12 minutes ago, Incarnation of Chaos said:

The calculations are minimal because rails, so it would be as cheap as displaying a manuever node.

I've had many cases in KSP where the game just doesn't know where my ship is going, or it tells me that my ship will encounter a planet, but then the prediction disappears last minute and says "haha, that was never going to happen". I don't know if KSP 2 could warn players about an encounter like that properly enough. Also, as the amount of stockpiled warped time increases, so do the calculations. Let's say we had an interstellar traveller that went to and from a star for about 100 years. Could the game calculate "player X" (The station-builder) encountering the sphere of influence of one of Jool's moons across all 100 years after a single point in time? KSP 1 wouldn't.

Edited by intelliCom
Link to comment
Share on other sites

3 minutes ago, intelliCom said:

if it's done at a time convenient for the other player.

Exactly. The sync up would only apply if both (or more) players accept it. As @Master39 said, the player in the past could get an invite or something. The game wouldn't have to calculate where everything is, because once no force is applied, as in, surface vehicle is stationary or orbital vessels have their engines off, the client would only have to send coordinates and/or orbital parameters. They won't change over time.

About the other case, once you enter a specific SOI, the game could let you know (by showing it in the map view, exactly like in ksp1) that there are other player's objects on or around the body. Of course it wouldn't show moving objects because of course it cannot.

Link to comment
Share on other sites

13 minutes ago, intelliCom said:

 I'm wondering if you could simplify the idea a little further? It's quite a bit to think about.

Universal time proposal:

The server owner has to act as a game master, spending more time manually coordinating time warp between players than he does playing.

 

Vote time warp proposal:

Every player has to actively comunicate to reserve a turn to play whatever mission they have in mind, every launch, every transfer, every Eva of every player has to be coordinated and known between all players. The game is now turn based, barely faster than moving the single player save back an forth.

 

My proposal:

Each player can play on their own, no coordination, management or maintenance required from any of them.

If a player needs another player infrastructure they have to require and obtain permission from them (and to timewarp past said structure last edit) a 2 button interface.

Whenever two or more players have to directly interact in real time they just need to know that the ones behind have to timewarp ahead to reach the one furthest in the future. They also have a convenient "warp to player X" button to do that.

 

My solution is the most complex if you're the dev that has to implement it, but all the complexity that doesn't get dealt with during development doesn't magically disappear, it just gets offloaded onto the players.

You can either take the time to understand a  "complex" 2 button system to sync automatically or deal with the same complexity manually while playing.

Link to comment
Share on other sites

43 minutes ago, intelliCom said:

Ok, that's similar to what I said, but it's just between two players. Although, how does the game know when to make the request? What if "player A" leaves Duna, where will he appear after leaving Duna's sphere of influence? A ship at escape velocity will eventually force a re-synchronisation, regardless of permissions.

I've had many cases in KSP where the game just doesn't know where my ship is going, or it tells me that my ship will encounter a planet, but then the prediction disappears last minute and says "haha, that was never going to happen". I don't know if KSP 2 could warn players about an encounter like that properly enough. Also, as the amount of stockpiled warped time increases, so do the calculations. Let's say we had an interstellar traveller that went to and from a star for about 100 years. Could the game calculate "player X" (The station-builder) encountering the sphere of influence of one of Jool's moons across all 100 years after a single point in time? KSP 1 wouldn't.

You don't make the game figure it out is my entire point, the Players do.

Player A should be more than able to go on a tour of the kerbol system, because player B isn't doing anything that requires them to be syncronized sitting in duna orbit making a base. Indeed, forcing them to sync would mean Player B now can't work on a base for player C to come to leaving them able to rejoin A a few years later.

We don't want perfect synchronization between players, because it limits the ability of players to do things that benefit the experience. The only time you want a perfect synchronization is in FPS where literally anything else is unacceptable and cheats people out of wins.

Also for the latter, refer to the dev diary on Orbit Tessellation.  KSP2 will have much more grunt to do exactly what you want, and be much, much faster at projecting it when it comes to maneuvers.

Link to comment
Share on other sites

Just for reference, this entire discussion can be found in the pinned multiplayer thread, here's every instance where timewarp is discussed:

https://forum.kerbalspaceprogram.com/index.php?/search/&q=timewarp&type=forums_topic&page=2&item=187358&search_and_or=or&sortby=newest

We will definitely not be trading saves and the 2 choices most discussed are:

  1. Individual time bubbles with syncing
  2. Permanently synced game that moves as fast as the slowest timewarp.

I am of the opinion the first option would be the best for large servers though there may become some time paradoxes that occur and the 2nd option would be better available for small parties.

Link to comment
Share on other sites

The biggest problem I see with un-synced play comes with edge cases. Let player "P" be a player in the past and player "F" be the future player:

  • F occupies a docking port, P then occupies that same docking port before F ever got to that docking port. Now P syncs up with F. What is happening at that docking port?
  • F builds a colony at some coordinate on a planet. P begins a colony well before F would have been to that planet. 2 different structures now occupy the same place at different times. Now P syncs with F. What happens?
Link to comment
Share on other sites

3 minutes ago, mcwaffles2003 said:

F occupies a docking port, P then occupies that same docking port before F ever got to that docking port. Now P syncs up with F. What is happening at that docking port?

Only one of the two player has permission to use the station at any given time, to dock with F's station P has to ask permission, and then warp to after F's last edit to the station.

During this time F's can't modify the station without waiting for P or revoking the permit.

7 minutes ago, mcwaffles2003 said:

F builds a colony at some coordinate on a planet. P...

Can't place any permanent module because that place is already occupied.

If it helps avoiding conflict you can make "ghosts" of future crafts appear on location and/or marked exclusion zones you have to clear before sync-up.

 

Both those solution appear complex until you realize that if is not the game's programming taking care of this you have to deal with it anyway by constantly and manually adjusting between players.

 

21 minutes ago, mcwaffles2003 said:
  1. Individual time bubbles with syncing
  2. Permanently synced game that moves as fast as the slowest timewarp.

I am of the opinion the first option would be the best for large servers

For me the difference between 1 and 2 is not the amount of people in the server but the possibility of playing a full campaign together as separate space agencies VS only using multiplayer to coach a friend and/or hopping in their game to see something and then going back to your personal single player.

Link to comment
Share on other sites

5 minutes ago, Master39 said:

Only one of the two player has permission to use the station at any given time, to dock with F's station P has to ask permission, and then warp to after F's last edit to the station.

During this time F's can't modify the station without waiting for P or revoking the permit.

Can't place any permanent module because that place is already occupied.

If it helps avoiding conflict you can make "ghosts" of future crafts appear on location and/or marked exclusion zones you have to clear before sync-up.

Both those solution appear complex until you realize that if is not the game's programming taking care of this you have to deal with it anyway by constantly and manually adjusting between players.

I feel these would work but would also like to see them in practice as I'm pretty sure these precautionary limits could be overturned either intentionally by players or through accident and just hope those failure conditions are prepared for. If I have learned anything from this community, it is that every tiny mechanic can and will be exploited to the absolute fullest.

8 minutes ago, Master39 said:

For me the difference between 1 and 2 is not the amount of people in the server but the possibility of playing a full campaign together as separate space agencies VS only using multiplayer to coach a friend and/or hopping in their game to see something and then going back to your personal single player.

I feel like fully synced play could be managed with a bit of inter-player organization, an alarm system, and some type of scheduler. Though, I think after 4 or so people this would break down quickly. It's a lot to ask for but if we had multiple options that can be set for what type of server you would like to run that would be cool but I assume that is a long shot. Getting multiplayer was a big enough hurdle to cross, having multiple types of it sounds like I might be spoiled.

Link to comment
Share on other sites

37 minutes ago, mcwaffles2003 said:

Getting multiplayer was a big enough hurdle to cross, having multiple types of it sounds like I might be spoiled.

You can play synced the whole time even if the game can manage unsynced play, still I don't see the point I'm manually organising and turning KSP into a turn-based game instead of having the game deal with that.

Just think about this scenario:

Players A, B and C, A and B plan to cooperate on a Duna mission, is playing on his own for Duna exploration.

A is going to build a Rover to collect samples, and launch it to Duna on Window 1.

B is going to send an orbiter on Window 1 that A will use as a Relay to enhance coverage for the rover, and a Lander on Window 2 to which A's rover will bring the collected samples to launch in orbit, dock with the orbiter and brought them back to Kerbin.

C is doing its own thing, launching an orbiter on Window 1 and a Lander with a rover on window 3.

Playing synced every player has to stop and wait for every other player move especially C has to stop a lot to wait for A and B even if he's not interacting with them.

With my idea of unsynced play C is never interrupted and can finish his play session with time to spare and do something else. A and B are interrupted only in 2 occasions, the first being A asking permission for B's relay and then they have to sync up to transfer the samples to the return craft.

I kept it simple, without any colony management mechanics and with one of the firsts interplanetary destination as a target, and with everyone going to the same and even then it would only be marginally better to play synced if compared to sharing and transfering KSP1 saves.

Now immagine if C's target was Eve, he has to pass the evening spectating A and B project just to be able to launch his rover to another destination.

Link to comment
Share on other sites

×
×
  • Create New...