Inteligência Artificial em um jogo procedural do gênero Tower … · 2020. 3. 30. ·...

Post on 19-Nov-2020

2 views 0 download

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: victor.dm3@gmail.com

Departamento de Ciência da Computação, Instituto de Matemática e Estatística, Universidade de São Paulo