Jump to content

Working Multiplayer Proof of Concept with video proof [No Longer In Production]


Pwolf

Recommended Posts

Honestly, what's the value of multi-player if the multiple players are not going to interact with each other anyway? Like one guy goes to Duna and the other goes to Eve. What's the point of multi-player in that case?

I can see how orbital maneuvers would be pretty fun in a multi-player environment, but what's the point of the above?

Link to comment
Share on other sites

Even if you don't have any direct contact with another user's vessel, I think the idea of being able to play in the same "universe" as other people is appealing to some.

Personally, I'd like to just RCS around a buddy's craft while he tries to figure out what he's doing. That or do rover races around a KerbalTown race track.

Link to comment
Share on other sites

The problem isn't that people think it's impossible to get multiplayer working. Other Unity games offer multiplayer so obviously you could make multiplayer work in KSP just as easily.

The problem, however, is that KSP revolves around features and mechanics that simply don't function in a multiplayer environment. If you had a vote for warp, then you'd only be able to warp when everyone's ready and you'd still wind up waiting large amounts of time. If you did the thing where you phase out into a singleplayer instance while warping, then your position and the position of all the planets would have to synch together with the server, which would be a very jarring and immersion-breaking experience for people, if you had multiple people controlling the same ship...well, I just don't really think that'd be all that fun, not going to lie.

But what I've always thought would be really fun multiplayer in KSP would be...basically kerbal Moonbase Alpha. Coop bouncing around on the surface of a planet around a set base or station or whatever...maybe with a maximum distance from said base. Maybe have micrometeroids or dust or whatever else doing things to your installation, giving you things to repair. Maybe have science you could do with the other person(s). It'd just be casual and fun.

But good job, either way. It's always good to see people flexing their coding muscles for whatever reason.

Link to comment
Share on other sites

Could you test this, with removing time warp completely and putting in the Anti-matter/Warp mod? Maybe even talk with that mod dev to see if he could mod the mod, to make it so, you can convert power or something, to power a warp drive, to make it auto set the vessel in question up by increments of 10 fold in speed, while making it a static physics object some how, so you can't turn, etc, gotta warp in the direction, keep the "deflector dish" or something going, to bounce away particles, if you don't it removes the static and lets the kraken get at your vehicle going however fast? or something of the like, just as another "viable" multiplayer test, even if you made a simple on that allowed two computers through LAN or other means could play together, or something. Would be amazing.
I don't know too much about this mod, but does the warp drive remove the need for timewarping from place to place? If so, you should totally try talking to the guy who created this http://forum.kerbalspaceprogram.com/showthread.php/47861-Multiplayer-Proof-of-Concpet-with-video to see if you can remove all "physics and time warp" from the game, use these engines for interplanetary things, etc as well as allow multiple people to play in the same world together, with none of the time warp problems, even if it some how ended up in a P2P multiplayer or something, just a few people or one on one (Then using a launch pad mod, to launch from other sides of the world in some space race, with some collaboration or something) would be awesome. Especially with energy beaming and all the science parts this brings.

Certainly the warp drive can offer alternatives to time warp under certain circumstances. Many aspects of my mod are also about resource gathering, this part tends to be relatively time itensive so would probably have to be stripped out if the warp drive were to be used in this manner.

Unfortunately, I think Majiir is right in that timewarp is not the real problem - it's synchronising all the game coordinates as well as synchronising the states of each PartModule between game instances. Having a second ship on screen that moves around in response to control inputs on another game instance is a great achievement but making the second ship able to perform something as simple as an engine burn is fiendishly complicated. The clients will have to share information on which engines are active, engine throttle information, engine thrust vectors, fuel supplies, etc. Also, if the ship being controlled remotely is actually performing an engine burn then the calculations for that burn will be being done seperately on two different machines, which could result in positional deviation, that means additional synchronisation code is going to be needed to keep the ships from diverging in each game instance.

As far as I'm aware, the game doesn't call any special functions in response to a change of field data, which means you're probably forced into periodically polling for updates on every part module.

An alternative might be to try a lot of visual trickery to make two ships appear to be the same, even if they're not - that might involve spawning cloned ships with fake part modules that look like the original but don't actually do anything other than produce visual effects.

