Sistema de IA

From Sons of the Forest Wiki
Jump to navigation Jump to search

This article is a stub. You can help Sons of the Forest Wiki by expanding it.


This article may need cleanup to meet quality standards.
Please help improve this if you can. The Discussion page may contain suggestions.


Caníbal utilizando técnicas de búsqueda de caminos para completar sus tareas de la manera más eficiente posible.

En Sons of the Forest, el sistema de inteligencia artificial de cada entidad viviente está diseñado para brindar una experiencia dinámica y en evolución a los jugadores. Esto se logra a través de un conjunto de capacidades cognitivas conocidas como "pensamientos", que generan caminos para cada entidad en función de una variedad de variables que se adaptan y evolucionan en respuesta a las acciones y decisiones del jugador. Para lograr este nivel de complejidad, el sistema de inteligencia artificial del juego utiliza un enfoque de modelado basado en reglas, que permite la programación previa de reglas y restricciones específicas que guían el comportamiento de las entidades. Cada entidad dentro del juego se clasifica en función de su nombre, emociones, miedo, ira y niveles de energía que influyen significativamente en sus interacciones con el jugador.

Aunque este tipo de información puede no ser visible para el jugador, juega un papel crucial en la comprensión del sistema de inteligencia artificial del juego. Al aprovechar el modelado basado en reglas, los desarrolladores pueden crear una experiencia rica e inmersiva que brinda a los jugadores una experiencia de juego dinámica y en evolución.

Entidades[edit | edit source]

Nombre[edit | edit source]

En la mayoría de los casos, el nombre de una entidad corresponde a su modelo o características. Por ejemplo, Moose, Turtle, MuddyMale y MuddyFemale son nombres simples que se usan para identificar entidades que carecen de características complejas. Sin embargo, el nombre de los caníbales regulares difiere, ya que se les puede llamar Carl, Andy, Angel, Billy, Danny, Brandy, Crystal o Destiny. El origen detrás de esos nombres sigue siendo desconocido.

  • Andy
  • Angel
  • Billy
  • Brandy
  • Carl
  • Crystal
  • Danny
  • Destiny
  • Goldmask
  • Heavy Male
  • Fat Male
  • Fat Female
  • Faceless Male
  • Muddy Male
  • Muddy Female
  • PaintedMale
  • Baby
  • MrPuffy
  • Miss Puffy
  • Mr.Puffton
  • Mrs.Puffton
  • Fingers
  • Slug
  • Demon
  • Demon Boss
  • John2

  • Timmy
  • Robby
  • Virginia
  • Squirrel
  • Deer
  • Moose

  • Rabbit
  • Bluebird
  • Humming Bird
  • Seagull
  • Eagle
  • Duck
  • Turtle
  • Land Turtle
  • Shark
  • KillerWhale

Afecto[edit | edit source]

El afecto (emoción, amistad, cercanía,"sentiment") juega un papel crucial en Sons of the Forest, ya que influye en cómo la IA del caníbal recuerda las interacciones pasadas con el jugador. La única forma de disminuir el afecto de las entidades por el protagonista implica causarles daños por cualquier medio posible. Si un caníbal sufre heridas graves y permanece con vida, su emoción negativa hacia el jugador persistirá durante un período prolongado. En particular, entidades como Golden Mask Cannibal mantienen su afecto hacia éste, incluso si son atacados por él. Si bien el alcance total de los efectos del afecto sigue siendo incierto, actualmente no tiene ningún propósito práctico dentro del juego. Sin embargo, existe la posibilidad de que los desarrolladores permitan a los jugadores establecer relaciones amistosas con ciertos caníbales o tributos en el futuro. A partir de ahora, los niveles de afecto sólo aumentarán si se interactúa con Kelvin o Virginia.

  • El nivel de afecto de Kelvin aumenta gradualmente en aproximadamente 0,1 cada siete segundos cuando está cerca del jugador.
  • El nivel de afecto de Virginia aumenta gradualmente en aproximadamente 0,1 cada siete segundos cuando está cerca del jugador.
  • Ejemplo de afecto en un caníbal

