Welcome to theHero AI Contest2013This contest is about coding a custom AI for a standard melee hero from WC3 TFT. You can use GUI triggers or jass code, it doesnt matter, as long as, in the end, you present us a good AI which is capable of fighting a 1 vs 1 arena battle against the competition. Last update: 10.04. Check the changelog below for more information! The rules: Maximum of 3 submissions per forum member! No member may send in 2 AI's which use the same hero though. Only the heroes from the WC3 TFT standard melee game may be used. No object editor data may be changed by any participant. The code of a participant may not use any forbidden trigger functions. Which kind of functions are forbidden and which are not will be explained in more detail later in this thread. The template map provided in this thread has to be used for the fights. The best AI will be choosen by a big AI tournament. This tournament will be explained in more detail later in this thread. Each member has to use the given naming convention for variables and triggers. The naming convention is explained later in more detail. [updated as of V2] A member may not change his/her hero/AI once the tournament has started. The triggers for each AI must be made public prior to the start of the tournament. Each contestant is allowed to have a look at the code of all other contestants to see if they violated the rules. If a contestant notices the violation of a rule by the AI code of another contestant then he must immediately tell me and the other contestants. The submission which violates the rules will be removed from the tournament at once. The deadline is October 20th at 0.00. That is, you can work on your AI for all of September. The code for the AI must not come from an older project; it must have been made entirely for this tournament. [updated as of V2] Participants are not allowed to use the default hero AI from wc3. [updated as of V3] The judging: We will not have any judges for this contest. Instead, there will be a tournament between the AI's in which they fight against each other and cumulate points. The AI which got the most points in the end will be the winner. If two AI's have the same number of points then a final battle between these two will be held; the winner of this battle will be the winner of the tournament. A tournament win will give 2 points for the winning AI. If both AI's manage to kill each other, either immediately or with the use of previously summoned units, then both AI's will get 1 point. The losing AI will get 0 points. Two AI's submitted by the same member will not have to fight each other. Each AI will only have to fight the AI's of other players. If a referee decides that the game is lagging too much because of memory leaks or an otherwise badly coded AI then he may end the battle prematurely. In this case a jury will decide which AI is at fault for the lag by inspecting the code. If the jury decides, that one of the AI's is responsible for the lag then the other AI will be declared the winner of the match. If both AI's are coded equally horrible then both AI's will get 0 points. If both AI's do not attack each other or deal damage to each other in any other way for 5 consecutive minutes then the referee might call a draw and both AI's get 0 points. After each battle a replay of the fight must be published by the referee and is only declared valid if it can be played back by the other contestants. (That means the map has not been altered or changed.) It is allowed and highly prefered, that the battles will be fought online so that other spectators can watch the fight. Illegal Trigger Functions: Include but are not limited to: Obviously everything which directly changes the hitpoints / manapoints or other stats of a unit. Chaning the gold of a player or disabling abilities. Spamming chat messages to annoy the observers Checking what kind of abilities your opponent has learned and which level they are. Checking whether a unit is an illusion (mirror image) or not. Changing the values of variables other then your own. (Includes the pre-set map variables) Following or targeting heroes which are invisible. (Wind walk, ambush, etc) Targeting or checking units which are outside of your heroes vision range. Example for illegal trigger: Code: Events: Unit - A unit summons a unit Conditions (Summoning Unit) Equal to Acc_EnemyHero Actions Do something awesome here... How to fix it: Code: Events: Unit - A unit summons a unit Conditions (Summoning Unit) Equal to Acc_EnemyHero (Summining Unit) is visible to (Owner of (Acc_OwnHero)) Actions Do something awesome here... If my hero can see that the enemy has summoned a unit then my AI can react to this. But if the summoning unit is not visible to me it would not be legal to react to it directly. Just keep in mind to be fair here; we want an interesting and healthy competition. If you are not sure about a trigger you can always ask in this thread. The naming convention for variables and triggers: All global variables and triggers a contestant may use need to follow the following naming convention: The name of the variable or trigger starts with 3 letters which uniquely identify the contestants account here at TheHelper.net. For example it would be "Acc" for me or "DrE" for DrEvil. If a contestant submits more then 1 AI then a number must follow these 3 letters. The number indicates the number of the submission. For example my first AI must use variables starting with "Acc1"; my second AI must have "Acc2", and so forth. If a user submits only 1 AI then the number may be omitted. Then, an underscore must follow the variable name. After the underscore the variable name may contain any letters or numbers however you like. Trigger names are followed by a blank instead of an underscore. Example for variables by me: Acc1_SomePointVariable Acc2_aaabbbbb Acc_TmpGrp ...etc Examples for variables by DrEvil: DrE1_SomeUnit DrE_blablabla DrE3_xyz The Template Map: A template map will be provided. The template map features some pre-set variables and triggers which must NOT be changed by the contestants. The variables from the template map may be used in your triggers but their values must never be changed! The map features two fountains of healing which will regenerate hitpoints and mana of all units close by. The map features two fountains of mana. The map also features two neutral shops which sell various items which can be bought by the AI and used in battle. Besides that the map will give gold and experience to both AI's periodically to speed up the fighting process. There are also creeps which will spawn periodically to get more experience and gold. These creeps, however, will never drop any items. The map features four spawn locations for the AI heroes. Two locations will be picked at random for the opposing heroes and it is not allowed to check the map variables to see where your enemy spawned. The map also features spawns of dead neutral ghouls so that undead heroes can revive units (deathknight, cryptlord, warden vengeance spirit) and player controlled spawns of footman corpses for paladins with the resurrection ability. The map has also various trees which respawn after some time. These can be used by the keeper of the grove. The experience curves for this map have been changed in order to speed up the game. Each level up requires now exactly 100 experience points. Each creep kill will give 25 x (level of creep) experience regardless of your heroes level. Tomes of experience give 100 experience points which is equal to 1 level up exactly. Screenshot of the map: Spoiler Prizes and Awards: None. I am sorry but there are no prices for this contest. We do it for fun. However, everbody is allowed to donate a price if they would like to. Other then that you will earn respect and reputation for being such an awesome wc3 map maker. Tips for the Contest: Pick a good 1 vs 1 hero; some of the best heroes are: Deathknight, Demonhunter, Warden, Tauren Chieftain, Mountain King, Arch Mage, Farseer, Blademaster, Crypt Lord, Keeper of the Grove Use the condition "(SomeUnit is visible to SomePlayer) Equal True" to check if an enemy can actually be seen and attacked by your AI. The AI should not cheat! Code clean and without leaks. If the AI lags too much during a fight it might get punished for it. Be fair and dont try to cheat; this contest is for fun, there is nothing to win and nothing to lose. Submissions so far: <Will be updated as they come in> Changelog: As of 10.04: Deadline extended by 2 weeks! As of version 4 (09.29): Minor bugfix. As of version 3 (09.23): Deactivated KI guard positions for both Heroes and all summoned units. (Thanks to thorhunter for noticing this mistake) As of version 2 (09.01): Max neutral creep number decreased to 15. Experience system completely remade. Every level now requires exactly 100 experience points. Every creep will give 25 experience per creep level regardless of hero level. A Multiboard has been added for the observers to show better game stats. Creep respawn system has been changed. Creeps now respawn every 60 seconds but only if no hero is nearby. Good luck to all participants, lets face each other in the tournament!