Bayesian Programming and Learning for Multi-Player Video Games ...
Bayesian Programming and Learning for Multi-Player Video Games ...
Bayesian Programming and Learning for Multi-Player Video Games ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
• Class: C i∈�1...n ∈ {T ank, Contact, Ranged, Healer} is the class of the ith player. Class<br />
(C) is simplified over 4 values: a Tank can take a lot of damages <strong>and</strong> taunt enemies,<br />
a Contact class which can deal huge amounts of damage with contact weapons (rogue,<br />
barbarian...), Ranged st<strong>and</strong>s <strong>for</strong> the class that deals damages from far away (hunters,<br />
mages...) <strong>and</strong> Healers are classes that can heal in considerable amounts.<br />
• Resists: R i∈�1...n� ∈ {Nothing, F ire, Ice, Nature, F ireIce, IceNat, F ireNat, All} in<strong>for</strong>ms<br />
about the resistances of the ith player. The resist variable is the combination of binary<br />
variables of resistance to certain types of (magical) damages into one variable. With 3<br />
possible resistances we get (2 3 ) 8 possible values. For instance “Ri = F ireNat” means<br />
that the ith character resists fire <strong>and</strong> nature-based damages. Armor (physical damages)<br />
could have been included, <strong>and</strong> the variables could have been separated.<br />
• Skill: S ∈ {Skill1 . . . Skillm}. The skill variable takes all the possible skills <strong>for</strong> the given<br />
character, <strong>and</strong> not only the available ones to cast at the moment to be able to have reusable<br />
probability tables (i.e. it is invariant of the dynamics of the game).<br />
Decomposition<br />
The joint distribution of the model is:<br />
P(S).P(T t |T t−1 ).P(T t−1 ).<br />
P(S, T t−1,t , HP1:n, D1:n, A1:n, ∆HP1:n, ID1:n, C1:n, R1:n) = (3.5)<br />
n� �<br />
P(HPi|Ai, Ci, S, T ).P(Di|Ai, S, T ).P(Ai|S, T ) (3.6)<br />
i=1<br />
P(∆HPi|Ai, S, T ).P(Ri|Ci, S, T ).P(Ci|Ai, S, T )P(IDi|T ) �<br />
We want to compute the probability distribution on the variable target (T ) <strong>and</strong> skill (S), so<br />
we have to consider the joint distribution with all variables on which target (T ) or skill (S) are<br />
conditionally dependent: the previous value of target (T t−1 ), <strong>and</strong> all the perceptions variables<br />
on each character.<br />
(3.7)<br />
• The probability of a given target depends on the previous one (it encodes the previous<br />
decision <strong>and</strong> so all previous states).<br />
• The health (or hit) points (HPi) depends on the facts that the ith character is an ally (Ai),<br />
on his class (Ci), <strong>and</strong> if he is a target (T ). Such a conditional probability table should be<br />
learned, but we can already <strong>for</strong>esee that a targeted ally with a tanking class (C = tank)<br />
would have a high probability of having low hit points (HP ) because taking it <strong>for</strong> target<br />
means that we intend to heal him.<br />
• The distance of the unit i (Di) is more probably far if unit i is an enemy (Ai = false) <strong>and</strong><br />
we target it (T = i) as our kind of druid attacks with ranged spells <strong>and</strong> does not fare well<br />
in the middle of the battlefield.<br />
• The probability of the ith character being an ally depends on if we target allies of foes<br />
more often: that is P(Ai|S, T ) encodes our propensity to target allies (with heals <strong>and</strong><br />
enhancements) or foes (with damaging or crippling abilities).<br />
50