Jump to content


Photo

An explanation to why there was no Save/Load function in Mental Omega


  • This topic is locked This topic is locked
78 replies to this topic

#1 XoGamer

XoGamer

    Strategically Losing

  • Members
  • 122 posts
  • Location:Underground
  •  i won already

Posted 12 December 2016 - 04:53 PM

Is S/L going to be a feature in 3.3 or is it going to be postponed for later?


"I cast a deadly shadow." - Apocalypse


#2 AlexB

AlexB
  • Members
  • 143 posts
  • Location:Germany
  • Projects:Ares, Arda, ...
  •  Your ad here!

Posted 12 December 2016 - 10:12 PM

TL; DR: No.

I disabled the savegame buttons (Load Game, Save Game, and Delete Game) because the new Ares features aren't yet put into the savegame files. Even if you could save the game, the savegame files would be missing this extended data, and it would crash the game when loading them again. Also, because the data is missing, the files would never actually work. This is why the buttons are disabled: it fixes a symptom.

The problem that the new Ares data is not put into the savegames is old. It predates me joining the Ares team back in 2010. Of course, as I'm the only one working on it now, it definitely became my responsibility and this can't be an excuse. I constantly worked on updating the code over the years. Several features in Ares were designed in a way that was impossible to save. This was a continued effort that started after Ares 0.2 in 2012*.

Savegames are still not working with Ares 0.C, which is the current release. For reasons mentioned here, I didn't officialy work on its successor.

There is also a "political" reason for the slow progress. If I had fixed savegames earlier, say, two years ago, then the community support to test new features would most likely have dropped to zero, because new Ares versions would not be able to read savegames from older versions. I'm sure, players wouldn't like to lose their progress, and modders wouldn't put this burden onto their fans. Thus, Ares would have become its own handbrake in regards to testing and thus development speed. I really hated such an artificial slowdown, but I couldn't think of anything else to mitigate the problem.

 
* See the Migration Guide on Ares' Manual from 0.3 onwards. Almost all changes to tags stem from redesigning and reworking older features. And that's only the changes that would affect modders and previously released mods. The vast majority of changes are fully backwards compatible or are to Ares' internals, and they all are not mentioned in the manual. The internal redesign is still an ongoing process.

#3 Solais

Solais

    Conspiracy Theorist

  • Members
  • 1,648 posts

Posted 12 December 2016 - 10:27 PM

Hmm, I'm no coder here, far from it, but at the team I work for, they recently developed a sort of save system all designed to combat a similar problem. I'm not sure if this is possible, considering that there's no access to the RA2 sources, but the way I could envision a save system that could work around this problem if it was just a lightweight "save", that's not actually a save per say, but a sort of a "document" of all the objects within the level, their positions and current health. And so when this save is loaded, it's actually not a loaded save at all; it's loading the level yet again, and then reading the document for the changes in position, map coverage, trigger status, etc. And every feature that doesn't really need saving would not be saved at all. Of course, this is just how I understand the system works, and really can't help with any sort of implementation. (Also can't say if it would be a system that wouldn't need tremendous amount of work and testing to work properly.)



#4 Graion Dilach

Graion Dilach

    Supérior Caliburwielder

  • Project Team
  • 2,187 posts
  • Location:Iszkaszentgyörgy, Hungary
  • Projects:Infinty Engine modding, OpenHV, Attacque Supérior (sometimes)
  •  That guy you keep hearing the stories about.

Posted 12 December 2016 - 10:44 PM

What you describe is a map snapshot. That exists already, but that's the easy aspect, because those data are stored in the map format. Keep in mind the data you can't store in the map though, you have to maintain what the units are doing, their ROF status, ammo status, AttachEffect status, temporal status if any, powerdown effect, list goes on.

