Estou feliz de ver vocês novamente para a terceira parte do nosso devblog sobre IA.
Agora, sabemos como a IA emite suas ordens de construção e forma grupos de unidades,
e que essas são controladas por funções específicas. Vamos olhar mais de perto:
O que é um pelotão?
Basicamente, um grupo de unidades é chamado de pelotão.
Se a IA quer executar um comando de ataque, um pelotão é formado e uma thread de programa que controla o grupo de unidades é iniciado.
Um Script em LUA foi escrito para esse propósito, com o qual esses grupos podem ser gerenciados.
Existe um belo guia para mim e para todos os modders que passam por lá:
Então podemos simplesmente criar um novo pelotão com CreatePlatoon() e adicionar mais unidades à ele com AssignUnits(). E agora que podemos criar e gerenciar grupos de unidades, o último problema é...
Como eu controlo um pelotão?
Novamente, a operação da classe de pelotão é bem simples e apenas precisamos de um comando:
Platoon:StartAIFunction(platoonFn, ...)
platoonFn é apenas um nome temporário para a função que a IA executará.
Como exemplo, vamos dar uma olhada numa simples função de ataque:
Aqui o inimigo mais próximo é procurado e atacado a partir da posição do pelotão.
Depois de um segundo de espera, o processo se repete.
Se alguém alguma vez já pensou onde uma IA autodidata pode ser usada, então este seria o lugar perfeito. (Apenas pensando alto).
Tudo isso é apenas teórico, ou será que uma IA autodidata virá para o Sanctuary?
Ao ler um devblog de IA, já deve estar claro que uma IA está sendo desenvolvida, o que foi descrito aqui no devblog já funciona. mods de IA e de unidades já são suportadas, ainda que a mesma esteja em desenvolvimento.
Meu plano pessoal é completar a estrutura básica da IA primeiro.
Com isso, eu também quero garantir que modders serão capazes de desenvolver uma IA completa.
Por alguns dias, também foi possível competir contra a IA e executar partidas de teste (IA vs. IA). Isso significa que eu já posso responder que sim, haverá uma IA rudimentar disponível para o jogador.
Como sempre, eu gostaria de agradecer a todos pela atenção e espero ansiosamente pelo próximo devblog com vocês.
Atenciosamente, Uveso.