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