Jump to content

DarkMultiPlayer 0.3.8.0 [KSP 1.12.0]


godarklight

Recommended Posts

@chiefymuc: It seems there's a conflict with window ID's somewhere although this *really* shouldn't be happening as I'm using a unity call to guarantee a free window :-/. I've yet to reproduce it, but when I do I'll poke it some more. As a pre-emptive measure I've added a constant offset to the DMP windows so they may not conflict anymore (but this could be wishful thinking...)

@therealcrow999: All that does is copy your saved vessels (the .crafts) to the server, that shouldn't help with this bug, which suggests it strikes randomly and you're experiencing a co-incidence.

@Dumdidldum: In 0.1.6 (the next version). Story incoming for everyone!

@inigma: For a mod developer, I'm a surprisingly stock player and I actually haven't used those other mods (although I'll give into the rest of the modding world one day :)). I do know KAS causes explosions with players around, and TAC-LS is time dependant so it's most likely going to have problems with DMP's subspace mode.

@The_Rocketeer: Yes and no, depending on a server setting and who is connected. 'keepTickingWhileOffline' (default online) is a side effect of how subspaces are locked. Subspaces are basically epoches that reference the real server clock time, and lock a universe time to that point. It then counts the difference in seconds to the actual server clock time (figured out by an NTP-style approach) and multiplies that by the subspace speed to get the correct universe time.

When keepTickingWhileOffline is disabled, it simply relocks the last locked universe time to the *real current server time* when the first player connects.

Short answer: Contracts are currently individual but the time is shared, so that player will get expired contracts if they disconnect/reconnect when someone warps far into the future. Shared contracts are coming for 0.1.6.

@inigma: "a DMP duplicate vessel detection auto-removal-of-the-newest-vessel workaround?" - PartKiller was supposed to take care of the bits that break off, but I'll have to check how KAS does things. If it's an actual docking then it's DMP's fault, if it's not, then it's unsolvable :-/

Link to comment
Share on other sites

I'm having an issue with DMP. I created a DMP universe from a save game using the in-game tool, but every time I restart the DMP server the world resets to that initial save. My friend and I spent a few hours adding modules to a space station only to have those modules disappear when I started the server up again this morning. Any ideas?

Link to comment
Share on other sites

I'm having an issue with DMP. I created a DMP universe from a save game using the in-game tool, but every time I restart the DMP server the world resets to that initial save. My friend and I spent a few hours adding modules to a space station only to have those modules disappear when I started the server up again this morning. Any ideas?

I always hit "Backup Server" when I'm shutting it down or when I've built something important and don't want to do it over.

Did you back yours up?

Link to comment
Share on other sites

@inigma: For a mod developer, I'm a surprisingly stock player and I actually haven't used those other mods (although I'll give into the rest of the modding world one day :)). I do know KAS causes explosions with players around, and TAC-LS is time dependant so it's most likely going to have problems with DMP's subspace mode.

@inigma: "a DMP duplicate vessel detection auto-removal-of-the-newest-vessel workaround?" - PartKiller was supposed to take care of the bits that break off, but I'll have to check how KAS does things. If it's an actual docking then it's DMP's fault, if it's not, then it's unsolvable :-/

I did some further testing. Just KAS and DMP for mods. Win7 64 bit. KSP 32 bit.

1. Simply create a fuel truck with a KAS pipe port. Park it off the runway.

2. Launch a second fuel truck but named differently (i.e. fuel truck 2) with a KAS pipe port. Park it next to the other fuel truck.

3. Have a Kerbal EVA to link the pipes. Doesn't matter which order.

4. Switch to the linked fuel trucks.

5. Switch back to EVA and unlink pipe.

6. Switch to Tracking Center and you will see both vessels with their appropriate names.

7. Disconnect and reconnect.

On reload with the server, and going to Tracking Center you will either see:

Only one fuel truck - which when loaded seems to be in a state prior to any fuel transfer, and before any launch of a second truck.

or

Two fuel trucks with the same name - which when either is loaded, both occupy the same space as the first truck and explode.

Looking at the debug, it seems to me that DMP is not transmitting to the server database the destruction of the linked vessel, and the creation of two separate vessels again, with their appropriate names either. DMP may be treating both entities as existing, but since the database is not updated with the location and name of the second unlinked fuel truck, the database only has info that a second vessel exists, with the same name as the first truck, in the same place as the first truck.

I've tried no warp, MCW, and subspace, and am able to duplicate this with any of those warp methods enabled on the server. I have not found a work around. This is something DMP related in how it doesn't seem to recognize KAS unlinked vessels that were previously linked, or simply not saving the vessels when created by KAS.

KAS's fuel transfer pipes is the only way to transfer fuels between vessels short of docking them, or ramming one with a claw. Not very elegant. On a multiplayer server using resource mining, an easy way to link up vessels and transfer fuel is quite necessary. Would you be willing to at least take a look at duplicating this when you get a moment? I know you're very busy this side of the year. Let me know if need anything else from me. :)

Edited by inigma
Link to comment
Share on other sites

@ godarklight

Is it possible to remove the warp control timeout?

I mean, when someone timewarps, he gets to control the timewarp for 120 secs.

Is it possible to rmeove that? like, just set it to 0 secs?

The reason for this, is that if someone starts a timewarp, the other players wont get a chance to stop the timewarp, if they are heading for the moon. This means that the player controlling can end up slamming other players into planets.

If instead, that when someone timewarps, anyone can stop the timewarp at any given time, the player closest to the planet can just stop the timewarp, when the time is right :)

