<< Back to Warzone Classic Forum   Search

Posts 181 - 200 of 565   <<Prev   1  2  3  ...  6  ...  9  10  11  ...  19  ...  28  29  Next >>   
WarLight AI Challenge: 2014-04-25 22:04:54


Trogatog
Level 52
Report
Well, I've been making small changes here and there on my bot. Most of the time I see my bot fail with these small changes and revert the code back to the last version that had better chances of winning.

Now, I've actually let all the small changes that I keep finding myself recoding stay, and now when I see a fault, I just let it run it's course for tweaks. I'm almost happy with the current state.

...almost :)
WarLight AI Challenge: 2014-04-26 00:05:36


Norman 
Level 58
Report
Hello

@Trogatog: I don't doubt that both Trogabot and pedrito have more sophisticated algorithms than SupremeDalek. However on the other hand you have those (in my oppinion) easy to fix mistakes:

- Attacks happen always last order?

- Accepting many idle armies on the battlefield? Use those idle armies for some purpose and if it's just for order delay moves.

http://theaigames.com/competitions/warlight-ai-challenge/games/535ad55c4b5ab23ee61abffe
- Deploying in Australia first order without having enough armies to perform an expansion move?

http://theaigames.com/competitions/warlight-ai-challenge/games/535a91804b5ab23ee61aba16
- How much armies is SupremeDalek supposed to deploy in South America so Trogabot doesen't attack?

Edited 4/26/2014 01:21:07
WarLight AI Challenge: 2014-04-26 03:10:21


