Hormiga en la playa por motivos de Herbert Simon

Ahora nuestro equipo Candango Games está trabajando en un juego de PC en el estilo del horror. Tenemos la intención de introducir pronto (por cierto, para crearlo yo estudio los componentes del miedo). Así que esa es una de las características más importantes que quería implementar en este juego - un sistema que proporciona el efecto de la presencia plena. Y, como se sabe, la cosa más importante darse cuenta de esta tarea - es crear de alta calidad AI.






Pensando en cómo hacer esto, me di cuenta de que a fin de crear una arquitectura enfoque heurístico AI adecuado. A continuación voy a darle más información sobre esto.

En algunas teorías del conocimiento, dice que no vemos la realidad tal cual es. En cambio, vemos una "copia" virtualizada de la realidad que se crea y procesada por nuestro cerebro. Este es un juicio que vemos en la famosa platónica «Мифе la cueva ».

A primera vista, esto coincide con la forma en que nos acercamos a la aplicación de la IA: programamos agentes recibir y procesar la información sobre el mundo para luego en base a estos datos para tomar una decisión. Por lo tanto, ahora estamos tomando su visión del mundo en la inteligencia artificial - obliga a los agentes para que actúen de la misma manera como si actuaran en el cerebro de la persona. No podemos decir que este enfoque es absolutamente sin sentido.

Sin embargo, específicamente en el ámbito de los videojuegos hay un detalle: no es el equivalente de "mundo real" ya está virtual, es decir, es pura información. ¿Por qué lo hizo de nuevo virtualizovyvat agentes en el cerebro y luego hace que el cerebro para procesar la información? ¿Por qué estamos tratando de mover el mundo en el agente de cerebro, si se puede hacer lo contrario: para mover el agente de cerebro en el mundo? Así que decidí hacer esto: el mundo será "pensar" será "inteligente" y bien informado. Paz, no agentes.

Nos decidimos a ir en esa dirección, ya que este enfoque se adapta mejor a nuestro propósito - para crear AI para un buen Altavoces juego. Imagine la siguiente secuencia de juego:

Para usted está siendo perseguido en alguna casa. Cuando se ejecuta al final del pasillo, se observa una puerta abierta que conduce a la habitación. Usted está filmando allí y cerrar la puerta. Perseguidores comienzan a romper el bloqueo, y te das cuenta de que pronto se incluirán en esta habitación. Mirando a su alrededor, se ve una ventana cerrada, una cama y un armario. Abres la ventana y ocultar debajo de la cama. Se abre la puerta, uno de los perseguidores entra en la habitación, llegando a la ventana abierta y se ve fuera de él. Entonces él grita a sus cómplices que se escapó, saltando por la ventana y desaparece en la oscuridad. En este tiempo se las arregló para escapar.

Esto es lo que puedes hacer con un simple código usando enfoque heurístico básico "transferir el cerebro en el mundo." Y el código es tan simple como un código para Pacman. La particularidad radica en el hecho de que el agente (el acosador) no tiene ni idea de lo que estaba sucediendo detrás de puertas cerradas, que no sabe lo que el cuadro, lo que significa, a donde nos lleva, e incluso si se lleva a alguna parte. El agente no se dio cuenta de todas estas cosas y las ideas. Todo lo que hace - que debería ser señales e instrucciones disponibles
.
Ahora imagine los siguientes eventos:

Estás sentado en un ordenador, un juego y de repente encontrarse en la cocina delante de un refrigerador abierto. ¿Estás buscando algo allí o regresar de nuevo a su equipo con una taza de café, aunque esto no es un deseo de beber café no has experimentado.

Cómo ha ocurrido? Deliberadamente se levantó y lo hiciste? ¿Por qué harías eso?

Así que en este caso, "inteligente" no es un agente, y la ventana, y el cerebro no pertenece al agente, y el mundo. Agente Ventana dice que tenemos que hacer, dónde mirar, a dónde ir, qué decir a otros agentes y para mostrar cómo "su" decisión al jugador. Cuando el agente entra en la habitación, las cosas le dicen qué hacer. Cama, donde se refugia el jugador le ofrece una mirada debajo de ella. El gabinete también ofrece una mirada al interior. La nueva ventana abierta le dice que vaya fuera. Después de recibir estas propuestas agente recibe solución razonable sobre la base de la prioridad de estas tareas.

