Si es la primera vez que desarrolla IA, no tiene que preocuparse por cosas como el patrón de estado, las matemáticas de comportamiento o incluso obtener un libro sobre el tema.
Literalmente puede salirse con la suya con algo como esto:
if( targetInRange == true )
{
FireAtTarget();
}
else if( bulletComingTowardsMe == true )
{
MoveAwayFromBullet();
}
else
{
WanderAroundAimlessly();
}
El aspecto principal de hacer que la IA sea correcta es pensar qué comportamientos desea que tenga el personaje y cómo se puede lograr de manera realista. Entonces, para un enemigo espacial básico, me imagino que las posibles acciones que podría llevar a cabo serían:
¿Y cuándo podrían suceder estas acciones?
- Muévete: nada más que hacer
- Fuego: cuando veo un enemigo
- Huir - Cuando tengo poca salud / Cuando estoy tomando fuego / etc.
Después de haber hecho esto debido al bajo número de "estados" en los que puede estar tu personaje, puedes usar una declaración if simple como la de arriba. Entonces, le recomendaría que observe los Comportamientos de dirección, ya que estos son comportamientos muy simples de implementar y pueden resultar en un movimiento realmente atractivo.
Puede encontrar más aquí: http://www.red3d.com/cwr/steer/
Y definitivamente recomendaría el libro de Mat Buckland Programming Game AI By Example , especialmente cuando está comenzando.
Cuando se sienta realmente cómodo con esto, le sugiero que mire los Patrones de Estado y Estrategia.
El punto es comenzar pequeño y simple. No se preocupe por todos estos términos que todo el mundo sigue hablando sobre FSM y patrones de diseño y lo que sea. Primero diseñe y cree, luego preocúpese por cómo puede mejorarlo utilizando los métodos o estándares existentes.
¡Espero que ayude!