Se esta é sua primeira vez desenvolvendo IA, você não precisa se preocupar com coisas como padrão de estado, matemática comportamental ou até mesmo obter um livro sobre o assunto.
Você pode literalmente se safar com algo assim:
if( targetInRange == true )
{
FireAtTarget();
}
else if( bulletComingTowardsMe == true )
{
MoveAwayFromBullet();
}
else
{
WanderAroundAimlessly();
}
O principal aspecto da correção da IA é pensar em quais comportamentos você deseja que o personagem tenha e como isso pode ser alcançado de forma realista. Portanto, para um inimigo básico da espaçonave, eu imaginaria que as possíveis ações que ele poderia realizar seriam:
E quando essas ações poderiam acontecer?
- Mover-se - nada mais a fazer
- Fogo - Quando vejo um inimigo
- Fugir - Quando estou com pouca saúde / Quando estou pegando fogo / etc
Depois de fazer isso devido ao baixo número de "estados" em que seu personagem pode estar, você pode usar uma declaração if simples como a acima. Eu recomendaria que você analise os comportamentos de direção, pois esses são comportamentos muito simples de implementar e podem resultar em um movimento realmente bonito.
Mais informações podem ser encontradas aqui: http://www.red3d.com/cwr/steer/
E eu recomendaria definitivamente o livro de Mat Buckland, Programming Game AI By Example , especialmente quando você está começando.
Quando você estiver realmente confortável com isso, sugiro examinar os padrões de estado e estratégia.
O ponto é começar pequeno e simples. Não se preocupe com todos esses termos, para que todos fiquem discutindo sobre FSMs e padrões de design e o que for. Projete e construa antes de tudo, depois se preocupe em como melhorá-lo usando métodos ou padrões existentes.
Espero que ajude!