Miedo[edit | edit source]

Ejemplo de miedo en un caníbal

El miedo funciona de manera similar al afecto. Es importante tener en cuenta que hay dos tipos de miedo en el juego. El primero es el miedo influido por el jugador, que es relativamente sencillo y es una respuesta directa a las acciones de él. El segundo tipo de miedo es más complejo y se basa en factores ambientales generales.

El miedo influido por el jugador puede interpretarse como un comportamiento racional que varía según las diferentes entidades. Por ejemplo, el mutante fangoso normalmente comienza con 30 de miedo, en contraste con un caníbal regular que comienza en 0. Este valor hace que las entidades huyan de un jugador cuando su nivel de miedo se acerca a 100. Los niveles de miedo SÓLO se pueden aumentar disparando armas. Entonces, en conclusión, cuanto mayor sea el nivel de miedo, más probable es que el caníbal huya al ver al jugador.

A pesar de la presencia de esta variable, los caníbales aún pueden huir incluso cuando su nivel de miedo es 0. Por ejemplo, uno de ellos es burlarse de los caníbales con la cabeza cortada. Este tipo de miedo es impulsado principalmente por el entorno que rodea a las entidades. Esto puede resultar en que los caníbales tomen decisiones más impredecibles en comparación con el miedo influenciado por el jugador, que generalmente hace que los caníbales huyan con un 100 % de previsibilidad. La mejor manera de comprenderlo es comparándolo con el estrés humano durante una pelea. El nivel de miedo de un caníbal, por ejemplo, puede comenzar alrededor de 20 durante una pelea, pero puede aumentar rápidamente a 100 si es golpeado. Durante tales situaciones, los niveles de miedo tienden a fluctuar con frecuencia, aumentando y disminuyendo en respuesta a las circunstancias cambiantes.

Ejemplo de nivel base de ira en un caníbal

Ira[edit | edit source]

La variable más influyente entre el grupo es la ira, que afecta directamente a las entidades dentro del juego. Esencialmente, la ira representa la probabilidad de que un caníbal ataque al jugador. Aunque esta variable no se comprende del todo, se establece que el nivel de ira inicial de los caníbales al comienzo de un juego es de 10 hacia el jugador, que aumenta en función de las acciones del jugador a lo largo del juego. Acciones como destruir aldeas, matar caníbales, estar en el campamento de una aldea, estar muy cerca de los caníbales, cortar árboles y disparar a los caníbales o en general pueden contribuir a aumentar el nivel de ira. Una vez que llegue a 100, los caníbales exhibirán un comportamiento agresivo y perseguirán y atacarán activamente al jugador. A partir de ahora, no hay forma de disminuir esta variable. En consecuencia, los jugadores no pueden mantener relaciones pacíficas con ningún clan o caníbal.

El juego emplea tres tipos de niveles de ira, que están influenciados por el jugador, el ambiente y la ira general. El primero está determinado por las acciones del jugador, mientras que el segundo está determinado por varios factores ambientales, como la presencia de enemigos o amenazas percibidas. Se sabe que estos niveles de ira fluctúan con frecuencia, aumentando y disminuyendo en respuesta a las circunstancias. Cuando se trata de la ira general del caníbal, se refiere su nivel de agresión general a lo largo del juego, que está determinado por la cantidad de caníbales asesinados por el jugador y el día actual en el juego. Sin embargo, existen ciertos métodos, como la utilización de molotovs o bombas, que no contribuyen directamente al aumento de esta variable. A medida que aumenta el nivel de agresión, también lo hace su clasificación de armadura. En consecuencia, es imperativo considerar su impacto en el comportamiento de la entidad mientras se juega.

