Movimentação Tática em
Jogos de Guerra
Equipe: Cláudio Sasaki
Ivo Frazão
Lucas Loureiro
Luiz Nunes
Mauro Vieira
Tiago Barros
Roteiro
► Introdução
Tático e Estratégico Usando Waypoints
► Mapas de Influência
► Táticas de Esquadrão: Manobras Emergentes
► Táticas de Esquadrão: Manobras Ensaiadas
► Hierarquia de Decisão
► Formações
► Raciocínio
Organizações estratégias e táticas
utilizando waypoints
► Introdução
 Características controladas por computador
cada vez mais sofisticadas.
 Jogos de primeira pessoa ou jogos de aventura.
Node-graph
►O
que é?
► Para que serve?
► Como influencia no desempenho de um
jogo?
► Waypoints
Um exemplo de Node-graph
Qual a utilidade da visualização?
► Determinar
qual das localidades serão
seguras e quais não serão.
► Fundamental na hora do ataque e da
defesa.
► Determinar que caminho deverá ser seguido
considerando a posição do inimigo e não a
menor distância (Safe Pathfinding).
Utilizando a visualização...
v1
v2
v3
v4
v5
v6
1
1
0
0
1
0
0
2
0
1
1
0
1
0
3
0
1
1
0
0
0
4
1
0
0
1
1
1
5
0
1
0
1
1
1
6
0
0
0
1
1
1
Continuando...
► Danger
Nodes
Va <OR> Vb = 1 0 0 1 1 1
► Safe
Nodes
Inverso V = 0 1 1 0 0 0
Intelligent Attack Positioning
►
Atacar o inimigo sem ser visto pelos
outros.
1.
Determinar a visão do inimigo.
Vini = 0 0 0 1 1 1
2.
Determinar os nós que são vistos pelos outros inimigos;
Vini2 = 0 1 0 0 1 0 <OR> Vini3 = 0 1 1 0 0 0
ViniR = 0 1 1 0 1 0
3.
Determinar o(s) nó(s) que deveremos nos colocar.
Inverso ViniR = 1 0 0 1 0 1 0 <AND> Vini = 000111
= 0 0 0 1 0 1 (posição 4 ou 6)
Indo ainda mais longe...
► Caso
fosse necessário se esconder do
inimigo? Desviar de uma bala?
► Flanking
Posicionamento inteligente de ataque
Se colocando em uma posição melhor
de ataque...
Ca <AND> Inverso V = 0
Visão dos inimigos:
V2= 0 1 1 0 1 0 0 <OR>
V3= 0 1 1 0 0 0 0 <OR>
V6= 0 0 0 1 1 1 0
VINI= 0 1 1 1 1 1 0
Inverso Vini= 1 0 0 0 0 0 1
C4= 1, 5, 7
e C6= 5
(Nó 7)
Análise estática de Waypoints
► NPC
deve colocar-se em posições estratégicas
antes do inimigo chegar.
► Lugares de alta visibilidade são perigosos.
► Lugares de baixa visibilidade são ruins para atacar.
► O ideal seria um nó de alta visibilidade perto de
um nó de baixa visibilidade.
(Sniper Locations)
► Poderemos caracterizar cada nó com um peso
associado a sua visibilidade no node-graphic.
Pinch Points
Para cada nó N que possua somente 2
vizinhos...
1. Temporariamente elimine o nó N, chame
seus vizinhos de A e B.
2. Se A e B estão conectados a regiões
grandes, N não é o pinch point.
3. Tente achar caminhos entre A e B, se
existir, N não é o pinch point.
Chame I de inside e O para outside
4. Para montarmos uma emboscada temos
que achar um waypoint que consiga
visualizar O e não consiga N.
A = Vo <AND> inverso Vn
Pinch Points
Em situações onde existem corredores...
Se O só tiver um único vizinho fora N:
1. Mova N para O
2. Mova O para seu vizinho
3. Até quando O tiver mais de um
vizinho.
Squad Tactics
Mesmo procedimento que o utilizado
no pinch point sendo repetido para
cada uma das saídas.
A1= Vo1 <AND> inverso Vn1
A2= Vo2 <AND> inverso Vn2
Mapas de Influência
O que é…
► Generalização
no globo
da influência de cada unidade
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
2
2
2
1
-1
-1
-1
-1
5
5
2
0
-1
-2
-2
-2
10
5
1
0
-2
-3
-5
-2
5
5
1
-1
-2
-4
-3
-2
2
2
1
-1
-5
-3
-1
-1
1
1
0
-1
-2
-2
-1
0
• No man’s land
• Identifica o
nível de
controle de
cada região
Criando as Regras
value = (attack - defense) / (distance * gradient)
Front: a unidade que possui o maior gradiente
• Flank: unidades que possuem gradientes menores
• Rear: retaguarda inimiga
•
Pontos de Contato
► Aumentar
os pontos de contato com os
front e os flanks inimigos
► Na defesa diminuir os pontos de contato
com os flanks inimigos
► Boa estratégia para jogos “one-on-one”
► Pobre ao especificar as personalidades dos
jogadores
Diferentes Personalidades
► Rússia:
Expansionistas
► Roma: Militaristas
► EUA: Industrias
► França: Comerciais
► Egípcios: Religiosos
“Big Questions”
► Os
algoritmos são únicos para cada
problema?
► Qual o limite entre ser fiel a personalidade e
ser natural?
► Devo gerar um mapa de influência em
relação a que referencias?
Conclusão
► Positivais
 Pode avaliar superioridades locais e globais
 Une considerações incompatíveis
 Uma boa forma de gerar conflitos