Is this possible?

Link to comment
Share on other sites

@ godarklight

Is it possible to remove the warp control timeout?

I mean, when someone timewarps, he gets to control the timewarp for 120 secs.

Is it possible to rmeove that? like, just set it to 0 secs?

The reason for this, is that if someone starts a timewarp, the other players wont get a chance to stop the timewarp, if they are heading for the moon. This means that the player controlling can end up slamming other players into planets.

If instead, that when someone timewarps, anyone can stop the timewarp at any given time, the player closest to the planet can just stop the timewarp, when the time is right :)

Is this possible?

You're talking about Master Controlled Warp, right? You want veto power as an option programmed in for other online players? Might work.

Link to comment
Share on other sites

Hey, first of all I want to say thanks to godarklight (I created an account on ksp forums just to say this). Over time, I've added a number of mods to augment my stock KSP experience, and I have to say DMP just adds a whole new dimension of gameplay experience that only multiplayer can provide.

After playing for a few days, I've come up with a little race to test planes/rockets/things all while having fun with friends. I've been able to complete this myself a couple of times so I know it is possible to complete the whole race with one craft successfully.

This is an endurance race that requires speed, efficiency, and skill.

Rules:

1) All participants must be synced and are not allowed to use time-warp once the race begins.

2) Racers must land at each checkpoint in order, and take screenshots of their Kerbal next to the checkpoint flag. Kerbals must be within 1km of each objective (50m for hard mode).

3) A racer is docked 1 point every time he/she crashes or runs out of fuel.

4) A racer is docked 1 point every time he/she returns to the VAB/SPH.

5) If launching again out of KSC, you proceed to the next checkpoint that you have not yet completed.

6) Each successful screenshot of an objective is worth 2 points.

7) First to an objective gains 1 bonus point (verified by screenshot).

8) First to return to KSC after completing all objectives gains an additional 1 point.

Checkpoints:

Check these locations with kerbal maps (spoilers!)

1) Island Runway

2) -6.5057 : -141.6856

3) 20.5829 : -146.5116

4) -81.9551 : -128.518

5) Return to KSC and land.

There is a maximum of 16 points. Whoever has the highest points, or arrives first with 12 points wins! Let me know if you have any feedback or ways to further standardize / improve this race, or just any ideas in general for other cool competitions.

Recommendations: Have someone be the dedicated organizer who is verifying screenshots, counting crashes / reverts back to sph, and setting up flag markers at each check point. I.E naming convention of "Race Checkpoint - #"

BONUS HARDMODE: Do it at night without setting up flag markers beforehand.

Gallery: http://imgur.com/a/9YwYS

Edited by PurpleBlurpL
Link to comment
Share on other sites