En la segunda actualización, los desarrolladores han calibrado los niveles de ira para ciertas entidades del caníbal fangoso. Parece que los niveles de ira de esta entidad se han reducido de 10 a 6, dando como resultado una disminución en su nivel de agresión. En el futuro previsible, anticipamos que dichos cambios en el comportamiento de las entidades pueden volverse más frecuentes. Como resultado, planeamos hacer un tablero para monitorear todas las entidades cuando sea necesario.

Energía[edit | edit source]

La energía se puede considerar como una variable que se comparte entre el jugador y otras entidades en el juego. Este parámetro es crucial para proporcionar una experiencia realista a las entidades, ya que introduce una sensación de vulnerabilidad y limita su resistencia, similar a la del jugador. Con cada movimiento, una entidad pierde 0,1 unidades de energía. Sin embargo, ciertas entidades, como el caníbal de máscara dorada, pueden agotar sus reservas de energía a un ritmo más rápido, especialmente cuando cargan contra el jugador. Dependiendo del tipo de ataque, la pérdida de energía de una entidad puede variar de 2 a 3 unidades por un corte, a 6 a 9 unidades por un golpe poderoso. Kelvin cortando un árbol con sus niveles de energía agotándose rápidamente.

  • Kelvin cortando un árbol con un rápido descenso de sus niveles de energía.
  • Kelvin descansando para incrementar su energía.

Además, Kelvin, uno de los compañeros de juego, también se ve afectado por esta variable. Su capacidad para realizar tareas y ayudar al jugador se ve directamente afectada por sus niveles de energía. Por ejemplo, talar árboles en rápida sucesión puede hacer que pierda hasta un nivel de energía por segundo. Una vez que haya terminado la tarea, Kelvin se tomará un descanso y se recostará para ganar niveles de energía. A pesar de que Kelvin tiene una cantidad limitada de energía, es capaz de continuar realizando tareas incluso cuando sus niveles de energía se han reducido a cero.

Memoria[edit | edit source]

Ejemplo de memoria en un caníbal

La memoria es un componente importante del proceso de toma de decisiones de una entidad porque le permite recordar acciones pasadas. Sin embargo, no todas las interacciones y eventos se pueden almacenar en la memoria, ya que requeriría recursos computacionales significativos. En cambio, solo los eventos e interacciones importantes que tienen un impacto significativo en el comportamiento de la entidad se registran y retienen en la memoria. Esto incluye luchar contra caníbales regulares, fangosos o mutantes, cazar animales, obtener palos y usar armas de fuego por parte del jugador.

El valor de memoria de cada entidad disminuye en 0,01 cada 3 segundos, lo que significa que el impacto de eventos e interacciones pasadas en el comportamiento de una entidad disminuye con el tiempo. Sin embargo, el valor de la memoria dejará de disminuir una vez que alcance cierto umbral, que depende de la frecuencia y la intensidad de las acciones observadas del jugador. Por ejemplo, cuando un jugador ataca una aldea y se enfrenta a un miembro de una familia caníbal, el evento se registra en la memoria de toda la familia e influye en su comportamiento hacia el jugador. Es importante tener en cuenta que si el jugador lucha contra cierto tipo de caníbal cerca de otros tipos de caníbales, este evento se registrará en su memoria y tendrá un impacto duradero en su comportamiento.

Un punto a tener en cuenta es que los caníbales en el juego no recordarán si los perdonaste a ellos o a sus familiares heridos. Sin embargo, pueden conservar otros valores como el miedo y el afecto hacia el jugador. Es importante tener en cuenta que estas entidades no son capaces de tener emociones complejas o procesos de pensamiento más allá de lo que está programado en su IA.

Estadísticas[edit | edit source]

Billystats.png
Seastats.png

Las variables denominadas "estadísticas" son parte integral del comportamiento de todas las entidades. Sin embargo, la implementación actual de esta variable está incompleta y requiere un mayor refinamiento por parte del desarrollador, ya que tiene poco impacto en su comportamiento. A partir de ahora, las Entidades no son penalizadas por tener valores bajos para sus estadísticas. Las estadísticas se clasifican en tres componentes principales: saciedad, hidratación y energía.

