First, we made some assumptions about the underlying model of the weapons in games:
Contact weapons need close proximity to be effective!
Simulation of contact weapons is not very detailed in most games.
The control is mostly high level, with one click (or press) corresponding to a compound weapon behavior.
The properties of projectile weapons affect their trajectories (for instance, speed and weight).
Projectiles are easy to simulate accurately, but often simplified instead (that is, no gravity).
We noticed some restrictions of the game design that affect how the problem is solved:
By their very nature, different weapons require different skills.
The raw ability to handle these weapons is the essence of combat.
The environment has a very important effect on the fight, constraining both weapons and players.
Finally, we drafted some guidelines to assist the rest of the practical development:
We need to test the AI in real game environments so that the skills transfer (especially when learning).
The level needs to have plenty of diversity in combat settings (that is, weapons, ammo, players).
After a brief practical interlude, the next chapter continues by covering the skills required to manipulate weapons and perform well in combat.
Some concepts in this chapter are illustrated by the animat called Rampage. Although the source code is explained in subsequent chapters, there's a guide on the web site to insert the compiled animat within the game. This procedure will remain the same for the rest of this part. Rampage has no particular shooting skills, but can fire repeatedly regardless of the weapon. This demonstrates the properties of each projectile and the effect of the environment (on explosions, for example).