Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

6157 - 'over buy' warning is not consistent, no user notification when it is turned on or off. #2219

Closed
DanVanAtta opened this issue Aug 15, 2017 · 28 comments

Comments

@DanVanAtta
Copy link
Member

commented Aug 15, 2017

no_overbuy_warning

Note the purchase cannot be placed in its entirety. We are supposed to show a 'you bought more than you can place' warning window in this scenario if you proceed with this purchase, but did not show such a window.

Save game: overbuy.zip

@DanVanAtta DanVanAtta added the Problem label Aug 15, 2017

@Cernelius

This comment has been minimized.

Copy link
Contributor

commented Aug 15, 2017

This is not a bug, at most an indirect limit.
It was me that removed the "over buy" warning in 270BC, when me and @veqryn made version 1.5.
The property is "Placement Restricted By Factory" and I turned it off because the new (back then) placement rules to support forts placement are outside the support of that property (meaning that, if you enable it, it won't work correctly for RomanRepublic, thus I considered better nobody having it, to minimise confusion).

@Cernelius

This comment has been minimized.

Copy link
Contributor

commented Aug 15, 2017

This is the same at least in "270BC Cernel Variant" and "270BC 40%" inside the "270bc_variants".

@Cernelius

This comment has been minimized.

Copy link
Contributor

commented Aug 15, 2017

Also, it would not be a bug, just usability, because in Classic I'm almost sure you are allowed to buy more than you can place, and waste it (but since you have unlimited placement in original, that is very marginal a case). I think it is the same in Revised too (that if you buy more that you can place, it is not illegal, you just lose what you don't place).

@DanVanAtta

This comment has been minimized.

Copy link
Member Author

commented Aug 15, 2017

I thought we were consistent in most maps to give a warning "you are about to buy more than you can place". Is it all behind a map option all along that is usually off?

@DanVanAtta DanVanAtta added type: usability and removed Problem labels Aug 15, 2017

@Cernelius

This comment has been minimized.

Copy link
Contributor

commented Aug 15, 2017

I thought we were consistent in most maps to give a warning "you are about to buy more than you can place". Is it all behind a map option all along that is usually off?

You have that warning only as long as the property "Placement Restricted By Factory" is true. So, since all properties are false default, you should not normally have it.


Also, maybe I should have been clearer. Not sure if you played the map and know how fort placement works in there?
In 270BC, forts can be placed both by city and by legionaire (by levis too in my variants, and legionaire is called legionary, there), and that is not supported by that warning property, that it is functionally limited only to standard basic placement.
Legionaire and city are both factory, but all non-construction units but forts require the presence of city.
Even if that property would be expanded to cover this, and this is would be a good feature request, there is still the mobile factory item to consider, in that legionaire units may move during your turn, thus expanding or reducing your placement abilities from the picture taken during purchase.

I agree that this is a considerable issue in 270BC, because you have a lot of stuff to place, due to the income in the map (imo, way too much income, thus also why I made "270BC 40%" in variants), but, also considering that almost nobody plays 270BC, I never got around making any tickets about solving this problem.

@ron-murhammer

This comment has been minimized.

Copy link
Member

commented Aug 16, 2017

@DanVanAtta As @Cernelius describes, the warning is only shown for simple maps that use just standard factories for production (Placement Restricted By Factory). Any map the uses more complex place rules doesn't have that warning as the logic to determine it is significantly more complex when you have different types of unit place requirements, different types of factories, etc.

I have a feeling to cover all the various production rules across all maps, this would require a significant amount of effort to implement but would be a valid feature request.

@DanVanAtta

This comment has been minimized.

Copy link
Member Author

commented Aug 16, 2017

this would require a significant amount of effort to implement

I don't think that is very material. Likely we need to clean things up to have less hacky rules, a good design for how to do this and it can be clean perhaps. It may be a larger project yes.

valid feature request.

I'm very not interested in the feature request vs bug debate... This is a broken feature because it was disabled on maps where it was too difficult to implement. That's a hack. There is no reason this should be map specific, either let the user know when it is there or not, or have it everywhere or nowhere. IMHO those are three options where this is actually a well done and working feature.

@Cernelius

This comment has been minimized.

Copy link
Contributor

commented Aug 16, 2017

warning is only shown for simple maps that use just standard factories for production (Placement Restricted By Factory). Any map the uses more complex place rules doesn't have that warning as the logic to determine it is significantly more complex when you have different types of unit place requirements, different types of factories, etc.

Correct. That is why I disabled it for 270BC. It could show there and for any not-simple maps too, if enabled, but there is no point in this, as it would not be reliable nor accurate (thus mapmakers should take care to have it disabled, in such cases).

@Cernelius

This comment has been minimized.

Copy link
Contributor

commented Aug 16, 2017

Personally, I see this as not something that "has to work", but just as a bonus.

Thinking at TripleA as a digitalised boardgame, you should consider that in a boardgame there is noone popping up and telling that you are buying more. It is up to you to do the math correctly, then losing the units if you bought in excess. So, doing that correctly is part of the game, as well.