► Negativas
 Complexos mapas de influência tendem a
descartar informações úteis ou destacar dados
de menor importância
Táticas de Esquadrão:
Manobras Emergentes
Agentes Cooperativos
► Ausência
de agente líder
► Vantajoso porque:
 É uma extensão da IA individual
 Trata várias situações com robustez
 Funciona bem com agentes com habilidades
variadas
 Pode ser combinado com agentes baseados em
scripts
Mas... de onde vem a coerência?
► Comportamento
emergente (ou
comportamento auto-organizável)
► Exemplo: Comportamento de atirar-e-mover
IA Individual
Sem ameaças
Atacar
Procurar alvo e
atirar
Time out
Chegou na nova posição
Nova ameaça após
movimento mínimo
Nova ameaça após
perda da atual
Mover
Ir para a nova
posição
IA de Esquadrão
Sem ameaças
Time out
Atacar
Procurar alvo e
atirar
Poucos colega movendo-se
Chegou na nova posição
Nova ameaça após
movimento mínimo
Poucos colegas atacando
Nova ameaça após
perda da atual
Mover
Ir para a nova
posição
Avanços Táticos
►
Uma boa tática é mais do que simplesmente atirar e
mover:






►
Proximidade de proteção
Linha de fogo
Capacidade da arma
Coesão
Separação
Movimentação do inimigo
A escolha da nova posição leva em conta todos estes
fatores
 Pesos diferentes para cada fator em cada agente
 Pesos diferentes num mesmo agente, de acordo com a situação
Parece bom, mas...
► Caminho
conflitantes
► Caminhos desprotegidos para locais
taticamente mais vantajosos que o atual
► Falta de espaço para movimentação
► O problema da emboscada
 Esperar o inimigo se aproximar
 Retirada após ataque
 Revidar quando surpreendido
Táticas de Esquadrão:
Manobras Ensaiadas
Táticas de Esquadrão: Manobras
Ensaiadas
► Os
militares confiam em 2 coisas para
saírem-se vitoriosos de situações de
combate perigosas e caóticas:
 Líderes
 Manobras extensivamente ensaiadas
► Sem
um Líder, os soldados perderiam muito
tempo explorando as possibilidades e
resolvendo conflitos
Táticas de Esquadrão: Manobras
Ensaiadas
► Isto
nos leva a construir uma IA centralizada, onde
um comandante recebe as observações e
resultado de ações de seus agentes e ordena as
novas ações
► Podemos ainda utilizar uma IA distribuída para que
os agentes possam receber uma ordem simples e
saber como desenvolve-lá da melhor forma
possível
► Isto facilita o trabalho de cada IA e permite uma
maior especialização das mesmas
Táticas de Esquadrão: Manobras
Ensaiadas
► Estilos
de Comando
 Autoritário: os agentes obedecem cegamente e
exatamente o que o comandante ordena
► Possibilita
o sacrifício de um para ajudar os outros
► Mas pode menosprezar ameaças para determinados agentes
 Treinador: os agentes recebem tarefas para executar,
