Jump to content

  • Log In with Google      Sign In   
  • Create Account

FREE SOFTWARE GIVEAWAY

We have 4 x Pro Licences (valued at $59 each) for 2d modular animation software Spriter to give away in this Thursday's GDNet Direct email newsletter.


Read more in this forum topic or make sure you're signed up (from the right-hand sidebar on the homepage) and read Thursday's newsletter to get in the running!


How could I possibly get a user’s save file to transfer to a sequel game?


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
7 replies to this topic

#1 DapperDave   Members   -  Reputation: 133

Like
0Likes
Like

Posted 31 January 2013 - 12:49 AM

It’s a tough question. 
One I have casually asked before, but now I must seriously consider how
this could possibly be done.

 



I don’t know much about coding save systems.  I figured mine out for my game about 7 months
ago.  Starting the game for the first
time creates a folder in windows Isolated Storage (with some gobbledegook
name).  Saving creates an xml file in
this folder with all the saved data.  The
player can then load this save file when resuming the game.  (I can include this code if necessary).



Simple enough although I don’t exactly have a clear grasp on how it
all works.

 


But back to the burning question before I lose your
attention.  I want the user to be able to
play a different game, a sequel, using their old save file (so they can keep
all the experience, equipment, etc. learned). 
The save files are quite large (500KB) as this is an RPG.




It might be doable on Windows.  I might be able to better control where the
save file is created and where it is loaded from with both games.



On the Xbox, it is an entirely different matter.  From what I’ve heard, there is simply no way
to do this.  I’m hoping that isn’t
true.  Maybe through some kind of online
storage?  Or perhaps a complex password
system?

 


Has anyone ever attempted such a thing before?



Sponsor:

#2 Ashaman73   Crossbones+   -  Reputation: 8001

Like
0Likes
Like

Posted 31 January 2013 - 01:00 AM

Has anyone ever attempted such a thing before?

No experiences here or with development on the xbox, just a possible fallback idea, if you can't share game data between games:

Can't you check certain archievements (don't know if this is possible) ? This way you can give additional options to players who have played through your first game by checking for certain archievements.

 

Edit: it seems that save game sharing should be possible (Mass Effect, Dragon Age).


Edited by Ashaman73, 31 January 2013 - 01:02 AM.


#3 Servant of the Lord   Crossbones+   -  Reputation: 21151

Like
3Likes
Like

Posted 31 January 2013 - 01:18 AM

It's easily doable on Windows. For XBox, why not when the game is beat, upload just the relevant data to your server, and generate a unique key for that save (example: a32bd45u), that the user can type into the sequel to download the imported save file from your server? I've never messed with XBox development before, so I don't know if Microsoft blocks network access for downloadable XBox games.

 

By 'relevant' data, I mean of all your save data, very very little of it actually needs to be transferred to the sequel. The data that needs to be transferred is stuff like: player name, experience, stats, skills, maybe the items, and perhaps a few dialog choices that are extremely significant. Things you don't need to transfer: What script triggers have already been activated, what bosses have already been defeated, every little dialog choice ever made, which quests have been completed or not.

 

I can fully see my save files within a game being 500kb. I can't at all see the amount of data needing to be transferred being more than 5kb.

 

Infact, if you skim it down low enough, instead of a32bd45u being a key, you could actually make it be the data itself.

 

a-z A-Z 0-1 = 62 options. Add two symbols and you get 64 options. That's 6 bits per character.

 

XXXX-XXXX-XXXX-XXXX = 96 bits? Maybe I did that wrong.

 

If your users have smartphones, you could also show a QR code to save them the trouble of remembering it.


It's perfectly fine to abbreviate my username to 'Servant' rather than copy+pasting it all the time.
All glory be to the Man at the right hand... On David's throne the King will reign, and the Government will rest upon His shoulders. All the earth will see the salvation of God.
Of Stranger Flames - [indie turn-based rpg set in a para-historical French colony] | Indie RPG development journal

[Fly with me on Twitter] [Google+] [My broken website]

[Need web hosting? I personally like A Small Orange]


#4 NightCreature83   Crossbones+   -  Reputation: 3034

Like
0Likes
Like

Posted 31 January 2013 - 05:55 AM

It’s a tough question. 
One I have casually asked before, but now I must seriously consider how
this could possibly be done.

 



I don’t know much about coding save systems.  I figured mine out for my game about 7 months
ago.  Starting the game for the first
time creates a folder in windows Isolated Storage (with some gobbledegook
name).  Saving creates an xml file in
this folder with all the saved data.  The
player can then load this save file when resuming the game.  (I can include this code if necessary).