Both approaches sound nightmarishly complicated but I wish the developer well and will be interested to see how this develops.

Edited by Fractal_UK
Link to comment
Share on other sites

Unfortunately, I think Majiir is right in that timewarp is not the real problem - it's synchronising all the game coordinates as well as synchronising the states of each PartModule between game instances. Having a second ship on screen that moves around in response to control inputs on another game instance is a great achievement but making the second ship able to perform something as simple as an engine burn is fiendishly complicated. The clients will have to share information on which engines are active, engine throttle information, engine thrust vectors, fuel supplies, etc. Also, if the ship being controlled remotely is actually performing an engine burn then the calculations for that burn will be being done seperately on two different machines, which could result in positional deviation, that means additional synchronisation code is going to be needed to keep the ships from diverging in each game instance.

An even bigger issue is serializing all that data. Not looking forward to that.

Link to comment
Share on other sites

I still don't see what is so difficult about having everyone vote on the timewarp and the lowest speed wins, similar to in DEFCON.

This looks so cool! I hope it ends up being fully functional.

Link to comment
Share on other sites

The method of implementing timewarp isn't the difficult part, it's maintaining synchronization across all clients before, during, and after the timewarp that's difficult. No matter what method is used, the issue of sync is still the same.

While I was doing some testing last night I noticed some interesting behavior that might help in the matter but as mentioned before, timewarp isn't something I want to worry about right now.

Link to comment
Share on other sites

personally, id think that the most effective way to time warp would be to disregard the games internall clock entirely and have time warp simply act as a foce speeding up the ship, not at all effecting anyone else. However, i have no experience in writing games and im sure there are many issues that would come with this, i just think it would be the most effective means of the time warp system

Link to comment
Share on other sites

If you can get it working fully as a true mod...

If what?! WHAT WILL HAPPEN?!

personally, id think that the most effective way to time warp would be to disregard the games internall clock entirely and have time warp simply act as a foce speeding up the ship, not at all effecting anyone else. However, i have no experience in writing games and im sure there are many issues that would come with this, i just think it would be the most effective means of the time warp system