Trogatog
Level 52
Report
Like I said, there are a lot of small changes. Every one I made by itself made Trogabot crash and burn. But when I put a bunch of them together today (you'll notice a few versions today...) while observing in a sober state (that was probably key today as well), it was much more successful.

As far as the first game, I still have some slight changes to make to the decision tree that will happen later. I'm still trying to figure out how you're determining turn order though, because that's pretty slick (although I'm sure it's way easier than I am trying to make it).

I did have the order delay moves, but I ripped out a lot of logic that needs repurposing which isn't too vital right now. That functionality will be back later :)

One of the changes I made today was in the logic to determine when to attack. Obviously it still needs a little work, but I already have an idea how (more future prediction logic). The biggest problem Trogabot has as this point is dealing with stalemates, but that's my next big project to work on in the next week.

Looking forward to our next matches!
WarLight AI Challenge: 2014-04-26 05:52:31


Norman 
Level 58
Report
Hello

A decision tree... that is interesting.

I'm always confused when people say that they are fine tuning their bot. This sounds to me like that the bot is playing nearly at human level. I know about all the flaws of my bot and can assure you that he is far from fine tuning level. If I wasn't bored about coding my bot at present I would know exactly what to do better.

How I determine the move order:
First I calculate the moves without bothering about the order. At the end I take all moves and sort them. I distinguish between safe attacks and risky attacks. Safe attacks are attacks where I get a good fight even with the opponent deploying his full income to the attacked spot. Of course you can make smart stuff here like transfering to an important region first that hasn't got enough armies. Since I precalculate the defenceRegionValue and the neededArmies per region I could add that stuff easily to my bot.

How I determine when to attack:
I always attack when I get a good fight. This is a serious flaw in my bot since I'm not defending important spots. With prediction logic you probably mean guessing where the opponent deploys. Well, since I calculate the region values I just assume that the opponent always puts his full income to the region with the highest region value. That's the reason you see me playing so aggressive when bordering the opponent at two spots from the start. I just assume that he puts his full income to one of the spots and I attack the other one.

Detecting a stalemate is difficult I think. This is one of the few things where I don't really know how to solve them in a meaningful way. At present I define a stalemate as a situation where we both have the same income and neither of us can attack an opponent spot and get a good fight.

Oh... and I never attack neutrals in a SuperRegion with known opponent presence. My bot does know the opponent SuperRegions but he doesen't care if it involves attacking neutrals. Never attacking neutrals in a SuperRegion with opponent presence gives some "interesting" ties when two of my bots play against each other. But then on the other hand you see my bot building these huge stacks in Africa and as soon as the opponent shows up he kills him with that huge stack.
http://theaigames.com/competitions/warlight-ai-challenge/games/535ae29b4b5ab23ee61ac11b
@125ch209: Sorry to disappoint you, but it's a bug, not a feature.
WarLight AI Challenge: 2014-04-26 12:22:24


professor dead piggy 
Level 59
Report
Why don't you tell your bot that when he starts bordering 2 enemy territories that aren't connected he needs to deploy roughly 3 and stay put? That is almost always the best strategy, even highly rated ladder players do it consistently. You can get away with less than 3 if you know your opponents bot isn't going to try and clear you. If he deploys to one territory and not the other you can trample the one that didn't get deployed into on turn 2.

"I just assume that the opponent always puts his full income to the region with the highest region value." Basing your moves off of assumptions about what the other person is going to do works badly, one weird move from them and you can throw away a game. Other bots surely don't actually asses all the territories and get the same result as you, and then dump everything onto the one valued highest?

Do you really need to make a guess about what the other bot will do? I imagine not. I dabble with "guessing" but often play games without even considering what my opponent will actually do. Just sticking to risk assessment, foresight and positional advantages beats most human players.

Edited 4/26/2014 12:23:12
WarLight AI Challenge: 2014-04-26 16:59:05


Norman 
Level 58
Report
Hello

Why don't you tell your bot that when he starts bordering 2 enemy territories that aren't connected he needs to deploy roughly 3 and stay put?
Hm... sounds like a good strategy, at least the way you intend it. It's still not at better human level though since you also need to calculate which of the spots matters (more). This should depend on the bonus size and on the position of your other picks. What I want to say is that you can't outplay a better ladder player by such extremely simple heuristics. However, I almost always get away with the way I play my first turn and don't want to break my simple design by adding exceptions.


Do you really need to make a guess about what the other bot will do?
I'm not talking about guesses in the way humans outplay their opponent by getting into their mind. It's just that completely trivial things for humans aren't that trivial for a computer program. Say I border the opponets bonus and I also border him at another completely unimportant spot. Since I guess that he defends his bonus I will assume that I can take the unimportant spot with a 2v1 attack. Of course I don't do any crazy guesses. When it comes to defending my own bonuses I try to defend against all of the opponents possible attacks. So I think your risk management isn't really that different from me guessing and my guesswork is just common sense for a human player. It's a flaw of many bots that they have idle armies in the background which they are to afraid to use since the opponent could put all his income into that unimportant Asia spot.
WarLight AI Challenge: 2014-04-26 17:25:04


Trogatog
Level 52
Report
There's really not that much guessing your bot has to do. If you pay attention to your picks, you can figure out where the opponent is pretty easy. If they're not where you're expecting them, you'll have to find them, but if you got your prime picks, it should be game over pretty quick anyways.

The problem that I keep facing with my bot is this: I'm an EXCELLENT developer, but I'm a TERRIBLE warlight player :) Although, I think I can take a lot of people 1v1 on this particular map since I've observed and studied probably around 5000 game at this point...
WarLight AI Challenge: 2014-04-27 07:37:35


professor dead piggy 
Level 59
Report
Hey, hows it going? I like your bot, it is not stupid =D.

Most human games of warlight get won in the first couple of turns, 'getting away with it' for the first few turns is an odd attitude. If you cant code exceptions do you code the heuristics? Do you use those same heuristics for the entire game?

Ahh, you guys all use the chess approach? I understand chess AIs asses positions by giving each square a value (in centipawns) for the piece it has on it. Knights in the centre are worth more etc. It then adjusts the value for fulfilling certain criteria, for instance pawns that are defending other pieces are worth more. It then adds up all the values to determine how good a position is. To work out what move to make it calculates the different outcomes of its moves and picks the one that leads to a position with the highest value. The heuristics are very limited so it becomes a case of being able to calculate so very many turns in advance that the positions its assesing are very simple. Over a large number of turns you don't need to asses whether there is an advantage in having a knight on B4, you simply play it out a million different ways and if there is an advantage then that will show in hard figures after enough turns. If it calculates 2 turns in advance it makes awful decisions. If it calculates 20 turns in advance then it beats the human world number 1. But you aren't even calculating forward one turn. You are doing it the same way but using the raw values (in centipawns) to asses the position.

