Jump to content

[0.14-0.16] Kessler: asynchronous, shared-world multiplayer (+ save editor)


Recommended Posts

After much testing on IRC and other forums, I am pleased to announce KESSLER, a client-server, shared-world system for Kerbal Space Program. Each server hosts a shared world; flights you launch will be uploaded to the server, and flights on the server will be downloaded by anyone who connects, populating your save file with orbits from other players around the world.

Here\'s what my save file looked like before:

D61FFFD13E4F21EAC9293E02F7BF80CAD1A0F6DB[/ur]

And here\'s what it looked like after running a test server for a few days, with other people in the IRC connecting to it:

1E3E40AEC7BE77A1E425F158F9178E1364738763

As a bonus, it also comes with a simple save file editor, which lets you edit object properties, rename objects, delete objects, teleport objects to or between orbits, make detached stages controllable again even if they don\'t have a MechJeb attached, or just arrange all your satellites into pleasing patterns like this:

3E72BBD2EABB6F537369CC26575C5FD054D82E98

Here\'s the FAQ, based on the questions people asked about it in IRC...

If you want to host a game, just install it, edit kessler/server_config.txt to choose a port and password, and then run [tt]kessler_server.bat[/tt]. Once started it shouldn\'t need any further care.

(Linux/OSX users: [tt]kessler_server.sh[/tt]. You can also specify the location of the config file on the command line, so you can have everything in one directory and just do: [tt]java -cp . -jar server.jar server_config.txt[/tt]. Make sure to edit the save path in server_config.txt appropriately if you do this!)

If you want to join a game, install it, edit kessler/client_config.txt for the host, port, and password (if any) of the server. Then just run [tt]kessler_client.bat[/tt] (while at the KSC screen or while KSP isn\'t running; do not run it while in flight or at the tracking centre) to sync with the server. (Linux/OSX: [tt]kessler_client.sh[/tt])

If you want to use the save editor, run [tt]kessler_editor.bat[/tt] (Linux/OSX: [tt]kessler_editor.sh[/tt]). Then type [tt]help[/tt] for a list of commands. Don\'t forget to [tt]save[/tt] when you\'re done making changes!

SynMonger is hosting a test server - host sashimi.synmonger.com, port 8988, no password.

dvc is also hosting a test server - host dvc.name, port 8988, no password.

I am also hosting a test server - host orias.homeip.net, port 8988, password kesslertest

Link to comment
Share on other sites

Doesn\'t work :(

Do I need to install it somewhere? It\'s just randomly installed in a not KSP folder.

However, it looks very awesome :D.

From the FAQ: 'To install, just download the zip and unpack it to your KSP directory'. It assumes it\'s in the same dir as KSP (that is, [tt]kessler_client.bat[/tt] is in the same dir as [tt]KSP.exe[/tt]) so that it knows where to find your save file.

Link to comment
Share on other sites

From the FAQ: 'To install, just download the zip and unpack it to your KSP directory'. It assumes it\'s in the same dir as KSP (that is, [tt]kessler_client.bat[/tt] is in the same dir as [tt]KSP.exe[/tt]) so that it knows where to find your save file.

Thanks, I think it works. I read over it. - Comfirmed: Yes it works.

But... If it\'s only one way traffic, I just get your save file? Or does it also send my new ships to the server?

edit: ohhh god, what a lagg :(.

Link to comment
Share on other sites

Thanks, I think it works. I read over it. - Comfirmed: Yes it works.

But... If it\'s only one way traffic, I just get your save file? Or does it also send my new ships to the server?

It also sends your ships to the server. Most of the stuff you\'re getting from the server isn\'t mine; it\'s stuff other people uploaded to the test server. As best as it can it makes sure everyone has everyone else\'s stuff.

edit: ohhh god, what a lagg :(.

Kessler introduces a lot of objects on a crowded server and can result in severe lag in the tracking centre and orbital map. It\'s usually not an issue once you switch to actual control, but the actual process of switching can take a while.

You can drastically improve performance by telling Kessler to only accept controllable ships, not debris:

- open [tt]kessler/client_config.txt[/tt]

- find the line [tt]filter = nan,ghost,launchpad[/tt]

- change it to [tt]filter = nan,ghost,launchpad,debris[/tt]

- save

Note that this will only keep it from downloading new debris from the server, it won\'t delete debris already in your save file - so if you\'ve already run Kessler and had it download 200 pieces of debris, you might want to restore the backup of your save it made as well.

Link to comment
Share on other sites

Tried to get this to run on my mac using terminal, but it won\'t work. Should I be launching client.jar or something else?

You\'re launching the right JAR, yes. You need some additional arguments, though - take a look at kessler_client.bat to see how it\'s invoked in windows.

I\'m not sure what a KSP install looks like on OSX - I only have linux and windows to test on - but if it has the same structure as a windows install, the following (in your KSP dir) should work, assuming you\'ve unpacked Kessler into your KSP directory:

java -cp kessler -jar kessler/client.jar put saves/default/persistent.sfs
java -cp kessler -jar kessler/client.jar get saves/default/persistent.sfs

If they\'re not equivalent I\'ll write up a shell script to do the heavy lifting and include that in the next release.

Link to comment
Share on other sites

It doesn\'t work, it just throws up this.

bash-3.2$ java -cp kessler kessler/client.jar get saves/default/persistent.sfs
Exception in thread 'main' java.lang.NoClassDefFoundError: kessler/client/jar
Caused by: java.lang.ClassNotFoundException: kessler.client.jar
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)

Link to comment
Share on other sites

Awesome work. This will be great for the roleplayers. The can set up their own server and see the works of other nations. :)

Question: KSP has a 'max objexts' that defaults to 250. Will that still work with this? Can i use this to scale down if the lag gets too much?

Love ya work. 8)

