Is an Iron Man option possible?

Leoreth

Bofurin
Retired Moderator
Joined
Aug 23, 2009
Messages
38,101
Location
風鈴高等学校
After seeing how many players of my mod rely on save scumming to win their games, I'm wondering if it would be possible to add an Iron Man game option.

In case you are not familiar with such an option, in many games there is an Iron Man option that forbids you from saving during the game. You are only allowed to quit and resume that game later on.

Implementations of this I would be satisfied with:
- save and return to main menu options disabled during such games (probably not feasible because it's in the EXE)
- loading any save but the latest autosave will disable all victory types
- loading any save but the latest autosave will result in a score of 0 once the goal is won

Is any of this practical? I see no real source of truth to figure out what the "latest autosave" is considering they aren't really associated with games. Another problem is that autosaves are overwritten in multiple simultaneous games, and many players do this, so there should be a different approach entirely.

Any ideas? Is there mod that already does something like this?
 
I don't think you can have the concept of the latest savegame or latest autosave. If this is possible, then it would be something like adding the savegame name to CvGame. When the game is saved (either auto or manually) it will overwrite that savegame file. When the current game ends (quit game, quit to main menu, load game etc), the game should be saved before actually quitting. I have no idea if you can hook into all the needed places or the exe makes it impossible.

Before you invest too much time in this possibly impossible task, you should consider if it is really worth doing. If people decides to play that way, isn't it because they want it that way. If they can no longer do that, do you think they will be happy with such a change? How many will decide to abandon the mod or not updating?

Personally I hate the Iron Man option and never use it. The reason is that I can decide to act like Iron Man is on, but at the same time I can reload if needed. I really hate to break an otherwise good game after playing for hours just because I made a mistake. One thing I learned the hard way is that Colonization has both found colony and bombard set to the B key. Sure I'm attacking the enemy and instead of firing the cannons I want to drop my weapons and build a colony in the middle of the battlefield :crazyeye: As there is no undo or abandon colony I loaded the newest autosave.
 
I don't think you can have the concept of the latest savegame or latest autosave. If this is possible, then it would be something like adding the savegame name to CvGame. When the game is saved (either auto or manually) it will overwrite that savegame file. When the current game ends (quit game, quit to main menu, load game etc), the game should be saved before actually quitting. I have no idea if you can hook into all the needed places or the exe makes it impossible.
That's an idea worth looking into, thanks.

Before you invest too much time in this possibly impossible task, you should consider if it is really worth doing. If people decides to play that way, isn't it because they want it that way. If they can no longer do that, do you think they will be happy with such a change? How many will decide to abandon the mod or not updating?
It would be an option, so everyone would of course be free to use it or not. It's mostly about bragging rights in the victory screen, similar to a higher difficulty level.
 
I personally hate iron man setting. As an option it is fine, what I really hate is the wave of games that have only iron man and nothing else... Mostly because one glitch from the game can lose you hours of fun...

State of Decay is the game that drives me most batty! Mostly because I absolutely love it, but with the number of glitches and no cut scene skipping, it is insanely frustrating to have your game ruined on a glitch and not go back to a save...

Anyway.. more or less completely off topic.. but it was relaxing :D

I would focus on other things rather than pouring time into this, as night says, a player can impose their own iron man rules..
 
What would this solve though? How is turning random seed off and loading the autosave better than turning random seed off and loading the last save, whether that is an automatically made one or a manually made one?
 
I would focus on other things rather than pouring time into this, as night says, a player can impose their own iron man rules..
It's mostly about allowing people to demonstrate that they actually avoided save scumming. It'd enable stuff like iron man challenges and the like.

What would this solve though? How is turning random seed off and loading the autosave better than turning random seed off and loading the last save, whether that is an automatically made one or a manually made one?
You're right, being able to load a game is hard to prohibit even if there is only one. Still the amount of abuse is limited without a new random seed because you are only able to make different decisions for that one turn.

Another question, I've never played MP, how do these games handle it? Obviously you can't just reload there. Shouldn't a quit and resume mechanic already be in place for that?
 
If you are investing energy into this to stop people from cheap winning via loading in SP games rather than MP games, isn't WB a bigger cheat to be disabled first?

No point having this kind of option if I can simply enter WB.
 
Another question, I've never played MP, how do these games handle it? Obviously you can't just reload there. Shouldn't a quit and resume mechanic already be in place for that?
Technically the server can quit the game and start a new one based on a savegame meaning technically the reload until 12% chance combat is won is an option. However Whenever an MP game is loaded, all clients have to connect and the savegame is transmitted over the network. That's noteworthy slower than doing the same thing in singleplayer as well as annoying for other players.

No point having this kind of option if I can simply enter WB.
I never understood why WB is inside all games. I view it as a debug option and in fact only use it during bug hunting/bugfix testing. Removing it in release builds would make sense. It will then still be available for development as it would be in debug builds as well as assert builds with Makefile 2. Personally I never use release builds except for actual releases. It really helps stability testing to get assert checks when testing without resorting to the slow debug builds. That's a different issue, but with this in mind, it would make sense to set WB button to appear inside
Code:
#ifdef FASSERT_ENABLE

Personally I would say that if people want to ruin the game for themselves, then let them do it. It would be better to spend development time on improving the mod. Maybe remove WB from releases as it appears to be fairly easy (unless the needed line of code is in the exe, didn't check). The whole Iron Man solution appears to be way too expensive in working hours compared to the relatively little gain.
 
If you are investing energy into this to stop people from cheap winning via loading in SP games rather than MP games, isn't WB a bigger cheat to be disabled first?

No point having this kind of option if I can simply enter WB.
I agree completely.

Technically the server can quit the game and start a new one based on a savegame meaning technically the reload until 12% chance combat is won is an option. However Whenever an MP game is loaded, all clients have to connect and the savegame is transmitted over the network. That's noteworthy slower than doing the same thing in singleplayer as well as annoying for other players.
Okay, so it's merely an inconvenience in MP games but otherwise possible.

Personally I would say that if people want to ruin the game for themselves, then let them do it. It would be better to spend development time on improving the mod. Maybe remove WB from releases as it appears to be fairly easy (unless the needed line of code is in the exe, didn't check). The whole Iron Man solution appears to be way too expensive in working hours compared to the relatively little gain.
But that's what my modding career is all about :D

But seriously, sometimes I like to have a more complicated feature at the back of my mind to puzzle out while doing more menial stuff. Sometimes it's surprisingly easy to trick new unusual features into the game engine - I was just wondering if I missed a possible approach.
 
I never understood why WB is inside all games. I view it as a debug option and in fact only use it during bug hunting/bugfix testing. Removing it in release builds would make sense. It will then still be available for development as it would be in debug builds as well as assert builds with Makefile 2. Personally I never use release builds except for actual releases. It really helps stability testing to get assert checks when testing without resorting to the slow debug builds. That's a different issue, but with this in mind, it would make sense to set WB button to appear inside.

Actually, WB is pretty much the last resort when bugs occur in release builds. There are times even in BTS when you encounter infinite turn times due to some bugged units, privateer AI i believe. Thus, entering WB to locate and remove them will enable those games to continue.
 
Personally I would say that if people want to ruin the game for themselves, then let them do it. It would be better to spend development time on improving the mod. Maybe remove WB from releases as it appears to be fairly easy (unless the needed line of code is in the exe, didn't check). The whole Iron Man solution appears to be way too expensive in working hours compared to the relatively little gain.
I use the World Builder in my games (well, to dotmap, mostly, though less so since I've revealed all resources from the start purely to avoid settling on one) and I also occasionally load a savegame after losing a fight I didn't want to lose. For you, it's maybe ruining the game. For me, it's just having fun. I don't play to win and I dislike anything that approaches competitive play. I also practically never finish any game I start, even though I spend weeks playing it (at tech speed 3000 or such).
 
Actually, WB is pretty much the last resort when bugs occur in release builds. There are times even in BTS when you encounter infinite turn times due to some bugged units, privateer AI i believe. Thus, entering WB to locate and remove them will enable those games to continue.
That's actually a pretty good argument for absolutely not do anything related to anything regarding Iron Man. The whole concept is more likely to just hurt non-cheaters, who are unlucky or hurt by bugs.
 
Actually, WB is pretty much the last resort when bugs occur in release builds. There are times even in BTS when you encounter infinite turn times due to some bugged units, privateer AI i believe. Thus, entering WB to locate and remove them will enable those games to continue.

[offtopic]Back when Civ IV first became a good game, the WB was the only way to figure out how to find a "building" crash. I remember Kael informing me how to do it, it was very very time consuming because you had to go one city at a time and see. Thats one of the other reasons why the WB is in the game itself. But nowadays programmers have figured out how to do debugging the correct way through the dll. And C2C has a darn good debugger, so i am informed at least.:p
 
So the conclusion is don't bother :D
If players want to cheat and boost, there are many ways to do so.
Setting such an option or removing WB will however, make life difficult for real players when they encounter bugs.

As a python modder, even if you add such an option and remove WB, I can still just type some codes and get free modern armors...
 
Back
Top Bottom