Cube attack

8 replies [Last post]
Kalmari Krapula
Offline
Joined: 11/19/2010

This is one of my favorite problems and I it plays a key-part in my new empire-building game. It's about attacking wooden cubes.

I have a gameboard with 54 land- and about 20 sea-areas. Mechanics in my game produce some military units, both ships and land-units, on selected areas during whole game. Every unit is marked as a wooden cube and most of these units are controlled by AI. That means there are areas with different size of armies in them and some of them are hostile toward each others. So problem is how to make an AI cube-armygroups recognaize size of other cube-group and attack them.

Of course it's not that simple. Mechanism should not be too obvious and predictable, nor too random, but consequence of random events and players (also AI players) choices. It cannot be done by cards, but instead there is a possibility of using kind of lottery for the random element.

How would you do this?

ReneWiersma
Offline
Joined: 08/08/2008
OK, here is a very simple

OK, here is a very simple solution:

Every army attacks a smaller enemy army in an adjacent area.

Combat resolution: remove one cube from each army until one army has vanishes (so, if three red cubes attack two blue cubes, the blue army dissappears and one red cube remains).

The order in which armies attack is decided by the current active player (or otherwise players take turns moving one army of their choice). Each army may only move once. This will prevent the outcome being too predictable, without making it too random.

Kalmari Krapula
Offline
Joined: 11/19/2010
AI attacking

I considered that, but I chose throwing die instead. In every area there can be some advantage for defender or attacker which increase numbers in die.

I also thought about cubes attacking adjacent area, but then I found out anoither problem, hooking. If there are three areas, A, B and C and all are adjacent to another, A and B controlled by blue human-player and C controlled by red AI-player. Blue have 3 armies in both A and B, while red have 5 cubes in C. On his turn, red AI will attack another of blue's areas, because he outnumbers it. In the following battle he destroys enemy, but lose also 3 armies and have only two of them left. Now he is easier target for blue's remaining armies than he was before attack (before: 6 blue vs 5 red, after: 3 blue vs 2 red). So this gives a slight advance for human player, because he knows when AI enemy attacks. By using die, I can add random element in battle but not in enemy strategy itself. Do you see what I mean?

For more, I wouldn't like to make AI cubes attack human players whenever it is possible or when they are overwhelming, but to make them think on strategical, operational and tactical level.

Strategical level - allies, neutral or enemy. AI players react to random events by comparing possible enemy's military power, economical resources and capacity of both mentioned to AI's own corresponding stats.
I consider this is easist one, because such stats are easy to mark and record and whenever random event say enemy declares war if.. you just check the conditions from stats. Only problem of this is to make it as simple as possible.

Operational level - where to attack, where to defend. This one is hard nut to crack, because operational planning is really PLANNING. And I haven't seen any boardgame with AI capable to plan full scale attacks. So I think I'll have to compromise here a little bit.
My idea by now is to make some objective areas for AI. When AI attacks, some objectives are randomly chosen. Now AI player will focus most of his spare units toward those targets and when he reaches most of them, objectives change (and player may get some penalties, ie. Losing units/resources). I'll try to modify some areas as "strategical regions", with some extra production or some other thing valuable to player.

Tactical level - when and how to attack, when and how to defend. This is another though one because it is about comparing strengths of armies and making decisions like whether to attack or not to attack. Players also have to observe enemy units and try to take account their goals and intension, while planning their own attacks.
So I thought it could be something like this.

- When AI attacks to objective area, he can use his units from every area adjacent to target.
> Every such area should still have half as many units as adjacent areas have enemy units, excluding the area which is been attacked.
- Fog of war: When AI's area is attacked he roll a die for every unit, except three units. When AI attacks he roll a die for every unit except four units. Every 1 in die reduce his army by one unit and every 6 in die increase it with one unit. This simulates the fog of war and uncertainty about enemy's total strength.
> After rolling units, numbers of cubes on the game board should be correct.

Example:
Human player is blue, AI is red.

There are areas A, B, C, D, E and F. C an D are adjacents to all other areas. Blue control areas A, C and E, red contol B, D and F. Blue have 6 armies in A, 5 in C and 4 in E, while red have 5 in B, 8 in D and 4 in F. Red's object is Area C. According to my idea, red can assign 2 units from area B, 3 from D and 2 from F, in total 7 units for capturing area C.
This leaves B 3, D 5 and F 2 units for defensive missions.