mas tem a liberdade de escolher como agir
► Permite
que o agente resolva ameaças mais urgentes para ele
► Mas pode levar ao agente ficar perdendo tempo com ações
irrelevantes para a missão
Táticas de Esquadrão: Manobras
Ensaiadas
► Como
obter informações sobre a situação?
 Não é tão fácil como identificar uma formação
3-5-2 no futebol
 Jogos com Muitas unidades: mapas de
influências
 Para jogos mais simples, podemos usar outras
características como razão entre aliados e
inimigos, entre linhas de tiro presentes,
posicionamento favorável
Táticas de Esquadrão: Manobras
Ensaiadas
► Sabendo
da situação, como escolher a
manobra a fazer?
 Representação das situações para cada
manobra
 A cada momento, o comando deve saber as
manobras possíveis e as manobras admissíveis
 As manobras admissíveis são aquelas que
podem ser realmente escolhidas, levando em
consideração observações anteriores e
conhecimentos prévios
Táticas de Esquadrão: Manobras
Ensaiadas
► Como
coordenar as Manobras?
 O Comandante baseado na situação, escolhe uma
Manobra de um conjunto de Manobras Conhecidas
 Cada Manobra tem conhecimento dos Agentes e
coordena suas ações através do Comandante
 As observações dos Agentes são repassadas para a
Manobra pelo Comandante
 Ao iniciar uma Manobra, existe uma preparação da
Manobra
 Quando a Manobra falhar ou o Comandante escolher
por outra Manobra, a Manobra corrente deve ser
abortada, permitindo que os Agentes não se percam no
meio de uma Manobra
Táticas de Esquadrão: Manobras
Ensaiadas
► Conclusões
 Uma IA Centralizada permite a escolha e execução de
manobras estilo-SWAT de forma autônoma, mesmo em
cenários complexos
 O auxílio de IA Descentralizadas permite a execução
destas manobras com maior realismo
 Mas a construção destes times exigem muito trabalho e
tempo gasto para construir as manobras
 Outros elementos podem ainda ser acrescentados para
situações mais complexas, como as especialidades de
cada agente
Hierarquia de Decisão
Hierarquia de Decisão
►
►
►
“Team-based AI” está cada vez mais sendo usada em
jogos de 1ª e 3ª pessoa;
É limitada a seqüências pré-definidas ou simples
requisições de backup;
A hierarquia de decisões permite a criação de algumas
equipes muito convincentes que tomam decisões em
tempo real;
Hierarquia de Decisão
►
►
►
►
Toda equipe efetiva
necessita de um bom
comando hierárquico;
Decisões devem ser feitas
no nível mais alto e
executadas pelos níveis
inferiores;
Os níveis inferiores são
subordinados aos níveis
superiores;
Os níveis de comando
devem ter comunicação
efetiva;
Suporte a Decisão
►
►
►
Um bom conjunto de rotinas de suporte a decisão é um
elemento essencial para a criação de IA’s convincentes;
Suporte a decisão é necessário em todos os níveis;
Todos os níveis de comando precisam ter uma grande
quantidade de informações a respeito do ambiente onde
seus soldados e adversários estão;
Implementação
►
►
As rotinas de suporte a decisão são os tijolos da
implementação da IA;
Como usar estes tijolos?
-
Escolha de uma estratégia;
Troca de mensagens;
Compartilhamento de informações;
Debugação;
etc...
Implementação
- Escolhendo uma Estratégia ►
►
►
►
O comandante terá uma certa quantidade de opções
sempre que novas informações forem recebidas;
As estratégias serão escolhidas de acordo com suas
efetividades;
Adicionando-se um elemento randômico de escolha de
estratégias pode-se reduzir a possibilidade de previsões a
medida que o jogador se familiariza com o jogo;
A escolha randômica de estratégias também tem impacto
no nível de dificuldade do jogo;
Implementação
- Troca de Mensagens -
►
►
►
Trocas de mensagens são muito efetivas na implementação
de “team-based AI”;
O uso de mensagens na comunicação entre os diferentes
níveis da hierarquia é uma maneira muito natural de
passagem de ordens e informações;
Os níveis superiores só precisam processar as informações
quando alguma nova for recebida;
Implementação
- Compartilhamento de Informações ►
►
►
As ordens devem conter a quantidade de informações
necessárias para que os níveis subordinados executem
suas tarefas de forma efetiva;
No caso em que a informação for de interesse para todos
os níveis, o conteúdo desta pode ser compartilhada
usando-se informações acessíveis globalmente;
Informações globais não devem substituir as mensagens;
Implementação
- Debugação -
►
►
►
Esta implementação permite que o programador armazene
a troca de mensagens entre os níveis de comando;
Todas as informações e decisões tomadas estão descritas
no log;
Permite descobrir de onde veio uma informação falsa ou
que decisão foi um erro;
Exemplo
- Manobra de Flanqueamento ►
Situação: Suspeita-se que um adversário está numa sala que
tem mais de uma porta, então o comandante dá a ordem para
flanquear o adversário. Isto significa o capitão enviar uma tropa
de soldados para diferentes portas e, quando todos estiverem
prontos, dar a ordem de ataque.
► Processo de Decisão Estratégica: O trabalho do
processo de decisão estratégica é checar se a manobra é
possível e apropriada. Deve-se ter, pelo menos, duas portas e
um soldado em cada porta. Caso contrário, a manobra de ser
abortada.
► Organização da Manobra: O capitão organiza a
manobra que já foi aprovada pelo nível estratégico
(comandante) enviando soldados em tropas para as diferentes
portas. Assim que cada soldado chega na sua porta, este envia
uma mensagem ao capitão informando sua situação. Quando
todos estiverem a postos, a ordem de ataque pode ser dada e a
manobra estará completa.
Formações
Introdução
►O
que é?
 Posicionamento conjunto
 Sempre que houver um grupo movimentandose ou agindo juntos, é necessário fazê-lo de