It's not just Ares which suffers from this, OpenRA also doesn't have actual visible process on savegames either, due to pretty much the same reasons one would list at Ares, with the addition that even a basic savegame routine (YR's) doesn't exist.
kuuHd4s.png6pDXsCS.png
n0J1wqE.pngIX8pBXZ.png

AS Discord server: https://discord.gg/7aM7Hm2

ComradeCrimson: AS is the product of Hungarian acid
ComradeCrimson: And magical hussars
Dutchygamer: and Weird Al.


#5 AlexB

AlexB
  • Members
  • 143 posts
  • Location:Germany
  • Projects:Ares, Arda, ...
  •  Your ad here!

Posted 12 December 2016 - 10:49 PM

Storing the data isn't the problem at all (with the redesign completed). Testing would be a lot of work, because you would need to check whether for example a Lightning Storm that is currently manifesting is restored correctly. That is, whether all specific game situations can be recreated from a savegame.

#6 Solais

Solais

    Conspiracy Theorist

  • Members
  • 1,648 posts

Posted 12 December 2016 - 11:13 PM

Hmm, but is it really needed to recreate a game situation a very specific way? Maybe it would be probably easier to somewhat create a checkpoint system. Sure, it's not saving, but I think the main problem at least when MO is concerned is the fact that since the missions are often very long, it is disconcerting for the player to start over from the beginning if it happens that they either lose, or have to stop for some reason, and this might just help with that.


Edited by Solais, 12 December 2016 - 11:14 PM.


#7 Graion Dilach

Graion Dilach

    Supérior Caliburwielder

  • Project Team
  • 2,187 posts
  • Location:Iszkaszentgyörgy, Hungary
  • Projects:Infinty Engine modding, OpenHV, Attacque Supérior (sometimes)
  •  That guy you keep hearing the stories about.

Posted 12 December 2016 - 11:28 PM

Solais, you usually are among the more intelligent readers on this board, so please reread the two replies you got. They explain to you in detail the answer to your question (which is yes, you need the game situation in a specific way, and no, checkpoints only work if you have fixed game world states, and RTS is about everything BUT fixed world states).
kuuHd4s.png6pDXsCS.png
n0J1wqE.pngIX8pBXZ.png

AS Discord server: https://discord.gg/7aM7Hm2

ComradeCrimson: AS is the product of Hungarian acid
ComradeCrimson: And magical hussars
Dutchygamer: and Weird Al.


#8 Solais

Solais

    Conspiracy Theorist

  • Members
  • 1,648 posts

Posted 12 December 2016 - 11:48 PM

I understand what they said. But it still reminds me the fact that Starcraft 2 also got a checkpoint system. Sure, it's more of the autosave category (at least I think; I'll have to look into this), but still. From my point of view, it is more about trying to solve the problem of the lack of ways to continue/easily replay campaigns rather than fixing saving altogether. As you said my first idea, a map snapshot, already exists, but the same issues as with saving are still there. So then, I moved onto a separate idea in trying to fix the problem from more of a design standpoint. And yes, that is by suggesting the outrageous idea that RTS with a fixed world state might be preferable.

 

Yes, I'm aware that it is probably not a very good idea. But it could be a temporary solution. (That, or designing the missions with the mindset that zhey should be completable even for casual players without the feeling the need to use saves altogether.)


Edited by Solais, 13 December 2016 - 12:00 AM.


#9 AlexB

AlexB
  • Members
  • 143 posts
  • Location:Germany
  • Projects:Ares, Arda, ...
  •  Your ad here!

Posted 13 December 2016 - 12:45 AM

A checkpoint system would have the same problem: when you hit the checkpoint, all objects and their relations need to be captured. You can't defer creating such a checkpoint until it's more convenient. That is, no fancy complicated things like active Lightning Storms, no units sparking, no units having any AttachEffect, and so on. Such a game situation is atypical. After the mission starts, entropy increases. It only goes down if you approach the end and all units and structures are destroyed, but it will never become zero again.

Also, you can't reasonably detect a good time for such a checkpoint. If the game would check every frame whether it is safe to save, then, whenever you would try to save a game (or auto-save is triggered), the game would just start to lag badly until the end of the game, because it takes that long to find out, and it just won't happen anyhow.

It's not like I haven't thought about all this for years, and there has been hidden progress, though kinda not during the last two years. I know what's missing, but the problem is the motivation: for whom, and why? It's the same thing that stopped me working on Ares two years ago, and the same thing that put me on hiatus for the last six months. Only few people care, so why invest time?

Good examples in C&C where even WW (mind: with access to the source code) messed up:
- In TD, when Nod fires a nuke at you, save and load. It won't impact then.
- Saving and loading restores the initial Tiberium and ore on the map, and even resets it to grow again.
- Crates aren't saved, which can be surprising in campaign missions, if the crates are important.

#10 Solais

