triplea-game / triplea

TripleA is a turn based strategy game and board game engine, similar to Axis & Allies or Risk.
https://triplea-game.org/
GNU General Public License v3.0
1.33k stars 393 forks source link

Incorrect Handling of v3+ Transports Stalemate and Defining 0v0 Stalemate Behavior #2367

Closed panther2 closed 4 years ago

panther2 commented 7 years ago

My Operating System:

Windows 7.64

TripleA version:

1.9.0.0.6620

Map:

wwIIv3, v4, v5, v6, Pacific 1940, Europe 1940, Global 1940

Can you describe how to trigger the error? (eg: what sequence of actions will recreate it?)

In case the result of a sea battle is an attacking transport facing a defending transport TripleA does not offer the attacker's option to retreat but ends the battle leaving both transports in the contested seazone.

Instead of this error, what should have happened?

In the given (special) scenario the attacker should have the option to either leave the transport in the contested seazone or retreat (given a retreat route had been established before).

Any additional information that may help:

The rulebooks of the affected games say

In a sea battle, if both sides have only transports remaining, the attacker’s transports can remain in the contested sea zone or retreat per the rules in Condition B below, if possible.

This is an exception of the scenarios dealt with (and correctly resolved) in #1270 - and most likely this had never been implemented correctly in TripleA.

Older wwII versions (v2 and earlier) are not affected, as transports defended at 1 there, so the issue could not occur.

transports_remaining_stalemate.zip (wwII_Global 1940.2nd, see SZ 115 in history mode)


EDIT: In addition to this v3+ transport issue, NML also has 0v0 stalemate between conscripts and trenches that should allow retreating instead of being forced to stay: https://forums.triplea-game.org/topic/1399/domination-1914-no-man-s-land-official-thread/164

simon33-2 commented 6 years ago

This can be handled with edit mode though, if you really want to, right?

panther2 commented 6 years ago

This can be handled with edit mode though, if you really want to, right?

Indeed - and I can stop playtesting for rules compliance, too, as everything can be handled by edit mode. Am I just wasting my time?

Simon, I have been added to the playtesting group for some reason! https://forums.triplea-game.org/topic/268/volunteers-needed-early-release-testing-group/

simon33-2 commented 6 years ago

everything can be handled by edit mode

Well we know that not everything can be handled that way, at least not easily.

It's just that this one is well down the list of issues. Firstly, even if the situation appears, it is highly unlikely that you would want to retreat and leave the land units on the transport. Secondly, it's one of the less desirable rules. I know you don't rate the second point.

simon33-2 commented 6 years ago

For me, the real problem is that this issue is not included in the game notes.

panther2 commented 6 years ago

I am not assigning priorities, I am simply pointing out issues - and (if possible) help resolving them according to my skills.

Personally, I consider the list in the game notes (global) as a list of currently unresolved issues - corresponding to this list: https://github.com/triplea-maps/world_war_ii_global/issues/2, created by Gamerman01 here: http://www.axisandallies.org/forums/index.php?topic=31667.0 . This list has been a basis for the aspects listed in the game notes since March 2014 (http://www.axisandallies.org/forums/index.php?topic=31667.msg1255093#msg1255093). I am positive that some of the aspects listed on either source have been fixed in the meantime.

Also this issue does address some more maps (not only Global) as pointed out above.

(Sidenote:

even if the situation appears, it is highly unlikely that you would want to retreat and leave the land units on the transport. Secondly, it's one of the less desirable rules.

In case not enough land units (maybe due to lost transports) survived the sea battle to successfully invade the enemy territory you probably would not want to leave your remaining loaded transport in a seazone adjacent to an enemy factory. Retreating one space from that SZ might give better chances to escape from a possible following sea-hunt. Also this one step might be enough to bring the transport out of range from enemy planes. All of this is of course dependent on the map/scenario ... but not unlikely at all, IMHO. How do you come to judge it as "less desirable"?)

simon33-2 commented 6 years ago

Hmm, interesting point about some transports might have been lost! I hadn't thought about that. That possibility still applies if the defender has no transports though, why should you only get a retreat option in the instance that there happen to be defending transports?

Regarding it being less desirable, it adds confusion and goes against the Zen theory of forbidding retreats when no units who can fire remain.

panther2 commented 6 years ago

Yes, as I said above - this is an exception.

Respecting your individual particular opinion on this issue, I am safe to say that the discussed rule has been explicitly written in every rulebook starting from Anniversary Edition in 2008. That it has not been correctly implemented in TripleA does not make it suddenly surprising or confusing or more or less desirable in general.