forma inteligente.
 Um exército movimentando-se em uma
determinada formação possui uma visualização
interessante, mas não é só isso :-)
Tipos de Formações
Linha
Caixa
Coluna
Cunha
Flanco Esquerdo
V
Flanco Direito
Quem vai primeiro?
► Misturar
os tipos das unidades
 Unidades mais fracas e com poder de fogo de
longo alcance devem ficar atrás
 Unidades rápidas devem ir pelos flancos
 As unidades com maior poder defensivo devem
ir na frente.
 Etc...
Quem vai primeiro?
Age of Empires II
Posicionando-se
► Que
posição da formação cada unidade
deve ocupar?
1
2
3
4
1
2
3
4
1
2
3
4
4
3
2
1
Posicionando-se
► Ao
mover as unidades para uma
determinada formação, faz-se necessário
evitar a colisão entre elas
No caminho...
► ...Havia
uma pedra :-)
No caminho...
► ...Havia
uma pedra :-)
► A unidade tem que contorná-la
No caminho...
► ...Havia
uma pedra :-)
► As unidades tem que contorná-las
► E perdem tempo...
No caminho...
► ...Havia
uma pedra :-)
► As unidades tem que contorná-las
► E perdem tempo...
?
► ...mudando
de posição na formação
No caminho...
► ...Havia
uma pedra :-)
 Solução:
Espaçamento, níveis e...
► ...otras
cositas más
► A distância entre as posições da formação
pode variar
► Uma formação em linha não pode crescer
lateralmente sem limites...
► Determinadas formações exigem unidades
em posições específicas
Movendo em formação
►E
se as unidades precisarem mover-se já em
formação para o seu destino?
Movendo em formação
► Como
calcular o caminho da formação?
 Calcular o caminho para cada unidade é caro!
► Diferentes
velocidades podem quebrar a
integridade da formação
Mais duas pedras no caminho
Mais duas pedras no caminho
Mais duas pedras no caminho
Mais duas pedras no caminho
Mais duas pedras no caminho
Mais duas pedras no caminho
Conclusões
► Formações
adicionam bastante a jogos de
guerra (ou que exijam coordenação de
movimentos)
► As formações interferem bastante no
gameplay (principalmente se o jogador
puder customizá-las :-)
► Podem ser bastante complexas,
dependendo dos atributos das unidades,
etc.
Referências
► AI
Game Programming Wisdom, Steve Rabin et al,
Charler River Media, Inc., seção 5
► Influence Mapping Demo,
http://www.ccg.leeds.ac.uk/james/influence/
► Balancing automated behavior and human control
in multi-agent systems: a case study in Roboflag,
http://www.cds.caltech.edu/~murray/projects/dar
pa01-mica/roboflag/zswh03-acc.pdf
Download

Movimentacao Tatica