15.12.2012 Views

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 ...

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!