Before conducting combat AI rolls three dice to see complete size of attacking group.

|A 6| |B 5|
|C 5| |D 8|
|E 4| |F 4|

This is very complicated and propably have some bugs and stupidities, but I'll fix them after playtest as well as I try to simplihy whole process. Anyway how did you like it by this far?

Kalmari Krapula
Offline
Joined: 11/19/2010
Playtest committed

So I tried this AI-cubical attack of mine, and it... worked better than I first did expect. At least tactical level of combat. I also fixed my die roll combat stats to optimal. Now some countries get small bonus when fighting certain other countries. I made it in Rock-Paper-Scissors -way.

My next goal is to plan and test operational level of combat and most interesting problem there is: How on earth I force AI to choose where and how to attack. If you have even some ideas, feel free to announce it! :)

I think it would be something related to bigger regions and their keyareas. In my game every 3 to 5 areas form larger region. In every region there is two or three more valuable areas and couple not so valuable areas. Valuable areas produce more resources or gold or there can be built some extraordinary cool buildings or something else. So these keyareas could be targets of enemy armed forces. And of course I have to figure out some random elements, which make defender guess where AI is attacking. Any ideas how to make this? Or any ideas how to make it other way?

Miwne
Offline
Joined: 01/06/2010
AI-attack

A very simple approach to this would be:
- Draw colored arrows on your board in 6 different colors going out of every country/sea.
- Then you roll a die which has those 6 different colors on them.
- The side which turns up for that AI-player will attack the land where the arrow goes to.

Kalmari Krapula
Offline
Joined: 11/19/2010
More complicated

Yes, that would be simple and easy way, but what I'm looking for is something more sophisticated, which doesn't rely entirely on coincident. It would be better if defender would know possible targets but wouldn't know which one is going to be attacked.

EDIT:
I found a satisfying solution: I gave each bigger region a colour and AI attacks the region when colour is picked up. AI can only attack those regions which are enemy-controlled and regarding to AI's technology he can and will attack several targets. How ever, because regions divide in 3 or more areas, AI will attack to the most valuable area that is under enemy control and adjacent to AI's own territory. Also, if area has at least twice as many units as attackgroup would be, AI attacks second valuable area instead. I'm not sure what AI should do if there are some empty areas adjacent to AI's territories. But let's figure it out.

Offline
Joined: 02/08/2011
That sounds pretty cool.

That sounds pretty cool. Maybe a bit complicated but that's ok. I was thinking of how you could decide when and where the AI attacks or even who they might ally with.

Set up an Aggro system. Each AI will have a varied Aggro towards each other AI and player. This is based on who attacked them, who has the largest resources/armies/territory control. Assign a number to it with tokens or something and if a card comes up telling that AI to attack it attacks first it's highest Aggro target, or in the case of ties, use the color method above.

If the AI finds that attacking the highest Aggro enemy would be suicide, because of outnumbering or something, maybe that AI attempts an ally action. Instead of attacking the surperior enemy, the AI gives a bribe of some resources and if accepted that player becomes their temporary Ally, all Aggro points now move to the Ally instead of Aggro. Now when a choice to attack is needed, and the AI has Allies, check the Highest Aggro of the AI and if it makes sense to attack, if it does, then attack, if attacking would be suicide, check your Allies highest Aggro, if the AI can attack their enemy, do it. Otherwise do the color method.

Kalmari Krapula
Offline
Joined: 11/19/2010
that sound cool

I've been away for some time now, thanks to my new job, but now I'm back..

That sounds cool to me and I'll try it with my game. :) I will report here when I've playtested it.

Kalmari Krapula
Offline
Joined: 11/19/2010
Playtesters

I've been away from this subject for a while, but now I'm again working on it and this time I need your help little bit more than usually.

I'm seeking playtesters for this cubical warfare mechanic, in order to improve and perfectionize it. I created a task where there are three factions fighting each other. Now Your job is to play it (at least) twice, first time just to conduct AI's operations and second time play as one of the factions and conduct AI's movements.

After playing, post your anwers (and opinions) for Evaluation -section here.

Task will take 1 or 2 hours to complete.

If interested, send me PM.

Yours,
Kalmari