Inteligência Artificial em um jogo procedural do gênero Tower … · 2020. 3. 30. ·...
Transcript of Inteligência Artificial em um jogo procedural do gênero Tower … · 2020. 3. 30. ·...
Inteligência Arti�cial em um jogo procedural dogênero Tower Defense
Introdução
Neste trabalho, foi desenvolvido o jogo Path of TheWicked, do gênero Tower Defense, utilizando a GodotEngine. Jogos do gênero Tower Defense são jogos deestratégia, em tempo real ou em turnos, com foco emaquisição e aplicação de recursos e posicionamento deunidades de proteção em um mapa. Em Path of TheWicked, o jogador pode comprar torres e cristais de tipose cores diferentes.
Ferramentas
Uma árvore de nós na Godot
Godot Engine é uma gameengine multiplataforma usadana criação de jogos 2D e 3D. Éum so�ware open source soba licença MIT. GDScript é umalinguagem de programaçãodinâmica de alto nível. Temuma sintaxe semelhante àPython, e seu objetivo é serotimizado e integrado com aGodot Engine. Além dos tiposde dados básicos que estãoembutidos, existem tipos dedados relacionados à vetores eà própria engine.
Desenvolvimento
O jogo tem 25 tipos diferentes de creeps, cujos atributossão: pontos de vida, velocidade, fraqueza e resistência àscores de cristais. Creeps com fraqueza à uma determinadacor de cristal sofrem o dobro de dano, e resistência diminuipela metade. Os efeitos de cristais são: bônus de recursos,dano crítico, envenenamento, paralisia, lentidão e dano emárea. Os mesmos recursos utilizados para comprar torrese cristais são subtraídos quando um creep atinge a base.
Uma torre equipada com um cristal e o popup informativo
Geração Procedural
O mapa é composto de um grid hexagonal, e os caminhostêm início em pontos fixos, onde surgem os creeps, eterminam na base. Inicialmente é sorteado um número querepresenta o viés do caminho, ou seja, para qual direçãoirá tender. Para determinar a posição da próxima célulagerada do mapa, é calculado um vetor com origem nocentro da célula que aponta para a base. Em seguida,esse vetor é rotacionado em um ângulo gerado por umadistribuição gaussiana, cujo desvio padrão é proporcionalà distância da célula até a base, e a média é o viés docaminho.
Captura de tela de uma partida do jogo Path of The Wicked
Inteligência Artificial
Após a geração do mapa, é criado um grafo, em que cadacélula é um vértice, e cada caminho que conecta duascélulas é uma aresta. Para cada ponto de surgimento doscreeps é calculado o caminho até a base usando o A*, umalgoritmo de busca informada. Como o terreno é imutável,o algoritmo só é processado uma vez no início da partidapara cada ponto de surgimento dos creeps. As células docaminho que foram calculados pelo A* são armazenadasem um vetor, e durante o jogo, cada creep acessa essasinformações para saber qual será a próxima célula que iráse dirigir.
Mais informações
I Site do projeto:h�ps://linux.ime.usp.br/~victordm/mac0499/
I Para jogar ou acessar o código fonte:h�ps://github.com/victordomiciano/mac0499
Victor Domiciano Mendonça, Orientador: Flávio Soares Corrêa da SilvaNUSP: 8641963 Contato: [email protected]
Departamento de Ciência da Computação, Instituto de Matemática e Estatística, Universidade de São Paulo