Unfortunately it's not all that effective. All you'd be doing is just moving really fast (which has it's own issues) and ignoring any of the physics of the game that makes it awesome. Basically just flying in a straight line to a planet or moon. No fun in that ;) (no offense to those of you who develop/use warp mods)

Link to comment
Share on other sites

I am not a programmer by any means, but I was thinking.... In a hypothetical multiplayer mod, when ships controlled by two different players are a large distance apart, wouldn't the only information that needed to be transferred between clients be position data? You wouldn't need anything more than that until the two were in relatively close proximity. If that is the case, then time warp could operate in much the same way as it does currently when close to planets/moons. Once you got within a certain distance of each other, time warp would be disabled, but when farther apart, each player could use it as he wanted. To the non-warping player, the other would just appear to be moving very fast as the position data was updated. It wouldn't be very realistic, but it would allow for players to use warp when needed, as long as they weren't close to each other.

Again, this is based on some assumptions that are probably totally incorrect, but I figured I'd throw my two cents in.

Link to comment
Share on other sites

In a hypothetical multiplayer mod, when ships controlled by two different players are a large distance apart, wouldn't the only information that needed to be transferred between clients be position data? You wouldn't need anything more than that until the two were in relatively close proximity.

Yes, you are technically correct. When a vessel isn't within the loading distance of your active vessel, there's no need to send or receive as much as you would need if you were within that loading distance... but

If that is the case, then time warp could operate in much the same way as it does currently when close to planets/moons. Once you got within a certain distance of each other, time warp would be disabled, but when farther apart, each player could use it as he wanted. To the non-warping player, the other would just appear to be moving very fast as the position data was updated.

Unfortunately this wont work. This would desync the position of the celestial bodies which would mess up the positional data. Remember, when you time warp, it's not just your ship that's moving in time, everything else in the universe is also.

Interesting mod you have going here. I'm wondering how you're going to fix the deep space kraken and other errors associated with being far from the center of the in game universe.

Honestly, no idea at this point. As mentioned earlier, I don't know enough yet about how KSP handles these types of things. Wont know until I see it happen.

Link to comment
Share on other sites

Looks like someone is REALLY into it for the firs time - and an example was provided. I'm impressed.

I guess you know what I'm gonna say when I'm coming across multiplayer-related things here, but I'll be cutting you some slack.

Time warp is really simple. You just don't allow it.

*P1 goes to Jool*

*P2 transfers from Kerbin to Mun*

*P3 launches a rocket one after another into orbit*

*P4 builds an inteprlanetary ship bound to Jool*

*P5 does random things in the launchpad and in atmosphere*

P4: "Dammit! I missed the ship! Half-an-hour more..."

P2: "Just hang in there. I'll be doing a movie marathon until I'll reach Mun."

P1: "I'll be back after a year. You guys keep playing."

Edited by Flixxbeatz
Link to comment
Share on other sites

I say be the ***** until you get it solved with time warp. Allow time warp as it is right now. But! Any vehicles that are in the atmosphere ie a rocket at launch, let its engines stop and have it drop back down. Now you may be saying no dont do that because that is mean. Who cares if its mean. I mean imagine if Kerbal Space Program had multiplayer and everyone on the forums played on the server. First without voice comms it would be a nightmare. Second having all those people and crafts. D: To me KSP multiplayer would be a friend thing like at a lan party. People would be able to communicate so P1 can go ok gonna time warp in 15 mins for around 2 mins to get to the moon, launch what you need so it doesnt get destroyed.

Thats just my 2 cents.

Pwolf, just keep going at it, CHANGE THE WAY PEOPLE PLAY KSP!

Link to comment
Share on other sites

I know there are more problems than that. And I wasn't talking directly to you, I was just telling people not to anymore because it's really annoying to me...

Who won't be getting annoyed after encountering the same thing over and over again before, knowing that it will end in the same manner everytime?

Link to comment
Share on other sites

Who won't be getting annoyed after encountering the same thing over and over again before, knowing that it will end in the same manner everytime?

Which reminds me...

I know some of you are getting excited here but there's a very real possibility that it's just not possible, at least not with me behind the wheel. I am by no means a great programmer, it's one of a few hobbies I enjoy. That said, I've done a lot of legwork already and I'm not ready to give up on this yet. However, like most of the other MP related projects, this may die also. I'm not promising anything so please don't expect too much out of me or this project. I do appreciate the words of encouragement though. So, thanks and I hope I'll be able to show you guys some more stuff as I work through it.

Link to comment
Share on other sites

All I can say is goodluck, given that multiplayer has less than 1% chance to be implemented as an in-game feature, due to a number of issues that must be addressed first.

And by the fact that pretty much everyone that has been here for a considerable amount of time is sick and tired of seeing random multiplayer suggestions and ideas thread popping up anywhere in the forums.

OT: I then remember people before who created mods to transform Elder Scrolls IV: Oblivion (which is STRICTLY singleplayer) into a LAN game, with varying levels of success.

Edited by Flixxbeatz
Link to comment
Share on other sites

I'm excited looking at your work. It seems to work good. You had mentioned something about global positions being weird, does ksp not keep track of global positions? I have a little C++ experience and it would be awesome to look at the code and see what I could do with it. Any chances? :) Have you thought of making it open source/ community based development? There are excellent coders on this forum and with code moderation and consolidation by you, could be a good way to develop.

Link to comment
Share on other sites

Well Swiftgates24, I don't know who you (moderator or not) are but at the risk of annoying you I had an idea concerning timewarp.

We assume that the time warp is a core mechanic we can't ignore, and in reference to a playable realistic time scale for the actual player we can't. We're also assuming that players will want to play an entire game with you start to finish.. in reality this is not a practical proposition to expect from the vast majority of players. Instead how about we have a feature to invite people to play with a single mission controller player, who controls game speeds. You would have provide some sort of communication and then provide a vote system for warps, Nothing in the game would actually belong to player X or A, B, C it all belongs to the controller. with the caveat that on one player can control 1 kerbal at a time. The controller has control of the ships, although he could transfer control to a 'pilot' That's right 1 kerbal.. if you die, back to the KSC. getting players to control kerbals instead of ships could allow multiple players riding on one ship doing 1 mission only needing 1 time reference for warping. I think this is where a multiplayer function could really shine.. forget about merging whole solar systems and space programs.. invite your friends to yours.

your welcome, this idea is for free.

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