Simple enough although I don’t exactly have a clear grasp on how it
all works.

 


But back to the burning question before I lose your
attention.  I want the user to be able to
play a different game, a sequel, using their old save file (so they can keep
all the experience, equipment, etc. learned). 
The save files are quite large (500KB) as this is an RPG.




It might be doable on Windows.  I might be able to better control where the
save file is created and where it is loaded from with both games.



On the Xbox, it is an entirely different matter.  From what I’ve heard, there is simply no way
to do this.  I’m hoping that isn’t
true.  Maybe through some kind of online
storage?  Or perhaps a complex password
system?

 


Has anyone ever attempted such a thing before?

Mass Effect 3 does this it scans and loads the save game from ME2. On the DiRT franchise this was used to  unlock the Overlord minion mirror toy, when it encounters an Overlord save in the players profile.

You can look at the players profile on XBOX quite easily with the XDK, there is all kinds of tools in their to interact with the system OS, this is the same for PS3. However you need to take care of the TCR/TRC's surrounding all this and might need to ask MS or Sony permission to do this on their platforms.

 

Loading the old save shouldn't be hard when you have access to the previous games codebase seeing that you can just lift the serialisation of the save file from that game. After you have it serialised you can extract the data your new game is interested in like what servant of the lord was talking about.


Worked on titles: CMR:DiRT2, DiRT 3, DiRT: Showdown, GRID 2, Mad Max

#5 proanim   Members   -  Reputation: 446

Like
0Likes
Like

Posted 31 January 2013 - 10:16 AM

To me this seems very simple. You save your game data to file like any other save game, with all needed variables in it. When you make a sequel you need to make sure all variables are loaded like in previous game and add possible aidditional variables that are needed by sequel.

 

Probably the critical thing here is not to forget any of the variables that might be needed by the game, and to save only game logic related stuff (like player name, stats, etc.).

 

I don't know how games on xbox 360 do this but consoles have access to internet so you can probably store the file in console hard drive or cloud if you are out of space.



#6 NightCreature83   Crossbones+   -  Reputation: 3034

Like
1Likes
Like

Posted 31 January 2013 - 10:49 AM

It's easily doable on Windows. For XBox, why not when the game is beat, upload just the relevant data to your server, and generate a unique key for that save (example: a32bd45u), that the user can type into the sequel to download the imported save file from your server? I've never messed with XBox development before, so I don't know if Microsoft blocks network access for downloadable XBox games.

If you have the XDK you can connect to an XLSP server which stores this stuff, this is how racing games do ghost laps of leaderboard data most of the time for example. There is a whole bunch of TCR's you have to comply with though if you want to release the game.
Also side note you have to manage your own XLSP server, this is not something MS will host for you.

Edited by NightCreature83, 31 January 2013 - 11:57 AM.

Worked on titles: CMR:DiRT2, DiRT 3, DiRT: Showdown, GRID 2, Mad Max

#7 DapperDave   Members   -  Reputation: 133

Like
0Likes
Like

Posted 01 February 2013 - 05:44 PM

Thanks for your help. But Microsoft does not give XNA devs the same access to player data that other games like Mass Effect does.  It is not within the XNA framework.  I've asked on other forums and it seems the only option is possibly a password system.

 

As for PC, it may be possible it I could simply specify the directory where the save file is stored.  But I'm having trouble finding the correct syntax for that.  I can save in IsolatedStorage or in SavedGames but I cannot find a way to specify the sub directory.



#8 e.s.   Members   -  Reputation: 110

Like
0Likes
Like

Posted 03 February 2013 - 02:48 PM

What is normally done is to utilize a translatable language to persist stored data in.

 

Most common, is XML with XSL.  The beauty of XML is that you can "Serialize" game state objects TO and FROM XML.

 

Rule Number 1:

Your Game's Save File Schema/Layout definition WILL change between different versions of games.  Why?  Because you will want it to, to add cool stuff.  And, because you will learn a lot.

 

So, pick a save file format, optimize it for your game.

As you are making your game, make save files.

Make new features that you want to persist in saved files..

Change your game's save file schema

Make a translation tool that will upgrade your saved file from version .98a to .98b before you even release the game.

 

In this way, you already know that you can patch your game with a save file fix, (there are a ton of exploits around getting through save file hashes, etc), and you may want to fix this in a version 1 patch anyway.

 

XML/XSL is my favorite choice.  You can digitally sign saved files, use hashes, (in ways that are unhackable), to reduce the risk of people hacking saved files.


Edited by e.s., 03 February 2013 - 02:50 PM.





Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS