Hard AI Feedback and Priorities

classic Classic list List threaded Threaded
49 messages Options
123
Reply | Threaded
Open this post in threaded view
|

Hard AI Feedback and Priorities

redrum
Administrator
This post was updated on .
Now that the new Hard AI has been released in 1.8.0.5, I'd like to get feedback from the community on their experiences and what the priorities should be moving forward. Please vote in the poll below by choosing 3 priorities and also leave a post describing why you think those are the most important. Attaching saved games that show the AI not playing well and how to improve it are welcome. Feel free to also add your own priorities if they aren't listed.

Latest poll to vote on Hard AI priorities: http://poll.fm/58pgo

First poll led to the following changes: http://poll.fm/545zi
1. Improve Performance on Large Maps (complete for now)
2. Value Exposed Units When Attacking (complete)
3. Improve Air Units Landing Safely (complete)
4. Scrambling (complete)
5. Transport movement and defense  (complete)
Reply | Threaded
Open this post in threaded view
|

Re: Hard AI Feedback and Priorities

Veqryn
Administrator
I would say that my top 3 are:
valuing exposed units (determining whether to attack with min or max or middle units, is a part of this I believe)
transport movement and transport defense
national objectives

Please contribute to the TripleA 2013 donation drive:
http://tripleadev.1671093.n2.nabble.com/2013-TripleA-Donation-Drive-tp7583455.html
Reply | Threaded
Open this post in threaded view
|

Re: Hard AI Feedback and Priorities

eurofabio
In reply to this post by redrum
national objectives  +1

evaluate city victory points (is not in the poll)

Value Exposed Units When Attacking
Reply | Threaded
Open this post in threaded view
|

Re: Hard AI Feedback and Priorities

captaincrunch
Your poll link goes to a Secure Connection Failed page but whatever, I'll go with Veqryn's choices
Reply | Threaded
Open this post in threaded view
|

Re: Hard AI Feedback and Priorities

Cernel
In reply to this post by redrum
What about using a value/time ratio in defining priorities; instead of only value or popularity?

Like, for each thing, you assign an estimated working time for the same; then you list the things by the number of votes / estimated time ratio.

I would imagine a thing that it is half as important as another one, but would take 15 minutes to do, against 6 months, would be better done first.

Like, if you can do 100 things of value 1 each or 1 thing of value 2 in the same time, I would do the 100 things first.

This is how normally logistics work.

(of course, since it is you doing the work; it is always you deciding what to do, at the end)

