Los arcivos son en realidad funciones o prototipos y no clases, por lo que se los llama con un include.
Bajar los archivos y el .fla del ejemplo.
A pesar de que, por el momento no conste de algunas capacidades (como encontrar un camino para ir de una ubicación a otra) sigue funcionando bastante bien y es interesante la simpleza con la que se pueden agregar nuevos comportamientos (o modificar los ya existentes).
Las acciones principales que realiza la IA son (cada comportamiento está ejemplificado en el ejemplo):
Quedarse fija en un punto, buscando al personaje controlado por el usuario (de ahora en adelante, PC, por playable character).
Recorrer la pantalla, detectando posibles caminos y con movimientos absolutamente aleatorios. Un efecto muy interesante que justifica en sí mismo bajar el archivo y ver cómo funciona.
Recibir una serie de puntos de navegación que recorrerá el NPC. Al llegar a cada punto, se puede especificar cuanto tiempo permanecerá ahí y en que dirección mirará. Lo que consigue un excelente efecto del tipo Comandos donde hay que cuidarse de soldados con movimientos bien predefinidos.
Buscar al PC en caso de escucharlo disparar (sólo los soldados -de rojo- buscan al PC, los civiles -de azul- huyen despavoridos). Tengan en cuenta que la búsqueda es un poco limitada y que los NPCs sólo buscarán al jugador en caso de que exista una línea que permita llegar hasta él sin atravesar paredes.
Atacar (nuevamente, sólo los soldados) si el PC se halla a la vista.
Escuchar al PC si se encuentra lo suficientemente cerca y se está moviendo. Es decir, si no se mueve, pasa desapercibido.
Claro está, hay muchos más detalles y se pueden hacer cosas muy interesantes con el código. Ustedes mismos pueden bajar el ejemplo y probar distintos movimientos para observar las consecuencias.
Como es lógico, si alguien está interesado en crear un videojuego con este código, debe especificar de dónde sacó el código y si es posible incluir el logo del cerebro -incluido en el .fla- en alguna parte (la única modificación que admito es el color del mismo para que combine con el resto del programa).
Si quieren reportar cualquier error o problema que haya surgido, mostrar algún código que agregue funcionalidad o cualquier clase de Feedback, háganlo en este post. No habran nuevos temas inutilmente (no pienso responder ninguna duda fuera de este post).
Tengan en cuanta que creé este código con el único fin de ver si lograba que hacerlo, y no tengo interés en trabajar en ningún videojuego en particular ni en ayudar a alguien a triunfar en minijuegos o cosas por el estilo. Aunque, por supuesto evalúo cualquier propuesta.
Dicho todo esto, bajen el código, experimenten y diviértanse.