Posted 18 July 2012 - 04:48 PM
I'd say you are saving too much. You should probably save only inbetween levels, or at the max at designated save points. Then all you have to save is where you are, and maybe something to do with points and player's weapons, etc...
As far as using the read/write functions to save many more variables, that is my recommended approach, if you really have lots of things to save. Look up ds_map in the help file. They are basically glorified arrays, but they work slightly different. Also, they have these functions that can turn(and return) the whole thing into a single string, which can then be saved into a file. That is the read/write function set being referred to. Then upon loading, you could grab the string from the file, and "read" it back into the ds_map, and voila, you have all those variables back where you want them. This method isn't for saving where all the enemies and bullets are(though I guess you could loop and make it that way) rather it is for if you have lots of things to save, like an RPG where you have experience, level, HP, maxHP, Str, Mag, etc... and all of those stats for more than one person, and then you also have all of the "quest" indicators which I'm using to refer to where you store whether you have done things yet, like talked to somebody, opened said door, beat said boss, etc... which would probably be in its own ds_map.
My KBInput system is now on the marketplace here. It wraps up nice and tight GMStudio's input system into a few function calls making a user configurable input system that works the same regardless of what inputs the player has chosen including keyboard, mouse buttons, and gamepad/joysticks using DInput/XInput. The support forum topic for it is here.