(I'm not suggesting adding the estimated times in the poll and I suggest not specifying them at all till the poll is closed; since that would bias people)

Cheers
History plays dice
Reply | Threaded
Open this post in threaded view
|

Re: Hard AI Feedback and Priorities

redrum
Administrator
@eurofabio - Victory city points is a good one that probably should be added to the list of things to eventually implement but probably won't win the poll.

@captaincrunch - Not sure why the link doesn't work for you but seems fine to me.

@Cernel - I plan to do exactly that but didn't want to put LOE in the poll. I figure I'll see how things end up being ranked then adjust based on how difficult/time I think they'll be to implement. In general, for very small things (<1 hour) I'll usually just fix/implement them. Anything larger than that should be listed. A good example of this is national objectives which is so large that I may need to actually break it into a couple different points (my obj, allied obj, enemy obj, etc) and move it down in priority because of the LOE to implement it is so large.
Reply | Threaded
Open this post in threaded view
|

Re: Hard AI Feedback and Priorities

Responsible Voter
Ok, I'll add some reasoning for why I vote for scrambling:

It seems most of the other options serve primarily to make the AI better at what it already does. (Having a better AI is better of course, so all options are worthy and honorable.) But the lack of consideration of scrambling make a lot of maps simply unplayable when you can exploit the AI both on attack and defense for not considering scrambling.

Add to that the fact that scrambling is part of the more advanced or more modern maps and you have a strong bias for the old maps that players are already playing. If there is a desire to add incentives for players to try newer maps then making them accessible through AI-play seems natural IMO.

The AI is already very good at what it does, the most glaring fault right now is what it does not do. While I love your work so far and hope you get around to implementing all the options I really hope you do scrambling first.
Reply | Threaded
Open this post in threaded view
|

Re: Hard AI Feedback and Priorities

captaincrunch
Ya I don't know why I can't get to the poll page but I gave my choices in a post here anyways.

I don't get any bar at top of screen asking me to allow this page and I get this message as I told you (I use Firefox browser);





"Secure Connection Failed

An error occurred during a connection to polldaddy.com. The OCSP response is not yet valid (contains a date in the future). (Error code: sec_error_ocsp_future_response)

    The page you are trying to view cannot be shown because the authenticity of the received data could not be verified.
    Please contact the website owners to inform them of this problem."
Reply | Threaded
Open this post in threaded view
|

Re: Hard AI Feedback and Priorities

redrum
Administrator
Current results:
Valuing Objectives 5
Scrambling 4
Value Exposed Units When Attacking 4
Improve Air Units Landing Safely 4
Improve Performance on Large Maps 4
Enemy Turn Order and Defending Against Multiple Attacks 3
Allied Turn Order and Attacking To Weaken Defenses 2
Improve Transport Movement and Defense 2
Purchasing and Landing on Carriers 1
Strategic Bombing Raids 1
Unlimited Production (V1 rules) 1
Improve Determining Whether to Attack With Min vs Max Units 1
V3 Rule Around Subs Not Blocking Naval Movement 0
V3 Rule Where Fighters Don't Defend Against Subs 0
Improve AA Gun Movement 0
Defending Capital Against Multi-turn Amphib Attacks 0
Improve USA Purchases on Great War 0
Other:
- AI runs faster! (this is included in above choices)
- Let it purchase units for China Global 1940 (this has been fixed)
- AI_Factions (solo play) crashes old games (good idea though actually outside of the AI code itself)
- Handle Max Builds (not sure what this refers to)
- Evaluate city victory points (I'll add this to the list but I don't think its high priority)

So based on the above results, I take the top 5 as they all have 4-5 votes and discuss them in more detail with LOE from very low to very high:

Valuing Objectives 5
LOE: Very High
This is probably one of the most time consuming tasks from the list as it has many different components. Most likely I'll first tackle just taking into account the AI nation's own objectives and not allied/enemy objectives. There also may be some objectives that are very hard to consider as they are pretty flexible so I'll probably initially focus on the most common maps with objectives (WW2V3, etc).

Scrambling 4
LOE: High
This will take some time since I actually need to learn exactly how scrambling works and then understand how the engine handles it. There are really two different portions of this with the first being handling it when the AI attacks to consider that the enemy could use scrambling and the AI using it on defense to try and defend when appropriate.

Value Exposed Units When Attacking 4
LOE: Low
This shouldn't be too hard but I'll need to be careful not to make the AI too conservative as that tends to be worse than a little too aggressive.

Improve Air Units Landing Safely 4
LOE: Medium
The biggest issue with this is when the AI attacks it doesn't consider if it can land safely. It only checks for landing in non-combat move which in many cases is too late and there aren't any safe options. I'll need to add some logic to determine which territories are definitely safe and try to minimize air unit movement usage so they have more remaining to try to find a safe territory.

Improve Performance on Large Maps 4
LOE: Never Ending
I don't think the AI will ever be as fast as people would like it to be. That being said on some large maps its pretty much unplayable. I really need example save games that run really slow so I can test them. This will be more of an ongoing thing rather than most of the other tasks.

So based on LOE and votes here is my ranking:
1. Improve Performance on Large Maps
2. Value Exposed Units When Attacking
3. Improve Air Units Landing Safely
4. Scrambling
5. Valuing Objectives

I'm currently working on taking a pass on performance improvement since a few people have submitted very slow games. I'll then plan to address the remaining tasks by their rank.

Thanks to all who voted. Any feedback is appreciated.
Reply | Threaded
Open this post in threaded view
|

Re: Hard AI Feedback and Priorities

Eschelon
redrum wrote
I'm currently working on taking a pass on performance improvement since a few people have submitted very slow games. I'll then plan to address the remaining tasks by their rank.

Thanks to all who voted. Any feedback is appreciated.
Apologies.  I've been busy with another project.  I'll post up a save game when I get a chance.
Reply | Threaded
Open this post in threaded view
|

Re: Hard AI Feedback and Priorities

Eschelon
Here's a 270BC savegame, towards the end of Round 12 (2 player, 6 AI).  It should illustrate the typical AI calculation times for this map.270bc012815.tsvg
Reply | Threaded
Open this post in threaded view
|

Re: Hard AI Feedback and Priorities

redrum
Administrator
@Eschelon - I loaded your save game, skipped the 2 human turns, and let the AI turns run for 1 round. I did this twice and here are the durations for the AI phases in milliseconds with the latest development version:

RomanRepublic time for nonCombat=false time=8640
RomanRepublic time for purchase=12662
RomanRepublic time for nonCombat=true time=10706
RomanRepublic time for place=1127
GreekCityStates time for nonCombat=false time=1608
GreekCityStates time for purchase=18898
GreekCityStates time for nonCombat=true time=17595
GreekCityStates time for place=2606
Macedonia time for nonCombat=false time=2253
Macedonia time for nonCombat=true time=2047
Egypt time for nonCombat=false time=2768
Egypt time for purchase=6282
Egypt time for nonCombat=true time=5481
Egypt time for place=504
Parthia time for nonCombat=false time=5554
Parthia time for purchase=6365
Parthia time for nonCombat=true time=5383
Parthia time for place=750

RomanRepublic time for nonCombat=false time=8555
RomanRepublic time for purchase=12419
RomanRepublic time for nonCombat=true time=10714
RomanRepublic time for place=1124
GreekCityStates time for nonCombat=false time=1623
GreekCityStates time for purchase=18899
GreekCityStates time for nonCombat=true time=18195
GreekCityStates time for place=2591
Macedonia time for nonCombat=false time=2418
Macedonia time for nonCombat=true time=2090
Egypt time for nonCombat=false time=2460
Egypt time for purchase=6591
Egypt time for nonCombat=true time=5492
Egypt time for place=501
Parthia time for nonCombat=false time=5226
Parthia time for purchase=6680
Parthia time for nonCombat=true time=5388
Parthia time for place=750

So the average turn time for each nation is approximately:
Rome - 33s
Greeks - 40s
Macedonia - 4s
Egypt - 15s
Parthia - 18s

Is this about what you are seeing? I think this is pretty reasonable, not fast but playable. Rome and the Greeks are slow just because of the number of units they have ~250 each. In general, if each AI turn is under 1 minute I'm pretty satisfied with that.

Here is a save that shows much slower performance on a larger map with many more units: Test_AI_Slow_Noncombat.tsvg
Reply | Threaded
Open this post in threaded view
|

Re: Hard AI Feedback and Priorities

Zim Xero
This post was updated on .
Its your AI and your doing all the work... but I believe you should aim for no AI ever taking over 20 seconds.  In games with 20 AIs... the human player will mentally check out, forget what they were doing, and quit the game out of boredom before it finishes.  Future coding and added algorithms are going to bloat the AI even further.  While I respect the "Big Blue" ultimate strategy side of AI, I really feel the commercial Attention Deficit marketing side while playing.... the purpose of AI is to get stuff done magically, marvelously,  without impeding the engagement of the player.
'thats the way it is' makes it neither desireable nor inevitable
Reply | Threaded
Open this post in threaded view
|

Re: Hard AI Feedback and Priorities

redrum
Administrator
@Zim Xero - Valid point. The numbers I posted include the time it took to actually move all the units on the map as well with an AI pause duration set to 50ms. So for example, the Greeks noncombat move took around 18s in my previous test. Only about 3s of that was AI calculation time with the remaining 15s being the time it took to actually move all the units (~250*50ms=12.5s + a few seconds for the engine to validate all the moves)!

Here are the same results with AI pauses removed:
RomanRepublic time for nonCombat=false time=9538
RomanRepublic time for purchase=2995
RomanRepublic time for nonCombat=true time=1934
RomanRepublic time for place=31
GreekCityStates time for nonCombat=false time=1688
GreekCityStates time for purchase=2984
GreekCityStates time for nonCombat=true time=2418
GreekCityStates time for place=15
Macedonia time for nonCombat=false time=2388
Macedonia time for nonCombat=true time=2248
Egypt time for nonCombat=false time=1934
Egypt time for purchase=2668
Egypt time for nonCombat=true time=2184
Egypt time for place=16
Parthia time for nonCombat=false time=3091
Parthia time for purchase=2527
Parthia time for nonCombat=true time=1686
Parthia time for place=16

So the average turn time for each nation without pauses is approximately:
Rome - 15s
Greeks - 6s
Macedonia - 4s
Egypt - 7s
Parthia - 7s

So this is essentially the time it takes the AI to do its calculations and for the engine to validate all the moves, purchases, and placements. Personally I think those times are pretty good though there are definitely larger maps that are slower.

So I think some of the questions are:
- Do players care to watch the AI moves or should the AI unit movement happen instantaneously (remove pauses and do all moves at once)?
- Or should the units be grouped together sort of like the Medium AI does it rather than moving 1 at a time to speed things up so its somewhat watchable?
- Any particular reason why you picked 20 seconds and what should be completed in 20 seconds? AI calculations? Entire AI turn including moves? On some large maps just moving the units takes over 20 seconds with the pause duration set to 50ms.

PS - The min pause duration a player can set is 50ms. I'm not sure why that limit exists but it might have to do with the interface needing the time to update. Maybe Veqryn can clarify?
Reply | Threaded
Open this post in threaded view
|

Re: Hard AI Feedback and Priorities

Zim Xero
This post was updated on .
In your example, 15 of 18 seconds is caused by intentional delay, with a purpose of allowing the player to see AI moves.  I don't watch the AI move ever.  Instead, I study the map after the AI has moved.. the same as when I play humans.. I prefer to NOT see the move.

This means 87% of AI time is being spent on a forced setting which could vary between users based on taste and playing style or map type.

I suggest either allowing the 50ms default time to be manually changed in the top menu... or allow maps to override the default AI pause time with a command in the map properties file such as:

     map.aiPause=50

If this can be done, large map performance/AI turn-time becomes a dead subject...  and focus can return to ability and features.
'thats the way it is' makes it neither desireable nor inevitable
Reply | Threaded
Open this post in threaded view
|

Re: Hard AI Feedback and Priorities

redrum
Administrator
@Zim Xero - Exactly. I agree but I'm not sure if setting it to 0 will screw other things up so we'll need Veqryn to weigh in. That being said, in 99% of situations the speed will be plenty fast enough but there are still some maps that the AI takes a long time such as the one I posted above just because the sheer number of units.

This experiment also made me realize why purchase phase is so slow. The purchase phase simulates the other phases until place so it can make a best guess at what units it will actually need. This simulation however was actually calling the same methods that have the AI pauses when moving units. So even though the simulation is done in the background it was still pausing for each unit it placed! I just added some logic to not pause when simulating and this improved the purchase phase time significantly.

Here is the new results with the 50ms AI pause:
RomanRepublic time for nonCombat=false time=7849
RomanRepublic time for purchase=6073
RomanRepublic time for nonCombat=true time=10409
RomanRepublic time for place=1115
GreekCityStates time for nonCombat=false time=1622
GreekCityStates time for purchase=3407
GreekCityStates time for nonCombat=true time=18073
GreekCityStates time for place=2582
Macedonia time for nonCombat=false time=1943
Macedonia time for nonCombat=true time=2000
Egypt time for nonCombat=false time=2667
Egypt time for purchase=2718
Egypt time for nonCombat=true time=5389
Egypt time for place=489
Parthia time for nonCombat=false time=5267
Parthia time for purchase=2828
Parthia time for nonCombat=true time=5270
Parthia time for place=754

You can see that purchase time are much lower now since they don't consider the AI pause duration.
Reply | Threaded
Open this post in threaded view
|

Re: Hard AI Feedback and Priorities

Cernel
This argument is an old one, I've touched on several occasions, making various examples.

Veqryn already said that he considers 50 ms being instant, and I already contested it, making a bunch of examples, (suggesting 10 ms as minimum and 250 ms as default).

Duno if there are other reasons for not going under 50 ms.

But, as I've already said, I merely don't see the point of having hundreds and hundreds of units stacks; so, I really think that each mapmaker should balance his own maps so that the stacks will rarely go over the 50 units. Meaning that I consider maps having normally 100+ units stacks being not properly balanced (the bigger the map, the less the income per territory / cheapest unit cost should be; of course, many other things have influence, mostly by determining the level of attrition).

So, I agreed with Veqryn that 50 ms is almost instant for properly made maps; but, since we have a lot of maps that play out with hundreds units stacks everywhere, as normal, I suggested 10 ms as minimum.

As I've already said, moving 1 unit at a time (like now) is clearly the best, visually, in my opinion, as long as the stacks are rarely over 50 units (which I think should almost always be the case) (so, I wouldn't change the current nice behaviour of moving 1 unit each, just to make crazy maps with 100+ units stacks playable).

