MAC0499 Monografia Código Pôster Parte Subjetiva Contato

MAC0499 - Trabalho de Formatura Supervisionado

Aluno: Victor Domiciano Mendonça

Supervisor: Flávio Soares Corrêa da Silva

Prof. Responsável: Nina Sumiko Tomita Hirata

Tema: Inteligência Artificial em um jogo procedural do gênero Tower Defense

Resumo

Neste trabalho, foi desenvolvido o jogo Path of The Wicked, um jogo do gênero Tower Defense, cujo mapa é gerado proceduralmente. Tower Defense é um gênero de jogos de estratégia, em tempo real ou em turnos, com foco em aquisição e aplicação de recursos e posicionamento de unidades de proteção em um mapa. Path of The Wicked foi desenvolvido utilizando a Godot, uma game engine multiplataforma open source, na linguagem GDScript, uma linguagem de programação dinâmica de alto nível. O terreno do jogo é composto de um grid hexagonal, mapeado em um grafo ponderado, e a inteligência artificial se resume em algoritmos de busca nesse grafo, como o algoritmo A*.
Captura de tela de uma partida do jogo Path of The Wicked

Introdução

A área de desenvolvimento de jogos eletrônicos apresenta diversos campos de pesquisa relacionados à Ciência da Computação, notavelmente a computação gráfica, gerando modelos e animações tridimensionais excepcionalmente realistas, a inteligência artificial, criando agentes inteligentes capazes de tomar decisões que emulam comportamentos humanos, e a geração procedural, produzindo dados e elementos de naturezas variadas a partir de algoritmos meticulosos. Especificamente sobre inteligência artificial, a produção de jogos pode ter um foco diferente das aplicações reais, pois nem sempre o ideal é realizar as ações ótimas.
Nesse sentido, a literatura relacionada à game design expressa de maneira pertinente: é mais interessante que os agentes presentes em um jogo atuem com ênfase no entretenimento e nos desafios que proporcionam ao jogador do que agir utilizando a melhor abordagem possível contra humanos. Um dos desafios que surge durante o desenvolvimento de um jogo é a implementação de algoritmos eficientes, pois a execução é feita em tempo real, ou seja, todo o processamento de uma etapa lógica, renderizado em um quadro, deve ser feito em menos de 16 milissegundos.

Motivação e objetivo

O USPGameDev é o grupo de estudos sobre desenvolvimento de jogos analógicos e eletrônicos da USP, e a motivação deste trabalho é em decorrência da minha participação no grupo desde 2015, quando ingressei no Bacharelado em Ciência da Computação do Instituto de Matemática e Estatística da Universidade de São Paulo. O objetivo é aplicar conhecimentos que adquiri durante a graduação, relacionados aos algoritmos e estruturas de dados, e durante as atividades extracurriculares que participei no USPGameDev, desenvolvendo jogos, aprendendo conceitos de game design e adquirindo experiência na utilização da Godot Engine.

Ferramentas

Godot Engine é uma game engine multiplataforma usada na criação de jogos 2D e 3D. É um software open source sob a licença MIT, desenvolvido de forma independente pela comunidade. GDScript é uma linguagem de programação dinâmica de alto nível. Tem uma sintaxe semelhante à Python, isto é, blocos de código são baseados na indentação, e muitas palavras chave são parecidas. Seu objetivo é ser otimizado e altamente integrado com a Godot Engine, permitindo flexibilidade para a criação e integração de conteúdo. Além dos tipos de dados básicos que estão embutidos, existem tipos de dados relacionados à vetores e à própria engine.

Cronograma

Atividades Abril Maio Junho Julho Agosto Setembro Outubro Novembro Dezembro
Desenvolvimento das mecânicas do jogo X X X X
Testes iterativos de mapas procedurais X X
Implementação das IAs X X X X
Comparação e análise das IAs X X X X
Monografia X X X X X
Pôster X
Apresentação X