These are the slides about the 2016 Fighting Game Artificial Intelligence Competition presented at the 2016 IEEE Conference on Computational Intelligence and Games (CIG 2016) on September 22, 2016 in Santorini, Greece.
2016 Fighting Game Artificial Intelligence Competition
1. 2016 Fighting Game AI Competition
Yuto Nakagawa lead programmer
Makoto Ishihara programmer
Taichi Miyazaki programmer
Samuel Henz programmer
Pujana Paliyawan tester, etc.
Shubu Yoshida tester, etc.
Kaito Yamamoto consultant
Tomohiro Harada vice director
Ruck Thawonmas director
Team FightingICE
Intelligent Computer Entertainment Laboratory
Ritsumeikan University
Japan
Game resources are from The Rumble Fish 2 with the courtesy of Dimps Corporation.
CIG 2016: Sep 22, 2016
3. Affiliations
College of Information
Science and Engineering
Graduate School of Information
Science and Engineering
Ritsumeikan Center for
Game Research Studies
More than 30 of our graduates work for
KONAMI (6), KOEI TECMO (4), Dimps (4), SEGA (4), CAPCOM (3),
NHN PlayArt (2), FromSoftware (2), CROOZ, COLOPL, SQUARE ENIX,
DWANGO, BANDAI NAMCO Studios, BANDAI NETWORKS,
PlatinumGames, Marvelous AQL, SSD, etc.
Contents
Intelligent Computer Entertainment
Laboratory, Ritsumeikan University
CIG 2016: Sep 22, 2016
4. Fighting game AI platform in Java viable to develop with a
small-size team
First of its kinds since 2013 & CIG 2014 with most previous
AI source codes available
Used in classes at
Otto von Guericke University
Magdeburg, Germany
Ritsumeikan University, Japan
Sejong University, South Korea
University of Malta, Malta
etc.
FightingICE
CIG 2016: Sep 22, 2016
Game resources are from The Rumble Fish 2 with the
courtesy of Dimps Corporation.
5. For scoring purpose, character HP starts with zero
𝑆𝑐𝑜𝑟𝑒 = 1000 ∗
𝑜𝑝𝑝𝑜𝑛𝑒𝑛𝑡.𝐻𝑃𝑙𝑜𝑠𝑠
𝑠𝑒𝑙𝑓.𝐻𝑃𝑙𝑜𝑠𝑠+𝑜𝑝𝑝𝑜𝑛𝑒𝑛𝑡.𝐻𝑃𝑙𝑜𝑠𝑠
Has 16.67 ms response time (60 FPS)
Current game state provided by the system is delayed
by 15 frames
Introduced this year are
Nice special effects
An MCTS sample AI
F1 Scoring System to ZEN, GARNET and LUD tournaments
10 games for training parameters vs the sample MCTS AI in
the LUD tournament, in which character data are not revealed
FightingICE’s Features
CIG 2016: Sep 22, 2016
7. Players use attack actions (skills) and moving actions
to fight
A skill has 3 stages:
Startup, Active and Recovery
Skill System(1/4)
CIG 2016: Sep 22, 2016
8. Skill System(2/4)
Startup
1st stage
Prepare to attack
No attack box, so
no damage to give
CIG 2016: Sep 22, 2016
9. Skill System(3/4)
Active
2nd stage
The small red box -- attack
box -- can be seen on the
character’s arm
In these frames, if the
opponent’s attack hit box
coincide with this attack box,
the opponent will be
damaged
CIG 2016: Sep 22, 2016
10. Skill System(4/4)
Recover
3rd stage
Recover to normal
status
Special frame:
cancelable
Some skills can be
used during
cancelable frames
CIG 2016: Sep 22, 2016
12. For each of the three tournaments
ZEN, GARNET, and LUD
Two games, each switching the player sides, are played
for each pair of submitted AIs in a round-robin fashion.
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.
Points are awarded to each AI according to their
position using the 2015 Formula-1 scoring system.
• Contest Rules
CIG 2016: Sep 22, 2016
13. 13 AIs from 6 locations
Brazil, Germany, Japan, South Korea, Taiwan,
and Thailand
Techniques (more use of advanced techniques)
6 AIs -> a combination of rules and MCTS
5 AIs -> rule-based algorithms (less popular this year!)
1 AI -> a combination of Baysian-based
opponent modeling and a rule-based
algorithm
1 AI -> Dynamic Scripting
Summary of AI Fighters
CIG 2016: Sep 22, 2016
16. RANK
BANZAI 10
DragonSurvivor 11
paranahueBot
(aka iaTest)
6
IchibanChan 8
JayBot2016 4
KeepYourDistanceBot 9
MctsAi (sample AI) *
MrAsh 3
Poring 7
Ranezi 2
Snorkel 12
Thunder01 1
Tomatensimulator 5
Triump 13
CIG 2016: Sep 22, 2016
Final Ranking among Participants
2016 Winners
1st Thunder01 by
Eita Aoki
non-student, Japan, using
Machete (2015 1st place rule-base AI) + MCTS
2nd Ranezi by
Anne-Lena Simon, Simone Bexten, Raziyeh Ghassemi
Otto-von-Guericke-University Magdeburg, Germany, using
Original rule-base algorithm + MCTS
3rd MrAsh by
Che-Chun Chen, Cheng-Yuan Wu, Tsung-Che Chiang
National Taiwan Normal University, Taiwan, using
Machete + MCTS
Standing on the shoulders of giants seems to work!
17. CIG 2016: Sep 22, 2016
Appendices: AI Details
(in alphabetical order)
18. BANZAI
-AI code for FightingICE 2016 competition -
Sato Naoyuki
(JAIST - Japan)
CIG 2016: Sep 22, 2016
19. BANZAI
• Method
– Dynamic Scripting
• [Online adaptation] with [Hand-coded routines]
• Ref. -> Pieter S, Marc P, Ida S and Eric P. "Adaptive game AI with dynamic
scripting," Machine Learning 2006, Vol.63, pp.217-248, 2006.
[Rule A]
IF <enemy is near>
THEN jump back
[Rule B]
IF <enemy is near>
THEN throw him
[Rule C]
IF <enemy is far>
THEN …
Rulebase
AI_Script
-[Rule A]
-[Rule C]
-[Rule D]
…
Make
Script
Shuffle Rules
sometimes
Fight against
enemy
AI Fighter
Judge which rule
was effective
(by observing
the battle)CIG 2016: Sep 22, 2016
20. Rules for dynamic scripting
• If-Then rule
– Hand coded
– IF enemy is [NEAR/MIDDLE/FAR] from me
– THEN perform [Back Jump/Punch/Kick/ Courch_
and_Kick/Jump_and_Kick/Projectile Attack/ …]
• 3 rules for NEAR distance
• 4 rules for MIDDLE distance
• 3 rules for FAR distance
• 3 rules for ANY distance
– Though, these 3 rules are activated only when
no other rule is activated.
CIG 2016: Sep 22, 2016
22. DragonSurvivor
Developed by: Renan Motta Goulart.
Affliliation: Universidade Federal de Juiz de Fora
(PGCC/UFJF), Brazil.
Contact: renan.motta@ice.ufjf.br
CIG 2016: Sep 22, 2016
23. DragonSurvivor
Uses a simple bayesian algorithm to predict
the next move of the opponent.
There are four different distances: Close,
Medium-close, Medium and Far.
For every region it is kept the last five
moves by the opponent.
The most common move in these five is the
one supposed that the opponent will use.
CIG 2016: Sep 22, 2016
24. DragonSurvivor
For each of the four distances there are
counter-measures to be used against each
move.
Counter-measures for the same move can
vary in relation to each region.
Counter measures were discovered by
myself playing against my AI. I stopped
once i could not beat it anymore.
CIG 2016: Sep 22, 2016
26. Basic Idea
Rule-based AI with defined States based on:
X-distance between players
Distance to the “walls”
Is enemy in the air?
Energy
CIG 2016: Sep 22, 2016
27. X-Distance between Players
Far Range: minimize distance
Mid Range: minimize distance, (super attack)
Near Range: kick, (slide)
Contact Range: kick
CIG 2016: Sep 22, 2016
28. Distance to the Walls
Me between wall and enemy (BAD!)
Escape with jumping, (sliding)
Enemy between wall and me (GOOD!)
Do “contact range” action
CIG 2016: Sep 22, 2016
29. Is Enemy in the Air? / Energy
If enemy is in the air: (mainly “mid range”)
Beat upwards in the air to hit him while landing
Own Energy >= 50 (>= 300)
Stronger attacks like sliding (super attack)
Enemy Energy >= 300
Avoid getting hit by super attack through jumping
CIG 2016: Sep 22, 2016
30. Randomness
Mid Range && ! Enemy in the Air && Energy < 50
a) “DASH” (50%)
b) “FOR_JUMP _B” (50%)
More than 1 action per state possible
Decide with probabilities hardly predictable
Example
CIG 2016: Sep 22, 2016
31. Introduction
• AI Name : JayBot2016
• Developer Name : Man-Je Kim
(Undergraduate Students)
• Advisor Name : Kyung-Joong Kim
• Affiliation : Sejong University(KOR)
CIG 2016: Sep 22, 2016
32. Contents
• Jaybot(Last year Third
prize)+MCTS(MonteCarlo Tree Search)
• MCTS based rule coding AI
CIG 2016: Sep 22, 2016
35. ICE Fighting Game Competition AI
KeepYourDistanceBot
Developers: Aleksandar Stojnic, Chenke Rong
Affiliation: Otto-von-Guericke-University
Magdeburg, Germany
CIG 2016: Sep 22, 2016
36. ICE Fighting Game Competition AI
●Rule-based algorithm
–Keep distance from opponent
–Don't engage in close combat
–Only use the fireball attack
Idea
CIG 2016: Sep 22, 2016
37. ICE Fighting Game Competition AI
●If distance to opponent < comfort zone
–Get away from opponent
●If cornered
–Jump over opponent and attack (in case of a
counter) or
●While doing all of that
–Spam fireball
Basic Overview
CIG 2016: Sep 22, 2016
38. Fighting Game AI: MrAsh
Developed by : Che-Chun Chen, Cheng-Yuan Wu
Instructor:Tsung-Che Chiang
National Taiwan Normal University
Contact : 40147014S@ntnu.edu.tw ,
asdwayne1@yahoo.com.tw
CIG 2016: Sep 22, 2016
39. • The rule-based AI of 2015 champion
(Machete’s AI) is effective.
• MCTS is often able to respond well.
• Therefore, we try to combine rule-based AI
and MCTS methods.
CIG 2016: Sep 22, 2016
40. • Condition
– Character
– Air or Floor
– Corner
– Powerful special skill
– HP, energy, distance, etc.
– …..
• Adaptive
– If the condition is not easy to deal with, we use
MCTS to choose probably effect actions.
Game state
certain
condition
satisfied
MCTS
predefined
actionreturn action
yes
no
CIG 2016: Sep 22, 2016
45. Poring Ai
Thiti Kitiwakul
Samhingkarn Yoosnan
Worawat Choensawat & Kingkarn Sookhanaphibarn (Advisor)
School of Technology and Innovation
Bangkok University
Thailand
46. Our Proposed Concept
We developed an AI by applying rule-based method to MctsAi. The rule-based is
used to define the fighting states and actions, the considering variables are as
follows:
- Distance between player1 and player2
- State between player1 and player2
Our AI robot makes decision based on the following states:
- Defenese State
- Attack State
• Action when the enemy is in range.
• Action when the enemy is in melee.
• Action when the enemy is in air state
• Action when the enemy used skill
48. Rule-based for Zen character
○ We call method rulebasedZen until Enemy has energy more than 300 because
MctsAi is better in checking a Special skill and can escape skill from enemy.
○ Zen concept is focus on to Air Style and Escape Enemy
49. Garnet
○ First we check Distance between P1 and P2 and Score if myScore < oppScore
my character will change state to goface for prepare fight
○ Second, we check skill if opponent used skill STAND_D_DF_FB my character
will use Crouch_FB because this skill is easy way to escape
○ Third If out of condition my ai will switch to MctsAi but our renew to sort skill in
array
50. setAction LUD
Our concept in Lud Character
○ First check MyScore < EnemyScore switch stage to prepare for fight
○ Seoncd If the enemy stay in angle my ai will used skill CROUCH_FB
○ Third If out of condition my character will change Stage => Fight
54. INITIAL
OBSERVATION
•MCTS sample AI very strong
•But:
•MCTS barely tries to reduce distance to enemy,
wasting a lot of time
•MCTS often gets hit by projectiles
CIG 2016: Sep 22, 2016
55. OUR APPROACH– ORIGINAL
CONCEPT
•Modified MctsAI
•Add rule-basedsystem
•Limit available moves depending on game state
•E.g. only ranged attacks and forward movement
if far away
CIG 2016: Sep 22, 2016
57. Overview of Our AI character
● We use a ucb ,reward and rule-based algorithm with main varaibles to define the fighting states
and actions; and the variables are as follows:
-Damage MyAI
-Damage Opponent AI
-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.
58. UCB1 include REWARD Algorithm
• UCB1 is one of popular algorithms to handle the exploitation and exploration dilemma.
selects the action j that gets the highest UCB1 value .It linearly combines estimated expectation
reward (x̅ j) and curiosity (right term) of specific action j (n: # of trial of all actions, nj: # of the action j’s
trial). Eventually, this value becomes higher when the action j’s reward is high and/or curiosity term is
high. The UCB1 is used to collect the data actively. This algorithm
•
• The reward is the summation of difference of between hit to opponent damage (h) and
from opponent (d) for 120 frames after the action execution
reward=∑r i (hi-di)
i: frame index from action start
r: degrading factor, 0.98
59. • AI Name
thunder01
• Developers’ Name
eita aoki
• Affiliation
I’m not student
CIG 2016: Sep 22, 2016
60. AI’s Outline
• BASE Algorism :EMCTS(Extended MCTS)
I Extend Sample MCTS by Below Method.
・Incorporate Motion of Opponent to MCT
・Consider Energy
• ZEN: Combine
Algorism of Winner of FTG2015(Machete)
and EMCTS
• GARNET:EMCTS
• LUD:EMCTS considering Distance
CIG 2016: Sep 22, 2016
61. EMCTS
• How to Simulate
My player : will move high UCB1 move
(to make My player winner)
Opponent : will move low UCB1 move
(to make My player loser)
• This Algorism think Opponent can simulate
My player’s move correctly.
So, If Opponent is Strong ,My Algorism can
simulate Opponent’s move more correctly.
CIG 2016: Sep 22, 2016
62. LUD
• LUD is Unknown Character
• If both player repeat run away,
both player get 0 point.
• I hate it.
• So , If My Character don’t win, reduce distance to
Opponent.
※ I confirmed ZEN and GARNET don’t repeat run
away.
So, this algorism is only for LUD.
CIG 2016: Sep 22, 2016
63. Tomatensimulator
Jan Sabsch, Björn Golla
Otto-von-Guericke University, Magdeburg
Quelle:http://publicdomainvectors.org/de/kostenlose-vektorgrafiken/Tomaten-Pflanze-Vektor-ClipArt-Grafik/18196.html
64. Two step decision making
1. Step Action Pruning:
Fill Actionpool depending on state AIR or GROUND
Remove Actions that are not successful based on:
i. Energy level
ii. Hitbox collision
1. Step Action Selection:
Select best Action from the viable option pool based on weighted parameters:
i. Damage
ii. Energy Balance
iii. Startup Time
iv. Speed in x and y direction
65. Triump
School of Science and Technology
BANGKOK UNIVERSITY
Thailand
Sorntad Peetawattanakul
Prapawarin Pramookrotjanarit
Worawat Choensawat (Committee)
Phattanapon Rhienmora (Committee)
Kingkarn Sookhanaphibarn (Committee)
CIG 2016: Sep 22, 2016
66. Our Proposed Concept
We developed Our AI with rule-based method for fight with
enemy characters.
We are considering variables are as follows Distance and
Energy.
Our AI make decision as follows with 2 states
Defense state
Attack state
CIG 2016: Sep 22, 2016
67. Attack state
oOur AI will be calculate distance form opponent and use skill
for attack.
oOur AI will use skill FOR_JUMP when our character at
corner and opponent come closer.
CIG 2016: Sep 22, 2016
68. Defense state
oWe use skills Throw_A for keep Distance with opponent.
o If time remaining less than 1000 and have energy more than
300 our AI will use ultimate skill immediately.
CIG 2016: Sep 22, 2016
69. Frame&character Data
Get
remainning
time
STAND_D_DF_FCEnergy>=
300
AIR_D_DF_FB
STAND_F_D_DFB
AIR_DB
Remaning
time < 1000
remainning
time < 1500
Enermy Y >
My Y
STAND_F_D_DF
A
Get enermy
& My state
STAND_F_D_FB
My energy
>50
Yes
No
Yes
Yes
Yes
Yes
Yes
Yes
No
No
No
EQUAL STATE
AIR
B
Yes
No
Distance Y
<75
Yes
EQUAL STATE
STAND
Distance X
>300
STAND_D_DF_F
A
Yes
Yes
No
No
No
Get my X
> 600
Get my X
< -100
B
FOR_JUMP
FOR_JUMP
Get
distance
skill
No
Yes
Yes
CIG 2016: Sep 22, 2016
70. CIG 2016: Sep 22, 2016
Thank you and
see you at CIG 2017!