<< Back to Warzone Classic Forum   Search

Posts 21 - 40 of 56   <<Prev   1  2  3  Next >>   
WarLight AI Challenge 2 is live: 12/19/2014 22:54:10


Norman 
Level 58
Report
Uhm..... maybe you uploaded it the wrong way. There is a folder called 'src' that contains all source files. Don't zip that folder but instead open that src-folder and then mark all the contained subfolders and zip them.
WarLight AI Challenge 2 is live: 12/19/2014 23:02:43

Hennns
Level 58
Report
ah, that worked; thanks :)
WarLight AI Challenge 2 is live: 12/20/2014 20:55:35

GreenTea 
Level 60
Report
From version 6 migrated to 16% luck & straight round.

Nearly break my brain trying to implement correct formula to calculate how many armies are killed which
take into account luck modifier (and then chance to capture region with given count of defending/attacking armies).

Now expand should be more effective, since on this settings 3 armies always kills 2 defenders.

Edited 12/20/2014 20:56:09
WarLight AI Challenge 2 is live: 12/21/2014 18:54:20


Norman 
Level 58
Report
I see many bots for the second challenge but very little talk about strategies. Are you all sitting in your dark cellar working on your bots and with a security camera to prevent other players from stealing your ideas? To be honest, I haven't really started programming my bot yet since I was thinking about the general drawbacks of my bot for the first challenge and how to avoid them.

Here are my thoughts:
My bot SupremeDalek worked extremely easy. I gave each region a value based on a ton of heuristics (distance to SuperRegion,...). Then all I did was keep attacking / defending the regions with the highest value until I ran out of armies. This worked extremely well and I believe that when the game opened up (many important borders to the opponent) my bot was the best. Since with the new challenge the games are far more open I could just copy my old code and get some good results.

However my old approach had some limitations. Let's say we are bordering an opponent SuperRegion at present:
- Gaining another border (border region = high priority region) isn't worthwile since we already are bordering him.
- If we decide to break the SuperRegion directly then the value of the other regions (bordering regions and subregions of the SuperRegion) should be adjusted since we don't need them now.

My new approach works as following:
My bot thinks in the term of 'tasks'. A high priority task is, for example, to directly break a SuperRegion or to complete a bonus. The tasks get priorized due to some heuristics. Then my bot tries to fullfill the highest priority task (or the second highest if not enough armies,...). Each time when my bot fullfills a task he re-evaluates the whole board so regions get different values and some tasks might disappear while other tasks occur. If we complete a SuperRegion for example then a new task is to defend that SuperRegion from getting immediately broken. When calculating the needed moves to fullfill a task my bot makes heavy usage of the region values. When he breaks a SuperRegion he will, for example, try to break the region with the highest value first. This helps making very smart moves with little complexity involved. The region with the highest value might, for example, have this higher value because it borders another opponent SupeRRegion.

Edited 12/21/2014 18:56:42
WarLight AI Challenge 2 is live: 12/22/2014 12:24:26

GreenTea 
Level 60
Report
After watching of games of GreenTea currently I see 2 main issues. Firstly, it appears that expand is sometimes has more priority then fighting with enemy. Especially on start of the game. GreenTea could relatively nice expanding and fighting, but mechanism of what is more important in this moment is completely absent. Currently bot prefere fight over expand. Another current 2 top bots (Pinky and Anila8) prefere expand over fight. This tacktics could give more advantage from start of game, and then no metter how bot good in fighting - its defeat.

But I belive its needed to find bablance between expand and fight moves.
I plan to implement it in next way:
- For given current income N we calculate all possible expand turns with income from 1 to N, saving scores for each expand turn.
- For given current income N we calculate all fight turns with income from 1 to N, saving scores for each fight turn.

Then we select pair of expand turn + battle turn, where sum of income is exactly N and where their sum scores is maximized. Hardest part here is to find right score measurement for expand and fight turns.

Second issue is picking territories. During picking bot should take into account where enemy is already picked. Also it should select combos (where it is possible to finish bonus in first turn) if its possible, and put some picks near enemy combos to break them more easily during game.
Also if my pick is near bonus where enemy has combo bot should try to attack it in first turn, to prevent captureing of it.

Edited 12/22/2014 12:43:50
WarLight AI Challenge 2 is live: 12/22/2014 13:08:01

{rp} pedrito 
Level 48
Report
Haven't started coding yet, but soon!! Can't wait. This competition look awesome, I have so many things in mind that I thought about doing for the first one and that weren't actually useful (because the strategic options were so limited on small earth map).
Actually I did code a tiny bit, I corrected my bot from the first challenge to check for wastelands during starting picks, and to return them in the proper format. Just to see how he would perform, though it's wasted time because I'm starting the new bot from scratch.
WarLight AI Challenge 2 is live: 12/22/2014 14:31:33

