Get it???? It’s March! Yeah anyway the Pre-Platform beta is complete. Are there still bugs? Sure, but for my own sanity I have shifted gears to the big banana in the room: Saving and loading on Xbox.
Xbox File IO
It was “sort of” working, unless anything went wrong, then your save file might get blown away or something else horrible could happen. So it was time to dive in.
Once again I opted to print my code, scribble all over it, make notes and get my head around what the Xbox code currently does (that sort of works) and what the new PC code does (that works great) and find the best path to align the two.
The main difference with the Xbox code is it is an actual asynchronous call to the cloud. So I need to spin and check the status of storage and spin during any calls, but a lot of the patterns are the same. I create the callbacks, attempt to execute, handle the results. But one difference is the user can suspend the game on Xbox and there needs to be some way handle that when a file operation is spinning.
There are other differences and things the Xbox needs that I won’t go into, suffice to say the two approaches have significant differences when the cleats hit the court, so to speak.
Breaking it down
Step 1) Get Global Settings loading. This is really 90% of the work because once this works, the rest is a very similar pattern. And it’s working already!
Step 2) Get Global Settings saving. This is 9% of the work, because most of the things around file operations was vetted in step 1. And it’s working already!
Step 3) Get it all loading and saving. This 1% and will only be time consuming in the fact that it’s game settings, player data, season mode slots and related UI triggering. Still in progress! Almost everything is working but as expected there’s some weirdness with the Season save slots.
Step 4) the final 10 % is integrating the code with the FILE I/O TESTER so I can simulate timeout errors, bad data, save failures, etc.
Yes, that’s over 100%, but that just means I have to give 110%!
Once it’s all behaving it’s time for the last of the big questions:
How to handle when someone suspends and resumes the game?