“E” Refer to Equa- Tions. Page Numbers Ending In
Total Page:16
File Type:pdf, Size:1020Kb
Index Note: Page numbers ending in “e” refer to equa- control-based architecture for, 531–538 tions. Page numbers ending in “f” refer to figures. game extensions, 536–537 Page numbers ending in “t” refer to tables. gosling control system, 537 A hierarchical control system, 535–536, 535f introduction to, 531–532 academic AI, 3–5, 8, 66. See also Game AI negative feedback controller, 533–537, 533f, action potential, 15–21, 16f, 17f, 18f 534f agent threat response, 391–398 perceptual control system, 533–535 AI Game Programming Wisdom, 437 purposeful behavior, 531–532 AI Techniques for Game Programming, 391 animation-driven locomotion. See also alibi generation locomotion background of, 460 action-stack, 328–330, 329f choosing alibis, 465–466 commercial implementation, 334 computing, 464e executing actions, 331–333 deleting characters, 466–467 implementing, 331–332, 334 distribution, 463, 465 introduction to, 325 fooling players, 459–467 inverse kinematic (IK) controllers, 333 generating, 464–467 locomotion planning, 325–334 hybrid generation, 466 movement architectures, 326 ideal world, 460–462, 462f, 465 navigation paths, 327–328, 328f initial generation, 462–463 nontransfer actions, 331–332 introduction to, 459–460 performance of, 333–334 maintaining characters, 466–467 preparation for, 326–327 necessity of, 463–464 transfer actions, 325, 330–333 options for, 465–466 architectures perturbation, 466 for animal behavior, 531–538 population size, 462–463 for background characters, 453–455 position selection, 463 for blackboards, 61, 66–67, 214–215 Anguelov, Bobby, 297 for character-rich social simulation, 515–530 animal behavior CiF architecture, 516–529 control systems for, 532–537 common architectures, 62–63 control theory, 532–533 for Game AI, 5–7, 6f, 45–60 581 for hierarchical AI, 378–379, 379f behavior scheduler, 88–90 hybrid architecture, 146 behavior selection algorithms integrated architectures, 231–232 behavior trees, 52–53 movement architectures, 326 chaining search, 56 pathfinding optimizations, 241–252 finite-state machines (FSMs), 48–52 for racing games, 471–479 goal-oriented action planning (GOAP), 7, structural architecture, 61–71 55–59 for tactical positions, 338–339, 339f hierarchical finite-state machines (HFSMs), three-layer architecture, 146f 50–52 Argyle, Michael, 448 introduction to, 47 artificial intelligence (AI), 3–4.See also Game AI solutions for, 57–60, 149–150, 163, 167 Artificial Intelligence for Games, 52, 391 for tactical position selection, 342–343 artificial sound designer (ASD) utility systems for, 53–55 database for, 551–553 behavior trees for dynamic sound, 549–555 actions for, 52–53, 75–76, 99–111 explanation of, 550–551 advanced behavior trees, 84–90 generating events, 551 autonomy and, 130, 136 play-request events, 554 behavior concepts, 75–76 rule set for, 553 behavior selection algorithms, 52–53 updating, 554–555 building blocks of, 75–84 attribute checking, 226–228 C++ and, 214–215 authorial control, 5, 6f completion status for, 76 autonomy composites of, 78–79 approximations of, 130 conditions for, 75–78 behavior trees and, 130, 136 constraints for, 100, 103–106 in CiF, 515–516, 525–528 for decision-making, 130–132, 137 in collision system, 565–566 decorators, 78 in Game AI, 6f, 99–102, 138 evaluation and, 134–136 in OpenCL, 541 event-driven behavior, 88–89 in robots, 383 examples of, 74–76, 100f, 129–130, 129f, 130f in squad AI, 383, 515 execution and, 134–136 avoidance point (AP), 302–304 execution hints, 76 B explanation of, 52–53 extensibility, 53 background characters. See also characters filters, 80 actions for, 454–455 finite-state machines (FSMs), 63 architecture for, 453–455 first-generation trees, 84–85 breathing life into, 451–458 flexibility of, 73, 98 game objects, 454–455 hybrid approach to, 99–111 improvements on, 457–458 initialization of actions, 77 introduction to, 451 introduction to, 73, 99–100, 127–128 schedule entries for, 453–454 leaf behaviors, 77, 90, 94, 134 schedule system for, 452–453 leaf nodes, 75–77, 102, 134–135, 222 schedule templates for, 456 memory access performance, 86–87 techniques for, 452 modular behaviors, 91 Bednarz, Tomasz, 539 monitoring, 77–78, 83 behavior, representing, 12 node implementations, 85–87 behavior asset management, 96 overview of, 74–75 behavior class improvements, 97 performance of, 6 behavior observers, 88 planner hybrid, 102–103 582 Index planners, 101–103, 101f, 111 camera size, 565 popularity of, 128 collision flags, 565 preconditions, 52–53, 80 collision reaction, 565–566 propagating utility, 134 collision system, 565–566 real-world behavior trees, 93–98 competing cameras, 559 return statuses, 76–78 configuration of, 560–561 Runtime Compiled C++ and, 214–215 data driven approach, 561 second-generation trees, 84–85 debugging, 558–559 selectors, 63, 80–81, 83–84, 102–103, 129–133, distance from cameras, 562, 563f 132f explanation of, 557–558 sequences, 79–80 features of, 563–565 sharing between entities, 85–86 first-person camera, 562 shutdown of actions, 77 fixed cameras, 562 simplicity of, 53 input transform, 560 simulating, 99–111 introduction to, 557 starter kit for, 73–91 managing multiple cameras, 559–560 strength of, 53 object references, 561 transient data allocation, 88 occlusion reaction, 566 updating, 74–75 orbit cameras, 562–564, 564f utility decisions for, 127–136, 131e over-the-shoulder cameras, 562 utility selector, 132–133, 132f priorities, 561 utility theory, 130 on rails, 563 utility value, 131–135, 135f spline for, 563–564, 564f variations of, 84–91 sweet spot for, 564–565 Behavioral Mathematics for Game AI, 55 third-person camera, 562 behaviors, debugging, 97–98 tips for, 557–566 Beij, Arjen, 389 tracking cameras, 562 Belgian AI, 370, 373–374 transitions, 559–560 bell curves, 30. See also Gaussian randomness view manager, 559 Binks, Doug, 201 Carlisle, Phil, 433, 441 Bjore, Stephen, 289 central limit theorem, 30–31, 31f blackboard architecture, 61, 66–67, 214–215 Champandard, Alex J., 73, 377 Bodily Communication, 448 character blackboards, 66–67 Boolean flag, 226, 247, 345, 517, 529 character criticality, 188–189 Boolean questions, 53–55, 54e character-rich social simulation. See also Bourke, Conan, 539 characters break in realism (BIR), 187–188, 191–193 character representation, 520–521, 520t Bresenham line algorithm, 311 CiF architecture, 516–529 Brewer, Daniel, 361 explorer interface, 518, 519f Brink, 343, 344 interaction approaches, 527–528 “bucketing,” 121–122, 121f introduction to, 515–516 Bulletstorm, 84, 325, 334, 342, 349, 357, 423–424, related work, 528–529 430–431 social exchanges, 517, 518f, 523–527, 523t C social facts knowledge base (SFKB), 522–523 social state, 521–523 C++ for rapid AI, 201–217 story goals, 517, 519f camera system characters activation rules, 561 background characters, 451–458 behavior of, 561–563 breathing life into, 451–458 bones for, 564 components of, 441–449, 448f Index 583 social dynamics system, 441–450 criticality, measuring, 189 social simulation of, 515–530 crowd pathfinding Ciupinski, Jaroslaw, 325 algorithm for, 311 collision avoidance Bresenham line algorithm, 311 agent collision radius (ACR), 300 cost data, 314 animation-driven locomotion, 297–299 cost fields, 308–309 introduction to, 297 cost integration pass, 311–312 for locomotion, 299–300 cost stamps, 314–315 path modification system, 302–304, 303f CPU usage and, 315–316 reciprocal velocity obstacle technique, dynamic environments, 313–314 297–299, 304–305 dynamic flow field tiles, 307, 323 time per movement, 300 field types, 307–309, 323 velocity vector, 300 flow field cache, 313 collision detection, 299–302, 300f flow field pass, 312–313, 313f collision resolution, 299–304, 304f flow fields, 307–318, 313f, 319f, 320–323 collision sphere motion, 301 integration fields, 308–310 collision system, 565–566 integration steps, 310–311 combat maneuvers integrator, 310 examples of, 173t, 174f, 175f, 176f introduction to, 307 introduction to, 169 island fields, 315 multi-unit planning, 170–171, 170f, 172f, 181f line of sight (LOS) pass, 310–311, 312f planning for, 169–183 motivation for, 307–308 plan-space planning, 172–182, 181f movement types, 314–315 Comme il Fault (CiF) architecture, 515–529 path costs, 308–309, 311–312 Company of Heroes, 246 path requests, 310 Computational Brain, The, 12 world layout, 308–309, 309f control system crowd simulation adaptive control, 497–498 algorithm for, 318–319, 322–323 for animal behavior, 532–537 closed-loop control, 492–493, 492f flow fields, 318–319, 319f, 322–323 control theory, 492–494 flow function, 318–319 explanation of, 532–533 future of, 322–323 hierarchy of, 535–536, 535f grid for, 317–318 introduction to, 491–492 introduction to, 317 negative feedback controller, 533–537, 533f, steering behaviors, 315–316, 319–321 534f units for, 319–321, 320f open-loop control, 492–493, 492f CryENGINE, 203, 337, 406, 411 other racing applications, 498–500 CryENGINE 3, 203, 404, 411 perceptual control system, 533–535 CryEngine Free SDK, 341, 411 PID controllers, 494–500 Crysis 1, 348 predictive control, 498 Crysis 2, 128, 214, 215, 337, 343–344, 348, 352, for racing games, 491–500 356, 358, 404 cost data, 314 D cost fields, 308–309 cost integration pass, 311–312 Da Vinci, Leonardo, 403 cost stamps, 314–315 “danger awareness,” 144–145 Côté, Carle, 137 Dawe, Michael, 47, 93, 369 Crackdown 2, 406 decision-making systems Creatures, 5 action selector, 143f, 144f, 145f critical thinking skills, 11–12, 26 behavior trees for, 130–132, 137 584 Index behavioral artifacts, 141f, 142f,