Again, we have a lot of maps that turn into 100+ units stacks everywhere and a lot of people that seem to like that sort of thing (for reasons I don't understand); so, just my opinion, as always.

Anyway, whatever, I don't really care, since I almost never play with AI (aside from giving to AI one or some players of a FFA); I just felt like recalling what I already said, since the issue seems resurfacing.

What about a simple poll with the 3 options "1 unit at time / whole stacks at time / all instant" for the AI loving people to choose from?

Anyway, if possible, I think that the best would be keeping the 50 ms as minimum (250 ms default) and single unit movement, like it is now, and having a checkable box (unchecked as default) for making all instant (all moves of a same phase made instantly in 1 shot).

Cheers

p.s.: Overall, it seems to me that currently the AI is very fast. You really need to have insane numbers or dimensions for having significant delays. Probably, more than making the AI faster, it is needed to make sure that people understand how to set their assigned RAM at 2+ GB (I can tell you that I believe that currently only less than 5% of our users set the memory; mostly just keeping the default and way under-utilizing their computers; which is kind of a waste).
Also, for the next stable, I suggest having 2 GB assigned as default (max up to 4), and leaving the, probably very few, people for which such level is too high to have to reduce it themselves (no big deal).

EDIT: I know that, if it is too much, you have to manually change the value in "system", which may be hard for some users; but, still, I think 2 GB default would be better, overall, since almost noone actually increases his RAM, ever, AFAIK; and most people never realize that, and how, they can do it.
History plays dice
Reply | Threaded
Open this post in threaded view
|

Re: Hard AI Feedback and Priorities

Eschelon
In reply to this post by redrum
When you post up a new build, I'll try it again and comment on the improvements.

I'm seeing significantly longer times than what you posted, but then I only have a dual core 2.2 GHz processor (with 4 GB of Memory).  Dunno what y'all are using.

{rant mode on - bear with me}

Comparing the times for this AI vs Wisconsin, yeah Wisconsin is significantly faster when running the two AI's side by side.  Admittedly, Wisconsin has a simple algorithm for purchases while your AI is actually thinking about what it wants to build.  

But this is why I'd like to see the other AI's at least have some simple stuff fixed at some pont (broken tags, maybe slight upgrades in the purchases department regarding factories and such).  This way, players that are looking for a faster game can still choose a less robust AI for pretty much any map without any significant downsides (other than difficulty).  

Of course, at this point Wisconsin will always be a land-only AI, which makes it much less useful on a map with naval units - that'll never change of course because we now have the Hard AI, and I'm not suggesting someone spend hours/weeks trying implement the 'rest' of the Wisconsin AI.  But I still think that the 'broken stuff' should get fixed, if they are fairly easy fixes.  As I've pointed out repeatedly, Wisconsin as a LandAI worked well as of 1.3.2.2, and I'd personally like to see it function at the same level under 1.8.0.6 at least.

Also, the AI's are essentially the way TripleA implements difficulty levels.  Start with the Easy AI, then as you get a hang of things you can pick the harder AI's.  If the easier AI's are each 'broken' in some fashion due to changes in tag implementations and such, that can be a 'game breaking' issue.

My intent in mentioning this here is not to beat the dead horse, but simply  to make it a little more clear why it is important to not just simply 'toss' the other AI's aside completely.  

Once you get the Hard AI more or less where you want it - there is currently still lots of work to do with your AI of course, so I'm thing a few months down the road - I for one would appreciate you applying what you learned to the other AI's (Moore, etc.) since you have an very intimate familiarity with how the AI's are implemented in TripleA.  You already know how to 'fix' the easy stuff, so at least keep this in the back of your mind for consideration at a later date.

{rant mode off}

I'm very happy with the progress you've made with the Hard AI.  TripleA is much better for it, and I'm using it regularly these days (I wouldn't have bothered to update my own map otherwise).  But as Zim pointed out, the more that players end up 'zoning out' between turns, yeah that can be an issue.  Plus, you may lose track of what you are doing between turns if you are playing solitaire, surfing the net, or whatever waiting for your next turn.