Still, going a bit past the concept of the digitalised boardgame, since it is just basic management, I agree with having the computer telling your math is wrong; likely, at this point, it should tell that in advance, not requiring you to math at all to start with, not just if you happen to buy too much.

However, if TripleA will ever have a timer, that option should be, then, false as default, as accounting your stuff correctly would be part of your timed effort, as per what you would do in a timed boardgame competition.

@DanVanAtta

This comment has been minimized.

Copy link
Member Author

commented Aug 16, 2017

you should consider that in a boardgame there is noone popping up and telling that you are buying more.

Except there is, until there is not, and an average player has no idea when to rely on it. That's the problem, it's not consistent and the reason is not made obvious. To fix we can make it obvious, or make it consistent.

@DanVanAtta DanVanAtta changed the title 6157 - no 'over buy' warning on 270BC 6157 - 'over buy' warning is not consistent, no user notification when it is turned on or off. Aug 16, 2017

@DanVanAtta

This comment has been minimized.

Copy link
Member Author

commented Aug 16, 2017

270BC this may not be the biggest problem, other maps it can be more signfiicant since the setting can vary by the variant. It can be easy to rely on it, or use it as a safety net, which is a big problem when you forget or did not knwo it did not apply to a given variant.

I'l note - That math is not interesting, does not make one player better than the other other than it encourages mistakes, and can slow games down as players spend 2, 3 or 4 times longer double checking their and re-checking their math in fear their purchase has a fatal flaw. Mis-calculating a purchase can be devastating. But I digress, really the problem is not 270BC per say at all, that just happened to be the map where I was regression testing.

@Cernelius

This comment has been minimized.

Copy link
Contributor

commented Aug 16, 2017

The engine should really tell what is your limit in the purchase window, not only after you buy too much.

This would be helpful itself and, when you don't see it displayed, this means that in that particular game the engine is not giving you a limit.

@DanVanAtta

This comment has been minimized.

Copy link
Member Author

commented Aug 16, 2017

Strongly agree with that, a total purchase capacity would be really useful, many times playing WaW I've wanted that.

@DanVanAtta

This comment has been minimized.

Copy link
Member Author

commented Aug 16, 2017

To make it really work, I think we would have to have the game 'warn' only when you go over the limit, and maybe have some hovertext to indicate that on same maps the limit may not be 100% accurate. So if you know you can "over-buy" (ie: our rules were not 100%), then you can do so knowing that you really can place everything, otherwise you get to see how many units you can place and get a warning when you go over.

@simon33-2

This comment has been minimized.

Copy link
Contributor

commented Aug 18, 2017

Tangentially related but I've noticed a couple of times units bought being counted twice when "buy" is clicked twice. Not sure how to reproduce it though.

@panther2

This comment has been minimized.

Copy link
Member

commented Aug 18, 2017

FWIW, I just want to add here that in "A&A"games you regularly are allowed to "purchase as much as you can afford". Consequences of an overbuy are different depending on the game version (map). But those conseqences are part of the the unit placement phase.

The official FAQ of Global added the interdiction of "intentional overbuy" - but this is subject to argue between the players and not something to be coded.

@simon33-2

This comment has been minimized.

Copy link
Contributor

commented Aug 19, 2017

I don't know @panther2 , if it wasn't for the USA facility upgrade bug, I think it would be preferred to prohibit overbuys.

@panther2

This comment has been minimized.

Copy link
Member

commented Aug 19, 2017

