Jump to content

The L.O.G. Multiplayer Project


MarkusA380

Do you like the idea of it?  

2 members have voted

  1. 1. Do you like the idea of it?



Recommended Posts

That leads back to the question: "What is a server time, if every player can be in a totally different time?"

I guess its the time the server suggests when you want to launch a new mission. In that case its not really a problem. Well, it is if you want to play together, but you might can ignore it and set your own launch date anyway. It does not make sense to do anything else. Imagine a vessel on a decent course and you have a disconnect. Why should the server do anything and not simply allow you to continue where you dropped out, if every player (or even vessel) can be in its own time anyway?

Link to comment
Share on other sites

Ok, now I'm confused. I'm not sure if I actually got the idea:

There is a server that runs the game, as if you would play normally, with interactions and everything, and the clock (the one in the tracking station in the upper left corner) keeps running, even if you log out or go to the VAB/SPH -> thats what I meant by server time. All nice and well as long as noone tries to timewarp. Nothing new so far, works as in Minecraft or any other serverbased multiplayer. Now L.O.G. comes along and makes timewarp possible by saying: if you get ahead of servertime by timewarp, your movement is written to a log and replaid on the server, so everyone else can go on playing in servertime.

and when noone watches, the server skips some time, so that you don't have to actually wait half a year for your (pre recorded) probe to reach ... Elo or whatever.

Question is how much does the server skip. Does it jump to the point in time, when the longest prerecording ends and all vessels are in servertime again without a log to be replaid, or to the point where the shortest log ends and the server catched up with the first vessel that runs out of prerecorded gametime.

I though its the latter, but now while I'm thinking about it, the first would also work, having completely different consequences though.

Damn, messing around with time makes things really complicated :/

Edited by CaptainBullet
Link to comment
Share on other sites

Ok, now I'm confused. I'm not sure if I actually got the idea:

There is a server that runs the game, as if you would play normally, with interactions and everything, and the clock (the one in the tracking station in the upper left corner) keeps running, even if you log out or go to the VAB/SPH -> thats what I meant by server time. All nice and well as long as noone tries to timewarp. Nothing new so far, works as in Minecraft or any other serverbased multiplayer. Now L.O.G. comes along and makes timewarp possible by saying: if you get ahead of servertime by timewarp, your movement is written to a log and replaid on the server, so everyone else can go on playing in servertime.

and when noone watches, the server skips some time, so that you don't have to actually wait half a year for your (pre recorded) probe to reach ... Elo or whatever.

Question is how much does the server skip. Does it jump to the point in time, when the longest prerecording ends and all vessels are in servertime again without a log to be replaid, or to the point where the shortest log ends and the server catched up with the first vessel that runs out of prerecorded gametime.

I though its the latter, but now while I'm thinking about it, the first would also work, having completely different consequences though.

Damn, messing around with time makes things really complicated :/

Basically it will run the physics on rails for the vessels and simulate all of the vessels to a common sync point. The earliest common sync would probably be the best in order to help prevent probes from crashing into moons during the on-rails simulation though.

So for example, player B and player A launch at the same server epoch (common point of time reference) and do whatever they want. Player A goes to minmas, player B goes to Duna. They both stop observing the game world for a bit. During this time vessel A would continue to orbit or follow the trajectory it was last on (even if it will crash) while the server catches up to when player B left in their universe. So basically the server recorded both actions, then plays the one that left at an "earlier" time until it catches up with the time stamp on the "later" time. This is done by tracking each person's clock on their client and comparing it with the server epoch. If the server is behind the player's clock, it simulates at high speed until it catches up. The opposite case would theoretically not happen because on launch the server would feed the client the current server epoch, and so a new launch would take place at that point in time.

E.g. Player C joins in and launches, the time in his universe would match the time in Player B's universe since B was the last to log off and cause the server to enter simulation mod. However at this point player C is now leaving an action log. His ship just goes into orbit around Kerbin, then he leaves. Presumably, player A nor player B have logged on since Player C got on, so when they get on all of their stuff will have been simulated up until the end of whatever player C did.

