a Droid's Dream, comments on HttT

Discussion and development of scenarios and campaigns for the game.

Moderator: Forum Moderators

Post Reply
Darth Fool
Retired Developer
Posts: 2633
Joined: March 22nd, 2004, 11:22 pm
Location: An Earl's Roadstead

a Droid's Dream, comments on HttT

Post by Darth Fool »

Here are my collected comments so far from running the AI through the HttT campaign on easy, v0.8.8. Attached are the full comments including the [ai] tags that I added to Korad's side to get him to win:

Code: Select all

Comments on Droid vs Heir to the Throne on Easy:

The Elves Besieged:     AI wins, no change

Blackwater_Port:        AI wins, no change (gold=220 [from previous scenario])

The Isle of Anduin:     AI wins with tweaking (gold=100)

The Bay of Perls: AI wins with tweaking and gold boost (gold=400)
        Comments: Adding an extra castle hex on easy would help, but only
                if the player has money.
                  Adding an AI [target_location] would help the Droid

Isle of The Damned:  AI wins(no bonus's), no change (gold=100)
        Strategy:  Defense barely holds out in time.

Muff Malal's Peninsula: AI wins with tweaking (gold=100)
        Strategy:  Must recruit high HP (hence fighters) to deal with
                zombie horde and fact that AI not smart about some things.

The Siege of Elensefar: AI wins, much tweaking, gold bonus(gold=500)
        Comments:  Initial starting positions drastically favor bad guys.
                AI not able to put up reasonable defense with level 1 units
                AI likes to recruit thieves, so ended up declining theives.

Crossroads:  Wins, much AI tweaking set gold=600
     Comments:
          It would also be good, on easy, to reduce the number of units
               that appear in an ambush to 1 and on medium to 2.  Three
               units ambushing a unit on easy is really too much as they
               can usually kill any stray unit.
          Droid recruits merman if fighter an option!
               recruitment needs to take into consideration distance
               to favored terrain.
          Difficult to get Delfador/Kalenz to neither attack recklessly
               or do nothing.

The Princess of Wesnoth: no AI tweaks
        comments: won by turn 7 first try(320 gold)  no AI tweaks,
                        kalenz & delfador rush!
                lost by turn 9 first try(100,200 gold)  no AI tweaks,
                        Kalenz & Delfador rush!
                Princess should probably be passive.
                Hard to get D/K not to rush and still win w/o lots of gold
 
The Valley of Death: no AI change Loses on DK charge 505 gold
     Wins after gold boost and AI tweak

Gryphon Mountain:  AI Wins (200 gold) no eggs
     Comments:  AI Wins eggs with minor tweaks(200g)

The Ford of Abez:   with gold set to 1800
     Delfador Keeps attacking L'sar!  so use [avoid]
     Sea monsters don't move until Konrad enters water!
          should move to gaurd ford (with protect_location)
 
    Hard to move Konrad only after purchase of enough units to take
         ford.
     could do cheaper if delfador and kalenz set to ai_special="guardian"?
          or if leader_goal could be turned on later?
          currently use trick of targeting orc castle
     ultimately decided that needed ai_special= guardian.
          That didn't accomplish goal either.
     Currently I can't get Konrad to do what I would like him to do,
          which is wait enough turns to bring enough troops to guard his
          passage befoer making the break.
Attachments
wesnoth.comments.gz
(2.15 KiB) Downloaded 208 times
Invisible Philosopher
Posts: 873
Joined: July 4th, 2004, 9:14 pm
Location: My imagination
Contact:

Re: a Droid's Dream, comments on HttT

Post by Invisible Philosopher »

Darth Fool wrote: Hard to move Konrad only after purchase of enough units to take
ford.
could do cheaper if delfador and kalenz set to ai_special="guardian"?
or if leader_goal could be turned on later?
leader_goal, passive_leader, and in fact all ai can be set by turn. Have a separate ai tag:

Code: Select all

[ai]
#ai that always functions
[/ai]
[ai]
turns=1-2
passive_leader=yes
[/ai]
[ai]
turns=3-100
[leader_goal]
#to wherever
[/leader_goal]
[/ai]

#you can also base it on time of day
[ai]
time_of_day=dusk,first_watch,second_watch
aggression=0.0
[/ai]
(see AiWML)
Play a Silver Mage in the Wesvoid campaign.
Darth Fool
Retired Developer
Posts: 2633
Joined: March 22nd, 2004, 11:22 pm
Location: An Earl's Roadstead

Post by Darth Fool »

Cool. I had 'seen' that, but I guess my brain just grep -v'd it away.
Darth Fool
Retired Developer
Posts: 2633
Joined: March 22nd, 2004, 11:22 pm
Location: An Earl's Roadstead

Post by Darth Fool »

Cool that worked. I was able to win with a much more reasonable strategy and gold level. I will post the final AI and comments for the Ford in the next dump. For now, onto Northern Winter...
Dave
Founding Developer
Posts: 7071
Joined: August 17th, 2003, 5:07 am
Location: Seattle
Contact:

Post by Dave »

Looks cool! Good work :)