GreenTea 
Level 60
Report
Norman: I think main problem with task will be lack of flexibility. For example what if better for given income 5 use 2 armies on 1st task (on expand) and 3 armies on 2nd task (on battle). If bot consider that expand task has more priority it can use all 5 income on it.
WarLight AI Challenge 2 is live: 12/22/2014 15:14:50


Min34 
Level 63
Report
Props to all of you guys, but I just saw a game between Pinky and Anila8. After a while Anila had some territories in the middle of Pinkies bonuses. Neither bots seemed to care to much and deployed most of their armies on the edge (litteraly almost the edge of the map; Anila had been driven back a lot). Pinkie could`ve lost a lot of income if Anila had decided to deploy in the middle of all his bonuses. Maybe something to look at ;)
WarLight AI Challenge 2 is live: 12/22/2014 17:10:42


Norman 
Level 58
Report
@GreenTea:
The armies problem can be dealt with. When I calculate such a task I always give a maximum amount of armies for deployment as a parameter.

@Min34:
The current bots aren't very sophisticated yet. For example the serious bots know where the opponent has his bonuses and know his income. If you see them playing passive this is probably because they suspect the opponent to deploy his full income on each and every territory.
WarLight AI Challenge 2 is live: 12/22/2014 23:24:25

GreenTea 
Level 60
Report
Norman: ok. What if same task have several ways to be executed. For example could be thousand ways to capture some bonus. How do you plan to find the best? Using some sub tasks and sorting them? Could be nice recursive idea if so.. Tasks are good way to decompose problem on smaller pieces. Also execution of separate tasks could be more easier to cover by tests, then one monolito bot.
WarLight AI Challenge 2 is live: 12/23/2014 13:38:28

{rp} pedrito 
Level 48
Report
On tasks:
My bot for the first competition was task based, and the new bot will be too. The way I see it, a break-bonus attack is essentially different than a complete-bonus attack, and therefore needs to be set up differently.

The tasks that I used were:
-defendBonus
-breakBonus
-breakRun (send a stack to break bonuses that I don't border yet)
-preventBonus
-destroyArmy
-completeBonus
-exploreBonus
-moveReinforce
-joinStacks

Each of the tasks were set up differently and given a priority. Then at the end the bot would sort the tasks by priority, allocate armies and execute the best ones.
To avoid the army problem GreenTea mentioned, each Task object has a minimum_required_armies and maximum_useful_armies field.
Also, Tasks have a delay attribute, the lower the delay the earlier they get executed during the turn.

I ran into some problems because I didn't anticipate properly, and my code was too ugly by the time I got there couldn't fix them. Also, I never used heuristics, territory values and influence maps. I've learned a lot from Norman's posts about this subject and pedrito 2.0 is going to make ample use of them.
WarLight AI Challenge 2 is live: 12/23/2014 15:20:10


Norman 
Level 58
Report
To be honest, I thought all other bots would think in terms of something like 'tasks' (or how the bot creators call it) and my bot was the only one who just kept hitting the regions with the highest integer value.

@GreenTea:
Norman: ok. What if same task have several ways to be executed. For example could be thousand ways to capture some bonus. How do you plan to find the best?
Well, capturing a bonus isn't such a good example. Capturing it with the least amount of deployment involved is an optimization problem that my bot solves. Just looking at this one particular task my bot probably always finds the best solution while it's possible that it's not the overall best solution since he uses armies that could be used for another task.

For the other tasks like breaking a bonus there is no real best solution since it depends on what your opponent does. Here my bot always looks for the region with the highest value first and tries to break there. Other bots look for the region with the least amount of opponent armies first but this is highly exploitable behavior. As I said, since there is probably a reason that this region has a higher value than the others, hiting this high value region will probably open up a whole bunch of new opportunities.
WarLight AI Challenge 2 is live: 12/24/2014 09:10:09

GreenTea 
Level 60
Report
WarLight AI Challenge 2 is live: 12/24/2014 09:19:43

GreenTea 
Level 60
Report
You have nice run now Norman.

Guys, what do you think, if everybody of us after some major update will post here small relese notes about what was changed in your bot?
WarLight AI Challenge 2 is live: 12/24/2014 17:09:56


Norman 
Level 58
Report
http://theaigames.com/competitions/warlight-ai-challenge-2/games/549a795c4b5ab240b7148565
epic game :)

A Java bot that attacks the opponent stacks with 1 and puts all armies to one place? Looks like I almost lost against my own Starterbot.

You have nice run now Norman.
At present I don't care to much about wins / losses. I wrote some tasks and my current bot is a 'showcase' of those tasks but I didn't integrate them in a meaningful manner yet. However I placed some of the more aggessive tasks (BreakSuperRegion, TakeSuperRegionOverFromOpponent) more prominently so that's why at present you see this aggressive behavior.
WarLight AI Challenge 2 is live: 12/25/2014 02:58:12

Hennns
Level 58
Report
Guys, what do you think, if everybody of us after some major update will post here small release notes about what was changed in your bot?
Sounds like a good idea, but I think only a few on you are on a level where it'd be interesting currently.(e.g. I managed to not overkill neutrals (unfortunately the bot currently doesn't even deploy the saved armies, but I'll fix that:P).I'd love the hear how you guys improve though :)

Also another thing that isn't mentioned yet, since the map sometimes creates Islands that are only connected on a few territories, controlling a whole Island would often mean the possibility to have several easily defended superRegions. Thus it could be important for picking and/or eliminating your opponent from one. However I'm at present unsure about how it's best to identify them (if any), and have far more basic behaviors to code atm. Thought it might open an interesting discussion though.
WarLight AI Challenge 2 is live: 12/26/2014 18:52:50


Norman 
Level 58
Report
Also another thing that isn't mentioned yet, since the map sometimes creates Islands that are only connected on a few territories, controlling a whole Island would often mean the possibility to have several easily defended superRegions. Thus it could be important for picking and/or eliminating your opponent from one. However I'm at present unsure about how it's best to identify them (if any), and have far more basic behaviors to code atm. Thought it might open an interesting discussion though.

The term 'island' needs a definition. I would define an 'island' as cluster of bonuses while the whole cluster is only connected via 1 edge to territories not in the cluster. With that definition our islands aren't 100% the same as the visual islands since sometimes the visual islands have more than one edge to territories not in the island. However with that definition finding such islands should be a doable task.
Step 1: Guess that all bonuses are islands
Step 2: If two islands have more than one connection to each other then merge them to a single island.

Integrating the island knowledge into your play might give you a little edge. Let's say that during picking stage all good bonuses are already taken. Then you might prefer a wastelanded island bonus to another wastelanded bonus if so far only you / your opponent have picks in the island.

Edited 12/26/2014 18:54:38
WarLight AI Challenge 2 is live: 12/27/2014 01:01:07

GreenTea 
Level 60
Report
Report of version 11.
From version 11 GreenTea will start to combine different tasks. So he will be able to fight and capture bonuses in the same time. Also few bugs in calculation of expand scores has been fixed.

I also added such abstraction as Task. And currently I have 3 big types of tasks:
1) Expand
2) Battle combined with strategic moves (when my regions has at least one near enemy region)
3) Strategic moves (when my regions has no near enemy regions, but I know where enemy is situated)

[3 looks a bit ugly, maby I should somehow merge 3 into 2]

Next what shold to be done (except fixing some stupid bugs which I see from time to time) is to sort out good factors for different tasks. Maby at some point GA will be used for this.
WarLight AI Challenge 2 is live: 12/29/2014 21:03:13

{rp} pedrito 
Level 48
Report
Pedrito 2.0 is live!

Tremble my friends, for it's swift calculations and razorsharp algorithms will keep you off balance, and open dangerous inroads towards your best protected bonuses!

Aside from that, the actual fighting code is about 6 lines long.

Ehem...

For now most of the basic stuff is in place, lots of abstract calculations but not many specific actions. A lot of weighted expansion options are implemented and the expansion works kind of the way I want to, but the weights are not adjusted yet. Also, right now my bot dedicates 100% of his income to expansion as long as there are sensible options. I'll be surprised if this version actually manages to win any significant fight against anything but the most basic bots.

But after dedicating a whole bunch of hours to write this version up from scratch it sure feels good to see it actually making moves!
WarLight AI Challenge 2 is live: 12/30/2014 00:25:55


Norman 
Level 58
Report
This challenge just doesn't feel right so far... last challenge the first two weeks I coded all day despite don't really having the time for it. At present I'm having the time... but it just doesen't feel right. Where are the good guys, what are the other bots standing for? GreenTea stands for a nice cup of tea, LastOrder for getting last order,... You should be excluded from rp for calling your bot pedrito_Warlight2.
Posts 21 - 40 of 56   <<Prev   1  2  3  Next >>