To Zim's suggestion, a simple fix might be to add a toggle to your AI that eliminates the 50 MS delays, or that allows you to adjust any 'built in' delays which the AI uses individually (you have one of these already as I remember).  That way, people with less robust systems can dial these down as much as they want, and tailor it to their unique tastes.

And one thing that the Wisconsin AI does is allow you to adjust how many ms it spends on each aspect of it's calculations, and also how many 'passes' it does when running combat calculations (i.e. how many times it re-runs each combat simulation before commiting to the actual move to get a feel for the 'average' result that will occur).  

Your AI approaches this situation a little differently, so I'm not sure how much you can 'dial in' r.e. how much time the AI spends on the various aspects.  But if you have some 're-run and compare' things happening in the background, that might be worth looking into.  If there are such opportunities, this might help players looking for faster play times on larger maps, that still want to use your AI if possible.


Also, to Cernel's comment on the the unit count thing.  On larger maps with lots of territories, you most certainly WILL have large unit stacks in the later game (hundreds of units aren't that unusual).  While I took steps in my own map design to reduce the 'stack of doom' sizes through build limits and economy changes (units cost roughly twice as much on my own map as they do in 270BC, which is the 'baseline' I used when designing my map), I wouldn't want to restrict other map builders, if their vision is to have lots of units.  