[target_location] would be very nice, I think.
Darth Fool wrote: Droid recruits merman if fighter an option!
recruitment needs to take into consideration distance
to favored terrain.
The recruitment analysis should already be doing this. I'll have to look into why mermen aren't excluded.

I'm guessing that it's probably because the AI only excludes a unit as a recruitment option if it really looks quite bad, and mermen might not look quite bad enough...

David
“At Gambling, the deadly sin is to mistake bad play for bad luck.” -- Ian Fleming
Darth Fool
Retired Developer
Posts: 2633
Joined: March 22nd, 2004, 11:22 pm
Location: An Earl's Roadstead

Post by Darth Fool »

OK, after a little break (D**N you DOOM3) I have gotten back to running through HttT with the ai. Attached is the full listing, including both commentary and all [ai] tags that I changed. Ultimately, I had to cheat(beyond just giving gold) on two levels: The Scepter of fire, where the first random map the AI units could not force their way through the one narrow passge to get to the Scepter. I had to reload from scratch to get a new map. I also had to cheat by looking in the scenario file was to get a target location for Konrad, although ultimately he didn't leave the keep until after units had moved in range of seeing it anyways. The second cheat was in the final battle. There are just too many incoming units to only recruit three units a turn, which means that you have to get Kalenz, Delfador, and Li'sar off of the recruitment hexes. This means no ai_special="guardian" trick to keep them from suicide charging the enemy. Ultimately, I went and disabled the end of scenario events for their deaths and found that with a full 6 hexes and lots of money, it is possible for the AI to win. So, if the ai_special=guardian were able to be assigned as part of the [ai] tags, this would go away.

Now to see if I can go back and investigate whether the droid patch can be better implimented as a bug fix to persistant, and then on to seeing if I can add some functionality to the AI :)

Below is the rest of the commentary...

Code: Select all

The Ford of Abez:   with gold set to 1800
        Delfador Keeps attacking L'sar!  so use [avoid]
 
        Sea monsters don't move until Konrad enters water!
                should move to gaurd ford (with protect_location)
                                         
        Hard to move Konrad only after purchase of enough units to take
                ford.
        could do cheaper if delfador and kalenz set to ai_special="guardian"?
                or if leader_goal could be turned on later.
                currently use trick of targeting orc castle
        ultimately decided that needed ai_special= guardian.
        That didn't accomplish goal either.
 
        Currently I can't get Konrad to do what I would like him to do,
                which is wait enough turns to bring enough troops to guard his
                passage before making the break.
 
        Using turns option and 1000 gold can make reasonable break for it.
                required ai_special="guardian for D&K to prevent suicide
                attacks.
Northern Winter:
        removed ai_special from D&K.  D gets killed
        put it back.  D&K stay in the castle.  Need a way to get them to
        move outside of the castle so as to increase recruiting...this combined
        with loss of their power on front line leads to defeat...
                                                                                
        remove ai_special add AI tweaks add gold(400).