Using KAS with DMP, and linking, transferring fuel, and unlinking the fuel pipe link, I noticed these vessels in the Universe folder existing at the same time (Fuel Truck 2 is duplicated):

This seems to be Fuel Truck 2 at a time/state before the original KAS linking (I only include here the initial vessel info)

pid = 182e324024bd4c219c1a11493ae48a95
name = Fuel Truck 2
type = Ship
sit = LANDED
landed = True
landedAt = KSC
splashed = False
met = 13194.4572478505
lct = 212710.677725553
root = 0
lat = -0.0573372449474846
lon = 285.282227398074
alt = 65.727844790672
hgt = 0.9426644
nrm = 0.0001822566,0.003499295,-0.9999939
rot = -0.0702356,-0.1146595,0.5091447,0.8501129
CoM = 2.049357E-05,-1.231853,-0.01150618
stg = 1
prst = False
ref = 3594016883
ctrl = True
cPch = 0
cHdg = 0
cMod = 0
ORBIT
{
SMA = 300811.520809469
ECC = 0.994822982480491
INC = 0.057393375777106
LPE = 89.7273083677993
LAN = 270.656940372552
MNA = 3.14159382198218
EPH = 225905.174973403
REF = 1
}

This seems to be the duplicate Fuel Truck 2 that is created after KAS unlinking

pid = 3c4df8f700d349438cc5d4fc3a6f9055
name = Fuel Truck 2
type = Ship
sit = LANDED
landed = True
landedAt = KSC
splashed = False
met = 0.0399999999790452
lct = 226006.262418919
root = 0
lat = -0.0573372122134231
lon = -74.7177709778304
alt = 66.0975848681992
hgt = 0.9423799
nrm = 0.0001674425,0.003378303,-0.9999944
rot = -0.07026482,-0.1147926,0.5090842,0.8501288
CoM = 0.0001070625,-1.153999,-0.01146904
stg = 1
prst = False
ref = 3594016883
ctrl = True
cPch = 0
cHdg = 0
cMod = -1
ORBIT
{
SMA = 300811.732365365
ECC = 0.994822808130824
INC = 0.0573908703030268
LPE = 89.5610114731223
LAN = 272.509021763056
MNA = 3.14159859736158
EPH = 226006.322418919
REF = 1
}

It's not an exact location duplicate per se, but close enough to where parts are going to collide when I load either ship. Is there a way to have the Universe be checked for these kinds of duplicates? I can provide you the full vessel files if you'd like.

Link to comment
Share on other sites

Using KAS with DMP, and linking, transferring fuel, and unlinking the fuel pipe link, I noticed these vessels in the Universe folder existing at the same time (Fuel Truck 2 is duplicated):

This seems to be Fuel Truck 2 at a time/state before the original KAS linking (I only include here the initial vessel info)

pid = 182e324024bd4c219c1a11493ae48a95
name = Fuel Truck 2
type = Ship
sit = LANDED
landed = True
landedAt = KSC
splashed = False
met = 13194.4572478505
lct = 212710.677725553
root = 0
lat = -0.0573372449474846
lon = 285.282227398074
alt = 65.727844790672
hgt = 0.9426644
nrm = 0.0001822566,0.003499295,-0.9999939
rot = -0.0702356,-0.1146595,0.5091447,0.8501129
CoM = 2.049357E-05,-1.231853,-0.01150618
stg = 1
prst = False
ref = 3594016883
ctrl = True
cPch = 0
cHdg = 0
cMod = 0
ORBIT
{
SMA = 300811.520809469
ECC = 0.994822982480491
INC = 0.057393375777106
LPE = 89.7273083677993
LAN = 270.656940372552
MNA = 3.14159382198218
EPH = 225905.174973403
REF = 1
}

This seems to be the duplicate Fuel Truck 2 that is created after KAS unlinking