Solais

    Conspiracy Theorist

  • Members
  • 1,648 posts

Posted 13 December 2016 - 07:55 AM

A checkpoint system would have the same problem: when you hit the checkpoint, all objects and their relations need to be captured. You can't defer creating such a checkpoint until it's more convenient. That is, no fancy complicated things like active Lightning Storms, no units sparking, no units having any AttachEffect, and so on. Such a game situation is atypical. After the mission starts, entropy increases. It only goes down if you approach the end and all units and structures are destroyed, but it will never become zero again.

Also, you can't reasonably detect a good time for such a checkpoint. If the game would check every frame whether it is safe to save, then, whenever you would try to save a game (or auto-save is triggered), the game would just start to lag badly until the end of the game, because it takes that long to find out, and it just won't happen anyhow.

It's not like I haven't thought about all this for years, and there has been hidden progress, though kinda not during the last two years. I know what's missing, but the problem is the motivation: for whom, and why? It's the same thing that stopped me working on Ares two years ago, and the same thing that put me on hiatus for the last six months. Only few people care, so why invest time?

Good examples in C&C where even WW (mind: with access to the source code) messed up:
- In TD, when Nod fires a nuke at you, save and load. It won't impact then.
- Saving and loading restores the initial Tiberium and ore on the map, and even resets it to grow again.
- Crates aren't saved, which can be surprising in campaign missions, if the crates are important.

 

Well, dang.



#11 Speeder

Speeder

    #ControlMOre

  • Hosted
  • 8,998 posts
  • Location:Czechia
  • Projects:Mental Omega
  •  Mental Omega Creator

Posted 14 December 2016 - 09:40 AM

I've split and pinned this for others to read.


mainbanner.jpg
bt_left.pngbt_fb.pngbt_yt.pngbt_tw.pngbt_md.pngbt_right.png
115776.png


#12 XoGamer

XoGamer

    Strategically Losing

  • Members
  • 122 posts
  • Location:Underground
  •  i won already

Posted 16 December 2016 - 05:18 PM

Oh, I was confused as to why it said I started this because I don't remember starting this xD


"I cast a deadly shadow." - Apocalypse


#13 Support AlexB!

Support AlexB!
  • New Members
  • 1 posts

Posted 17 December 2016 - 03:03 AM

A checkpoint system would have the same problem: when you hit the checkpoint, all objects and their relations need to be captured. You can't defer creating such a checkpoint until it's more convenient. That is, no fancy complicated things like active Lightning Storms, no units sparking, no units having any AttachEffect, and so on. Such a game situation is atypical. After the mission starts, entropy increases. It only goes down if you approach the end and all units and structures are destroyed, but it will never become zero again.

Also, you can't reasonably detect a good time for such a checkpoint. If the game would check every frame whether it is safe to save, then, whenever you would try to save a game (or auto-save is triggered), the game would just start to lag badly until the end of the game, because it takes that long to find out, and it just won't happen anyhow.

It's not like I haven't thought about all this for years, and there has been hidden progress, though kinda not during the last two years. I know what's missing, but the problem is the motivation: for whom, and why? It's the same thing that stopped me working on Ares two years ago, and the same thing that put me on hiatus for the last six months. Only few people care, so why invest time?

Good examples in C&C where even WW (mind: with access to the source code) messed up:
- In TD, when Nod fires a nuke at you, save and load. It won't impact then.
- Saving and loading restores the initial Tiberium and ore on the map, and even resets it to grow again.
- Crates aren't saved, which can be surprising in campaign missions, if the crates are important.

Hi. My account may be new, but Red Alert 2 has been my passion since I was about ten. And nowadays it is one of the only few things that gives my life meaning. I have followed your work for a long time and if I were smarter, I would gladly help you with coding for Ares.
 
People that criticize you and are ignorant of your hard work; try not to take it personal as you have no obligations to them and they forget that you do this for free and for fun (when it used to be).
 
As for time frames; if motivation lacks, I recommend only to work on it when you feel it is worth doing and also for us that support you (even though you owe us nothing :) ).
 
As for the gratitude part from the community I recommend something like that most relevant videos that the MO team uploads may include an Ares banner and a disclaimer that says something like 'Ares version X.Y: made possible by AlexB' or the like (in the video), so a greater audience can notice your contributions since these have made that project possible past version 2.0.
 
