Modder interview #1: DyDo AI/DylanDog
DylanDog, author of the well-known DyDo AI, is the one interviewed this time. Plain and simple: He is a mod developer and no programmer. He used to play with JavaScript, PHP and AJAX in the past. Playing RTS games such as C&C, Warcraft or Empire Earth always have been one of his passions. Nowadays the amount of free time has been reduced a lot, which is why he’s developing DyDo mostly in the train, when going and returning to and from work. If there is some spare time in the evening, then he might use that as well for developing, while there is only a slight chance to find him developing on weekends.
Kreuvf: How did you get in touch with Warzone 2100 first? And how long ago is it?
DylanDog: I think I have found it at the beginning of 2009 with Google while searching for freeware RTS games. Then at some point in May 2009 I decided to take a look at BecomePrey AI, I do not remember why I did it. I started by improving few events, then I realized that the things I wanted to implement would have required a complete new AI.
Kreuvf: What was your reason to actually start trying another AI? Was the standard AI too weak? How is BecomePrey different? And what’s different in DyDo?
DylanDog: It was just curiousity! I started looking at the BP script because everyone thought it was the best AI. Then I soon realized that I was able to understand the scripting language and that it would have been a great thing working on an AI for an RTS game. The biggest difference between DyDo and BP? Everything!!! From harvesting (building derricks) to base building, from power management (BP has none) to droid-teams management (BP has no defending team, its base is basically undefended if I remember well). Research paths are also different… and DyDo is intended to have 4 different personalities even if the differences between them are not really pronounced yet. I have to thank Niker, BP developer, as he really made a great documentation about BP which really made things easier. Also some part of DyDo AI scripting code (few functions) is taken from both the standard AI and AIvolution, which I think is a better AI then both the Standard AI and BP–AI.
Kreuvf: Among all those features, which one would you say is the one that a) is working best, b) is the one you are most proud of and c) is the most problematic one implementation-wise?
DylanDog: To a: I can’t really say which one’s the best as there are so many good working things. There are quite few features which work well:
- DyDo manages well two droid defending teams and two droid attacking teams (plus the VTOL and the helping teams).
- One of the teams is mixed (cyborgs + tanks).
- It never sends two trucks to the same oil derrick.
- Trucks are also organized in teams building (builds structures), defending (builds defences) and harvesting (builds derricks).
- Target selection is not random: If the AI requires power, then enemies‘ derricks are attacked and not enemies‘ bases.
- The number of structures to build is related to the number of oil derricks.
- Research isn’t done randomly.
- The power management is also working fine, I think.
To b: In all other AIs the decisions of what to do are mostly taken by various single events in the script, in DyDo not. I have introduced a centralized event to control the most important actions, I called it „AIbrain“. This event is executed every second, collects some statistics and decides which other events should be activated and which not. The power management is made here. I also like the fact I introduced the AI strength levels… and obviously I am proud of DyDo is not cheating! It does not get any more power, it does not make any research available to itself and it gets no gifts at all (droids or structures). The only thing it does which a human player cannot do is to collect statistics about the enemies.
To c: VTOL management could be improved a lot, and I will do it… problematic is also to give a real different behavior to the AI personalities. But really problematic is to meet the expectations of WZ players!!! Many think that an AI can act like a human player, but this will never be the case. A good WZ player is able to beat an AI by using different tactics. The capability to use multiple tactics (like the decision to choose a specific research path for a precise purpose) is difficult to implement. Concerning the AI strength: Playing a game 1 AI vs. 1 human player, the human player will always win, „all vs. all“ in a 4 game is a different thing (and even more difficult if the DyDo strength is set to 5).
Kreuvf: What do you think are limiting factors of the game’s AI engine for you as an AI developer? Which things would you like to add, but can’t due to those limitations?
DylanDog: I have no experience with other AI engines, but I have to say that the warzone AI engine is really great. As AI developer you almost have everything you need to develop a good AI. Surely there are few things which still could be implemented but they would not really make big changes. There is one thing which is a bit limiting: Distance calculation via real path-finding. What I mean is that actually I cannot know how long is the route that a truck would use to reach a certain point. There is a function which gives the distance between two points but this is „just“ the pure point to point distance „on the air“, this function does not make a path finding or calculates the route that a truck would take. A new function which would give the route distance to reach an object would be great but I think it is really difficult to implement.
Kreuvf: Summarised this does mean that the game itself has the requirements necessary for building a challenging AI and you try to build one, right? The developers are planning to replace Aivolution with DyDo AI. Aivolution was one of Troman’s projects and he wanted the AI to be able to learn. What do you think about AIs learning? What do you think are the chances of such an AI and what are its limitations?
DylanDog: Well… I am not trying to build one, I made it already! I couldn’t state that until November-December 2009 but now I am quite satisfied with the job done. I still have some ideas in mind on how to improve DyDo but I already consider it a real challenging AI.
As far as I know with the current Engine Interface you cannot deploy an AI which is learning, because there is no way to manage a database where to store permanent information (I mean also after the game is over). Troman was able to do this possibly because of some feature implemented „ad-hoc“ for AIvolution in Warzone 2100 „C“ code, in some way Warzone recognizes that AIvolution is loaded and saves some info. Learning capabilities would be a great thing for an AI for sure.
This article has been translated into German and is available under the title „Modder-Interview #1: DyDo-KI/DylanDog“.
Comment on this article (board-account required)