More units helps even things out a bit if you aren't a fan of low luck (less units means a greater chance that a few bad rolls will devastate your forces, or the AI's for that matter, lessening the importance of skill).  I'm not a low luck fan myself (we aren't playing chess here), and I like setbacks to keep me on my toes, but they shouldn't completely ruin the game in the process.

Fortunately, the HardAI does a much better job being aggressive in the early game, which helps keep unit stacks down - it doesn't 'wait around' and hoard units (at least not nearly as much).  I'm noticing much lower unit counts on the 270 BC map with the Hard AI versus the other AI's in the mid to late game.  Same for my own map.  Soooo, very nicely done!

Keep up the good work!


Reply | Threaded
Open this post in threaded view
|

Re: Hard AI Feedback and Priorities

Eschelon
Hey, on another note Redrum, what is your AI doing r.e. fixed defenses currently?  Does it consider them?

Not many maps have these (at least 1 WW2 map, LOTR, my map as examples), but they do have some value, if priced appropriately.  Just curious as to your thoughts on these.
Reply | Threaded
Open this post in threaded view
|

Re: Hard AI Feedback and Priorities

redrum
Administrator
@Cernel - Yeah, I know we had this conversation months back but figured its a good time to revisit it. Originally, I thought 50ms was fast enough but now that I've tested on some of the larger maps I think it should be lower. An example would be if I have 500 units * 50ms = 25s to move! That just seems way too long to me especially for people that don't care to watch the AI move. If we don't want to allow 0ms then I would suggest 5ms or 10ms as a minimum.

