||Age of Kings 1.0
Author: Dan Cieslak <email@example.com>
This is my first attempt at a custom AI. As it is
a 0.9.x release, it is not a final release (yet).
I decided to release it to get some more feedback
This AI was influenced by the Petersen's (AoK's
default AI), Michael D. Eschner's (MDE_Land_Aggro),
Bingmann's (BingAI 2.2) and Doug Brucks'
(Doug's Test AI). MDE has a good economy and
I really liked the combined arms. Bingmann
gave me the idea to leap imperial, though I
progress a bit slower than his. Brucks' has
a good attack response system. MDE's AIs are
under Gnu Public License (GPL) and I have his
permission to use limited portions of his code
as I see fit. Bingmann's AI appears to be in
the public domain, but I didn't use anything
of his aside from the idea of advancing quickly
to Imperial. I could not find copyright information
on Brucks' AI, so I assume it is free for use
provided credit is given. Credit is duely given.
Unless otherwise noted, I developed the rest of
the AI. Any similarities to any other code
(fictional, alive or dead) is purely coicidental.
All spelling errors are my own. This code is
being provided under a BSD-style license (included
at the end of this file). Essentially, you may
use it, provided you give me credit in any
derivative work. If it should be included in
something advertised for sale, you must include
the following acknowledgement:
This product includes software developed by Dan
Furthermore, my name cannot be used to endorse
or promote the product without written permission.
What Slak_bot does:
Slak_Bot can play all civilizations, all map
types (including "watery" maps) and population
levels greater than 75. I have done most of
my testing at the 75 population level, though
I'm reasonably sure it should play adequately
at higher levels. Slak_bot routinely beats
2 (teamed together) default AIs on all settings.
It might struggle a bit on island maps if
it is British (but don't we all?). Also note:
I've witnessed it having difficulty transporting
troops from a defeated player's island back
home or to the remaining front. I believe this
is a limitation of the Tactical AI module.
Slak_bot will wall - it may even wall on watery
Furthermore, the military for each civilization
is unique. Thanks to Michael D. Eschner (MDE)
for inspiration and many of the unit mixes.
Slak_bot will build "response" units 20% of the
time. The response unit is determined based on
what is attacking Slak_bot (for example: it will
build skirmishers to counter archer units).
Response unit selection is also customized for
each civilization (though some are identical).
Slak_bot's navy is pretty standard. The only
customization is for the Vikings (Longboats
instead of Fireships). The British lack of
cannon galleons is not factored into ship
Slak_bot attempts to race to the Imperial Age
before attacking. It should build walls in
late Castle Age. It does research some techs
along the way (economy ones plus the extended
range black-smith ones). I do not have any
benchmark times available.
Slak_bot is best used in default resource,
random map, Dark-age start game. It may
play other settings, but I doubt it will play
them very well.
What Slak_bot does not do:
SLAK_BOT DOES NOT RESOURCE CHEAT! There are
no references to any of the cc-* directives.
It does reference players-military-population
(which the documentation claims is "the
equivalent of a human player checking the
timeline"). If I could, I would have
implemented it using players-unit-count and
players-unit-type-count (both of which rely
only upon units that the AI has seen). But,
there is no "soldier-line"-type parameter
and coding cases for each of the different
unit lines is just impractical.
Slak_bot does not paladin flood. Slak_bot
believes in combined arms (using 2 of the
3: infantry, archers and cavalry) along with
siege and monk support. Slak_bot had much
difficulty with the BingAI (though it did
have more success in a Saracen v Saracen
match (Saracens don't have cavaliers and do
get heavy camels, not to mention Mamelukes).
Slak_bot does not even try to build a wonder.
Since the Tactical AI only puts one villager
on a building (walls seem to be a different
story), it's pretty useless. Also, the
Tactical AI does not seem to think wonder's
are important to destroy! Hopefully this
will be fixed in an upcoming patch! (And
not require changes to this code!)
Slak_bot does not research treadmill-crane.
I could not find the appropriate research
parameter in the documentation. If anyone
can assist me, I'd appreciate it.
Slak_bot also does not research various
items, mostly tower technologies. Priority
is given to a civ's "strength" or if the
appropriate units are fielded.
Bugs (in an almost priortized list):
* Villagers do not colonize other islands.
* Testing higher population games.
* No treadmill-crane research.
* Town sizes on "watery" maps.
* Walls on "watery" maps?
* Boat booming is pretty weak.
* Trade carts are not created.
* Slak_bot does not ask allies for tribute.
* Slak_bot does not respond to requests for tribute.
* Slak_bot may have trouble in prolonged games.
* Add forward building.
* Add Deathmatch support.
* Add Non-Dark-age start support.
* Put excess stone to use.
* Scout with Lt Cavalry/Scouts only.
* Prevent fishing boat scouting.
* Plug walls after hacking down forest openings.
* Would escrow help resource management?
|Author||Comments & Reviews ( All | Comments Only | Reviews Only )|
hey..... 2 of your "bugs" arn't really bugs...
villies never colonize other islands if the AI controls em... the AI doesn't know villies can board trannies!
the other "bug"... the AI is ONLY supposed to scout the scout cav/lt cav cause they have extended vision AND are quick :)
i'd laugh if someone(or AI) scouted with a ram or something ;)
No, the default AI can explore with other units other than scout/light cavalry, if it has no other choice. If you give it a ram and nothing else, it will explore with the ram. It prefers to explore with a scout though.