Retreat rules in general had been subject to confusion here and there - but I can't remember that this special rule (covered in this issue) ever had caused any discussion.

I know that creating issues sometimes raises awareness and leads to rule discussions. But that is not the point of playtesting and error reporting, IMHO.

simon33-2 commented 6 years ago

Fair enough.

simon33-2 commented 6 years ago

One more comment on this one. Perhaps confusion was the wrong word above. I should have said that the exception adds to complexity without improving game play.

panther2 commented 6 years ago

I should have said that the exception adds to complexity without improving game play.

Again a very particular and individual opinion, that I respect, but do not share.

In this case complextiy lies in the fact that this special rule has been overseen for coding since Anniversary Edition so the retreat rules (otherwise having been resolved correctly in #1270) never took this rule into account.

simon33-2 commented 6 years ago

Adding complexity is a fact, is it not?

How does it improve game play?

panther2 commented 6 years ago

I brought examples above.

Indeed every issue adds complexity. Ranging from a simple Close Issue to whatever code modification.

Simon, if you don't want to resolve this issue then leave it. I did not ask you in person to solve it. I am kindly asking other developers to do it.

panther2 commented 6 years ago

Playtesting for rules compliance is just pointless if everyone has his personal "quality demand" about rules and feels encouraged to judge about core game rules.

simon33-2 commented 6 years ago

Yeah, fair enough. I've got a few other things I'm more worried about.

DanVanAtta commented 6 years ago

Not all bugs are equal, agree. Though it is good to have issues like this for a few reasons. First, there is something wrong/incorrect in the game, the fact it is not common is immaterial. Also in case we get a new dev in the group, smaller/easier issues like this are good tasks to have for them to pick up and to get accustomed to the code. Worst case, a list of issues is good in case we choose to rewrite various parts of the game, in which case we can be sure to fill in any missing rule implementations while we are at it.

I must admit, transport vs transport is actually a really good test scenario, I don't think I would have thought of it and we clearly did not consider it properly in the code.

simon33-2 commented 6 years ago

For regrettable reasons, namely the reversion of #2080, this is not a problem any more.

panther2 commented 6 years ago

For regrettable reasons, namely the reversion of #2080, this is not a problem any more.

I can't confirm this.

I have tested the scenario using 7316 now. The engine still does not offer the retreat option in case of a transport's stalemate.

transports_remaining_stalematenew.zip

simon33-2 commented 6 years ago

Oh ok. Sorry for the false alarm. I just checked with build 3627 and the problem still existed back then. I thought the problem was caused by #2080.

Cernelius commented 4 years ago

For me, the real problem is that this issue is not included in the game notes.

@simon33-2 This practice of tracking program problems (mostly missing features) inside game notes of games (which I would do as well, in the absence of anything else reliable) is really bad, and almost as problematic of the problems themselves.

I understand this is "Global", so, of course, you assume it will always get the same amount of attention as the program itself, but it is really not written anywhere that Global is the king, or something.

Try to imagine if each one of the other 100 games (yes, games, since, for maps with multiples, you'll have to do it per xml) would do the same. Then each time something changes, you would have to update 100+ games, otherwise you'll have them telling stuff that it is wrong under the current release, and at best it might be fully correct just for an engine version virtually nobody is using anymore.

My point is that either you write down the entire rulebook in the games notes, no matter the current state of TripleA, explaining precisely as every single thing should work, for the game itself, so the players themselves can check out if that is how the program is currently behaving, or TripleA removes all other games but "Global" only, so that this system of tracking all that the program gets wrong inside a game may actually be followed consistently.

I understand this would not be a problem at all if someone is only interested in using TripleA to play Global and nothing else.

I tend to see this practice of writing down everything that currently TripleA gets wrong in the notes of a specific game (that I would do as well) just the result of desperation, and little more.

panther2 commented 4 years ago

This specific issue affects every game starting with and including v3.

simon33-2 commented 4 years ago

I tend to see this practice of writing down everything that currently TripleA gets wrong in the notes of a specific game (that I would do as well) just the result of desperation, and little more.

Well, yeah. The ideal would be to have all the bugs fixed!

Cernelius commented 4 years ago

I tend to see this practice of writing down everything that currently TripleA gets wrong in the notes of a specific game (that I would do as well) just the result of desperation, and little more.

Well, yeah. The ideal would be to have all the bugs fixed!

Or they should be documented somewhere else than in the notes of the specific game...

I think all the unresolved issues would be better documented in the program itself, with the description of the issue and the condition under which it happens. In this case:

Condition: Only attack and defence 0 units are left in a battle. Issue: A stalemate is forced at the end of the round that happens, before having the option to retreat, while the stalemate should be forced at the start of the round (thus giving the option to retreat, if this condition happens during the course of a combat round).

Then, in my mind, you would have a button in the TripleA main screen, preferably right under the rulebook, to get the full list of (documented) issues and limits (for example, the fact that TripleA doesn't disable you from making non combat movements during the combat movement phases), so that developers and users alike may be informed on that, and any new TripleA users may learn all that is wrong with TripleA right after having installed it, just like now it can read its rulebook.

On the matter about what games are affected, since TripleA is not just about supporting a bunch of clones with their rulebooks fully written down, one should really think in term of generally when this condition should happen, and that condition (by looking at the code, that I'm not able to) should be not how stuff is called in a specific rulebook, but under what conditions TripleA applies, or fails to apply, the behaviour.

If (just surmising) this behaviour actually happens in all cases in which you have all attackers that have 0 power and all defenders that have 0 power, then this is an issue alike for each and all TripleA games that may present this situation.

For example, talking about the game that in lobby I estimate currently being the 4th most popular game in TripleA (after Revised, Global and World At War), you can test that if you start "Domination 1914 No Man's Land" and skip all turns till Russia, then edit a trench in East Prussia and edit 99 gases in Lithuania, then attack East Prussia with 99 gases and a conscript from Lithuania and a conscript from Eastern Poland (conscript has attack 0 and trench has defence 0), what happens is this:

So, here we go back at my point that if we would adopt the "solution" of documenting this matter in the notes for "Domination 1914 No Man's Land", and do this generally, then we have maybe tens of items documented in each game for over 100 games, all to update each time anything relevant is changed at the program level.

What I was mostly saying is that I disagree with this statement:

For me, the real problem is that this issue is not included in the game notes.

As I don't see writing engine level problem within the notes of a specific game anything more than a very limited solution that adds the issue of having to update all those games once the issue is gone or has changed. So it helps the players of the specific game until it makes sense with the current program, then adds another issue itself.

And the matter of adding more stuff to update is not trivial even for a worshipped game like Global, as, for example, how long has been since the TripleA WarClub forum is gone, and you can still read in Global game notes: "Beginners to these games are suggested to ask for help in the lobby or on the forums at http://www.tripleawarclub.org"

Again, if I'm making a game and want the player of my game to follow the rules of my game, I would write all that is wrong with TripleA right in the notes too (but I would make sure to document the TripleA version those notes are referring to), but just because I got no other option.

DanVanAtta commented 4 years ago

Here is a save game that repro's on 2.0: 1 cruiser + 1 transport vs 1 cruiser + 1 transport. The two cruiser's both hit, leaving transports. If I understand the problem correctly, there is no retreat prompt, and there should be one.

The code checked for a stalemate situation of 0 attack vs 0 defense power, we could make this case more generic and allow retreat in any such situation and not just if we are dealing with naval transports only.

A second question, what is condition B? @panther2

In a sea battle, if both sides have only transports remaining, the attacker’s transports can remain in the contested sea zone or retreat per the rules in Condition B below, if possible.

Of note, I have a patch up (#6033) that would address this problem and offers an option to retreat for the transport in the attached save game: transport-retreat.zip

DanVanAtta commented 4 years ago

Side-note, just to be really pedantic, the problem seems pretty simple here, yet we have about 4 pages of text. I think this is one of our oldest bugs in part because of that. Only the participants had invested enough to really know what is going on, for anyone else to get up to speed, they'd only finish reading by the time their free time was exhausted, and/or just too much overhead to get involved.

This is good example where we could have re-created this as a crystal clear task, eg:

The three lines is enough to specify what was needed. I know that is annoying, I think if we had re-created this issue once we clarified the task and stated as that concise three lines, it would have been far easier to solve. Large blocks of text like this, if not solved by the original participants I find tend to remain dormant, the reason is overhead to get up to speed. I'll go on to say it's also why it's important to not treat bug reports like forum threads, it is not good to expand topics of discussion but instead focus in on the task to be completed, and if there is more to it, then create a new issue to discuss or discuss in forums..

I don't mean to be rude to the conversation here, it is valuable, but it's also I think an example of why we are inefficient and how we focus problems to individuals instead of to teams. When problems are focused to individuals, only they can solve them, they develop a large queue along with all of their other project responsibilities, and we wind up with a situation where Veqryn had to do everything and eventually he had to step back from the project and it all ground to a halt. It also prevents the project from scaling, there are other people who can come in, really would like a starter task, and could pick it up, instead the task is in a project veterans backlog and can't be delegated to someone else (it's as if we make the boss, eg: ron or Veq do everything, and prevent the minion army from helping..) #micdrop #endrant #tripleaNeedsToScale #efficientDevelopment #devTimeIsValuable #sorryToBeAnnoyingBut..

Cernelius commented 4 years ago

Here is a save game that repro's on 2.0: 1 cruiser + 1 transport vs 1 cruiser + 1 transport. The two cruiser's both hit, leaving transports. If I understand the problem correctly, there is no retreat prompt, and there should be one. The code checked for a stalemate situation of 0 attack vs 0 defense power, we could make this case more generic and allow retreat in any such situation and not just if we are dealing with naval transports only.

You should also, and differently, consider the case we have a custom game in which there are 0/0 transports that are otherwise regular combat units. This matter is not covered by the "unofficially official" rulesets TripleA is based upon, but need to be considered, nevertheless. You can also have land units that are all offence 0 attacking land units that are all defence 0. Especially if this is a pre-v3 rules game, I would say the situation should follow regular rules, meaning the combat going on without anyone being able to hit anyone else, hence the matter would be better enforced by obliging retreat (never stalemate). What would be left, then, is the case you cannot retreat (as this would cause an infinite loop, the battle never ending), and my suggestion, here, would be to cause all attackers to be autodestroyed, instead.

panther2 commented 4 years ago

@DanVanAtta

A second question, what is condition B? @panther2

In a sea battle, if both sides have only transports remaining, the attacker’s transports can remain in the contested sea zone or retreat per the rules in Condition B below, if possible.

During the "Press Attack or Retreat"-Step of a battle Condition A describes the (immediate) end of the battle with its consequences. Condition B describes the retreat-process itself that can only take place in case Condition A has not occurred (except the Transport stalemate situation).

Cernelius commented 4 years ago

Side-note, just to be really pedantic, the problem seems pretty simple here, yet we have about 4 pages of text.

I agree that this discussion is far from efficient, as everything substantial part of it so far could be easily summarized in a much shorter new issue, at no loss of contenute.

However, the matter itself might be not as simple as the dept of this discussion, so far, might make it appearing.

It might be a simple matter if TripleA would only be about supporting the WW2v3 games, in which you have powerless against powerless exclusively when having transports against transports.

Or it might have been a simple matter if TripleA would have had an actual reliable WW2V3 property, so that you could fix this behaviour having it dependent on that property being true.

However, you may have custom games following the v1 and v2 rulesets, or whatever combination of rules not comprising what relevant of the v3 ones (that are not even identified as such anywhere I know of, by the way, beside opening the original v3 games and looking at what properties are set true, then looking at the original v2 games, for the same, subtracting the latter to the former, and this would be true only in the case that v1 is always and consistently the default, which is not the case, and I don't believe it is documented anywhere, either, so you would have problems when you have rules that were going a way in v1, then changed in v2, then went back to the v1 behaviour in v3).

This matter is entirely overlooked in the opening post of this issue, where you can just read this:

Older wwII versions (v2 and earlier) are not affected, as transports defended at 1 there, so the issue could not occur.

Which is absolutely pointless (sorry @panther2), unless TripleA actually (I hope not) decides to support nothing else but the "clones" (if you know what I mean), as it seems completely to ignore TripleA being a program for maps and games in which v2 and earlier versions, as well as whatever mix of whatever rules, for a virtually infinite number of custom rulesets, can certainly have transports, and whatever, defending at 0.

Moving from theory to practice, what I'm saying is that you may have a game, following whatever rulesets or no specific one, in which you have cases, both in land and sea, of offence 0 units attacking defence 0 units.

When you look at it like this, you may as well say that this discussion is way too short for the matter at hand, hence you may want to integrate it with other strongly related forum discussions. For example, I strongly suggest anybody reading this issue also to read this forum topic:

https://forums.triplea-game.org/topic/1399/domination-1914-no-man-s-land-official-thread/143?lang=it&page=8 To summarize, and as a good example, that game has the conscript, being a 0/1 unit that may attack a trench, being a 0/0 unit, both being land units. This bug, if it is a bug for that case too at all, implies that you cannot send conscripts alone against trenches alone to strafe, as they will stalemate before having a chance to retreat (and here we are talking about one of the most popular custom maps of TripleA, actually currently more played in the lobby than the original v3 itself, not some weird experimental game nobody plays).

On the other hand, you cannot assume that the v3 transport on transport behaviour should be extended to all cases of powerless on powerless, and I would advise no to, actually.

If you take basic rules, like v1 and v2, and also if you assume that the stalemate behaviour of v3 rules should apply only to ignorable units, then, when having offence 0 against defence 0 what I would argue should happen is that the battle should just proceed regularly, meaning nobody hitting anybody, thus substantially the attacker being obliged to retreat, and never able to stalemate. However, in this case, you should also consider what should happen if the attacker cannot retreat, as, in this case, you would have a never-ending battle. There may be good argument both in favour of stalemating and in favour of removing all attackers from the game, but, in this case, I would argue that, then, all attacking units should be able to choose to stalemate against defenceless units, because being unable to retreat should not add options otherwise unavailable.

@panther2 What do you believe it should happen if I take "Classic" and "Revised" and, leaving everything else unchanged, I reduce the defence power of transport to 0 (they are still selectable first, and so on)? This matter should not be ignored.

DanVanAtta commented 4 years ago

@Cernelius you demonstrate the point, in issues the discussion needs to narrow, not expand! The original problem here is for just transports, if you want that to be generalized, IT IS A NEW TASK. OPEN A NEW ISSUE! Unless the task is WRONG, what you are discussing is a different changeset, and you do not yet know what you are asking for since we are dealing with paragraphs, questions, considerations and not a:

  1. to reproduce do this
  2. notice this behavior
  3. the noticed behavior should instead by this.

Anything that is not those 3 bullet points is something that dev's are not going to want to pick up as the requirements are not clear. Development has to deal with that all the time, but it's a root of inefficiency and wasted work.

We need discussions to move to new issues, forums, and then come back and create specific tasks once we know what needs to change. The goal should also be to get to a point where you can concisely say what needs to change, not to educate everyone on how complex the rules could be considered.

Said another way, if you want to make sure a ticket never gets done, just keep adding commentary, it will torpedo the task. The ambiguity sucks up all available time and adds risk of wasted work, and adds more time to circle back to make sure any proposed work or work accomplished fits the ambiguous requirement specification.

Cernelius commented 4 years ago

The code checked for a stalemate situation of 0 attack vs 0 defense power, we could make this case more generic and allow retreat in any such situation and not just if we are dealing with naval transports only.

So, are the changes made "for just transport" or for the 0 vs 0 general case?

DanVanAtta commented 4 years ago

just naval transport. It's a different set of discussion and requirements to open it up further.

Cernelius commented 4 years ago

just naval transport.

Ok, so the next question is: is the item relevant for v3/deprioritized transports only or for whatever transports? For example, if I take "World War II Classic" and change the transport defence to 0 (without making them v3 transports in any other ways), are they threated the same way as v3 transports, as far as stalemating goes? Or I could take the "World At War" cruisers (since they are technically transports too) and make them defence 0, then having transports attacking cruisers, being 0 vs 0. Just asking to know what are the exact boundaries of what at this issue, in case of, then, opening any issues to handle other cases of attack 0 vs defence 0.

ron-murhammer commented 4 years ago

@panther2 Can you further clarify the following:

  1. In v3+ rules, can only transports attack only enemy transports to cause a stalemate? From what I can tell the answer is yes (they can choose to attack or not attack them just like regular warships do) and given that if both sides have only transports, then it would just go through the battle rolling no dice then giving the attacker the option to either retreat or stay. This is relevant because if so then in theory if you had 3 sea zones A -> B -> C -> D then used transports in A and D to attack an enemy transport in C, you could retreat them all to either B or D (essentially you could get 3 movement from a transport using retreat).

EDIT: I found the following in Global rules but nothing in v3 and even this isn't 100% clear on if they could then attack if doing an amphibious assault then still choose to retreat:

"Transports may not attack without being accompanied by at least 1 unit with an attack value, unless they are conducting an amphibious assault from a friendly sea zone that is free of enemy submarines."

"If there are defending surface warships and/or scrambled air units, sea combat occurs. If there are only defending submarines and/or transports, the attacker can choose to ignore those units or conduct sea combat."

  1. Can you specify the other scenarios that can be 0 vs 0? I guess that would be attacking carriers vs defending transports in global? Just want to understand if there are other stalemate scenarios.
Cernelius commented 4 years ago

I know that you would rather have panther answering you here, but I tell you that I'm sure of what I'm saying (it would be good that @panther2 confirms, of course).

In v3+ rules, can only transports attack only enemy transports to cause a stalemate?

No, they can only simply ignore enemy transports, never attacking them (so never strafing of transports vs transports only, since start of combat, that is actually possible only in Revised, not even in Classic). However, in practice, the final outcome is exactly the same as if going in there and choosing to stalemate.

From what I can tell the answer is yes (they can choose to attack or not attack them just like regular warships do)

No. Transport alone can never choose to attack anything, in v3.

and given that if both sides have only transports, then it would just go through the battle rolling no dice then giving the attacker the option to either retreat or stay.

This is an interesting case for TripleA, but never actually happens in the "official" games. In v3, ending up a battle with the option to either retreat or stalemate can possibly only happen if actually rolling warships were reciprocally all killed during the same round of combat. No other cases.

This is relevant because if so then in theory if you had 3 sea zones A -> B -> C -> D then used transports in A and D to attack an enemy transport in C, you could retreat them all to either B or D (essentially you could get 3 movement from a transport using retreat).

You can do this only in Revised. You can never do this in Classic, nor in any other games after Revised, an certainly not in v3/Global.

EDIT: I found the following in Global rules but nothing in v3 and even this isn't 100% clear on if they could then attack if doing an amphibious assault then still choose to retreat: "Transports may not attack without being accompanied by at least 1 unit with an attack value, unless they are conducting an amphibious assault from a friendly sea zone that is free of enemy submarines."

This rule fully retroactively applies to the original v3 too, and has been actually added to the latest printed version of the rulebook (I guess you are looking at the outdated one of Axis&Allies.org?).

Enemy transports alone making an amphibious assault from a sea zone occupied only by enemy transports just ignore the transports.

"If there are defending surface warships and/or scrambled air units, sea combat occurs. If there are only defending submarines and/or transports, the attacker can choose to ignore those units or conduct sea combat."

Warships can choose to ignore combat. Transports alone must "choose" to ignore combat, otherwise they cannot end movement in that zone, if they could not.

Can you specify the other scenarios that can be 0 vs 0? I guess that would be attacking carriers vs defending transports in global? Just want to understand if there are other stalemate scenarios.

I'm not sure about the implications of the attack value 0 carrier, so waiting for @panther2 here, as well. Definitely this is a difference from v3.

The other thing that I don't know is the case of transports alone starting their turn into a sea zone with enemy warships (must they go out, if they can, or can they decide not to move, thus practically attack enemy warships alone)?

Cernelius commented 4 years ago

Ok, so the next question is: is the item relevant for v3/deprioritized transports only or for whatever transports?

Can anybody answer this?

panther2 commented 4 years ago

@ron-murhammer @Cernelius

In v3+ rules, can only transports attack only enemy transports to cause a stalemate?

No, they can only simply ignore enemy transports, never attacking them (so never strafing of transports vs transports only, since start of combat, that is actually possible only in Revised, not even in Classic). However, in practice, the final outcome is exactly the same as if going in there and choosing to stalemate.

From what I can tell the answer is yes (they can choose to attack or not attack them just like regular warships do)

No. Transport alone can never choose to attack anything, in v3.

The only "attack" a lonely loaded transport is allowed to do is to unload for an amphibious assault from a friendly seazone. A transport stalemate is only possible if after at least one round of combat only those transports are left. Moving a transport from a friendly seazone into another friendly seazone without the intention to amphibiously assault from there would not be a valid combat move.

and given that if both sides have only transports, then it would just go through the battle rolling no dice then giving the attacker the option to either retreat or stay.

This is an interesting case for TripleA, but never actually happens in the "official" games. In v3, ending up a battle with the option to either retreat or stalemate can possibly only happen if actually rolling warships were reciprocally all killed during the same round of combat. No other cases.

Correct. Combat ends immediately once all units that can fire at a valid target have been destroyed. It is only the resulting Transport stalemate situation that offers a retreat option.

... to be continued ...

panther2 commented 4 years ago

Can you specify the other scenarios that can be 0 vs 0? I guess that would be attacking carriers vs defending transports in global? Just want to understand if there are other stalemate scenarios.

I'm not sure about the implications of the attack value 0 carrier, so waiting for @panther2 here, as well. Definitely this is a difference from v3.

When after at least one round of combat only an “attacking” carrier faces a “defending” transport all units that can fire at a valid target have been destroyed and the battle ends. Both units remain in the contested seazone, as the carrier (different from the transport stalemate situation) is not granted the exceptional retreat option. There is no other 0-0 situation.

The other thing that I don't know is the case of transports alone starting their turn into a sea zone with enemy warships (must they go out, if they can, or can they decide not to move, thus practically attack enemy warships alone)?

According to the "sea units starting in hostile seazone-rules" the transport can decide not to move and "attack". But it may not do so without being accompanied by at least one unit with an attack value (Transport rules). In other words if you can't manage to bring another unit with an attack value, the transport has to move out.

Ok, so the next question is: is the item relevant for v3/deprioritized transports only or for whatever transports?

This question I don't understand... what do you mean by "v3/deprioritized transport" ?

Cernelius commented 4 years ago

Ok, so the next question is: is the item relevant for v3/deprioritized transports only or for whatever transports?

@panther2 I was not asking you, but any developers. Since it has been clarified that the "fix" has been made only on "transports", which I assume means "only on sea units able to transport land units", what I'm, now, asking is if only "v3" rules transports have been influenced by this or, for example, also classic and revised transports, as well, if they happen to have both attack and defence equal to 0 (which they can, in mods).

Still waiting for the answer...

Cernelius commented 4 years ago

According to the "sea units starting in hostile seazone-rules" the transport can decide not to move and "attack". But it may not do so without being accompanied by at least one unit with an attack value (Transport rules). In other words if you can't manage to bring another unit with an attack value, the transport has to move out.

@panther2 Are you sure about this? I assume you realize this would be the only case, in these games history, in which you are not allowed doing nothing during a movement phase. Moreover, there are 2 situations in which you cannot avoid the transports attacking alone. The first case would be being in a sea zone not connected with any other sea zones and having lone transports in them together with enemy non-ignorable units, at start turn, while none of your air can reach that sea zone. The second case would be that the sea zone is surrounded by sea zones all having enemy non-ignorable units in them, as well, and all these sea zones are out of reach of your air. In this second case, am I allowed to actively sending transports alone in battle, since not moving them is causing them to attack too, thus violating the rules all the same?

panther2 commented 4 years ago

@Cernelius Ah, good that you asked. I need to be more precise here as I focussed to comment on the Transport's ability to attack.

Actually the Transport can stay and conduct combat. When conducting combat, the transport cannot attack, as it has no attack value. Now in order to attack the Transport needs a supporting unit with an attack value.

So in your second case you are allowed to either stay and conduct combat or leave and conduct combat, with the same consequences regarding the ability to attack.

The important aspect here is to differentiate "conduct combat" from "attack".

Thanks.

ron-murhammer commented 4 years ago

@panther2 interesting. Do you know what the reasoning is behind allowing transports to retreat but not carriers when stalemated? Seems to be kind of confusing and inconsistent. Just trying to see how to apply this more broadly to TripleA.

Cernelius commented 4 years ago

@ron-murhammer Well, it is not only one or the other. You can also end up with offending carriers and transports only against defending transports only, and I guess that, in this case, the presence of the carriers disallows all transports from retreating?

ron-murhammer commented 4 years ago

@Cernelius Correct, I assumed that the carriers would prevent the retreat option if you have both. As it appears the retreat rule is written to apply if there are only transports vs transports left.

panther2 commented 4 years ago

Do you know what the reasoning is behind allowing transports to retreat but not carriers when stalemated?

I don't know the official reasoning but it might be to give the transport (imagine a loaded transport in that situation) a better chance to escape from eventual counter-attacks. That transport when being attacked has no defense value then, while the carrier defends at two.

You can also end up with offending carriers and transports only against defending transports only, and I guess that, in this case, the presence of the carriers disallows all transports from retreating?

Correct. The battle simply ends. All units remain in the contested seazone.

As it appears the retreat rule is written to apply if there are only transports vs transports left.

Correct. Precisely here we talk about an exceptional rule that applies (only for the transport stalemate) despite the battle has already ended.

Cernelius commented 4 years ago

Ok, what are the conclusions, then.

It seems fairly clear that the no retreat with carriers against transports is the general rule, based on the general principle of ending the combat as soon as nobody has any valid targets left (which is normally verified by completely removing all unit of at least one side), while the transports vs transports only retreat before stalemate is a somewhat inconsistent exception, as being even a retreat happening after the batter has already ended. This is reinforced by the fact that if you have both carriers and transports remaining in offence is just like having only carriers remaining.

However, this exception is actually the only case of 0 vs 0 that you can meet in the basic games, from v3 to v6, due to no other units but transports having 0 offence or defence, and, TripleA wise, for what is worth, v3 rules are the main rules, Global, as well as v5, being a v3 rules game with some additional changes. So, as long as we talk of v3 only, transports vs transports is the only rule for 0 vs 0, and, for example, you can have games, like Domination 1914 NML, that only reference v3, not Global at all, and there can be little doubt that, if we didn't have the offenceless carriers of Global, now we would see the only transport stalemate (with possible retreat) as the basic rule for 0 vs 0 situations.

An interesting question, at this point, is why V5 and V6 doesn't have carriers at offence value 0 like Global 1940.II?

panther2 commented 4 years ago

An interesting question, at this point, is why V5 and V6 doesn't have carriers at offence value 0 like Global 1940.II?

Might be a rhetorical question. Anyway, I suppose it is only "game design", as the carrier in Global additionally is a two-hit unit - different from V5/V6, too.

DanVanAtta commented 4 years ago

Just to muddy the waters slightly, is there a difference between a non-combat unit and a unit with attack power zero? Why is a carrier not given a chance to retreat, perhaps it should be? The argument would be a transport is a non-combat unit, it's just there as an extra unit but is not participating, hence why they all die at once and are not eligible as casualties, but carriers can be taken as casualties. Is there such a distinction in v3 rules? If so, it would make sense then for a carrier to be given an option to retreat (either that or it wins the battle and then we need to decide if transports, or non-combat units, die when they lose a battle or if they only all die if a battle is lost to at least one combat unit with attacker power).

Another way to look at it, a zero attack and zero HP unit is a non-combat, a zero attack unit on the other hand is a combat unit. If a carrier only survives a battle with defending transport left, does the carrier get a retreat option? Are the defending transports removed?

panther2 commented 4 years ago

@DanVanAtta Of course the Transport, by the core game rules, even with an attack value of "0" is participating in combat and it is eligible as casualty. As well in Global as in v3. Please read the unit characteristics in the rulebooks.

It is only in Global that the carrier has an attack value of "0". And of course the carrier should not have the retreat option when the battle has ended. Why should the carrier be granted that right while other units that have to stay because of an ended battle don't? It is a general and core rule that there is no retreat possible when the battle has ended. Except for the Transport Stalemate situation. That the carrier can't retreat is totally unrelated to his attack value of "0". The attack value of "0" just leads to a different ending of the battle.

I am only addressing the core games, not mods or house rules with my statement here.

DanVanAtta commented 4 years ago

Of course the Transport, by the core game rules, even with an attack value of "0" is participating in combat and it is eligible as casualty. As well in Global as in v3. Please read the unit characteristics in the rulebooks.

Perhaps I was not clear. In v3+, least in most WWII maps, you certainly cannot select transport as casualty, they have zero HP and are all lost if the battle is lost. In other words, transports in v3 cannot be used as fodder (while carriers can).

The distinction I'm making is between units that 0 HP and those that have 1+.

I am only addressing the core games, not mods or house rules with my statement here.

Yeah, I know. I wanted to keep this issue to just that too - but it's been opened up and we're trying to determine what the rules should be in the general case.

DanVanAtta commented 4 years ago

I'm going to take another stab at being clear about this suggestion:

Given TripleA is a game engine, we do want/need a generalized solution. We do not want to encode things like "isTransport" into the combat decision as you can have any number of scenarios (for example, transports that perhaps on some maps that do have an attack power).

If we make a distinction of combat and non-combat units, I think it makes some sense and then we can rephrase the rule request here to be "a battle where only non-combat units remain allows the attacker an option to retreat". If so, another question that arises is whether 'zero-attack power' combat units can 'win' battles, if they are offered a retreat option, and if they do capture a territory whether or not they destroy non-combat units.

panther2 commented 4 years ago

@DanVanAtta

Perhaps I was not clear. In v3+, least in most WWII maps, you certainly cannot select transport as casualty, they have zero HP and are all lost if the battle is lost. In other words, transports in v3 cannot be used as fodder (while carriers can).

I understand what you mean with "fodder". But let us not confuse the unit characteristics: The transport still has one hitpoint. It still needs one hit per transport to eliminate it. It is just the "autodestruction" rule that saves us time for rolling the dice. And transports can be chosen as casualties, it is just that they must be chosen last - what prevents them from being chosen as "fodder".