La saciedad variará dependiendo de la ingesta de alimentos de la entidad. Por ejemplo, los caníbales exhiben poca o ninguna plenitud y dependen de consumir partes del cuerpo para reponer sus niveles de plenitud rápidamente. Aunque parecen exhibir un comportamiento de caza, aún no se ha observado en acción. Por el contrario, animales como las aves muestran un comportamiento de saciedad más aparente, ya que buscan activamente fuentes de alimento y agua. La gaviota es un ejemplo notable de esto, ya que aterrizará para consumir algo en el suelo, aunque no se pueda interactuar con ella. Los niveles de plenitud disminuyen en 0,1 para cada entidad cada 2-3 segundos.

Los niveles de hidratación son esenciales para la supervivencia de todas las entidades y pueden reponerse consumiendo cualquier fuente de agua disponible, incluida el agua de cueva para los mutantes ciegos. La hidratación puede volverse más evidente en el futuro, ya que tiene el potencial de afectar significativamente el comportamiento de las entidades si no se consume. Actualmente, sin embargo, no es un requisito para las entidades consumir agua y no tiene un impacto significativo en su comportamiento. Aunque ocasionalmente se puede observar a los caníbales consumiendo agua de un cuerpo de agua cercano, no es una prioridad para ellos. A partir de ahora, los niveles de hidratación disminuyen en 0,1 aproximadamente cada 0,7 segundos.

Estado[edit | edit source]

Cada entidad dentro del juego tiene un estado permanente que comunica sus acciones actuales al juego en tiempo real. Estos estados se clasifican en función de sus significados específicos, que pueden variar según la situación actual de la entidad. Los siguientes son todos los estados posibles:

Pensamientos[edit | edit source]

En IA, los pensamientos son esencialmente procesos de toma de decisiones programados que determinan el comportamiento de una entidad en respuesta a diversos factores ambientales. En otras palabras, son esencialmente un conjunto de reglas o instrucciones que la IA de la entidad seguirá para su próxima acción (esas reglas están diseñadas para ser flexibles). Dado que existen numerosos factores que pueden influir en el comportamiento de una entidad, existen innumerables pensamientos que pueden ocurrir. Estos pensamientos a menudo se programan con un grado de aleatoriedad, para hacer que el comportamiento de la entidad parezca más natural e impredecible.

Lista completa[edit | edit source]

Para facilitar una comprensión integral, haré una lista de todos los pensamientos que una entidad puede poseer por su estado:

Explorando/Interactuando con el mundo
¡Burla captada! ¿Qué fue ese ruido? Descansar un poco Explorar el mundo Escuché algo cerca ¡Sonido fuerte! ir a verlo
Revisar mi choza Sobresaltado por un ruido fuerte Inquietud ociosa Debería explorar el mundo Alguien está cerca de mí ¡Llorar a [nombre]!
Rezar un poco ¡Llorar a mi AMOR agonizante! Huir del sonido Ir a beber agua Moverse al bosque ¡Correr del enemigo!
Escuché algo cercano ¿Qué fue ese sonido? Comer a mi amigo [nombre] ¡Corre, sonido muy cerca! ¡Escapa del enemigo! Debería salir de aquí
Sentarse al fuego Tirar ese cuerpo Golpeado por proyectil Tierra Necesito un tiempo a solas Debería golpear la cabeza de [nombre]
Volver a la base, estoy herido Hora de dormir Disfrutar la vista Buscar agua Esconderse contra la pared Beber agua
Explore the area Hit by melee Create a nest Follow [baby] I'm bored Just standing arround
Waiting for interaction Waiting for note Pickup sticks Drop sticks Search party move Wait to see if enemy appear
I should fight Waiting by Player Hide crouched Follow Player Flee From LocalPlayer Eat Food
Shelter at hut Cower in fear Go to food SeveredArmsPickup Taunt the muddy SeveredHeadPickup
I'd check if this [name] is ?alive? Flee from Cannibal ouch I got hit Go Hunt as Group Pray to mask man Head Home
Step curious to mask I should eat food Steal that log Bash this structure Climb reaction Hit the muddy!
Taunt [Name] Search for lost enemy Rub my feet Go to food Go to water Dance on tree
Wash in water. Laugh with player Player is stopping me. I like that, thumb up Drop items Eat [Name]
Wash in a waterfall. Get Player to follow me Lead Player Dance to this music Grab a radio Follow player with radio
LocalPlayer is too close. Lound sound! Flee area Move near player Move away from player Gather some berries Search this bush