Indeed, @simon33-2 , the USA facility upgrade bug (triplea-maps/world_war_ii_global#4) is a point in global.

That brought me to remember our last year's discussion, especially my answer here:
triplea-maps/world_war_ii_global#4 (comment)

The addition of the prohibition of the "intentional overbuy" into the FAQ did not remove the refund for units that were overbuyed. That refund takes place during the placement phase.

So in case the player purchases (intentionally) more than he can place - and no (other) player realizes this when it occurs (during Purchase Phase), it would be hard to argue for the opponents that this overbuy had been intentional - and to agree about consequences - during Placement Phase.

In other words it would be "compliant behaviour" to not overbuy - and intentionally overbuying hoping that no one realizes this would be sort of cheating.

@DanVanAtta

This comment has been minimized.

Copy link
Member Author

commented Aug 25, 2017

An additional consideration, would be great if we had a way to indicate somewhere if over-bought units would be lost, refunded, or held over to the next turn. I don't know if we expose that property/setting anywhere at all in the UI.

@simon33-2

This comment has been minimized.

Copy link
Contributor

commented Aug 25, 2017

There is a setting? Is it a map property?

@Cernelius

This comment has been minimized.

Copy link
Contributor

commented Aug 26, 2017

I don't know if we expose that property/setting anywhere at all in the UI.

No. The only settings shown are the editable ones, and showing them all would not cover all rules, as many are either defined not with properties or have settings beside the related properties.

The mapmaker is supposed to explain in Notes what ruleset the game follows and detail all exceptions to it or provide a rulebook in Notes (like in the case of Total World War). In this case, the mapmaker should tell in Notes either what ruleset the map is following or specifically telling what happens to unplaced units, if a ruleset is not referenced or unplaced units make exception to it.

Forbidding overbuy is not advisable, because TA is supposed to support a series of rulesets not all clearly forbidding overbuy (the overbuy rules are often an obscure matter) and because you can have mobile factory units (forbidding overbuy would necessitate disabling the same for 270BC and Napoleonic Empires, as well as a few other maps, for example).

You should also notice that placement obligations are not supported, either, and those, too, vary between rulesets, and are partially obscure. For example, in V3 you are obliged to place as much as you can (that is everything, if you didn't overbuy), but the game doesn't force you to do so.

Regarding "WWII Global", to be fully rules compliant, you should totally disable the overbuy warning, because, if the engine tells you are overbuying, you can't unintentionally do it, while you should be able to make such a mistake or feign to do it. Also, the matter of other player noticing needs to be better defined as a matter of timing, as the purchase phase ends immediately upon deciding the same, starting the CM phase, thus how about if the others notice in the middle of the CM phase or even after dice are rolled? As said, this is pretty much true of any traditional games, because, playing a boardgame, you don't have anything popping up telling you are overbuying or surely stopping you from doing so.

@DanVanAtta

This comment has been minimized.

Copy link
Member Author

commented Aug 28, 2017

To clarify the proposed task:

  • have a more consistent treatment of 'overbuy' so players can know from the game engine UI how that behavior will be handled given any specific map configuration. This can have two parts:
  1. Know if a warning dialog will be presented if an 'overbuy' is requested from the purchase screen,
  2. Know how an overbuy will be handled if you override the warning (eg: units lost, or carried over, or refunded -- likely we can fold that info into the overbuy warning dialog directly)

So far looks like best route for this is to list total placement capacity in purchase window. We could potentially use that as a UI placeholder to click for more information on over-buy rules.


@Cernelius

No. The only settings shown are the editable ones, and showing them all would not cover all rules, as many are either defined not with properties or have settings beside the related properties.

We agree, the UI does not show the value of this setting nor what behavior the engine would take. The problem is that if we just simply turn off the over-buy warning in some cases without any attempt to do anything else, it makes the over-buy inconsistent and less valuable of a feature. It's argument even to delete it altogether since it's not something you can rely on.

Forbidding overbuy is not advisable

Yeah, not being suggested, thsese should be warnings since we don't always want to assume we got the placement rule counts 100% right

because you can have mobile factory units (forbidding overbuy would necessitate disabling the same for 270BC and Napoleonic Empires, as well as a few other maps, for example).

I'm not sure about that, perhaps the handling of such units could be made slightly more clever and accounted for.

You should also notice that placement obligations are not supported

Indeed, though that does get into a different topic which would need it's own coding work. There is plenty to do until these details would start to matter.

@simon33-2

This comment has been minimized.

Copy link
Contributor

commented Aug 31, 2017

If it is already possible to refund over bought units, that is the correct behaviour for the Axis and Allies games AFAIK. Definitely so for global. How do we enable this?

@panther2

This comment has been minimized.

Copy link
Member

commented Aug 31, 2017

v1: units are lost, no refund
v2: units are lost, no refund
(per FAQ: Technically (which means, in a tournament), yes. In a friendly game, tell the player he's making a
mistake and let him take it back or refund him the money. You don't want to win that way.)
v2: LHTR: units are lost, no refund
v3: units are not lost but can be placed during a future mobilization phase
v4; return units, get refund
v5: return units, get refund (in case it occured inadvertently)
v6: return units, get refund (in case it occured inadvertently)
Europe, Pacific, Global 1940: return units, get refund (in case it occured inadvertently)

@DanVanAtta

This comment has been minimized.

Copy link
Member Author

commented Aug 31, 2017

Good summary. It can vary by map. The task at hand here is to display the value of the setting in one way or another to users.

@panther2

This comment has been minimized.

Copy link
Member

commented Aug 9, 2018

The discussion has been somehow continued here: #3506

@DanVanAtta

This comment has been minimized.

Copy link
Member Author

commented Aug 9, 2018

Placement mistakes easily can shift a game, and not in a fun way, a game you are slightly winning suddenly you are slowly losing and you then get to play out for the next 8 hours to see if you can make up the mistake and not lose because of it.

TripleA is ideally a game about who plays better and less about who makes fewer mistakes. The UI should help out here.

  • calculate available placement count and display to user. When I play WaW, I found myself counting factories every turn.
  • display how overbuy is being handled, whether it is carried over, lost, or refunded
@DanVanAtta

This comment has been minimized.

Copy link
Member Author

commented Aug 9, 2018

I'd rather let this issue sit. I removed ice-box since we are reviving this problem and have some new follow up items:

  • UI change, 'Display Overbuy Rule to Game Players' #3767
  • UI change, 'Display Allowed Placement Total In Purchase Screen' #3768
  • Logic/code changes 'Correct OverBuy warning to be accurate' #3769

@DanVanAtta DanVanAtta closed this Aug 9, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
5 participants
You can’t perform that action at this time.