Interactuar con la ventana, el jugador aumenta su importancia en relación con el cual se aumenta la prioridad de esta tarea, y el agente se elige, y no otras formas de realización - la ventana se controla escenarios. Aquí, por ejemplo, si el jugador estaba escondido en el armario y se sentó allí en silencio, la prioridad de la tarea de "mirar en el armario" se reduce automáticamente, por lo que el agente elegirá la opción "mirar debajo de la cama", y el jugador, una vez más, será capaz de escapar. Todo depende de la elección de un diseñador de juegos: fue él quien decide cómo funciona cada elemento.



Sin embargo, no todos los problemas se originan a partir de fuentes externas. O unido a los elementos internos del agente también puede dar problemas. Por ejemplo, si el agente tiene un botiquín de primeros auxilios, y de repente estaba herido, el kit (que tiene) ordenar al agente a utilizar. La importancia de este problema es directamente proporcional a la gravedad de la lesión. Al mismo tiempo agente de sistema de daños para (interno) que él consiga lejos del hecho de que el agente causante de lesiones. Más bien, en esta situación, el agente, sobre la base de la importancia de cada una de las tareas, huir y encontrar un lugar seguro para curar heridas y, o bien seguir para luchar o huir lejos. Es fácil de implementar: sólo tiene que dar botiquín de primeros auxilios por el conocimiento de que en la situación actual sin tratamiento ninguna acción no se puede tomar que llevará a agente vulnerabilidad interrupción del tratamiento. Así priorizar tareas.

Se trata de los fundamentos del enfoque heurístico, y me gustó mucho el uso de la misma. Hemos sido capaces de hacer que el sistema para asegurar el pleno efecto de la presencia, hemos creado a lo seguro, difícil, pero al mismo tiempo y muy simple en términos de código. Además, este sistema es lo suficientemente flexible como para permitir el cambio fácil, modificar y agregar tareas. Por ejemplo, podemos crear una nueva fuente de problemas en la forma del coche, cerradura o escaleras sin programa de agente de cambio. O podemos cambiar o mejorar los sistemas que controlan sólo una tarea específica o parte del entorno de cerebro sin afectar a otros elementos. Capacidades de personalización comportamiento parecen muy interesante para crear un buen juego -. Especialmente para el juego en el estilo de horror, porque a veces el propio jugador se convierte en una víctima del entorno

Entonces yo quería añadir sistema de reconocimiento de texto para ver cómo se puede utilizar en el enfoque heurístico. Instrucciones de texto como "poner una bola azul de la caja verde", que dio a los respectivos NPCs serán identificados, respectivamente, en el cuadro verde y la bola azul, y se le dará la tarea al agente, por lo que recogió el balón, sabía dónde ponerlo. Esto crea la impresión de que el agente entiende que le dice que hacer el jugador.

Hasta este punto, todo parecía muy agradable. A continuación, la fase inicial de hacer juegos ha terminado, y me enfrenté con el hecho de que estos problemas tienen que implementar alguna manera un código. Una fase de la obra. En este punto, mi sistema se ve así:



Comportamiento - es la interacción del agente con el medio ambiente i>

Cuando empecé a programar el sistema en términos de uniformidad, cada día que tuve que pagar algún tiempo los conceptos básicos de la IA. No sólo videojuego AI, pero en general la IA. Sólo quería asegurarme de que no paso de perder el tiempo inventando ya inventado la rueda.

Empecé a aprender algunos conceptos muy interesantes, así como los antiguos estudios y experimentos, algunos de los cuales ya están medio siglo. Entre ellos puedo llamar «sistemas de creencias» experimento Heider y animación Simmel (1944), "la ciencia de la artificial "Herbert Simon (1969) con una anécdota «Муравей en la playa », así como Kuleshov experimento (fechas originales de nuevo a la zona en 1919), la cual es Creo que en ese momento no cumplió el tiempo. Con el tiempo, esta información se ha vuelto más y capturarme y me privaron del sueño de forma más completa.

