Preface Chapter 1:Gettinq Started with Al Sandbox Introduction to Al sandbox Understanding the sandbox The project Iayout The Premake build Compiling the sandbox with Visual Studio 2008/2010/2012/2013 Open source Iibraries Open source tools Lua IDE—Decoda Running AI sandbox inside Decoda Setting up a new Decoda project Debugging Lua scripts Decoda Watch window Decoda Call Stack window The Decoda Virtual Machines window Simultaneous Lua and C+—I—debugging Visual Studio—Attach to Process Decoda——Attach to Process Decoda..Attach System Debugger Associating Lua scripts from code with Decoda The Lua virtual machine The Lua stack Lua primitives Metatables Metamethods Userdata C/C++calling Lua functions Lua calling C/C++functions Function binding Creating custom userdata Looking at the vector data type The demo framework Ogre Object—Oriented Input System SandboxApplication Sandbox Agent Utility classes Lua binding Summary Chapter 2:Creating and Movinq Aqents Creating a new sandbox project Setting up the file structure Extending the SandboxApplication class Running your sandbox for the first time Creating a new Decoda project Configuring Decoda's run executable Creating a sandbox Lua script Creating a floor Adding a Iight Adding a skybox Adding meshes to the sandbox Creating sandbox objects Shooting blocks Creating an agent Lua script Creating a visual representation Updating an agent position Updating an agent orientation Agent properties Orientation The forward axis The leftaxis The up axis Location Position Size Height Radius Physics Mass The max force The max speed Speed Velocity Knowledge Target Target radius Path Agents' movement Mass Speed Velocity Acceleration Force Agent—steering forces Seeking Applying steering forces to an agent Clamping the horizontal speed of an agent Creating a seeking agent Pursuit Fleeing Evasion Wandering The target speed Path following Creating a path following agent Avoidance Collision avoidance Obstacle avoidance Avoiding blocks and agents Group steering Alignment Cohesion Separation Creating a group of followers Summing steering forces Weighted sums Priority—based forces Summary Chapter 3: Character Animations Skeletons and meshes Mesh skeletons Loading an animated mesh Showing a skeleton Attaching meshes to bones Attaching a weapon to our soldier Animation clips Playing an animation on our soldier Soldier animations Crouching animations Standing animations Weapon animations Soldier poses Weapon poses Manipulating animations Enabling and disabling animations Looping animations The animation length The animation time Normalized time Restarting an animation Playing a non—looping animation The animation rate Animation blending Animation weights Blend window Blend curves Linear blending Playing with blend weights Animation state machine (ASM) States Transitions Creating animation state machines Creating helper functions Adding states Adding transitions Adding external helper functions Forcefully setting states Requesting states Updating the animation state machine Handling state transitions and state requests Updating running animations Adding functions to animation state machine instances Building a weapon animation state machine Building a soldier animation state machine Updating animation state machines Playing with states Summary …… Chapter 4: Mind Body Control Chapter 5: Navigation Chapter 6: Decision Making Chapter 7: Knowledge Representation Chapter 8: Perception Chapter 9: Tactics Index