103
2015 Fighting Game AI Competition Kaito Yamamoto, Yuto Nakagawa, Chun Yin Chu, Lucas Philippe, Marc-Etienne Barrut, FeiYu Lu, Makoto Ishihara, Taichi Miyazaki, Toshiki Yasui, Ruck Thawonmas Team FightingICE Intelligent Computer Entertainment Laboratory Ritsumeikan University Japan CIG 2015, Sep 2, 2015

2015 Fighting Game Artificial Intelligence Competition

  • Upload
    ftgaic

  • View
    4.153

  • Download
    1

Embed Size (px)

Citation preview

Fighting Game Artificial Intelligence Competition Platform

2015 Fighting Game AI CompetitionKaito Yamamoto,Yuto Nakagawa,Chun Yin Chu,Lucas Philippe,Marc-Etienne Barrut,FeiYu Lu,Makoto Ishihara,Taichi Miyazaki, Toshiki Yasui,Ruck ThawonmasTeam FightingICEIntelligent Computer Entertainment LaboratoryRitsumeikan UniversityJapan

CIG 2015, Sep 2, 2015

1

FightingICEContestResultsContentsCIG 2015, Sep 2, 2015

2

FightingICE

CIG 2015, Sep 2, 2015

3

Interactions between the AI/Human Players and the SystemCIG 2015, Sep 2, 2015

4

Players use attack actions (skills) and moving actions to fight

A skill has 3 stages:Startup, Active and RecoverySkill System (1/4)CIG 2015, Sep 2, 2015

5

Skill System (2/4)Startup1st stagePrepare to attackNo attack box, so no damage to give

CIG 2015, Sep 2, 2015

6

Skill System (3/4)

Active2nd stageThe small red box -- attack box -- can be seen on the characters armIn these frames, if the opponents attack hit box coincide with this attack box, the opponent will be damaged

CIG 2015, Sep 2, 2015

7

Skill System (4/4)

Recover3rd stageRecover to normal statusSpecial frame: cancelableSome skills can be used during cancelable frames CIG 2015, Sep 2, 2015

8

FightingICEContestResultsContentsCIG 2015, Sep 2, 2015

9

Two games, each switching the player sides, are played for each pair of submitted AIs in a round-robin tournament.A game has 3 rounds, each with 5-second ready time and 60-second fighting time.The characters' position will be reset when time over, and if it is not already in the third round, the system will start a new round.Contest RulesCIG 2015, Sep 2, 2015

10

17 AIs from 10 locationsBrazil, China, France, Germany, Indonesia, Japan, South Korea, Spain, Taiwan, and ThailandSix AIs from Sejong UniversityFour AIs from Bangkok UniversityMost use rule-based systems or finite-state machinesOne AI uses linear extrapolation for prediction the positionFour AIs have a mechanism for predicting the opponents next actionJ48, k-NN (2 teams), and forward-modelTwo AIs use GA for optimizing action-execution probabilitiesfuzzy rules

Summary of AI FightersCIG 2015, Sep 2, 2015

FightingICE @ Bangkok University, ThailandMultimedia Intelligent Technology (BU-MIT)http://mit.science.bu.ac.th/

Participation in FTGAIC2013: 3 teams, 3rd-year undergrad students (3rd place)2014: 1 team, 4th-year undergrad students (2nd place)2015: 4 teams, 3rd-year undergrad students and Internship studentsFrom 2014, their Senior Project is about developing their AI bots for FTGAIC.2015 - present, collaborate with ICE Lab, Ritsumeikan University in developing an Kinect interface for the fighting game controller (the 1st version was based on FTGAI platform) Asst. Prof. Worawat Choensawat, [email protected]. Prof. Kingkarn Sookhanaphibarn, [email protected]

CIG 2015, Sep 2, 2015

