29th October 2013, 11:27
KMP v0.1.5.1 [0.23] [wip/alpha]
v0.1.5.1 EXPERIMENTAL PRE-ALPHA
Read the FAQ before using KMP! You have been warned...
Download KMP client (v0.1.5.1)
Download KMP server (v0.1.5.1)
Unofficial Server List
This is an EXPERIMENTAL PRE-ALPHA release. KMP can and will do Bad Things™ including:
- Locking up
- Affecting non-KMP KSP sessions in some way
- Kraken attacks
- Assorted general weirdness
Installation tutorial by RockyTV
* Shrunk default safety-cylinder radius to 2000m
* Tweaked rendezvous smoothing behaviour for better in-game performance
* Optimized database performance during cleanup operations, which should address recent server slowdown/lag issues
* Optimized server object serialization to increase overall performance
* Fixed some bugs affecting the reliability of career-mode data (more fixes by trafalg & xterm91)
* Fixed possible NREs when changing part opacity affecting game performance
* Fixed server crash in some situations where a client doesn't disconnect cleanly
* Fixed EVAs near KSC being sent to the server even when in safety bubble
* Simplified KMP client<->plugin messaging
* Added option for alternative GUI skin
* Ship control is now blocked while entering a chat message
* Updated compilation scrips
* Fixed server can crash with a poorly formed "/set" command
* Added "/lockship" server admin command for manually changing vessel privacy
* Fixed various bugs causing loss of science points and career progress
* Fixed another bug causing loss of science points and career progress
Need mods on your server? Read the included README and check out this tool.
(Mildly outdated) FAQ
What is KMP?
KMP is a mod for v0.22 of Kerbal Space Program that adds a multiplayer game option. In a KMP game you can freely interact with other players and do all the Kerbally things you'd normally do in KSP, but with friends (or strangers) playing in the same universe, at the same time. Oh, and you can use (normal, on-rails) warp as much as you want.
Surely you jest! Who's responsible for this hoax?
No joke. It's a real multiplayer plugin and it even actually works (er... mostly). KMP builds on the already-amazing KerbalLiveFeed mod created by Alfred Lam/SodiumEyes, and KMP itself was created by me: Shaun Esau/TehGimp. KMP would not have been possible without the help of testers like Simon C. (CaptainCarpenter), nor without the numerous discoveries made and shared by KSP's incredibly smart & helpful modding community.
So I can race my friends to the Mun?
Build space stations together?
High-five during an EVA in orbit?
Build an outpost on Duna?
Deorbit satellites with kinetic kill vehicles?
I don't know why you'd want to, but yeah you can do that too...
Have a drag-race on Eve?
That one can be a little janky, but yeah you can!
Trick my friend who's actually good at this game into doing all the hard stuff for me?
Build, fly, dream... together?
That's a good way to put it--I should make that into a slogan or something.
And I can use warp as much as I want, anytime I want?
Yep--normal "on rails" warp is always available, though "physics warp" isn't.
The big problem that immediately comes up when allowing players to use warp whenever they want to is that forcing everyone to go into warp is unpractical, and otherwise your local copy of the solar system wouldn't be synchronized with other players (so the planets and moons would be in very different positions relative to each other for different players). KMP gets around this by allowing players to play in multiple timeframes (or "subspaces") simultaneously. You can sync with any player that's "in the future" relative to you whenever it's convenient.
That sounds complicated. Is it complicated?
For gameplay purposes, at least, it's actually really simple! Need to go to warp for a few years to position that shiny new Jool probe? Go ahead! Want to build a new space station with your buddy afterward? Just sync up and you're good to go. That's it.
What happens when I'm not in sync with someone else?
You'll still be able to see those players and what they're doing in-game--you can chat, send screenshots, share designs, etc, but you won't be able to interact with any in-game vessels that those players control. Vessels from the past or future turn translucent so that you know that you won't be able to affect them. If the other player is in the past, KMP tries to predict where they'll be in the future and shows their ship at that location. Keep in mind, though, that since the ship is still being manipulated in the past, the predicted future location can rapidly change. If another ship has been manipulated in the future, you're effectively just watching a recording of events that have "already happened" play out.
Won't everyone just be out of sync all the time?
It depends on what people on a particular server are doing, but yes it's totally possible that everyone on a server might split into their own subspace, and that's A-OK! When you first connect to the game you're always placed in the "latest" subspace currently on the server, and if you ever want to directly interact with another player the most you'll have to do is click a button. Vessels that aren't under active control by another player and that haven't been touched in the "future" (relative to you) are all available.
What happens when I disconnect? Will my vessels disappear?
No! Your vessels are saved to the server's "universe" and will continue to be simulated whenever at least one player is connected to the server. Be sure to leave your ship in a stable orbit, or it may not be there when you come back! Your vessels cannot be controlled by other players unless you "unlock" them for public access, but keep in mind that other players can still crash into your vessels physically while you're absent.
Can anyone just hop into my ship when I'm offline!?
No! Your vessels are marked as "private" by default, which prevents other players from taking control of them or from docking with them. If you want to allow another player to dock with one of your vessels or to be able to take control of your vessel, just set your vessel to "public" status. Keep in mind, though, that whoever is in control of a vessel can set it as "private" to claim it for themselves!! Only mark ships "public" with players you trust.
Is KMP massively multiplayer? Can I look forward to a solar system teeming with hundreds of players?
No. KMP is solely intended to be used with relatively small servers hosting just a few players. The bandwidth and performance requirements that come with having more than a handful of other players are too high for most computers.
How do I get started?
Just download KMP and install it like any other mod. Then find a server (or create your own) and add it your connection list. For more details, see the README.txt included with the KMP download.
I want more details or I still don't understand how this all works--can I see it in motion?
I'm working on a video demo and will make it available as soon as possible, unless someone beats me to the punch.
So what's the catch?
There are quite a few. The most obvious ones are:
- KMP is currently held together by thumbtacks and Elmer's glue. As this is the first public version and it's in an EXPERIMENTAL PRE-ALPHA state, some features are missing or incomplete and there are bugs. Lots and lots of bugs. Big bugs, small bugs, minor bugs, and horrible bugs. Enough bugs that you (yes you) will get a chance to experience several first-hand. Check out the Known Issues list if you want to know what to expect.
- The space kraken has been awakened by the multiplayer hordes and may strike unexpectedly!
- There's no support for career-mode yet, only sandbox.
- Other mods are not "officially" supported in this first release. For now you (usually) must use stock parts only.
- Physics warp isn't available, and probably won't ever be.
- You can't pause of course, and you can't quick-load either (but you can quick-save and then copy the KMP save file to play a downloaded universe in single-player mode).
- In this first version only one player can control a single vessel at a time, but a future update will allow multiple players to share a ship.
- KMP can be demanding on your hardware. If your machine already struggles to run KSP, KMP will only make things worse.
- Kerbals in newly docked vessels tend to suffer from a temporary non-fatal bout of Double Head Syndrome.
- Some features are partially broken for Linux users. (Sorry! I'm an Ubuntu user myself, but I can't do much about bugs that are in Unity or KSP code...)
- And more! See the Known Issues list for details.
What stuff doesn't work?
See the Known Issues list for details.
What new features are you already working on?
KMP is a work in progress, and there are several features that I hope to add in the relatively near future, including:
- Bugfixes for Known Issues
- Career-mode support, possibly including a co-op career option
- Support for multiple players flying in a single vessel, either with one designated "pilot" player or shared controls
- Improved support for mods
- Visible custom flags from other players without having a custom flag pre-installed
- A server browser
- Server passwords
I was playing KMP and [insert calamity here] happened! What do I do?
As a first step, always try fully restarting KSP and reconnecting to the KMP server--many bugs can be resolved by these quick steps.
I can't get connected to a server. What's wrong?
Contact the server's administrator for assistance. In this experimental release, exceptionally stubborn connection problems may require the server to be restarted.
While building a Mun base I noticed that my friend's ships sometimes move a bit when they initially touch down. Is that normal?
Yes. When a vessel touches down, KMP will update its exact position, which will correct any accumulated errors from near-surface flight. Additionally, incoming position/velocity updates from another active player can cause a landed vessel to appear to "dance" in place slightly.
My friend was flying a space-plane in atmosphere when her ship seemed to disappear from my game. What happened?
When a vessel is flying in an atmosphere outside the range that KSP simulates physics for it is immediately removed from the game (because KSP assumes the ship is going to crash anyway). Loading a vessel repeatedly causes major performance issues, so KMP will only add an in-atmo vessel to your game if it is within normal physics range. The other player's vessel is still tracked by the server and will always reappear in your game once it lands, breaks atmo, or comes back into physics range. You can also still view the other player's location from the Map View.
When approaching or retreating from another active player, sometimes our relative velocity changes and/or our positions shift as the other vessel comes within about 2.5km range or so. Why does this happen?
When other vessels that are controlled by active players are outside of visible range, KMP uses a positioning technique based on orbital data which is efficient in terms of performance, but which does not offer adequate accuracy for two players to successfully rendezvous and dock. To handle this, KMP switches to a relative positioning mode when two players enter rendezvous/docking range that provides sufficient accuracy for docking, but which also accumulates small positioning errors relative to the normal orbital positioning technique. As a result, when switching between normal orbital positioning and docking-mode positioning, vessels may shift position & velocity in order to account for these accumulated errors.
Why does it look like I'm stuck in an Alfred Hitchcock movie sometimes when I initially approach another player in orbit?
These odd position shifts are caused by KMP switching from "best guess positioning" orbital mode to rendezvous-mode "negotiated relative positioning". The time needed for the actual negotiation process varies with altitude over the current dominant body--the process happens very quickly in LKO, for example, but can take nearly a minute in an outer-Jool orbit. If two players get badly out of sync due to lag while in docking range, the negotiation process may take place more than once.
I was trying to dock with another player but their position never seemed to settle down. What gives?
Docking-mode positioning requires all players involved to be in very tight synchronization. If the total amount of lag between you and another player exceeds a certain threshold, KMP is forced to use alternate & far less accurate positioning methods. If your connection to the server is poor (e.g. if your ping exceeds 500ms), you may not be able to rendezvous with other active players (though docking with a ship that isn't controlled by another player should work fine). If you can't seem to get into range and you know your connection to the server normally works well, try returning to the space center and back to your vessel (which will force KMP to re-synchronize with the server). Unoccupied vessels generally behave more like normal single-player KSP, so if you still can't get into range, consider having one player wait in another ship or at the Tracking Station.
Sometimes when I'm near another player in orbit I seem to lose significant amounts of thrust. What's causing that?
Some thrust can be lost during docking-mode positioning, especially if you have a laggy connection to the server or a slow-running game. Note that this only occurs when other active players are in the region. This is a side-effect of the techniques used to ensure that both players see the same situation on screen with the accuracy needed for successful rendezvous and docking.
I was rotating my vessel when I suddenly lost all rotational momentum. What happened?
This most commonly happens when your game is commanded by the server to fast-forward in time slightly, in order to keep you in sync with other players.
Why isn't KMP perfect?
Kerbal Space Program is well designed to provide a smooth single-player game experience, but it is not (yet?) well adapted to the demands of multiplayer gaming. The way the universe is shifted around the player, the differing methods needed to accurately calculate ship position/velocity/rotation in different in-game circumstances, the need to accurately account for lag in the network connection, the various complications that result from timewarp, and many other obstacles all add to the challenge of creating a viable multiplayer experience. While I will endeavour to improve KMP further, it is very likely that many of the issues that exist now will not be easily solved. The Known Issues list outlines the bugs I am currently aware of that will likely be fixed (eventually).
How can I find a server?
There's no server browser for now, though this may be an option eventually. For the moment the only way to find a server is to ask around (or start your own). If you don't know anyone who is willing to run a server, good places to ask around are Reddit and the KSP Forum.
How do I set up my own server?
See the README.txt file included with the KMP server download.
How performance-intensive is KMP? Will my machine that already barely runs KSP be able to keep up?
While KMP does all it can to lessen the load, including doing as much work as possible outside the main KSP thread in order to take advantage of multicore processors, the demands of receiving physics information from other players and keeping your local game in sync are significant. You can expect a substantial FPS drop and even severe physics lag in some circumstances while playing KMP. If your machine struggles to run KSP, KMP probably won't work well for you.
I've discovered a terrible bug! How do I report it?
You can report bugs on GitHub.
How does KMP work? I thought multiplayer was impossible!
It's... complicated. If you have a specific development-oriented question and have watched this video, then please feel free to ask me questions about KMP's innards on Reddit (TehGimp666) or Twitter (@TehGimp). In a nutshell, KMP relies on your local game to do most of the heavy-lifting when it comes to simulating the universe, and updates information like a vessel's position & velocity based on what is happening in other players' games using a variety of situation-dependent methods.
Why did you handle [problem X] with [dumb solution Y]?
Given that I don't have much prior experience with multiplayer game programming, it's hard to say whether any particular clumsy element of KMP can be blamed on working around KSP's various idiosyncracies or just my own stupidity.
Why can't I launch a vessel that includes mod parts? Is there any way around this?
Vessels that include non-stock parts are prevented from launching because any other players that don't have those mod parts installed wouldn't be able to see your vessel (on top of other potential errors)! However, the restriction on mod parts was built with the knowledge that a later version of KMP will probably allow servers to specify a list of mandatory mods so that players would have optional access to their most-prized non-stock parts. If the players on a server can agree on a set of mods that they will all have installed, it is currently possible to override the mod part restriction when necessary using steps available in the README.txt file included with the KMP server.
Can I use a mod that doesn't require using any non-stock parts?
Generally you can, but this is not "officially" supported and mods may interact with KMP in unexpected ways including (potentially) crashing, having unexpected effects on gameplay, causing errors for other players, or even causing damage to a server's "universe". Unless you're eager to experiment, ask other players for information about whether a particular mod works well or not.
Is the server "universe" simulated when there are no players connected?
No! A future update may make this an optional feature, but in this release the universe is "paused" whenever all players are disconnected.
Aren't you the guy that made the "Build Fly Dream" trailer?
How long did it take to develop KMP?
I began work on KMP shortly after releasing the (now defunct) G_LockFlight mod, so about 5-6 months all told, though not all of this time was spent actively working on the project. There were many multi-week breaks in that period where I just didn't have enough spare time to work on KMP--for example, I didn't touch the project at all during July as I was busy getting married at the time.
What's your next KSP project?
Assuming I'm not stuck spending all my available free time supporting KMP at least, I do have some other KSP-related projects in the works that unfortunately I'm not willing to talk about just yet! ;-)
Does KMP have anything to do with the L.O.G. multiplayer project?
No--Since I rarely browse the KSP forums, I only became aware of the L.O.G. project myself in late September at a point where KMP was nearly ready for initial release. I wish the L.O.G. developers the best of luck with their project, and hope that my work with KMP will (if anything) ease some of their own efforts to some degree. By the same token, I welcome any input from the L.O.G. team that might improve KMP's gameplay and would be happy to collaborate with them if the opportunity arises.
Last edited by TehGimp666; 17th January 2014 at 00:54.
Reason: 0.1.5.1 released
29th October 2013, 11:31
29th October 2013, 11:38
Excellent work. What is going on the last 2 weeks? First a full scale kerbin and now multiplayer. I do have a question though. How does this handle the launch pad? Can only one player use it at a time?
29th October 2013, 11:41
So now with this mod we can play real time multiplayer where I can see others crafts too and not only in map view? And I can see if my friend want to dock with my space station?
please make this clear for me. If this is true than this will be my number one mod
29th October 2013, 11:45
This is covered in the README, but there's a "safety bubble" about 40km in radius around the KSC where ships aren't added to the shared universe, so multiple people can launch simultaneously without issue.
Originally Posted by Zander
Last edited by TehGimp666; 29th October 2013 at 11:49.
Reason: This is the README, should probably be added to FAQ
29th October 2013, 11:46
Correct. It turns out building a space station with your buds is pretty fun! (go figure...)
Originally Posted by greg12
29th October 2013, 11:48
29th October 2013, 11:49
Junior Rocket Scientist
@TehGimp666 This looks nice and congrat on making it work. But in your long post you forgot the Licence and Source link (cf rules)
29th October 2013, 11:51
Added--thanks for catching that.
Originally Posted by sarbian
29th October 2013, 11:55
I think I need new underwear...