It looks like you've hit one of the limitations of the 'chess' approach, turns happen simultaneously therefore youre trying to asses the position without knowing where the enemy deploys. You are getting around that problem by making a (bad) assumption that they will deploy all in one territory, which is in turn leading to more problems. One way to surpass the limitation and take your bot to the next level is to change your approach.

You could play moves that do not consider where your opponent will deploy at all. This is how I used to play against humans. In your example you don't need to guess where your opponent is going to place armies to know that you want to make that 2v? attack in asia. I would question whether infact you do want to make it. The territory you take is likely useless. you may be better using the loose armies as delays so that big attacks happen later.

You could write code to guess. I don't know how effective that would be, but the bots seem quite formulaic. It doesn't have to be incredibly accurate.

You could try calculating forward. I don't even know how to go about that.

All of these ideas give the sense of a grand scheme that every bot i look at is lacking. They are all missing strategy

Trogatog: wanna play this map 1v1?

Edited 4/27/2014 09:17:35
WarLight AI Challenge: 2014-04-27 11:40:35


Norman 
Level 58
Report
Hello

Most human games of warlight get won in the first couple of turns, 'getting away with it' for the first few turns is an odd attitude. If you cant code exceptions do you code the heuristics? Do you use those same heuristics for the entire game?
Well, I do evaluate the whole board and can change my strategy according to the result. At present it's just how much armies I want to use for expansion but initially I planned to play more aggresively in some situations. I really don't like turn based exceptions like "if it's turn 1 and situation X occurs then throw away all other code and do such and such moves". 125ch209 uses such code (sorry, I peeked, was just curious) to pull off his counterpicks. I don't see this justified since you can also run into a similar situation afterwards where you can stop the opponent from completing his bonus. Of course then the board is more complex and you might have better things to do.
If I find a general rule for good fights then I have no problem with adding it to my bot.

All of these ideas give the sense of a grand scheme that every bot i look at is lacking. They are all missing strategy
I don't really know about the limitations of my approach but there sure are limitations. Fighting with my "best practices" rules and raw computation power should get me quite far against medium players (medium != noob). However, also superior approaches still have to fight against the excellent human pattern recognition. I'm not sure how much the "human pattern recognition machine" comes into play when playing warlight but I wouldn't underestimate the most superior and strangest of all computers (= the human brain).
WarLight AI Challenge: 2014-04-27 19:58:42

{rp} pedrito 
Level 48
Report
The luck %... those rolls make my eyes bleed.
WarLight AI Challenge: 2014-04-27 21:54:25


Trogatog
Level 52
Report
The luck %... those rolls make my eyes bleed.


Yeah, this. I've seen a 13 take a 13 on this competition...

Edited 4/27/2014 21:58:43
WarLight AI Challenge: 2014-04-28 18:26:20


125ch209 
Level 58
Report
... and I never attack neutrals in a SuperRegion with known opponent presence. My bot does know the opponent SuperRegions but he doesen't care if it involves attacking neutrals. Never attacking neutrals in a SuperRegion with opponent presence gives some "interesting" ties when two of my bots play against each other. But then on the other hand you see my bot building these huge stacks in Africa and as soon as the opponent shows up he kills him with that huge stack.
http://theaigames.com/competitions/warlight-ai-challenge/games/535ae29b4b5ab23ee61ac11b
@125ch209: Sorry to disappoint you, but it's a bug, not a feature.


what do you mean it's a bug not a feature?
http://theaigames.com/competitions/warlight-ai-challenge/games/534ef3ce4b5ab253021741ea
http://theaigames.com/competitions/warlight-ai-challenge/games/534c41484b5ab2530217065f
http://theaigames.com/competitions/warlight-ai-challenge/games/534bcf0c4b5ab2530216fc73

Edited 4/28/2014 18:27:04
WarLight AI Challenge: 2014-04-28 19:42:35


Norman 
Level 58
Report
Hello

what do you mean it's a bug not a feature?
Your question surprises me since you linked games where you see how bad the simple rule never to attack neutrals in SuperRegions with the opponent present can work out.

I was refering to following post of yours:
ps: our last game shows you made some nice updates btw, but i only had to change a few things to counter it^^
--> No changes made. My bot always built these huge stacks. In the linked game the reason for that huge Africa stack was that my bot calculates the owned fraction of each SuperRegion and tries to expand in the SuperRegion with the biggest owned fraction. Since this isn't possible with an opponent there (what he knew from picks) he just placed his armies there.