Mountain Pass:
                Droid wins with minor AI tweak.  (200 gold)
The Dwarven Doors:
                removed recruitment pattern
                It would be nice if there was an option upon losing to
                        be able to scroll around the map before ending.
                recruiting a couple of mermen!
                                                                                
                recruitment_pattern should be in an [ai] tag
                                                                                
                perhaps each enemy leader should only recruit 1 type of unit
                        on easy
                                                                                
                also, given the indirection of the main gate, more time on
                        easy would be a good thing
                                                                                
                It takes Konrad 9 of 18 turns to cross the board!
                                                                                
                Was just about to give up and add an extra couple of turns,
                        when voila: (1000 gold LOTS of AI tweaks)
Plunging into Darkness
        annoying ai tweaks needed for such a simple level!
The Lost General:
        not too bad.
        Slow Terrain for D&K makes easier to prevent suicide charge
Hasty alliance:
        Why is Dwarvish Thunderer usage fighter? changed
        D&K seem determined to defend L'sar! must use avoid tags
                targeting Goblin Knight did not seem to work!
        If you survive the initial onslaught, your good.
The Scepter of Fire
        No choice but to cheat to get sceptre location.
        not much in the way of cleverness here.  Just try to keep
                everyone alive.  add lots of gold.
                Strange recruiting patterns continue (merman? Horseman?)
        Lack of villages make troll horde hard to stop without advanced healers
                solution.  lots of gold
                                                                                
        recruiting archers as only way to get an only dwarf army (w/ change
                to thunderer)
        perhaps recruitment ought to weight heavily how long it would take a
                unit to get to terrain in which it defends at > 50%
        But thunderers can't break through narrow troll filled caverns.
                                                                                
        Ought to have victory condition where you kill all opponents
                and get an event to choose who gets sceptre?
                                                                                
        Turns running out should be listed in defeat conditions
                                                                                
        After extended Doom3 break reload/saved from beginning to get new map.
                much easier map!
        maybe easy/level/hard could be determined by width of caverns and
                number of paths that lead to sceptre?
        maybe on easy have Delfador play the hotter/colder game...
        maybe more cave-villages on easy....
                                                                                
                                                                                
        almost win with 2000 gold. and cheat of know where location is (my units did find it before the cheat took effect, however.)  then lis'r dies...
                                                                                
        lose miserably with 600 gold
        lose at 1000 gold with D-rush
        lose several times at 1500 with various AI tweaks
                                                                                
        need a way for AI to learn about discovered targets for randomly located events.
A Choice Must Be Made.
        Win in 14/30 moves.  no gold boost(100g) or ai changes.
                L'sar, Kalenz rush to SE.
Swamp of Dread (starting 430 gold)
        no AI tweaks-> Delf death.
        win with gold boost(1000) and ai tweaks
Home of The North Elves
        D-"Avoid the orcs"... best strategy...go through the orcs
                Not really enough time to avoid the orcs.
                                                                                
        key to victory.  Luck and scouts.  Scouts so they can keep
                enough ahead to soak up damage from all the critical units.
                                                                                
        really not a lot of time for K to make it across (>9 turns out of 18!)
                                                                                
        for easy either make turns longer, or maybe make the enemies less
                interested in attacking you.
The Elven Council: not much to say here...
The Valley of Statues:
        Delfador set to ai_special="guardian"
        lots of AI tweaking and gold.  won in ~36/45 turns
The Return To Wesnoth
        Very hard to keep all the principles alive!
                                                                                
        Key to victory:  scouts, ai_special="guardian",money
                                                                                
        probably could win with less gold...
Test of the Clans
        Again, ai_special=guardian to prevent suicide charges
                win on 32/50
The Battle for Wesnoth
        Not enough free hexes to recruit against huge initial rush if
                the ai_special="guardian" trick used.
        No way to prevent suicide charge without it.
                                                                                
        cheated: removed all defeat conditions for death of all but Konrad
                allowed suicide charges.  this freed enough hexes in encampment
                to stop the initial rush.
