Please include ICLOUD SAVED GAMES for the OSX and iPAD versiones!!
robbo007
Member Posts: 17
Please can you include iCloud saved games for the OSX and iPad versions. Its really pointless not having this feature for Mac users. You want to be able to continue your progress on either ipad or mac and not have to copy the saved games over each time manually. Also to be able to play on more than one MAC.
Thanks,
Rob
Thanks,
Rob
1
Comments
http://forum.baldursgate.com/discussion/30248/custom-portraits-for-ipad-yet-again#latest
http://forum.baldursgate.com/discussion/23123/another-ipad-xpcap-custom-portrait-thread#latest
http://forum.baldursgate.com/discussion/7461/here-s-how-to-use-custom-portraits
http://forum.baldursgate.com/discussion/15116/ipad-custom-portraits-without-shadow-keeper-developers-please-read-and-respond
Scenario:
iPadA Creates games, plays for a while Saves game called "Save1".
MacA Opens "Save1" and plays
iPadA Opens "Save1" and plays
MacA Saves "Save1"
iPadA Saves "Save1"
How would you resolve the two files? There is no easy way to merge them since they are basally alternate (virtual) realities.
Of course the problem could be further compounded in that the iCloud is not restricted to just two devices, I have 2 Mac's and an iPad for instance.
I don't think it's physically hard for them to save a game on the iCloud, it could probably be done for Mac and iPad in a few hours, it's how to handle situations like the above that is the main issue I reckon.
iPadA Creates game, plays for a while Saves game called "Save1".
MacA Opens "Save1" and during play removes one of the party or levels up.
iPadA Opens "Save1" and during play goes to a completely different part of the map, does not remove a party member and does not level up.
MacA Saves "Save1"
iPadA Saves "Save1" The MacA view of the world has now gone and we are back to iPadA's version!
The only way to ensure this doesn't happen it to lock the game, meaning that you wouldn't be able to play it on another device until it was unlocked.
How else could it work?
So, the equivalent of the above works Broken Sword? If so, them how does it resolve the conflicts?
The scenario where you level up and save the game is fine as long as the user remembers to follow the rules, if you don't then, data/progress could very easily be lost.
Interestingly, since you mention not being a programmer, a very similar problem occurs when editing source code held in a Source Database, if two programmers alter the same line of code at the same time, you get a conflict that has to be resolved manually. This can't be done with BG Save files because there is no linear correlation between save files.
When you save a game, you are effectively making a Snapshot of the world frozen in time at that point, there is no concept of incremental updates.
Having said all this, one way of doing it would be to have an Option to make the current game "Shared" somehow, but then you could really only have "reality" (e.g. save file) per game and the file would have to be locked until you quit the current game at which time it would save the file to iCloud and allow any device that has access to the "Shared Game" to open and in turn lock the file.
Problem would occur for instance, if you played on an iPad and then put it down leaving it open and paused. If you then tried to open the file on another device it would that the Game is open on the iPad and you would have to quit the game on the iPad before it would allow you to continue. This isn't too bad unless, you left the iPad at work or at home at your Aunty Jean's in which case you will have to go and get it before you would be able to continue with the game. Also, the iPad would have to an internet connection (tough luck if you have an WiFi only iPad and you don't have WiFi where you are!
It would also mean that you "had" to be connected to the internet in order to play a Shared Game, if you lost connection after opening a Shared Game, the you'd either lose your progress or would have to wait until you were connected again before the game could be accessed on any other device.
Conflict resolution. What happens if you modify a document on your iPhone, and modify the same document on your iPad at the same time? You somehow have to reconcile these changes. iCloud allows you to break your documents into chunks to prevent many merge conflicts from being a problem (because if you change chunk A on device 1, and chunk B on device 2, since chunk A and B are different you can just combine them). For cases when it truly is a problem, it allows you as a developer fine-grained control over how to handle the problem (and you can always ask the user what they would like to do).
http://www.techotopia.com/index.php/Preparing_an_iOS_7_App_to_use_iCloud_Storage
http://gamedevcoder.wordpress.com/2012/07/09/robust-icloud-implementation-for-games/
For instance:
iPad game, user has 1000 XP, goes to an unexplored region, kills a monster and gets 10 more XP.
Save's game.
Mac game, user has 1000 XP, goes to a different unexplored region, kills a different monster and gets 20 more XP.
Save's game.
Conflict detected -- Which one do you choose? The iPad world is a completely different world to the Mac world, it's not just a different version of the same world!
This is totally trivial example but shows the point, as soon as you modify a saved game file, you have a different version of the world completely, Single Player BG and BG-EE it doesn't hold one master copy on a server that clients log into it saves whole game states as separate alternate worlds.
Imagine a text document, called doc1.txt, that contains 3 lines
one
two
three
User A opens doc1.txt and changes it to:
oneUserA
two
three
User A saves
User B opens doc1.txt which UserA is still editing and changes it to:
oneUserB
two
three
User B saves
Conflict on line 1! Which one is correct? There is no way for the iCloud or any other piece of software can tell which version is right. It takes human intervention to resolve the conflict. There are tools that will show both versions and you choose which one is correct.
But this would be next to impossible in the case of BG because the data is binary. In the above XP example, the only message it could give would be to tell you that local 0xXXXX is different between the two files and let you choose which value you wanted, but not even a engineer that has worked on BG for years will be able to give a quick answer to that question!
This is making much more simplistic then it actually is, image if the two monster killed in the scenario above were part of a quest or sub-quest, in this case internal states get triggered which change the whole corse of the game, how could these be resolved?
The multi player version does basically what you want now, e.g. it keeps a central world updated and allows you to play from anywhere.
Mac
Load game that was saved at at mid day game time: 12.00
Play for one hour game time, current time is now 13:00.
Ipad
Load game that was saved at at mid day game time: 12.00
Play for two hour game time, current time is now 14:00.
What is the correct game time now?
There are ways to do this, but it is not a trivial task and may well be impossible in the exact way you would like.
The quickest/easiest way would be Lock the game as described above, other ways do exist, but the methods needed to implement them would mean changing the way the whole game works and you'd end up with something akin to the multi-player version anyway.
You have to remember this game came from a time when people thought 3.5 inch floppy disks were a pretty cool idea! The iCloud was a million miles away at that point and it was a struggle to make it work at that time due to hardware restrictions. This means that the underlying data structure were never designed to be shared among devices via a network.
http://gamedevcoder.wordpress.com/2012/07/09/robust-icloud-implementation-for-games/
This is just a wrapper to make it easier to handle the details of the iCloud and is just a bit of a time save for developers. You could easily write this code yourself and do it a different way.
The important part to read from that URL is:
"The library notifies the app whenever it has successfully read the file or whenever conflict has been detected. It’s then up to the app to resolve the conflicts and merge remote with local save game."
In a real-time world, like BG, this is very difficult and probably impossible!
For instance, you can't resolve being in two places at the same time in a real time, non linear world!
If you *could* resolve conflicts in this way, it would be the same as creating a time travel paradox in the real world, e.g. you could go back and change something that affect your present and you could disappear in a paradox!
For instance,
Open game on DeviceA
13.00 GT Have a battle where a party member saves your life with a healing spell.
Continue Playing.
Open game on DeviceB
12:30 GT Have a different battle where that party member gets killed.
Merge - you are dead!
"Handoff currently works with the following Apple apps: Mail, Safari, Pages, Numbers, Keynote, Maps, Messages, Reminders, Calendar, and Contacts. There's also a Handoff API for developers, which will likely see Handoff capabilities added to a range of different apps. "
Maybe they can use the API's to include this to solve the save game issue