Link to comment
Share on other sites

How many ships and debris are on the test server? I\'m wondering what the game accepts as acceptable limits.

As of this morning (ie, before releasing it here) it had 260-odd objects (debris and ships).

Right now it has 432 - 355 debris, 77 ships. The save file is 1.7MB.

I should probably make 'reject debris' the default in the next release; this is ruinous for tracking centre performance.

You beat me to it i WAS working on something simler

Sorry! While you\'re here, though, is there anything you think this should have that I\'ve forgotten to add?

Well done (I personally didn\'t think it could be done this quickly).

8) Actually, I started work on this as soon as 14x1 was released and had a working prototype by Feb 29th. The version I\'m releasing now has been finished for a week; I\'ve just had it running while the IRC users pound on it to make sure there were no lingering serious bugs.

Link to comment
Share on other sites

Impressive work.

May I ask, what server is it?

Or how is the server managing this content?

An every indication has been suggested, that KSP 0.14.2 will break compatability with the present Persistance saves. Apparently adding more values.

So you may have to release a newer version soon.

Link to comment
Share on other sites

Question: KSP has a 'max objexts' that defaults to 250. Will that still work with this? Can i use this to scale down if the lag gets too much?

It will work. However, the 'max persistent debris' setting is applied when the game is saved, not when it\'s loaded - so if you turn down the setting, you won\'t see debris disappear until you save and then reload the game. Fortunately, this is as easy as going to the tracking centre and then back to the main KSC screen.

In any case it won\'t affect controllable flights, though, only debris.

Impressive work.

May I ask, what server is it?

Or how is the server managing this content?

It\'s a custom server - the source code is with the rest (in the [tt]kesslerd[/tt] directory). The server content is saved as a KSP save file; there are better ways to do it, but I wanted to keep the ability to edit the server\'s world using the save editor (or a text editor) if necessary.

An every indication has been suggested, that KSP 0.14.2 will break compatability with the present Persistance saves. Apparently adding more values.

So you may have to release a newer version soon.

Yeah, I actually debated waiting until 14.2 hit and seeing what changes need to be made. I\'m hoping that it will just add new fields and possibly change the domain of existing ones, in which case the server should keep working with no need for updates - you\'ll just need to delete the old save and start over.

If it completely reworks the save format, or deletes/renames the fields the server uses for things like duplicate detection, then I\'ll need to update the SFS parser at least, and possibly other things like the merge logic.

Link to comment
Share on other sites

Excellent work. Btw, you forgot to add '-jar' in your linux/osx command for the client.jar. I believe it should look something like: java -cp kessler -jar kessler/client.jar etc.

Fixed, thanks.

Still can\'t get it to work on my mac. To VMWare Fusion!

Any chance you could pop onto IRC at some point? I\'d really like this to work out of the box on OSX, if possible, but it\'s hard when I don\'t have an OSX machine to test on.

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