FightingICE@ Sejong University, South Korea(Prof. Kyung-Joong Kim, http://cilab.sejong.ac.kr)We offered an Artificial Intelligence course for seniors (30% teaching, 70% projects) in Spring 2015 17 students enrolled As a first course project, each student submitted his own entry of fighting game AI We ran an internal competition with the same setting of the CIG competitionMost of them were based on rule-bases As a second course project, student teams did short-term research using games (including the fighting game) Applying CI techniques (reinforcement learning, ensemble algorithm, and so on) to the games Course gradeIts based on the rankings from the internal competitions and the final research report Encourage students to submit their entries (from the internal competition or research project) to the CIG competitionK.-J. Kim, and S.-B. Cho, Game AI competitions: An open platform for computational intelligence education, IEEE Computational Intelligence Magazine, August 2013D.-M. Yoon and K.-J. Kim, Challenges and Opportunities in Game Artificial Intelligence Education using Angry Birds, IEEE Access, June 2015

FightingICEContestResultsContentsCIG 2015, Sep 2, 2015

14

Our Lab at Ritsumeikan Univ., Japan

CIG 2015, Sep 2, 2015

FightingICEContestResultsContentsCIG 2015, Sep 2, 2015

16

CIG 2015, Sep 2, 2015Full Scores (won all games) 96,000

MUSTCORRECTTYPOS17

CIG 2014, August 29, 2014Appendices: AI Details(in alphabetical order)

Fighting Game AI with Skill Predict and Simple Machine LearningZhang BoYao

School of New MediaZhejiang University of Media and Communications

Personal information(1)Developers Name : Zhang Boyao

(2)AI Name : AI_ZBY0323

(3)Affiliation : [email protected]

AIs OutlineGet opponents current action.Can hit meTry to select a skill which can effect faster than opponents action.Does it existEnter the guard state.Try to select skill in Strategies List(created by machine learning).Does it existUse it.Predict opponents next skill and select a skill which can counter it.Does it existApproach to the opponent.EndStartYesYesYesYesNoNoNONO

Major Classes introduction(1)Class:InitiativeStrategies

(2)Class:PredictNextSkill

(3)Class:StrategySelecter

InitiativeStrategiesThe AI can search and updata the Strategies by read and write the file AISTR.txt.In this txt file, Strategies are recorded in this form(OpponentAction, MyAction,MinDistanceX,MaxDistanceX,MinDistanceY,MaxDistanceY)

InitiativeStrategiesOpponentAction:The opponents current action.MyAction:The action which can counter the opponents action.MinDistanceX:The min X distance of the MyActions range.MaxDistanceX:The max X distance of the MyActions range.MinDistanceY:The min Y distance of the MyActions range.MaxDistanceY:The max Y distance of the MyActions range.

PredictNextSkill(1)Create two array to store myAction and opponentAction.(2)Select an action from myAction and use the method Simulator.simulate to simulate it with all action in list opponentAction one by one.Meanwhile,calculate the damage expectation with every situation.(3)Repeat the step (2) until all elements in myAction are dealt with by step(2)s method.(4)Finally return an action which has the largest damage expectation by compare the simulate results.

PredictNextSkilldamage expectations calculation:

Total improved score : The sum of every situation in step(2)s improved score.

Hit rate : Current myActions hit count/the number of opponents action

StrategySelecterIntegrate InitiativeStrategiesClass and PredictNextSkill, make them work in correctly timing.

The use frequency of each strategy in 100 round

(Round)This graph shows the use frequency of PredictNextSkill and InitiativeStrategies in each of the 100th games from the first game. With the increase of round, the InitiativeStrategies use frequency is increasing.So, I think this graph can prove that the simple machine learning is working.

Thank you!

Ensemble FighterJin Kim, JeongHyeock Ahn, SeungHo Choi, JiYuu Yi, SuJung Kim, and Kyung-Joong Kim

Department of Computer Science and Engineering, Sejong University, Seoul, South [email protected]

Ensemble Approach for Fighting Game PlayMultiple rule-based systems designed by different experts For each round, the player selector chooses one of them randomly Rule-based System 1Rule-based System 2Rule-based System 3Player Selector

Preparation of Multiple Rule-based SystemsAs an undergraduate course project, 17 students submitted their own controller and we ran the internal competition with the same setting of the fighting game AI competition

We selected three best students controllers and combined them as an ensemble player

Combination of Multiple PlayersFrom initial testing, we found that its better to change the player round by round

As a future work, we need to use an advanced player selection technique instead of the random selection

Fighting game AI CompetitionSejong UniversityJiIn [email protected]

IntroductionAI Name : AI128200Developers' Name : Ji-In MunAdvisor : Kyung-joong KimAffiliation: Department of Computer Engineering, Sejong University, South Korea

AI Outline(1) Movement 1)To reduce the distance between two characters=>FOR_JUMP