I think of it as sort of a system of equations, where the domain of the first equation is bounded by log in A and log off A, then the second equation is bounded by log off A and log off B, then the third is bounded by log off B and log off C, etc. etc.

Link to comment
Share on other sites

Exactly, you can think a little bit more simple about a gameserver. Consider it a relay for the status of game objects. It also verifies updates submitted by clients (to e.g. make sure a client can't teleport though a level in CS:S; but we skip that for now for simplicity) and has to simulate non-player-objects (that we do not have in KSP).

So a gameserver for a concept as adopted by L.O.G is really just a database for vessel states and their entire history. Your client will use those data to calculate the current state of the vessel at your current universe time and "interpolate" everything missing (usually just drifting along orbits once your reached the end of a vessels timeline). But pretty much all the data your client downloads from the server was uploaded earlier by other clients.

Edited by Faark
Link to comment
Share on other sites

Ok, now I got it. Thanx for the pacience :)

So if I loose connection or have a clientcrash while not being in a stable orbit I'm basically doomed, cause the server will just fast forward the the highest timestemp (of that guy who looked for the perfect time to get three gravity asists in a row and timewarped half a century). thats the issue gl0ryh0und was talking about in post #244

But right, that would solve all other problems I was talking about.

Link to comment
Share on other sites

+++Development Info+++

Hi guys!

Well, we have been working the whole time on the bug we are still having.

But, I think we will be able to make the first connection in the next days.

I can't promise anything, but don't loose your interest in this thread and wait for more to come!

When we have the first version ready, we will make a video to show the mod to you.

There will be no download, however, because it isn't stable enaugh yet.

CARROTSAREAWESOME can't help me in the next couple of days, so I will have to continue working on my own.

EDIT: I have made the first test with the new version and it actually worked. I could see my tester's craft driving around and he could see mine. But it seems like a small but vital part of my laptop has decided to commit suicide... which means 1 Bluescreen every 10 - 20 mins. I have to fix this first before being able to continue developing.

But: Hey, Multiplayer actually works!!!

Edited by MarkusA380
Link to comment
Share on other sites

Funny to think of how the project started and where we are now...

You guys are just such a great community for this!

Next Step is now to add rotation, equalize parts list and make more players than only two possible (which would actually stop the lagging).

This means: We are heading to the first RELEASE !!!

Link to comment
Share on other sites

Funny to think of how the project started and where we are now...

You guys are just such a great community for this!

Next Step is now to add rotation, equalize parts list and make more players than only two possible (which would actually stop the lagging).

This means: We are heading to the first RELEASE !!!

I think I'm as excited as I was for the release of GTA V for this mod's release as well. Good luck!

I'm sort of curious, though scared that it'll be a huge and confusing answer, as to why you didn't implement rotation. Surely it's just a matter of transmitting an extra value over the server and syncing it up?

Also, why wasn't there a chat GUI in the demonstration video?

Link to comment
Share on other sites

I think I'm as excited as I was for the release of GTA V for this mod's release as well. Good luck!

I'm sort of curious, though scared that it'll be a huge and confusing answer, as to why you didn't implement rotation. Surely it's just a matter of transmitting an extra value over the server and syncing it up?

Also, why wasn't there a chat GUI in the demonstration video?

Rotation is just a bit more complicated than just sending a number. It is made of more than one number, which makes it a bit more difficult to send and receive.

Chat isn't implemented yet. It would take extra work. But I just didn't do it, I wanted to make a first multiplayer connection. We communicated via Skype.

But, I will add it.

Link to comment
Share on other sites

Hey Markus, I read thru the thread again fast but didn't see answers to these questions;

1. how many player connections are you planning to support?

2. will users be able to host their own servers

3. will there be in-game chat

Cheers!

1. Unlimited. As long as the server can handle it, there is no limitation.

2. Yes.

3. Yes.

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...