pid = 3c4df8f700d349438cc5d4fc3a6f9055
name = Fuel Truck 2
type = Ship
sit = LANDED
landed = True
landedAt = KSC
splashed = False
met = 0.0399999999790452
lct = 226006.262418919
root = 0
lat = -0.0573372122134231
lon = -74.7177709778304
alt = 66.0975848681992
hgt = 0.9423799
nrm = 0.0001674425,0.003378303,-0.9999944
rot = -0.07026482,-0.1147926,0.5090842,0.8501288
CoM = 0.0001070625,-1.153999,-0.01146904
stg = 1
prst = False
ref = 3594016883
ctrl = True
cPch = 0
cHdg = 0
cMod = -1
ORBIT
{
SMA = 300811.732365365
ECC = 0.994822808130824
INC = 0.0573908703030268
LPE = 89.5610114731223
LAN = 272.509021763056
MNA = 3.14159859736158
EPH = 226006.322418919
REF = 1
}

It's not an exact location duplicate per se, but close enough to where parts are going to collide when I load either ship. Is there a way to have the Universe be checked for these kinds of duplicates? I can provide you the full vessel files if you'd like.

There's a very good chance KAS with DMP will cause massive explosions.

I'd advise against using them together for now.

The mod author is aware of the problem, so hassle him on mIRC so he'll look into it quicker ;)

Link to comment
Share on other sites

@Yalin Hawk: I'll have to poke the universe creator, I think it's alright though. It's possible that revert might have incorrectly killed vessels if you're using 0.1.5.5, I'll bring it back for 0.1.6.

@Harrekin: DMPServer doesn't have a backup utility, I assume you're talking about the server GUI from masteryx (which is something I haven't really used)

@Rekrahttam/MaxDeath10x: DMP disabled revert due to the way KSP works - If I can detect a revert correctly then I should be able to go back in time and play through the updates (which means syncing *back in time* might become possible again :))

@inigma: I'll check out KAS today, I have a day off.

@kasperhangard: That's kind of the idea of MCW_LOWEST, but I never implemented it. I'll go over the warp system for 0.1.6. So long as you leave the safety bubble, you should see all the other players from the past or present. You can sync to the future in the player window.

@PurpleBlurpL: 1 can be easily enforced with a no warp server ;). Might be fun to try as a stream event...

@dcompart: Currently, players in the past can sync with players in the future. Syncing the past will be possible if I bring back reverting. I should be able to, just needs some out-of-the-box thinking to resolve some paradoxes :)

@spiritplumber: Thanks for pointing that out. I should really be testing things more before pushing them into release :P

Edited by godarklight
Link to comment
Share on other sites

There's a very good chance KAS with DMP will cause massive explosions.

I'd advise against using them together for now.

The mod author is aware of the problem, so hassle him on mIRC so he'll look into it quicker ;)

He confirmed that DMP is not recognizing kill vessel events caused by the undocking process initiated by the unlinking of vessels. Hopefully the fix will make DMP more stable overall.

Link to comment
Share on other sites

@inigma: The KAS bug should be fixed in DMP-dev, DMP was not picking up dockings that didn't involve the active vessel, so the old vessel was never removed from the server. KAS just makes the problem more apparent as when you hook pipes together, that's a docking between two other vessels, not involving the active vessel (which would be the kerbal).

If you lined up 2 vessels and switched to a nearby craft, the same bug would have happened - So this was definitely DMP's fault :).

Link to comment
Share on other sites

@inigma: The KAS bug should be fixed in DMP-dev, DMP was not picking up dockings that didn't involve the active vessel, so the old vessel was never removed from the server. KAS just makes the problem more apparent as when you hook pipes together, that's a docking between two other vessels, not involving the active vessel (which would be the kerbal).

If you lined up 2 vessels and switched to a nearby craft, the same bug would have happened - So this was definitely DMP's fault :).

Fixed already?

Legendary.

Link to comment
Share on other sites

@Harrekin: It was a rather simple logic error, vessel/vessel dockings that didn't involve the controlled craft have always been broken, but generally that doesn't happen in stock which is why I missed it :P

@X.C.M: As soon as groups / shared science / permissions get pushed to my master, it will instantly be available in the dev builds. There's still quite a long way to go with 0.1.6 though (as in 0.25 will definitely come out before 0.1.6), so when KSP updates people might have to jump on dev for a while until I finish the feature set for DMP.