(2) In order to avoid enemy attacks=>FOR_JUMP

AI Outline(3) Attack 1)main attack skill =>CROUCH_B, THROW_B 2)My Energy >= 60 Enemy Character-air => AIR_D_DF_FB Enemy Character-ground => STAND_D_DF_FA 3)My Energy >= 300 => STAND_D_DF_FC

Fighting Game AI: Ash

Che-Chun Chen, Cheng-Yuan Wu, Tsung-Che Chiang

Department of Computer Science and Information Engineering,National Taiwan Normal University,Taipei, Taiwan

[email protected], [email protected], [email protected]

Design of States and Responses distance\energyHigh MediumLowFarState1State2State3MediumState4State5State6CloseState7State8State9NearState10State11State12

ActionProbabilityAction AX%Action BY%..

Each state has its own Action table.

The probability is determined by genetic algorithm (GA) and domain knowledge.

Responses to Special ConditionsSpecial states of the opponentAirStrong KickEmit energy ball..We set different actions for these special states.

Changing strategiesIf the damage we suffered is much higher than that of the opponent at the middle or the end of the round, an alternative action table will be tried.

AsuchAI_LEPnkNNDeveloper: Kazuki AsayamaSupervisor: Koichi Moriyama, Ken-ichi Fukui, and Masayuki NumaoAffiliation: The Institute of Scientific and Industrial Research, Osaka University

41

FeaturesPrediction of the opponents Position and ActionSearch reachable attach by using the position predictionCounter action by using the action prediction

Hate gaugePrevention of repeatedly receiving damage

winDegree gaugeThe criterion of closing to opponent less or more actively.

PredictionPosition Prediction Predict 15 frames later by linear extrapolationCalculate distance between myself and opponentPredict the time when command startupExample: Startup of STAND_A is 3 frames. 15(original delay) + 3(Startup) = 18 is prediction frame.Search reachable attack by using predicted positionAction PredictionPredict 15 frames later by k-Nearest neighbor method6 features: relative X, Y, absolute Y coordinates and these difference from 15 frames beforeCounter against JUMP and AIR attack by using predicted action

Figure of Position prediction

Moving opponent

44

Other featuresHate gaugeWhen this AI receives damage repeatedly, it attempts to guard next attack, by doing so, attempts to escapes from opponents loop attack.

winDegree gaugeWhen this AI has high scores, it is less active than usual.

BlueLagJulien NeveuInternship: Faculty of Science and Technology, Bangkok University IUT dAngoulme, Universit de Poitiers, FranceAdvisor: Dr. Worawat ChoensawatBangkok University, School of Science and Technology

BlueLagDefence Avoid damages by escaping fire balls, ultimate skill and avoid blocking in the corner. Counter attack when the character are close.

Attack The attack algorithm selection depends of the distance with different thresholds.

DEFENCEEscaping

Escaping

Counter attack

Counter attack

Escaping

ATTACK

Distance test Actions

We also use a test to know if we can use the ultimate skill

49

