Allow local deployment with overlapping bonuses
I love the idea of local deployment, and the much more realistic and long-term strategy that it requires. Unfortunately, many great maps have superbonuses, which means either you can't play them or you have to hunt down all of the nested bonuses during setup and set a bunch to zero to remove the overlap (which can take an hour or so).
I bought the mega-strategy pack specifically for local dep, and was pretty disappointed by this limitation. I would love to see this feature.
That said, I'm still happy to support such an awesome game. I'm not knocking it, just hoping for it to get even awesome-er!
The issue with local deployments and overlapping bonuses comes up when you think about deploying. When players deploy an army to a territory that is part of two bonuses and they control both of those bonuses, the game would need to know which bonus you want to take the army from.
Imagine three territories: 1, 2, and 3. There’s a bonus A made up of territories 1 and 2, and a bonus B made up of territories 2 and 3. Both bonuses give 1 army per turn and therefore the player gets 2 income. Imagine a player controls all three territories (and therefore both bonuses), and then tries to deploy an army on territory 2. The game needs to know if it should allocate that army from bonus A or B.
There are a few strategies it could use to decide:
Strategy 1: It could just pick one at random. The problem is if it picks the wrong one, then the player can’t deploy to the other territory of that bonus. For example, it if picks bonus A and then the player decides to deploy their second army on territory on territory 1, the game wouldn’t let them and the player is confused and doesn’t know what’s going wrong.
Strategy 2: It could stop and ask the player which bonus they’re trying to deploy to. This is confusing to new players, weird, micro-managey, and breaks the flow of the game. It’s counter to WarLight’s idea of being a simple-to-play game when you confuse players with these kind of micro-management details.
Strategy 3: It could just pick one at random, then later if the player decides to deploy somewhere that would have been legal but isn’t because of our random choice, go back and re-allocate previously deployed armies to make the new deployment possible. I tried to write this algorithm back when local deployments was being introduced but unfortunately I could not get it working correctly and ultimately had to abandon it. It may still be possible to make this work but it needs more thought and development.
Bence Ferdinandy commented
I absolutely agree with Kris, that this should be trivial, when the bonuses are hierarchical (always deploy from the bottom of the hierarchy first) and would make a lot of maps usable!
Although the problem in general might not be easy to fix in an elegant way, there is a partial fix for plenty of maps with superbonuses, using the same strategy as you must have already implemented with "free armies" that can be deployed everywhere.
Suppose that there is a hierarchy of bonuses: if bonuses A and B overlap, then one of them (the superior bonus) contains all territories of the other (the inferior bonus). Then the armies from the most inferior bonus are deployed first. In this approach, the "free" army could be thought as coming from the most superior bonus. You could even list the deployed armies in a tree-like structure instead of a list, so that it's easy to track what is deployed and what is not.
Of course, this does not help with maps that have bonuses overlapping partially (Poland Big and the "coast bonus" comes to my mind) or maps with progressive bonuses (Biomes of America, Gotham City, Elitist Africa, etc.). However, it could be a great extension to the current system anyway.
Sean Hazlett commented
Could you implement it using an eventual consistency strategy. whenever armies are deployed to a territory which is contained within multiple bonuses simply put an "*" beside those bonuses then instead of displaying the typical "x/y deployed to bonus" change it to "?/y deployed to bonus*".
Whenever a bonus reaches its limit in its own right go back to the "x/y deployed to bonus" format and remove the "*".You're hiding some information from the user to keep the UI clean without affecting functionality.
So using your example of:
"Imagine three territories: 1, 2, and 3. There’s a bonus A made up of territories 1 and 2, and a bonus B made up of territories 2 and 3. Both bonuses give 1 army per turn and therefore the player gets 2 income. Imagine a player controls all three territories (and therefore both bonuses), and then tries to deploy an army on territory 2. The game needs to know if it should allocate that army from bonus A or B."
When a player deploys in territory(T) 2 bonuses A and B become unknown. If an army is then deployed in T1 after then bonus A's value is full in its own right and will evaluate and then subsequently B becomes known as it is no longer being effected by another bonus.
So does a super bonus of multiple bonuses count as a overlap ? Would it not just be armies gained for bonuses must be deployed in bonuses and armies gained from superbonuses could be deployed to any bonus within the superbonus?
It is easy to implement - currently we can push units from bonus, and then you can push turn income units (that is the order given by game).
WIth more bonuses (bonus, superbonus, megabonus), first you use local units (bonus), then area units (superbonus) then any bonus above this, then income units but superbonuses should have some kind of hierarchy done by map creator. For easier access when you pick the bonus (deployment phase) the bonus should be shown on the screen (zoomed or extended).
Matthew Lang commented
When making maps, the map creator could have a superbonus option that allows you to select several bonuses. The deployed armies would first come from the bonus, then the superbonus then the base armies.
I agree strategies 1 and 2 are not optimal due to the problems you mention. Strategy 3 is definitely best. Second best would be allocate as follows, starting at the top and then ditching whatever alternatives lose a check (something is true for one or more bonuses, but not for all):
1) By whatever bonus still have armies to deploy
2) By bonus size in territories (smallest first)
The last one rather than random so that it is deterministic. Players will inherently learn that "clicking first on Paris and then on Lyon works for this" even if they don't know the rule.
I think you can probably get a correct universal pseudo-code implementation of strategy 3 by going over the implementation together with others with coding experience. You've probably worked out almost every detail by now, so a fresh pair of eyes could maybe point you in the direction of why it does not work correctly. Unless you already have the right design and have made some mistake in the actual coding, that is.
Amazonian Monster commented
When in doubt of whitch bonus to allocate always choose the small one first. Most overlaped territories, in most maps, are hyperbonus, that cover complete bonus together. If they have the same size choose randonly.
Chadrick Mahaffey commented
If it's an implementation issue of not knowing where the bonuses are coming from, it might be possible to do it the same way as the "anywhere" bonuses do today. The bonuses would pull from the most local bonus first and then the others and finally the anywhere bonus.
The one thing I'd really like to see too. For some large maps it might be helpful to highlight territories you've not yet deployed to also.
Agreed. It's a shame not to be able to play any of the more fun maps with local deployment.
That would be a superb addition to the game for sure.