Al final, me di cuenta de que, a partir de el otro extremo, a la mitad de la calle Vine a este conocimiento. Fui con una perspectiva ligeramente diferente: Quería crear un mundo "inteligente", porque me pareció que es muy eficaz, ya que la virtualización del mundo en el que vivimos, y el agente ya está viviendo en un mundo virtual. Pero fue sólo una base para hacer algo mucho más poderoso y serio. Pero entonces no vi estas oportunidades.

Todos estos estudios están de acuerdo en una cosa: simple, combinado con un complejo da un resultado complejo que nuestro cerebro interpreta como una aún más compleja e inteligente de lo que realmente es
.
Por supuesto, en la portería Game Design 'fue a los agentes de forzamiento AI parecer complejo y razonable, usando varios trucos. Pero yo no estoy interesado en este enfoque básico, y la fórmula simple vs Complejo, que se repite en cada uno de estos experimentos - esto coincidió en todos los estudios, independientemente su especificidad.

Después me di cuenta de la presencia de este aspecto en todos estos experimentos e investigaciones, empecé a buscar analogías en otras áreas, ya que supone que este aspecto puede estar presente en muchas situaciones, yo no sé de eso. Lo más importante es que estaba buscando similitudes en las lagunas en nuestro sistema de IA. Y entonces empecé a hacer un montón de preguntas acerca de los problemas de diseño y traté de encontrar una respuesta utilizando el mismo sistema y la fórmula.

• Si las tareas se crean en un sistema modular y tener acceso a la oficina de información para la priorización de las instrucciones y tareas, por qué no aumentar el número de dicha información y no para hacerlo más? Dé su personalidad, antecedentes, estado de ánimo, los sentimientos, la dinámica social, y luego crear una tarea de analizar esta información, en lugar de insistir sólo en la salud y el inventario.

Comportamiento de crear un personaje que nació en la selva y sabe dónde encontrar comida y agua, y los personajes de la ciudad sin tal conocimiento puede ser sólo una verificación de antecedentes realizado por una fuente de problemas, que envía las siguientes tareas después de encontrar comida y agua. Si el personaje aquí - el problema se debe dar, si no es de aquí - el problema se da.

• ¿Por qué me considero sólo un lado específico del mundo y no considero que las cosas abstractas que parecen estar allí, pero no podemos verlos? Cosas como el drama, suspenso, comedia? ¿Por qué necesito para crear un comportamiento que se origina de las cosas, no de las personas y las ideas? ¿Por qué no crear tareas de un grupo de cosas, desde escenas de la ciencia y de la historia?

Podemos hacer escenas narrativas dinámicas para revivir comportamientos. Escenas que están disponibles para los héroes específicas y aparecen en función de cómo las funciones respectivas de cada personaje.
Las situaciones pueden ser planificados, vinculadas o correr, dependiendo de la situación y el punto particular en el desarrollo de la trama. Por ejemplo, para crear una escena común película de zombies, donde uno de los personajes ha sido mordido o heridos, y los otros personajes están discutiendo sobre si para ayudarlo, dejarlo o sólo tiene que matarlo y acabar de una vez: la situación no depende de quién está mordido o heridos. El origen del problema (argumento) simplemente evalúa cómo su papel encaja en cada personaje y les ofrece una variedad de tareas para cada función, lo que resulta en la trama se desarrolla de forma natural sobre la base de sus decisiones. De lo contrario podríamos tener una situación climática para cualquiera de los personajes estaría mirando desde la barrera como un jugador se comporta en situaciones clave con el fin de cambiar la trama de una novela de suspense.

• ¿Por qué no utilizar estos argumentos dinámicos y distribuir su efecto sobre eventos futuros con la posibilidad de un cambio significativo en la historia?