I also agree on the memory settings since most people have no idea how to change them or what to change them to. I think 2GB should be the default that it strives to set and have logic to recognize that if that's too much then just set as high as possible.

I actually like the idea of creating a poll to see what the general consensus is. I personally never watch the AI moves and just look at the final result so would prefer instantaneous.

@Eschelon - So you must have a pretty old machine, do you see 2 or 4 CPUs when you open task manager? Most people now have 4-8 threads and 4-16 GB of ram. I personally have an i7 with 8 threads and 16 GB of ram so I'll definitely see better performance. For the most part, number of threads and memory are the things that matter most.

In regards to other AIs, I would actually like to obsolete them all besides cases that you want a brain dead AI such as for barbarian or zombie nations or for beginner players. That way they aren't used much and if they don't quite handle all the rules it doesn't really matter much. To make this happen, the Hard AI must be able to handle at least everything the other AIs currently handle and be fast enough that players don't want to switch to the old AIs.

I can eventually add settings to increase speed and decrease intelligence that would be adjustable by the player. I have some logic that already does this automatically as the number of units in battles increases, the AI simulates these battles less to save time.

For fixed defenses, it considers them when attacking/defending territories but currently won't purchase them. I remove all 0 movement units from purchase consideration right now. I would like to eventually add logic to handle them but since few maps use them and even on these maps they aren't purchased that frequently its low priority. Essentially, the only time you want to purchase them is when you can't buy enough regular defense units to hold a territory. I'll add this to the list of things to implement.
123