Thank you all for your tips
anarchist: Performance with update of all bases is not a problem. You're not doing it all the time. For instance mines on planet surface. All you need to do is to save mine level (how much per hour), how many resources is in store and at what time it was saved. That's it. You don't have to update it until you will need to buy something or check store or whatever. So if you need this data then you'll just do this (resources in store) + (((current time - (at what time it was saved)) * (how much per hour) = and now you know everything you need, save new data and that's it.
I've tried new version of WME 1.10 and it's really fast saving
That's good but one thing still worries me. As Mnemonic said there is issue with global variables. I've just did really really fast assumption how big and how many arrays I will need. I want them to be global because I can have a problem with local variables. So with global it's not looking good. WME can save game very quickly but I can't quit the game because windows are drawing very slowly. I can't load the game. For me it's a critical show stopper. I don't know what to do. Here is the code:
var i;
global ground_base, orbital_base, fleet, planet_res, enemy_base, enemy_fleet;
////////////////////////////////////////////////////////////////////////////////
on "LeftClick"
{
var startTime = Game.WindowsTime;
for (i = 0; i < 10500; i = i + 1)
{
ground_base[i] = i;
}
for (i = 0; i < 6000; i = i + 1)
{
orbital_base[i] = i;
}
for (i = 0; i < 2500; i = i + 1)
{
fleet[i] = i;
}
for (i = 0; i < 18000; i = i + 1)
{
planet_res[i] = i;
}
for (i = 0; i < 10500; i = i + 1)
{
enemy_base[i] = i;
}
for (i = 0; i < 1500; i = i + 1)
{
enemy_fleet[i] = i;
}
Game.LOG(Game.WindowsTime - startTime);
startTime = Game.WindowsTime;
Game.SaveGame(0, "blah");
Game.LOG(Game.WindowsTime - startTime);
}