While I hope to one day see Yuri's Revenge with functionality like e.g. more bridge tiles, the most important thing for me is the hope to one day get there, even more so than the functionality itself.
So I implore you; even if it is entirely in your right and perfectly understandable, please do not kill off this project. Rather take a long pause instead to make the criticizers realize how important your work is rather than letting it die. Please.
 
Even if it does not mean much, I still humbly thank you for your contributions to make Yuri's Revenge a more perfect game.
This said, I wish you in advance, a marry Christmas and a happy new year!

Edited by Support AlexB!, 18 December 2016 - 10:17 AM.


#14 Graion Dilach

Graion Dilach

    Supérior Caliburwielder

  • Project Team
  • 2,187 posts
  • Location:Iszkaszentgyörgy, Hungary
  • Projects:Infinty Engine modding, OpenHV, Attacque Supérior (sometimes)
  •  That guy you keep hearing the stories about.

Posted 17 December 2016 - 11:09 AM

As for the gratitude part from the community I recommend something like that most relevant videos that the MO team uploads may include an Ares banner and a disclaimer that says something like 'Ares version X.Y: made possible by AlexB' or the like, so a greater audience can notice your contributions since these have made that project possible past version 2.0.


The 3.3 launcher does this, actually. Really nice touch. Well done, Speeder, well done!
kuuHd4s.png6pDXsCS.png
n0J1wqE.pngIX8pBXZ.png

AS Discord server: https://discord.gg/7aM7Hm2

ComradeCrimson: AS is the product of Hungarian acid
ComradeCrimson: And magical hussars
Dutchygamer: and Weird Al.


#15 AresIsAwesome

AresIsAwesome
  • New Members
  • 1 posts

Posted 17 December 2016 - 11:25 PM

A checkpoint system would have the same problem: when you hit the checkpoint, all objects and their relations need to be captured. You can't defer creating such a checkpoint until it's more convenient. That is, no fancy complicated things like active Lightning Storms, no units sparking, no units having any AttachEffect, and so on. Such a game situation is atypical. After the mission starts, entropy increases. It only goes down if you approach the end and all units and structures are destroyed, but it will never become zero again.

Also, you can't reasonably detect a good time for such a checkpoint. If the game would check every frame whether it is safe to save, then, whenever you would try to save a game (or auto-save is triggered), the game would just start to lag badly until the end of the game, because it takes that long to find out, and it just won't happen anyhow.

It's not like I haven't thought about all this for years, and there has been hidden progress, though kinda not during the last two years. I know what's missing, but the problem is the motivation: for whom, and why? It's the same thing that stopped me working on Ares two years ago, and the same thing that put me on hiatus for the last six months. Only few people care, so why invest time?

Good examples in C&C where even WW (mind: with access to the source code) messed up:
- In TD, when Nod fires a nuke at you, save and load. It won't impact then.
- Saving and loading restores the initial Tiberium and ore on the map, and even resets it to grow again.
- Crates aren't saved, which can be surprising in campaign missions, if the crates are important.

 

Created my acount just for you. When I saw your website with all of the bugs and features in the backlog a few months ago I remember thinking "This is a HUGE undertaking. What a boss" "https://bugs.launchpad.net/ares" Because I know how hard developing and extending this game is. See this discontinued mod for example: "http://www.moddb.com/mods/red-alert-3-paradox" they had huge plans and were busy for years but they ultimately gave up "because the engine worked against them every step of the way."

 

You managed to work with the engine anyway. You actually punched it into submission at this point. Huge respect for that. 

 

Set up a patreon and I'll give you something every month just like solais. Many other will to I think if you make sure you have some exposure.

 

And then on the savegame thing. You say you need to go and check if any states will recover correctly. Well... add it in there (which will be a feat in itself!) and don't extensively test it. It doesn't have to be perfect at all. Just enough to make a game playable after a save. 

 

 

I appreciate all that you have done!


Edited by AresIsAwesome, 17 December 2016 - 11:29 PM.


#16 Allied Commander ???

Allied Commander ???

    Tweaks INI and MIX files

  • Members
  • 192 posts
  • Location:Malaysia

Posted 18 December 2016 - 03:45 AM

Just a little of topic, AlexB are you the one who created GTA 5's scripthook? Just asking

#17 lordoflinks

lordoflinks
  • Members
  • 8 posts

