Jump to content
  • Advertisement
Sign in to follow this  
eelke_folmer

implementing quick save / quick load

This topic is 4430 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Can anyone give me some info on how this is generally implemented? I can imagine that quick load requires one to cache the last save game so it can be immediately loaded. But quick saving how does that exactly work? Is it just a background saving or is the current game state data immediately flushed to disc/ memory without the user experiencing any delays? I noticed on consoles such as ps2 and xbox saving and loading is very slow (on ps 2 maybe because of the memory disc limitations). Is quick save / load generally implemented in games for these consoles? (I haven't seen it implemented in a game yet, nor have I played many, I know its not in GTA/ Prince of persia/ god of war).

Share this post


Link to post
Share on other sites
Advertisement
I was always under the impression that the 'quick' in quick save / quick load referred to the fact that you only have to press one key rather than going into a menu and picking a save slot. I've never noticed quick save / quick load being particularly faster to execute than a regular save / load, beyond the fact that a quick load tends to be recent so some of the data may already be cached through ordinary means.

Share this post


Link to post
Share on other sites
I do not believe quicksave is any different technically from a conventional save under most games, but you could always develop some sort of 'incremental' save system (like the difference engine in SVN).

Share this post


Link to post
Share on other sites
Hmmm I don't know see for example god of war if you die it suggests "restore last savepoint" which allows you to quickly play from there as opposed to when you select an arbitrary savegame which allows you to first quit the current game go back to the main menu (taking time) and then selecting a savegame.

I think quicksave/load are just associated to one specific save slot rather then to many and therefore easily accessible. But I could be wrong ofcourse.

Share this post


Link to post
Share on other sites
What the original poster is refering to asyncronous saves that are transparent from the game itself. Examples are, an auto-save system that saves in the background at certain designer created event spots, or a hot key that triggers an asynchronous save.

The process is pretty complex because you need to be sure that you are not going to cause any hiccups in the game. The details are different on every system but here is the general overview of what we had done.

1) Data would get put into serializers and packed into one large memory chunk.
2) Force the disk to start spinning to minimize seek times when the save is started.
3) Create a seperate thread to be used to save with
4) Manage that threads priority to something very low
5) Save out a small chunk of the the buffer and yield the thread
6) Repeat until the entire buffer has been save.

This is the basic algorithm but can get more complex when multiple io requests happen. If not managed the disk will jump between requests and cause seek's causing long save times or possibly stalls. Care is required to make sure that the disk access is queued up.

Share this post


Link to post
Share on other sites
Quote:
Original post by eelke_folmer
Hmmm I don't know see for example god of war if you die it suggests "restore last savepoint" which allows you to quickly play from there as opposed to when you select an arbitrary savegame which allows you to first quit the current game go back to the main menu (taking time) and then selecting a savegame.

I think quicksave/load are just associated to one specific save slot rather then to many and therefore easily accessible. But I could be wrong ofcourse.


In the case of god of war they are not actually doing a load from a memory stick. When the game character triggers and event all properties of the character are cached and important game events are also cached. When he dies the systems sends out a message saying to all objects to load their cached values and reinitialize with them.

This is quick because it doesn't cause any reloading of any assets just resetting states on actors and reinitializing the main character(not its assets though).

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!