And as always, everyone is welcome in #DMP on espernet, but being Australian I might be a little hard to catch. The more people we have on dev the more eyes we have to spot bugs, which means the more stable 0.1.6 will be :)

Link to comment
Share on other sites

@inigma: The KAS bug should be fixed in DMP-dev, DMP was not picking up dockings that didn't involve the active vessel, so the old vessel was never removed from the server. KAS just makes the problem more apparent as when you hook pipes together, that's a docking between two other vessels, not involving the active vessel (which would be the kerbal).

If you lined up 2 vessels and switched to a nearby craft, the same bug would have happened - So this was definitely DMP's fault :).

You sir, are amazing. Thank you! I'm glad we squished this one. I'll be testing the dev build on Sunday to verify.

Link to comment
Share on other sites

Hi,

First i wish to express my gratitude for making such a great plugin ! Besides that, thank for the support you're bringing. I'm reading this thread for a while and i'm pleased you fixed out how DMP works with KAS !

I have a question about network latency. Currently I'm hosting 2 server on two separate machines, both dedicated with a 100mb/s connection on each one.

However everything is quite stable on my hand, i noticed there is often a high network latency peak on both servers, such as 200ms and more. It makes the people you spectate to jump, disapears or have very weird behaviours (ie : player exploding multiple times when only flying normally).

Well, i would like to know you have any plan to sort this out or any suggestion i may apply to improve the situation.

Thank you. :)

Link to comment
Share on other sites

@Dacan: I assume you're mainly talking about surface updates (<10km altitude) with respect to lag - While in orbit DMP uses the orbital parameters where position/velocity can be accurately calculated for the future (KSP's methods do this for me), but DMP also syncs the engines and time which helps keep spectators seeing the same thing as the pilot.

As for surface positioning, DMP does not yet interpolate along the velocity path which is why you see planes jumping back and forward in flight - This would be a very easy feature to implement and should help things a great deal, so long as I don't go interpolating people into the ground ;). Disappearing is likely caused by KSP killing vessels in atmosphere as they get put on rails, which isn't something I have a lot of control over, and although the "pack" range can be increased, it makes the game lag quite badly when mods do this.

Vessel explosions can be for various reasons, DMP's positioning isn't quite perfect yet and does cause clipping with the ground quite often.

The other reason things could feel slightly "spikey" is DMP's exclusive use of TCP, rather than UDP. TCP isn't a terrible choice due to the way KSP works, it's not significantly more laggy than UDP is, and after I correctly sync angular velocity and interpolate the position things should mostly be ok *crosses fingers*.

Also, 200ms is not a large amount of lag when you live in Australia :).

darklight@chrislinux:~$ ping forum.kerbalspaceprogram.com -c 4

PING forum.kerbalspaceprogram.com (85.236.103.14) 56(84) bytes of data.

64 bytes from hosting01-ksp.multiplay.com (85.236.103.14): icmp_seq=1 ttl=48 time=378 ms

64 bytes from hosting01-ksp.multiplay.com (85.236.103.14): icmp_seq=2 ttl=48 time=369 ms

64 bytes from hosting01-ksp.multiplay.com (85.236.103.14): icmp_seq=3 ttl=48 time=377 ms

64 bytes from hosting01-ksp.multiplay.com (85.236.103.14): icmp_seq=4 ttl=48 time=356 ms

--- forum.kerbalspaceprogram.com ping statistics ---

4 packets transmitted, 4 received, 0% packet loss, time 3102ms

rtt min/avg/max/mdev = 356.464/370.596/378.693/8.931 ms

Link to comment
Share on other sites

Thanks for the clarifications. =)

The other reason things could feel slightly "spikey" is DMP's exclusive use of TCP, rather than UDP. TCP isn't a terrible choice due to the way KSP works, it's not significantly more laggy than UDP is, and after I correctly sync angular velocity and interpolate the position things should mostly be ok *crosses fingers*.

What about the rotations made by the vessel ? Should this not be managed in UDP to avoid those crazy pirouettes you see when spectating someone ? I mean, as it's "real time" calculations, whould it not results in less lag but more accurate representation of what happens ? Forgive me if i'm wrong, just trying to learn.

Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...