Jump to content

Make file exchange easier and give advantage to paid users


Recommended Posts

Users of KSP should not have to deal with all this file tree and archives madness. At least it should be easy to share a crafts and savefiles.

Here's just one example of what it takes to make a challenge with a game save:

How to install the custom racetracks:

1.- Download the tracks, you'll receive 3 folders in a compressed file.

2.- Unpack the zip file using winzip or winrar.

3.- Copy or cut the 3 folders and paste them into your KSP saves folder. If you don't know where to find your saves folder just check this handy link from the KSP wiki: http://wiki.kerbalspaceprogram.com/wiki/Root_directory

4.- Open KSP and you'll find the 3 tracks in the "continue saved game" menu.

5.- Copying and moving files on your KSP folder can mess up with your previous saves, remember to make a backup of your saves folder before any change. Provided files are clean of virus and checked for consistency with 0.25. I take no responsibility over saved games FUBAR.

Aren't you sick of those archives to download and extract? Cleaning up the download folder? Having 100 formats of archives and 100 flavours of dir structures?

I think, for the sanity and to reduce this friction of community interaction, it's reasonable to have a file sharing service to host .craft as text or g/x-zipped (xzip compresses savefile by the factor of 20). Sharing or getting a craft should be a button among save/load. For simplicity, to not invent a whole new UI, it would be just enough to generate a 10-digit alphanumeric hash (like on youtube, aBcD0123eFg, maybe with a prefix like a hashtag: #kspcrft123bnXtD, #kspsv123bnXtD), and copy it to system clipboard, and be able to paste it from a clipboard.

I'm aware that easy reading files from internet may lead someone to find and exploit a buffer overflow error. But that's possible even now, with a usual KSP: there's no safety check of downloaded files either, and actually user-created (always different) archives may contain other malicious payload.

See the next post for UI sketches.

Edited by Kulebron
Link to comment
Share on other sites

UI sample:

load dialog checked that clipboard is a valid hash and put it in the text field, ready to be downloaded. (Users should be able to write the hash manually, in case someone wrote it on a paper. Why not?)

loaddialog.png

load dialog before unlocking

unlock.png

sharing dialog:

share.png

toolbar: share button slides out when you hover the save button. Leads to "unlock file sharing" dialog if it's not unlocked.

toolbar.png

...and this should apply to subassemblies as well. No need to make the creator assemble them as craft and then the receiver re-save as subassembly.

And by the way, this can be done just for paid users.

Website UI has this button:

web-ui.png

A pair of hashes is generated on server side, one is given here. When user unlocks sharing in his copy, the other hash is sent to his client, and it will be used as a key. (A asymmetric encryption may also be used, to prevent one key being used by many users.)

Again, this hash also has a prefix to allow easy recognition from clipboard.

Enter the game, there's a menu in the very first screen: [ connect to craft sharing ] and there's a dialog:

[ enter the code ] [ ok ] [ cancel ]

(when the dialog loads, you may want to check clipboard contents and paste it already for the user, letting him just click "ok")

Then, user saves the crafts to the main site storage. Of course, there should be a limit to prevent spamming, or a paid file share extension if someone pastes 10000 files.

Then it becomes a good way to filter out those who play cracked copies: "why don't you paste a hash, man?"

Edited by Kulebron
Link to comment
Share on other sites

I'm thinking in Javascript logic, but if I understand correctly, UI is written with event-driven frameworks anyway. So here's the loading logit that I'd implement:

Selection_005.png

Selection_007.png

Selection_008.png

Why do I suggest a text input? For instance, in Linux (Ubuntu + MATE DE) there are two conflicting clipboards, so I wouldn't rely on clipboard completely.

Edited by Kulebron
Link to comment
Share on other sites

I'll have to mention it because I'm a definite fan of the project. DarkMultiPlayer has a pretty neat system with a GUI for uploading your creations to a server and downloading others to the local "darkmultiplayer" save. Perhaps something to study as far as a user experience angle goes. Clicky button, getty ship.

