Posted on 11/24/09 @ 01:38 AM (updated 09/19/10
ARFFI_05_Eyries version 1.09 and 1.07_4
(ARFFI_05_1.07_4 packed with 50 rule version)
(Stop improving for a while. My intrest shifts to other chalenges.)
An AI for Aztec, Landmap, Dark-age-start, scripted under a 55/50 rule limit.
(c.f. "Eyrie" is another spell of "aerie", a nest of big birds that are usually made on sky high cliffs.)
Make an AI that is short, yet strong enough to encourage others to start scripting short scripts.
To acuire this aim, I scripted under a 55/50 rule limit, so that "I only script the essence" and "to let others to read with ease".
Cause I did not know the intrest of the reader of this script, I made it playable with many gamestyle.
Some essence for NoMad, All-Research-availabled-game and some more are shown in the script.
Also, some test results for when rules bugs for the lack of "can-..." has been commented so that I can pass the knowledge on.
(I need to test more to be sure before I post the rules for avoiding bugs, at any site. So the comments in the script is somewhat a good location for now.)
No sea maps with wood and gold.
Forage and some food resources will help.
Only tested under "low-resources-start", "200pop-limit", "difficulty=hard" settings.
Wish that this script will encourage others. ;)
PS: Comments are fully welcomed.
Please post anything you feel.
From 1.06_3, main Eyries will be scripted under 55 rule limit.
(to be able to play with teams.)
If you wish to try 50 rule AI, use version1.07_50_rule_version.
Took out some taunts cause some might not wish to be spamed.
Added some more information of the new scripting methods.
Also, the 50 rule version will also play chivalry mod now.
|Author||Reviews ( All | Comments Only | Reviews Only )|
ARFFI_05_Eyries is a very strong random map AI, that prefers to play Aztecs on land maps, such as Arabia. The AI is limited to a dark age start and a maximum population of 200, though these game settings are by far the standard settings among most players. However, I have found that this AI will play other civilizations almost as well as the Aztecs, though it will use the same soldiers it uses for the Aztecs (no cavalry).
The author's intent of this AI was to make an AI as powerful as possible that was scripted it in under 55 rules. Usually this is quite limiting, because most really good AIs contain at least 100 rules, and some have over 500. Yet, ARFFI has managed to make an AI using only 55 rules that is as powerful or even better than many of the good AIs out there.
As ARFFI's intent was to show scripters how to write AI scripts with fewer rules, I'm going to devote a section of this review to explain some of the breakthroughs ARFFI discovered. If you are not interested in the scripting methods and want to know just about its playing ability, please go to the AI behavior section.
The only way to make a powerful AI in 55 rules is to merge many rules into one. To do this, ARFFI has done his research and made an important discovery. He found out that using the (can-train) and (can-research) facts are not usually necessary for a rule to work, like previously thought. This allows us to merge unit training and research rules together, like this example from the script.
(or (research-completed ri-fletching)
(or (research-completed ri-hand-cart)
(and(strategic-number Eyries_sn-age >= to-castle) ;advancing to castle or beyond
(or (and(strategic-number Eyries_sn-strategy < AkihaER) ;fast-castle boom strategy
(current-age > feudal-age))
This rule is just one of many such rules in Eyries. This rule shows how more than one technology can be researched in the same rule.
Note that the (can-build) and (can-buy-commodity) or (can-sell-commodity) are still required in rules to build buildings or buy/sell resources or your script will not work correctly.
Another idea that ARFFI came up with that uses this new discovery is to take related unit training rules and unit upgrade rules and put them in the same rule. Eyries likes to play Aztecs, so logically Eyries uses jaguar warriors when the enemy is either training infantry or when he is trying to defend against a knight rush. The same conditions are true for when Eyries wants to upgrade his jaguar warriors. So ARFFI intelligently merged the jaguar warrior training and jaguar warrior upgrading rules into one.
The list of new methods ARFFI uses to shorten Eyries goes on and on. I encourage anyone who is interested in scripting to take a look at this wonderful script. What is even more impressive about Eyries is that the limited number of rules doesn't limit its ability to play at par with the best scripts around!
Now I will talk about the great power of this script. It should provide a challenge for any player.
In my tests, Eyries always had a great economy, especially at the beginning, thanks to the Aztec gathering bonus. This helps the AI maintain the production of its large armies. Its economy is well-balanced, though I noticed that it usually was a little short on gold in the Castle and Imperial Ages.
Most often, Eyries will wait until the Castle Age to attack, instead of flushing like the VNS_Halen and IS_Machine AI's. This strategy in fact adds a large amount of strength to the AI, since most flushes fail for AIs. Eyries almost always stops the flushes of his opponents and gains an enormous military advantage. By the time he attacks in the Castle Age, many opponents have little hope to hold off his attack.
It's armies are varied. Sometimes he trains many archers and skirmishers and trains eagle warriors and spearmen later. Sometimes he trains a mostly infantry army with a few archers. And sometimes he will use a powerful eagle warrior rush. However his military is made up, Eyries has a large and powerful army, and his opponents aren't sure of what his military will be like.
Eyries trains a reasonable amount of soldiers in the Feudal Age, which is almost always adequate to withstand any flush, except maybe those of the strongest human player. In fact, Eyries performs the best when his enemies attack him in the Feudal Age instead of the Castle Age. Thus, if you want to defeat this AI, you should attack in the Castle Age instead, or maybe attack him before he can make any Feudal Age soldiers. One strategy that he cannot counter very well is a knight rush.
As I knew I had no hope of defeating Eyries (I'm not an expert player), I decided to test Eyries against some of the best AIs in the Blacksmith, to see how well ARFFI could make a 50-rule AI. I tested it against Zycat, IS_Machine, VNS_Halen, AllianceThundaEmpire, BTG's knight rush AI (BTG_KrushV5b), and ARFFI's other AI - De'gel.
Game 1: Eyries vs. Zycat - Zycat mananged to get ahead of Eyries in age advancement, but he neglected his army production until the Castle Age. By then, ARFFI had amassed a large army. An attack by ARFFI at 28:15 proved to be the death spell for Zycat's plans. Eyries won at 53:30. VICTORY FOR EYRIES.
Game 2: Eyries vs. IS_Machine - IS_Machine performed a flush around 21:00, which Eyries effectively repulsed. Eyries advanced to the Castle Age around 28:00, while IS_Machine was still in the Feudal Age. The attack hit IS_Machine hard and IS_Machine resigned at 43:17. VICTORY FOR EYRIES.
Game 3: Eyries vs. VNS_Halen - Surprised by Eyries's success, I tried him versus VNS_Halen, one of the most powerful flushers: VNS_Halen flushed Eyries early around 16:30, but the attack lost when the VNS_Halen's soldiers tried to attack Eyries's town center. Eyries trained many eagle warriors and attacked around 24:00. VNS_Halen got a respite from Eyries's attacks around 35:00 and VNS_Halen attacked again, but failed miserably. Eyries won the game at 48:53. VICTORY FOR EYRIES.
Game 4: Eyries vs. AllianceThundaEmpire - Both AIs advanced to the Castle Age, and AllianceThundaEmpire attacked around 21:00 with knights. Eyries successfully defended against the attack and made an attack around 31:00. AllianceThundaEmpire defeated Eyries attack. Fighting went back and forth, AllianceThundaEmpire was usually the defender. By around 51:00, AllianceThundaEmpire's army was defeated, and Eyries won at 1:04:39. However, this is the first game where Eyries had some difficulty, showing the strength of attacking in the Castle Age versus flushing. VICTORY FOR EYRIES.
Game 5: Eyries vs. BTG_KrushV5b - I was quite surprised at Eyries's victory against AllianceThundaEmpire. ARFFI's previous AI, De'gel wasn't able to do this. In this game, BTG's knights attacked Eyries around 23:00. Unfortunately, Eyries's army was mostly composed of archers, and Eyries was unable to drive them back. Eyries managed to hold off BTG's army for almost 15 minutes, but BTG's knight rush AI finally destroyed Eyries's town at 43:15. This was Eyries's first defeat, probably caused because Eyries trained archers instead of spearmen. DEFEAT FOR EYRIES.
Game 6: Eyries vs. De'gel - Next, I wanted to compare Eyries to his uncle De'gel, ARFFI's older and much longer script. I noticed their strategies were similar (they both play Aztecs), and I wanted to know how Eyries compares to its much bigger relative.
In the game, both AIs began similarly, and both attacked in the Castle Age at the same time, around 21:00, though Eyries's attack was stronger. De'gel defended Eyries's attack. Eyries sent in smaller attacks later, but none of them made any headway. After a brief rest, Eyries attacked with a large army around 35:00, which De'gel wasn't able to recover from. De'gel fought strongly to the end, but Eyries won at 1:16:15. VICTORY FOR EYRIES.
ARFFI_05_Eyries, despite its small size, is extremely strong and matches or exceeds the best AIs out there. To make such a great AI with such a small size, ARFFI managed to find ways to condense the AI, opening up new possibilities to scripters. Download now. Whether you like to play random map games, need to practice your flushing for mulitiplayer, or are a scripter looking for a very strong and efficient script, look no further! You won't be disappointed.
While this script has some minor flaws, explained in additional comments, its intention was to provide an example of how to make shorter scripts. It contains numerous new ideas that are used quite successfully. For this reason, and because of its superior strength I find no reason to rate it lower than a 5.0
Very good AI, ARFFI. One of the things I noticed that your AI could improve on was its knight defense strategy. Try having Eyries train some more spearmen in the Feudal Age to prepare for a knight attack. Also, I noticed that Eyries tended to have a small amount of gold in relation to other resources, so try adjusting the gathering rates.
[Edited on 01/22/10 @ 04:43 PM]
Review for version 1.07
If you ever wondered how much fancy stuff you could pack into 50 rules, this AI is the way to go. The author, ARFFI, understands how to use the facts cleverly, so that almost all the rules were could be used for multiple purposes. I do not go into detail as most people here aren't scripters and simply want to know whether or not it is worth to download Eyries. And I can tell you it sure is!
Also I played several games against other AIs. All of them were held at tiny arabia, hard difficulty, standard resources and Eyries always had the aztec civ.
First one was against Alliance Thunda Crush with Teutonic Civ. ARFFI did an excellent job with homework about cavalry weakness.
Both AI fast castled and Alliance started hostilities with some knights backed up by a few cav archers at min 24 with were warmly greeted by some pikeman. Alliance attacked again several minutes later, this time Eyries also had some monks and soon some cavalry of his own. ;-) It was not about 30 minutes into the game yet it could be clearly told who is going to win.
Second game was also against Alliance, this time with the aztec civ, too. Both AIs tried to EW-Rush and this time Eyries commenced hostilities with flooding one of AT's lumber camps with eagles. However AT was able to defend and immediately counter attacked, which went into Eyries' TC. From there on battle raged back and forth however Eyries had the advantage of being able to pick all relics. Much later into the game AT made a decisive mistake by stopping training and selling food and trying to rise to imperial. It just was not able to keep up the incredible pace of Eyries' unit production rate anymore.
Third game was against Dies Irae, an evil AI by Telum, that showed us clearly the weakness of AIs in general. Both players went fast castle and while Eyries tried his preferable strategy against meso civs, EW Rush, Dies Irae just placed two castles right in front of his base just after it hit castle. Dumb as computers tend to be, Eyries send all his EWs right into them. Eyries' second attack hit a gold camp next to those two castles which was not that much smarter as Dies Irae's villagers managed to flee into that castle and Eyries had to suffer again from a hail of arrows. In the following skirmishes in the middle Eyries was too far behind to deal with Dies Irae's Jaguars and eskirms, so Dies Irae could advance to imperial age and make short shrift of poor Eyries.
Fourth game was against Kosmos 2.41, who was viking. While Eyries went for the usual farming (AIs can't hunt boars) Kosmos went hunting deer and feudaled first and started to produce skirmishers. Eyries detected the incoming flush and went for skirmisher as well. First attack wave of Kosmos hit Eyries lumber camp however most of his villagers managed to flee while Eyries' skirmishers dealt with the attackers. Both players hit castle at about 26min when Kosmos immediately attacked with all his remaining skirmishers and archer while he also had two stables pumping knights. However Eyries upgraded to eskirms and managed to get pikes and some monks to deal with the knights and could eventually see off the assault. Eyries then counterattacked and a large skirmish was held in front of Kosmos' base. Like usually Eyries' army consisted of mainly EWs, xbows and eskirms supported by some monks and pikes and Eyries was able to produce more than it's opponent could deal with.
Conclusion: This AI won three of four battles against the strongest AIs in my collection. So if you want a highly flexible AI that is able to produce an army in great numbers than this one is highly recommended for download. Five stars and I pull off my hat for ARFFI who managed to squeeze all this into 50 rules.