Si un jugador acecho alrededor y observe los neumáticos en el NPC coche, él no muestra las escenas de corte estándar "del partido." En su lugar, entonces el NPC empezar a bailar con algunas intenciones románticas (porque en la escena de la danza, es sustituido por otro de la lista de personajes no jugadores), y un triángulo amoroso va a cambiar la situación entre los dos héroes para determinar la identidad, lo que lleva a algunos más inusual resultados.
O si el personaje que asume el papel de líder del grupo, perdido en el desierto comienza a perder su mente o la desesperación, la idea abstracta / dinámica social "Grupo de Liderazgo" toma la APN, y por lo tanto responsable de sus decisiones. Del mismo modo, si el grupo es feliz con el líder de las decisiones, la dinámica social de esta situación podría conducir a un nuevo escenario dinámico donde primero luchan contra el sistema, y ​​luego se dividieron en dos bandos.

• Pero ¿por qué detenerse ahí? ¿Por qué no dejar que las líneas de la historia para determinar qué papel elige el jugador y, a continuación, se adaptan a la situación de cada jugador?

Terreno personaje seleccionado para el papel del líder de la segunda (o que está abierto durante algún tiempo para determinar si un jugador para este papel o no), luego el otro para expresar su apoyo a ningún lado, y alguien expresa la intención de cesar las hostilidades y unirse.

• Sin embargo, los personajes pueden pelear, incluso huyendo de zombies, o durante una discusión sobre quién es el líder, o la comunidad en general puede decidir lanzar el líder heridos. Así que ¿por qué no mejorar el sistema de toma de decisiones y añadir caracteres multitarea?



Los agentes tienen "psihoresursy" que les permiten seleccionar múltiples tareas al mismo tiempo (y priorizar estas decisiones en función de los grupos de tareas, no sólo realizar la tarea de uno en uno): límites de concentración, manos, pies, boca, ojos ... < / i>

Si el comportamiento - es siempre interacción agente y el medio ambiente, ¿por qué no ampliar el significado de la expresión de la personalidad y estado de ánimo? ¿Nos comportamos de la misma manera en el hogar, en el trabajo, en varias ocasiones, en compañía de amigos y extraños? Si en algún lugar vemos gente feliz, nosotros mismos no hacemos un poco más felices? Y si hay todo serio, nosotros también estamos convirtiendo en serio? ¿Ocurre lo mismo para otros eventos y situaciones?

El modelo actual h4>
 Tras un nuevo estudio de muchos problemas y cuestiones sin complicar el código, sino simplemente para comprender mejor que con el enfoque heurístico crea AI, manteniendo todo el sistema básico intacto, al final llegamos a una conclusión:



Todo lo que sucede una vez que nunca puede suceder. Pero todo lo que ocurre dos veces sucederá una tercera vez ". Esquemas siempre se pueden ampliar para crear nuevas tareas i>

Esa es la forma en que nuestro sistema se ve ahora, y con esto y va a crear nuestro juego de terror, de la que hablé al principio de este artículo. Este juego no significa límite de este sistema, ya que el sistema es lo suficientemente flexible como para desarrollarla. Otra cosa es que antes de eso tenemos que aprender cómo lograr tareas más avanzadas con un coste óptimo del trabajo y del tiempo.

Voy a hablar mucho más en futuros artículos sobre este proyecto. Ahora no puedo hacerlo, porque no hay suficiente información.

Lo más interesante siempre dice al final: después del lanzamiento de nuestro juego, probablemente a liberar su modelo de libre en el almacén de activos Unidad, así como revelar su plan para que la gente sea capaz de hacerlo para otros sistemas. También vamos a grabar todo lo que aprendemos sobre las condiciones de utilización del sistema, asegúrese de fijar los consejos y trucos para trabajar con ella, echa un vistazo a lo que funciona y lo que no, y le hará algunas opciones interesantes para lo que puede hacer con este sistema.

También queremos jugar sus juegos divertidos de usar este sistema! Queremos desarrollar un videojuego siguió como de costumbre, y con el tiempo se hubiera llegado a eso, lo que debería ser el juego. Queremos acelerar la evolución de las formas de arte, y creemos que la IA será el próximo punto de inflexión en este sentido.

Gracias por leer! Suscríbete a nuestro blog y estamos esperando a todos ustedes a nuestra prueba beta VirCities ! i>

Fuente: habrahabr.ru/company/ilkfinkom/blog/256237/