Sistema de IA básico terminado

En los últimos días parece que no tengo otro tema. De hecho, me duermo pensando en esto, y entre IA y Divinity, mi sueño es bastante incómodo. Pero el resultado es que el sistema de inteligencia artificial funciona bastante bien a nivel básico. O sea, que como prueba de concepto está bien, y ahora es que las cosas empiezan a  complicarse.
Para continuar, tengo que implementar un mini-sistema RPG: habilidades e items utilizables por las entidades, incluyendo al jugador; que aunque sea mini, no es trivial. De paso, eso me permitirá probar otro enfoque en la implementación de habilidades y objetos usando ScriptableObjects. Sí, otra obsesión reciente, quizás debería consultar un médico. Y ya que hablamos del tema, este video ofrece un buen punto de partida:

Al principio me pareció que no sacaría nada útil, pero resultó que estaba equivocado. Hay algunos trucos, como el de instanciar los ScriptableObjects que no sabía con exactitud cómo hacerlo, y el de usar Resource.LoadAll para cargar todos los ScriptableObjects de una carpeta.
El siguiente paso sería conseguir que los NPC utilicen sus habilidades (nada de optimizaciones por el momento) y objetos para derrotar al jugador. Luego, combate entre grupos. Y entonces, si todo lo anterior camina como debe y no he encontrado algún error garrafal, ir al punto de optimizar el combate, lo cual requiere un sistema de items mucho más completo y funcional, bonificadores y penalizadores, etc. Suficiente trabajo para un mes, creo.
No estoy seguro de que necesite corutinas en algún momento, aunque la idea me ha rondado por la cabeza un par de veces. Quizás no dentro de las acciones, pero sí en el StateManager, para no sobrecargar el juego cuando una entidad tenga más de una acción en su estado activo. Hay que tener en cuenta que ahora las acciones son simples, pero en el futuro se volverán mucho más complejas a medida que necesiten valorar factores diversos con vistas a hacer la IA más inteligente. Ojalá no se vuelvan necesarias.
Pensaba dar algunas conclusiones, pero creo que aún es demasiado prematuro y las dejaré para más adelante. Aún estoy a tiempo de toparme con algún problema insoluble que me haga descartar todo el trabajo.

Comentarios