Attachments
wesnoth.comments.gz
(5.13 KiB) Downloaded 197 times
Invisible Philosopher
Posts: 873
Joined: July 4th, 2004, 9:14 pm
Location: My imagination
Contact:

Post by Invisible Philosopher »

If you use ai_special=guardian, why don't you go a bit further? You can have events that change whether they are guardians. You can station them immediately outside the castle to allow recruiting. Either is practically just complicated AI.
Play a Silver Mage in the Wesvoid campaign.
quartex
Inactive Developer
Posts: 2258
Joined: December 22nd, 2003, 4:17 am
Location: Boston, MA

Post by quartex »

Dave wrote:Looks cool! Good work :)

[target_location] would be very nice, I think.
I don't know if this has been added, but a weighted [target _location] would be useful when trying to get the AI to capture a specific village or move it's units to a specific location.

I didn't realize you could change the AI parameters based on the turn it was. I'm using [time_area] to lighten or darken certain hexes. Would it be possible to include this command in events so that the time of these hexes can change with events. For example when an enemy moves to the hex with the campfire, the campfire and it's halo is destroyed, and all the surrounding hexes go back to their normal lightness.

P.S. I think it's amazing you got a droid AI to beat HttT. I bet you know a lot more about crafting good AI than when you started.
silene
Posts: 1109
Joined: August 28th, 2004, 10:02 pm

Post by silene »

I wanted to exercise the new pathfinder, and I also wanted to see the modifications Shade had done on HttT for 0.8.9. So I launched a droid in normal difficulty level, and I didn't do any tweaking.

No real problem on Elves Besieged, 13 turns, both elven allies are still alive, and the north-west orc is dead. Blackwater Port ended in only 8 turns (and it could have ended two turns sooner if the droid had been lucky). There were some difficulties at the beginning of Isle of Anduin, but Delfador being the monster he is, it finally went well and ended in 21 turns. And for Bay of Perls, the droid got utterly crushed.

It's nice to see the AI able to do well in normal difficulty level. Especially since it doesn't recall units. It makes me wonder if we couldn't use that as a criteria to balance scenario: with the current AI, a scenario would be considered balanced if a droid can barely win (or lose) in normal difficulty level.
Dave
Founding Developer
Posts: 7071
Joined: August 17th, 2003, 5:07 am
Location: Seattle
Contact:

Post by Dave »

It'd also be kinda cool if we could work out a simple way to teach the AI how to recall.

Then it'd have an even better chance of succeeding in campaigns.

It also might be useful for if we ever implement multiplayer campaigns: you could play them single player, with AI allies. (Though I'm not sure exactly how fun this would be).

David
“At Gambling, the deadly sin is to mistake bad play for bad luck.” -- Ian Fleming
Darth Fool
Retired Developer
Posts: 2633
Joined: March 22nd, 2004, 11:22 pm
Location: An Earl's Roadstead

Post by Darth Fool »

silene wrote: It's nice to see the AI able to do well in normal difficulty level. Especially since it doesn't recall units. It makes me wonder if we couldn't use that as a criteria to balance scenario: with the current AI, a scenario would be considered balanced if a droid can barely win (or lose) in normal difficulty level.
Actually this is what got me started on the whole AI kick. I had proposed that a level could be balanced for easy if the AI could play it without any recalls (of course, the AI has probably improved since then). I also figured that Normal could be balanced against the AIs with recall once that was developed.
dave wrote: It'd also be kinda cool if we could work out a simple way to teach the AI how to recall.

Then it'd have an even better chance of succeeding in campaigns.

It also might be useful for if we ever implement multiplayer campaigns: you could play them single player, with AI allies. (Though I'm not sure exactly how fun this would be).

David
Yeah, I have plans to teach the AI to use recall, but if you beat me to it, great! The experience of getting through this has generated a list of things that I think would be good to get the AI to do, and that I hope to work on during my wesnothing time...
Post Reply