Right now only the dev branch has 0.25 compatibility. It's pretty stable and an updater program is linked to in the project's forum page. However it does update often so you might have difficulty with connecting to servers if they or your client don't keep updated. You can make the updater pull the current development branch by renaming it to DMPUpdater-development.exe, and the same updater works for client or server (via mono if necessary).

Edited by technicalfool
Link to comment
Share on other sites

Watched the videos, looks impressive. Unfortunately, there's no video of file exchange there, so I'll try this myself. And it would be great to have at least file exchange in the standard version, because this will bring this collaborative functionality to much wider userbase.

Link to comment
Share on other sites

I am not opposed to this idea - as long as there is no visible share button in the game. A share button should only be visible once you actually play multiplayer AND have it enabled through the options. I'm sick of all those single player games flashing share buttons and clickbaiting facebook likes.

Link to comment
Share on other sites

Where would the files be hosted? I thought Squad decommissioned SpacePort to get away from hosting that sort of content.

It's an interesting idea, but I don't know if they want to get back into hosting stuff.

I guess they decided to not maintain a feature-rich website, which is really hard. I guess first of all they decomissioned because websites require a lot of maintenance: server side has bugs, client side sometimes has HTML/CSS formatting issues.

File storage with pure API and no web UI is simpler. It has just two addresses and storage software like Redis or even memcached. They only need to check a security key on upload and user quota.

Maintaining this is a lot simpler, and web UI with a catalog can be created by third-party developers.

Link to comment
Share on other sites

I am not opposed to this idea - as long as there is no visible share button in the game. A share button should only be visible once you actually play multiplayer AND have it enabled through the options. I'm sick of all those single player games flashing share buttons and clickbaiting facebook likes.

I agree that this seems a bit like a multiplayer placeholder and crutch. And I don't like social buttons either.

But even when you have multiplayer, you sometimes need to just share a rocket/plane with someone else, and not in real time. I'm offline, that guy is offline, and we don't know when we can probably meet online. Then sending him a file is the only way, and I just propose to reduce workload and still keep simple the infastructure.

If you have ideas how to make it without looking like social networks, please, post them here.

Link to comment
Share on other sites

Copy file, email it? Or make a hardlink to dropbox from your save data folder if you wish to streamline parts with a public. You know you are behind an OS for a reason - use that explorer (and if you dislike: add a different window manager).

Link to comment
Share on other sites

Where would the files be hosted? I thought Squad decommissioned SpacePort to get away from hosting that sort of content.

It's an interesting idea, but I don't know if they want to get back into hosting stuff.

DMP hosts the craft files on the server, and you don't have to rely on the public server list. You can run your own server for you and a few friends if you like. Either over a LAN or, if you know how to port forward and set up a dynamic DNS, or you have a box with a real IP address somewhere, to the wider world.

Sharing itself pretty much is point and click. Select a "craft" button to open a menu full of usernames. Select your username if you want to access the upload menu, delete your ships from the server or download them. Select any other username to see what they've shared. The whole DMP interface goes away if you're playing in single-player, and it can be minimized down to a small toolbar of buttons in multiplayer.

It has a problem with clicks going through to whatever's behind GUI windows right now, but asides that it's a pretty good craft and subassembly-sharing interface. Being able to buzz the tower in a five-fighter delta formation is just an added bonus.

I have some video footage that should be useful. When it's not silly o'clock here, I'll see if I can do a voiceover with my awful microphone and try to explain stuff.

Link to comment
Share on other sites

I guess they decided to not maintain a feature-rich website, which is really hard. I guess first of all they decomissioned because websites require a lot of maintenance: server side has bugs, client side sometimes has HTML/CSS formatting issues.

File storage with pure API and no web UI is simpler. It has just two addresses and storage software like Redis or even memcached. They only need to check a security key on upload and user quota.

Maintaining this is a lot simpler, and web UI with a catalog can be created by third-party developers.

couldnt they use something like bittorrent sync API no or limited demand for file hosting which could be covered in part by mod sites in return for better cheaper delivery for all. Plus if a craft or mod is popular you get lots of hosts to service demand. Mod updates could be spread quickly with little server spike.

sure have client embedded in ksp and opt-in for players. Still given the small size of most file the client could have very aggressive bandwidth limit and still be very effective.