DragonWarriorDeveloped by: Renan Motta Goulart.(Master's Degree Student)

Affiliation: Universidade Federal de Juiz de Fora, Brazil.

Email: [email protected] , [email protected]

5050

Outline

Learns how the opponent fights.

Predict the oponent's next move by keeping information of his past actions and the distance when they were used.

5151

Outline

The possible attacks that the oponent might use are discovered by using the average position and the standard deviation of where the oponent attacked.

5252

FICE_AI_OMDeveloper: Aldi Doanta KurniaAffiliation: Institut Teknologi BandungIndonesia

AI OutlineUsing J48, an open source C4.5 algorithm in Weka.It records data during the game, to be used for opponent prediction system using J48.

AI OutlineIt also uses a simple weighting system, to determine actions during the game.It updates the weight for each action using an evaluation function that calculates HP difference between the two players, before and after the action.

FuzzyGADevelopers: Carlos Lpez Turigano, Jos mara Font Fernndez, Daniel Manrique gamoAffiliation: Universidad politcnica de Madrid, spainEmail: [email protected]

FuzzyGA outlineFuzzy rule-base system using fuzzylite library

Every state of the game is evaluated and what to do is determined by the rule-base sistem

The set of rules have been obtained using an Evolution Sistem.

Sparrings for training have been AIs from 2014 tournament and 2 custom IAs.

FuzzyGA Input variablesDistanceScoreOwn X positionOpponent X positionOwn Y positionOpponent Y positionOwn energyOpponent energyOwn X speedOpponent X speedOwn Y speedOpponent Y speed

Input variables are variables obtained from framData or composed by them.

FuzzyGA Output variables- The output is the action that will be send to the CommandCenterHorizontal MovementFORWARDSTANDBACKVertical MovementJUMPSTANDCROUCHActionSTAND_GUARD, CROUCH_GUARD, AIR_GUARD, THROW_A, THROW_B, STAND_A, STAND_B, CROUCH_A, CROUCH_B, AIR_A, AIR_B, AIR_DA, AIR_DB, STAND_FA, STAND_FB, CROUCH_FA, CROUCH_FB, AIR_FA, AIR_FB, AIR_UA, AIR_UB, STAND_D_DF_FA, STAND_D_DF_FB, STAND_F_D_DFA, STAND_F_D_DFB, STAND_D_DB_BA, STAND_D_DB_BB, AIR_D_DF_FA, AIR_D_DF_FB, AIR_F_D_DFA, AIR_F_D_DFB, AIR_D_DB_BA, AIR_D_DB_BB, STAND_D_DF_FC

Giant TeamSuwijak WipachonThiti RueangritSutee ChamnankitKingkarn Sookhanaphibarn (Advisor)

School of Science and TechnologyBANGKOK UNIVERSITY

Giant TeamWe developed an AI charactor by using a rule-based strategy to define the fighting states and actions.

Our AI robot makes decision based on the following states:Defense stateAttack stateCounter attack state

For each state, we can divided into two cases as followsFar = distance between our AI character and opponent over a predefined threshold.Near = distance between our AI character and opponent less than a predefined threshold.

Defense stateDetection of the opponents skill: In case of Opponents skill = Fireball, Our AI character will use Jump whenever Opp skill=Ultimate and getDistance() threshold.

Attack and Counter Attack statesOur AI character will enter to Attack state or Counter attack state by considering two variables: Opponents skill and Distance from Opponent.

When opponents skill isnt Fireball

Attack stateIf (Our_AI_energy > 300) then Our_AI_skill = Ultimate.If (Our_AI_energy > 50 And Time is low) then Our_AI_skill = Small Ultimate.If (getDistance() > threshold) then Our AI_skill will be Fireball If (getDistance() is between threshold) then Our AI_skill will be AIR_UBIf (getDistance() < threshold) then Our AI_skill will be CROUCH_FA else Our AI_skill will be CROUCH_FB .

Counter Attack StatesIf(opponents skill Is Air and getDistence < threshold) then Our_AI_skill = AIR_UA"

Jay_BotSejong university(KOR)undergraduatestudentManje Kim, Cheong-mok Bae

67

Based rules, depending on the distance.Infighting style.Change strategy by energy score.Very aggressive AI.Using various ground skill.

Q/A : [email protected]

Machete: Reflex AgentAI Name: Machete.Developed by: Axel G. Garcia Krastek.Affiliation: Otto-von-Guericke University Magdeburg, Germany.Contact: [email protected]

Machete: AI OutlineMachete is a reflex agent with simple, but effective rules.Rules are based on distance to the opponent, energy of the opponent and the energy of the agent.If opponent is too far away, Machete will get closer with forward jumps. If opponent is far but not too far then Machete will advance forward.When the energy of Machete reaches a threshold, it will perform an action based on the amount of energy.

Machete: AI OutlineMachete has one very important survival rule: When the enemys energy reaches 300, Machete will try to avoid getting hit by the energy ball that the enemy can produce with 300 points.Finally, when none of the other mentioned conditions are met, Machete will perform kicks which helps in two ways:It introduces randomness, so the enemy cannot accurately predict Machetes movements.Machete is never standing still doing nothing, it will always be kicking, which increases its chances of winning the match.

Fighting Game AI Competition

AI Name : Ni1mir4riDeveloper : Jiyuu YiAffiliation : Sejong University, Korea2015.08.14

AIs Outline

1. Getting 3000 points from defensive opponent 2. The selection most effective action based on distance3. Handling unfavorable situation(Ensemble with SejongFighter AI)state1Startstate2state3MovementOf opponentDeterioratedsituationImprovedsituation

State1 : Getting 3000 points from defensive opponent

The state of game just being started .And a opponent doesnt move repeating the actions of same patter.Defensive characters tend not to move, until his opponent comes in attack range.Using this feature, My character withdraws after using the air skills.As a result, I can get 3000 points.

Player1(my opponent) is just repeating same skills,at the same position even he was damaged 10 points.State1 : Getting 3000 points from defensive opponent

State2 : The selection of the most effective action based on distance

According to my analysis result,kicking with jumping was most effective at the close combat.At long distance, the air skills were most effective.If my energy is enough to use stronger air skills, use those.

State3 : Handling unfavorable situation(Ensemble with SejongFighter AI)

Although my character use effective skills,Sometimes It can be unfavorable.A definition of unfavorable situation is (myHP 1Avoid enermyHP Rate == 1Basic StrategyHP Rate < 1Approach to the enermyHp Rate = (myHp - 1.0)/(EnermyHp - 1.0)

SNORKEL

Suriya SampanchitAriya TippawanKingkarn Sookhanaphibarn (Advisor)

School of Science and TechnologyBANGKOK UNIVERSITYThailand

Overview of Our AI characterWe use a rule-based algorithm with three main varaibles to define the fighting states and actions; and the variables are as follows:-Distance from Opponent-Opponent Action- Our AI Energy

Our AI fighting states are divided into two states by considering the distance from Opponent:-Defense state when Opponent is FAR.-Attack state when Opponent is NEAR.

Our AI actions are as follows:-Defense state: STAND_D_DF_FC, STAND_D_DF_FA, FOR_JUMP, CROUCH_A, CROUCH_FA , BACK_JUMP

-Attack state: CROUCH_FA, CROUCH_FB, AIR_FB, FORWARD_WALK

DEFENSE stateOur AI character will use these two skills: STAND_D_DF_FC OR STAND_D_DF_FA.

If Dist_from_Opp 120) then Our_AI_character_skill = FORWARD_WALK.

If (Distance from Opponent is in a defined range) then Our_AI_character_skill = CROUCH_FB OR AIR_FB OR CROUCH_FA.

If (Opponent is very close to ours on GROUND) then Our_AI_character_skill = CROUCH_FB

If (Opponent is very close to ours on GROUND) then Our_AI_character_skill = AIR_FB

All the action skills mentioned above cannot do not much damage to Opponent. Thus, our AI character often use FORWARD_WALK to make a score until our AI energy is enough to release Ultimate skill.

* * * *

CIG 2015, Sep 2, 2015Thank you and see you at CIG 2016!

Chart15149524855455644564457436238574364365638693159417129693379216832623872287228623865356733663476247327693156447525712972286733604070307327693170307327722867337525772373277426802075256931782267337030732770307228663478227030693175257129693172286733683273277525752579217228703069317525802070307327752580207624732785156634772376247822752575257525792174267921861470307822831777237822782284168416811987139010

Selected By AISTR.txtSelected By Predict

1RoundSelected By AISTR.txtSelected By Predict1514925248355454564455644657437623885743964361056381169311259411371291469331579211668321762381872281972282062382165352267332366342476242573272669312756442875252971293072283167333260403370303473273569313670303773273872283967334075254177234273274374264480204575254669314778224867334970305073275170305272285366345478225570305669315775255871295969316072286167336268326373276475256575256679216772286870306969317075257180207270307373277475257580207676247773277885157966348077238176248278228375258475258575258679218774268879218986149070309178229283179377239478229578229684169784169881199987131009010