Combat
I see an enemy to fight Jump onto rock Jump off rock I like to watch crouch Step curious toward enemy Run back from target !
Idle watch Approach enemy Step back slowly Taunt [Name] Jump onto Tree Jump off Tree
Run to Flank target Flank target Circle LocalPlayer walk to Flank target Leave Search area Back away from enemy
Anticipate dodge Attack react Walk flank back Combo Attack React Big Taunt LocalPlayer Move to Attack
Gun run! Throw that body Run kick LocalPlayer I'm drowning Too far from trees!! Flee the area scared!
Run attack LocalPlayer Jump attack off rock Move closer to ATTACK Jump attack LocalPlayer ne? Hide behind a tree Argghhh I tripped
Threaten LocalPlayer Throw rock at LocalPlayer I should fight I should run back Run attack in out I should combo attack
To attack Localplayer from behind? Move to last sighted point Im feeling better now ee? scared from LocalPlayer Run kick Robby Alert others I saw someone?!
Run from [name]! Lunge attack LocalPlayer Taunt Robby Threaten? LocalPlayer to stay ?away Run attack Robby Distracted by food
Ouch I got hit Dodge and counter Flee Scared from LocalPlayer I like to watch Step back slowly Watch enemy
Back Away Point at [Name] Cower in fear Block PlayerMeleeAttack Block ancitipate Watch enemy far
I should fire at enemy Move away from enemy Aim weapon at [Name] Back away quickly Run behind a tree Point at this enemy
Pistol shot this guy! Shotgun this fool! Attack from tree Block to counter - -
Dying/Dead
Im dead Oops I died radgoll I should crawl back I'm dead an limp.
Flying
Explore the area Fly near player Find food and land Flee from soft noise I should land Flee from noise Eat this while flying
Hover Dart Circling arround that Flee medium noise I should go fly around Explore the world Fly away to sleep
On rock
Watch LocalPlayer Ouch I was Attacked! Jump out at enemy
On Tree
Hang out in tree Jump off tree Taunt LocalPlayer Jump to new tree
UnderLeaves
Jump out by [Name] Ouch I was Attacked! Jump out at enemy
Injured
Just staying here. Flee area, I'm injured! Flee from LocalPlayer Im so tired Should enter injured states



Comportamiento[edit | edit source]

Cada entidad exhibe un comportamiento único y distinto. Para obtener información sobre esos comportamientos, es necesario comprender y analizar sus patrones. En la siguiente sección, se proporcionará una presentación completa de cada entidad presente en el juego, junto con un análisis detallado de sus comportamientos observados en el juego:

Tortuga[edit | edit source]

Estos reptiles tienden a permanecer en alta mar con incursiones ocasionales en tierra con fines como la exploración o la puesta de huevos. Su comportamiento es relativamente simple, carente de complejidad y no muestran signos de intentar buscar comida o agua. Además, parecen estar libres de depredación por parte de entidades caníbales. Vale la pena señalar que cuando sus huevos eclosionan, emergen tortugas bebés con las que no se puede interactuar ni dañar de ninguna manera y, por lo tanto, no califican como una entidad separada.

  • Explorando la tierra
  • Huyendo al agua.
  • Nadando a tierra.
  • Nado de exploración.