However with version 351 my bot now attacks neutrals for fighting purpose. But first he builds a huge enough stack. TREMBLE
http://theaigames.com/competitions/warlight-ai-challenge/games/535e84734b5ab261c0ce919d
WarLight AI Challenge: 2014-04-29 02:44:58


Trogatog
Level 52
Report
Yeah, my current updates that I put out today...

...can't be tested thoroughly because the server's broken for C# bots :(
WarLight AI Challenge: 2014-04-29 18:53:18

{rp} pedrito 
Level 48
Report
I'm reaching the limits of what my current structure of order-processing can reasonably handle. After finishing the 'strategic' brain of my bot last week, I've been working on all the little tricks that I wanted to implement since the beginning. Now they're working, and I'm quite satisfied with what he can do. Especially with the performance in "dog-fights" once the initial stage of stalemates is broken.

To achieve any significant improvement now, I'd have to throw out pretty much all the code that handles the way orders are set up and validated. The problem is the following:

The bot first proposes ALL possible moves that make sense, and later goes through them and validates as many as my income can afford. This means that when the bot proposes to deploy 7 armies to North Africa during 'proposal stage' to prevent the enemy from completing that bonus, it doesn't know that later only 4 armies will be allocated to this order during the 'validation stage' because the other 3 armies will be needed for another move with higher priority. This opens the way for some bad situations where the bot suffers more losses than necessary.

I can think of a few solutions to this, but all of them would require substantial amounts of rewriting, and I don't think I want to dedicate that much more time to it So I'm going to sit back and enjoy for a while, just fixing bugs and tweaking a few things until the finals. And I'll be hoping that SupremeDalek gets eliminated in the early going against a very unorthodox bot that does stuff that no one prepared for, so the rest of us stand a chance at least :D

By the way, as I'm writing this, SupremeDalek is nearly at 3000. Kudos Norman!

Edited 4/29/2014 18:56:27
WarLight AI Challenge: 2014-04-29 19:05:23


ps 
Level 61
Report
...can't be tested thoroughly because the server's broken for C# bots :(


Dropped 10 places with this, wondering when it'll be fixed, can't test anything properly until it does. :/ Hope those games with the errors will be retracted from the rating atleast.
WarLight AI Challenge: 2014-04-29 20:15:28


Trogatog
Level 52
Report
Dropped 10 places with this, wondering when it'll be fixed, can't test anything properly until it does. :/ Hope those games with the errors will be retracted from the rating atleast.


Thankfully when they start the tournament, all ratings go back to 1400. I'm guessing Norman's reaping the benefits of our errors like mad!!!

*cough* http://theaigames.com/competitions/warlight-ai-challenge/games/536007094b5ab2617599d5c4 *cough*


hahaha -- GJ though

Edited 4/29/2014 20:17:19
WarLight AI Challenge: 2014-04-29 20:58:54


ps 
Level 61
Report
i was surprised that they announced you won't be able to update the bot during the finals. really need to get it as best as possible before end of may. :S
WarLight AI Challenge: 2014-04-30 02:28:06


Norman 
Level 58
Report
Hello

@pedrito:
By the way, as I'm writing this, SupremeDalek is nearly at 3000. Kudos Norman!
It doesen't work that way that way. I need my boys to push me up. We rise together and fall together. You noobs keep losing to bots below rank 10 prevents me from 3000 rank.

And I'll be hoping that SupremeDalek gets eliminated in the early going against a very unorthodox bot that does stuff that no one prepared for, so the rest of us stand a chance at least :D
This isn't Hollywood but real life. Here the bad boys win. There ain't no Superhero comming to save you from EXTERMINATION.
WarLight AI Challenge: 2014-04-30 02:34:51


Trogatog
Level 52
Report
It doesen't work that way that way. I need my boys to push me up. We rise together and fall together. You noobs keep losing to bots below rank 10 prevents me from 3000 rank.


As soon as 1/2 my games don't crash, it'll happen... Hurts that I was 2900 ranked 3 days ago then crash, boom, bang and I can barely get a test game running :(
Posts 181 - 200 of 565   <<Prev   1  2  3  ...  6  ...  9  10  11  ...  19  ...  28  29  Next >>