Link to comment
Share on other sites

Copy file, email it? Or make a hardlink to dropbox from your save data folder if you wish to streamline parts with a public. You know you are behind an OS for a reason - use that explorer (and if you dislike: add a different window manager).

This is simple and is doable when you need it only a couple of times. But even this way you can make mistakes, and mostly you spend time walking through the folders. I can assure you that I use PCs for 24 years, and still I can screw things up. Unpack everything in a folder with many files - then delete those one by one (and they have original timestamps, can't order by time), or drag a folder into another one accidentally, even without noticing. Even in command line you can do something wrong.

If you need to share spacecraft, and this is done many-many times, you really don't want to do this chore over and over. And if you need to share a savefile, you don't want to have to write instructions like this:

How to install the custom racetracks:

1.- Download the tracks, you'll receive 3 folders in a compressed file.

2.- Unpack the zip file using winzip or winrar.

3.- Copy or cut the 3 folders and paste them into your KSP saves folder. If you don't know where to find your saves folder just check this handy link from the KSP wiki: http://wiki.kerbalspaceprogram.com/wiki/Root_directory

4.- Open KSP and you'll find the 3 tracks in the "continue saved game" menu.

5.- Copying and moving files on your KSP folder can mess up with your previous saves, remember to make a backup of your saves folder before any change. Provided files are clean of virus and checked for consistency with 0.25. I take no responsibility over saved games FUBAR.

Someone will surely miss some step and put files in the wrong place. If there's a hash exchange, it would be like this:

1. Copy the hash: #ksp25sv1234567890 to clipboard

2. open KSP, go to load game

3. click download

Sure, one can do without it. But if it's the same, why make user repeat it and make mistakes? It's like automatic and activator washing machines. Surely, I could wash things in activator machine, coming every 15 minutes to operate it, but why do this if there are automatic washers?

Edited by Kulebron
Link to comment
Share on other sites

couldnt they use something like bittorrent sync API no or limited demand for file hosting which could be covered in part by mod sites in return for better cheaper delivery for all. Plus if a craft or mod is popular you get lots of hosts to service demand. Mod updates could be spread quickly with little server spike.

sure have client embedded in ksp and opt-in for players. Still given the small size of most file the client could have very aggressive bandwidth limit and still be very effective.

Yes, this is also an option, I thought of it too. Just don't know if there are embeddable torrent clients available to be integrated and limited in use (you don't want to let someone hack it and make everyone share a huge video file :)).

[added] There's one more problem with torrents: how many files should each user seed? Example: there are 100 000 users and averagely 5 shared files per user. How should they be distributed between users so that every time you want any file, there's at least one seeder?

I see, if there are 500K files shared, and the daily minimum is 1K users online, then veryone should keep at least 500 files to make every file available all the time.

Edited by Kulebron
Link to comment
Share on other sites

Thansk for the vid! Looks great!

I made another sketch, then thought it's not worth doing, but will post this anyway. The idea was to keep a bigger library of stock spacecrafts and improving them. If you keep versions separate, this might work. But I think the official library means assuming more responsibility and demands, and more effort, with not much gain. So this is a side product just to show:

loaddialog2.png

Link to comment
Share on other sites

This is simple and is doable when you need it only a couple of times. But even this way you can make mistakes, and mostly you spend time walking through the folders. I can assure you that I use PCs for 24 years, and still I can screw things up. Unpack everything in a folder with many files - then delete those one by one (and they have original timestamps, can't order by time), or drag a folder into another one accidentally, even without noticing. Even in command line you can do something wrong.

Then suggest proper naming so integration of other tools into KSP is better. KSP shouldn't try to do everything itself: other tools are better for file management, and you should use those. Mistakes can also happen when you have an auto-share button: forgetting to add the science module, accidentally misalligning rockets etc etc.

The intstructions are also simple:

-download this file, extract and put it in your save files folder

Tadaa nothing weird, and you KNOW what happens, instead of seeing that suddenly when sharing KSP also stores it in some cloud that the chinese government also can open, transparency is way more important than ease of access.

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