Posted 18 December 2016 - 09:57 AM

I am also very grateful for your work AlexB, and applaud you. 


Edited by lordoflinks, 18 December 2016 - 09:57 AM.


#18 PurpleGaga27

PurpleGaga27

    Retired C&C Modder

  • Members
  • 2,196 posts
  • Location:Earth
  •  Media Division Top Contributer

Posted 18 December 2016 - 11:02 PM

As of right now, I can tell this is impossible to do due to issues, unless you are on a virtual windows running RA2/MO 3.3 with a saving snapshot enabled.



#19 AlexB

AlexB
  • Members
  • 143 posts
  • Location:Germany
  • Projects:Ares, Arda, ...
  •  Your ad here!

Posted 19 December 2016 - 01:51 AM

While I hope to one day see Yuri's Revenge with functionality like e.g. more bridge tiles, the most important thing for me is the hope to one day get there, even more so than the functionality itself.
So I implore you; even if it is entirely in your right and perfectly understandable, please do not kill off this project. Rather take a long pause instead to make the criticizers realize how important your work is rather than letting it die. Please.

New bridge overlay is nearly impossible to do, because alas the game can only support up to 254 tiles properly. This also affects Tiberium and Ore, which also use these limited overlay slots.
The problem with long pauses is that the community gets smaller every year, and a too long pause could be counterproductive. I'll see how my mood is during the last days of the year.
 

Even if it does not mean much, I still humbly thank you for your contributions to make Yuri's Revenge a more perfect game.
This said, I wish you in advance, a marry Christmas and a happy new year!

Thank you! It does mean much. :)
Also, Merry Christmas and a Happy New Year!
 
 

When I saw your website with all of the bugs and features in the backlog a few months ago I remember thinking "This is a HUGE undertaking. What a boss" "https://bugs.launchpad.net/ares" Because I know how hard developing and extending this game is. See this discontinued mod for example: "http://www.moddb.com/mods/red-alert-3-paradox" they had huge plans and were busy for years but they ultimately gave up "because the engine worked against them every step of the way."

And that's only about half of the bugs and feature requests. It's over 1200 when you use the advanced search. :p
I don't know much about the RA3 internals, but I also heard it's very difficult to make it do things it's not meant to do.
The earlier games up to YR seem to be much easier, also because research has been going on for years.
 

You managed to work with the engine anyway. You actually punched it into submission at this point. Huge respect for that.

I wouldn't put it like that. The engine and I are working in symbiosis. xD
 

Set up a patreon and I'll give you something every month just like solais. Many other will to I think if you make sure you have some exposure.

Thanks for the offer, but I won't do that. It would be a waste of money. There are many charitable organizations that really could need a little help; I would rather consider to give "excess money" to those.
 

And then on the savegame thing. You say you need to go and check if any states will recover correctly. Well... add it in there (which will be a feat in itself!) and don't extensively test it. It doesn't have to be perfect at all. Just enough to make a game playable after a save.

Think of a chain with a hundred links. How good is that chain, if maybe just a single link is broken? If the chance each link is ok is 99.9%, thus only few errors, then every tenth savegame would be broken.
For 5000 links only each hundredth savegame would actually work. Now think of a chain with several ten thousand links. That's closer to a savegame. In this case, mathematicians speak of frustration. :p
 

I appreciate all that you have done!

Thank you! :) 

 

Just a little of topic, AlexB are you the one who created GTA 5's scripthook? Just asking

Nope, that wasn't me. My field of work is the earlier C&C games.

 

I am also very grateful for your work AlexB, and applaud you.

Thank you! :)

#20 ROMaster2

ROMaster2
  • Members
  • 21 posts

Posted 20 December 2016 - 08:37 AM

As of right now, I can tell this is impossible to do due to issues, unless you are on a virtual windows running RA2/MO 3.3 with a saving snapshot enabled.

 

I came here to mention this. Anyone desperate for a save/load feature can use a virtual machine to take snapshots, the equivalent of emulator save states. They're easy and quick to use but they can take up a lot of space if you're not careful. Here's an example of me using them: https://www.twitch.t...0269?t=3h25m30s

 

I use a virtual machine primarily to be windowed without things being terribly glitchy. If you want to play windowed and have a S&L function, I'd suggest figuring how to set one up, otherwise it'd probably not worth the hassle.






0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users