Jump to content

KISS - Kerbal Improved Save System - Development Thread


Aerospike

Recommended Posts

What is KISS?

Kerbal Improved Save System (KISS) is a small plugin that provides an improved "Save game as..." mechanic while in flight.

It is intended as a replacement for the stock "Quicksave as..." dialog and provides a filename selector for existing quicksaves similar to the stock MOD+F9 alternate quickload "Choose an SFS file to load" dialog.
In addition the default suggestion for the quicksave is the current date and time plus the name of the active vessel ("YYYYMMDD_hhmmss_{activeVessel}") instead of using an automatically increasing number to differentiate quicksaves.

My original goal was to somehow replace the stock dialog completely, but I couldn't figure out how. So instead I settled for the alternate route of using a custom keybinding and leaving the stock "Quicksave as..." dialog as it is.

KISS is not intended to be an automated quicksave system. Such plugins already exist.

Why?

When playing for some time I usually come to a point where I loose a mission due to an error and having been too lazy to make quicksaves. After such an event I usually try to avoid this scenario from happening again by creating quicksaves of the next mission before every important event/maneuver so that I can backtrace to (almost) any point in the mission and try to improve my maneuvers.
However after a few quicksaves simply numbering them isn't enough because it becomes hard to remember which one is which. Giving them names is an option, but once you reload a previous moment and want to overwrite the later, no longer useful quicksaves with new ones, you now have to remember the names of the quicksaves in order to overwrite them, AND you have to type them in manually.

Screenshots

Comparison of KISS and the stock "Quicksave as..." dialog:

Download

You can grab the latest build on GitHub here.

Instructions

Press F8 to bring up the KISS dialog (will be possible to configure in the future).

You can:

  • store a quicksave with the provided default filename.
  • store a quicksave with any name you want.
  • get the name of a previous quicksave from the list by clicking it once. Now you can overwrite that quicksave by clicking "Save", or modify the filename to store a new quicksave with a similar name.
  • directly overwrite a previous quicksave by double clicking it.
  • reload the default filename suggestion by clicking the "Now + shipname" Button.

Attention: whenever you use an existing filename, that quicksave will be overwritten!
Note: the standard "persistent" savegame is excluded from the list. As I understand it, loading that makes little sense and it gets overwritten anyway every time you load a quicksave.

Planned updates ("soon" :tm: ):

  • add confirmation dialog before overwriting existing files.
  • make keyboard shortcut configurable.
  • let players choose between system time and ingame time for the timestamp.
  • make KISS available in the space center.

Possible future extensions:

  • provide a similar functionality for saving crafts in the editor (VAB/SPH), since the default save mechanic there annoys me similarly to the stock quicksave dialog. :wink:

License

KISS is licensed under the MIT License

Acknowledgements

While I do have a background in software engineering, this is

  • My first Mod for any game, not just KSP
  • My first C# project (first time using MonoDevelop)
  • My first time using git/GitHub
  • My first Unity related project (only did a beginner tutorial once sometime back when Unity 3 was the current version)

So without the following people, I could not have done this (small) project!

@cybutek- for his plugin tutorial videos that told me the basics of how and where to start.
@TaranisElsu - for his example plugin projects that helped me a lot.
@magico13 - for his "Dated QuickSaves" modlet that provided inspiration.
@Nereid -  for his S.A.V.E automatic backup system that also helped me along the way.
and last but certainly not least
@Z-Key Aerospace / @Bodrick - for the "[x] Science!" mod that teached me how to create a dynamic list of GUI elements.

As well as everybody else in the great KSP modding community!


Feedback

I would really appreciate any feedback about this little plugin!

Edited by Aerospike
added links to acknoledged people's profiles
Link to comment
Share on other sites

I just put together a quick "pre-release" of KISS for KSP 1.1. It should work fine with the 1.1 release of KSP, but it was actually built using one of the pre-release versions and I want to be cautious until I can re-compile it with the 1.1 release.

You can grab it from GitHub here.

It still works with KSP 1.0.5, but for the reworked GUI I had to remove some optimization for the list of quicksaves. So for KSP 1.0.5 I still recommend using KISS 1.0.0, at least if you have a very large number of quicksaves.
(KISS 1.0.0 only generates list items (quicksaves) that are currently visible in the scrollview, but that causes wild flickering with the new GUI whenever the scrollbar reaches the end of the scrollrange, so I had to remove that for now and KISS 1.1.0 always lists every quicksave, including those that are currently outside of the scrollview.)

Link to comment
Share on other sites

Hm, has something regarding quicksaves been changed in 1.1?

In KSP 1.1 whenever I load a quicksave made with KISS instead of the stock option, I end up at the Space Center instead of controlling the vessel that was active at the time of the quicksave. The configuration of everything (vessels etc) seems to get loaded just fine, only the the scene is not switched to the flight scene of the proper vessel.
In KSP 1.0.5 KISS quicksaves do not behave any different upon loading compared to "normal" quicksaves.

I use the

GamePersistence.SaveGame(string saveFileName, string saveFolder, SaveMode saveMode)

method to store the current state into a file.
I have since discovered two overloads/alternate versions of this method:

SaveGame(Game game, string saveFileName, string saveFolder, SaveMode saveMode)
SaveGame(GameBackup game, string saveFileName, string saveFolder, SaveMode saveMode)

At least the one with the Game parameter has been around for some time, it is listed in the KSP API doc by anatid but has no real documentation of any sort (http://anatid.github.io/XML-Documentation-for-the-KSP-API/index.html)

I've seen the other one with the GameBackup parameter for the first time today in the new API doc by tomf (http://forum.kerbalspaceprogram.com/index.php?/topic/137476-new-ksp-api-documentation/)

Has anybody any insight into (quick)saving in KSP and can help me to resolve this issue?

Link to comment
Share on other sites

  • 4 months later...
Guest
This topic is now closed to further replies.
×
×
  • Create New...