Research Article

Artificial Intelligence in Video Games: Towards a Unified Framework

Algorithm 11

Conceptual data synchronization in Graven. Synchronization code in a class is added whenever its members are modified directly.
void  Raven_Bot::Spawn(Vector2D pos)
{
 ⋯
 //Direct modification: sync!
m_iHealth = m_iMaxHealth;
cpt->SetHealth(m_iHealth);
 //Function call: don’t sync, already done in function definition!
SetAlive();
 //Different class: don’t sync, WeaponSystem has its own sync code!
m_pWeaponSys->Initialize();
 ⋯
}