A downloadable game

1. Introdução 

Nesse relatório será descrito o desenvolvimento e detalhes de um projeto que será realizado com o objetivo de, baseado no conteúdo de foco das disciplinas de Programação Aplicada e Inteligência Artificial, realizar a proposta de desenvolver mecânicas simples e complexas de IA capazes de gerar mapas e trazer inimigos com múltiplos formatos de comportamentos. 

1.1 Objetivos 

1.1.2 Objetivo Geral 

O objetivo deste projeto consiste em desenvolver um protótipo de um Extraction Shooter, ou Tiro de Extração (Costa, 2023), os objetivos principais abrange fazer um sistema de geração procedural de mapas e uma inteligência artificial capaz de navegar o mapa gerado, identificando o jogador e itens que possam melhorar suas chances de impedir o jogador de escapar do mapa em conjunto com expandir o leque de habilidades dos acadêmicos durante o decorrer do projeto.

1.1.3 Objetivos específicos 

  • Redefinir ambientação e temática: Os ambientes e temática a serem desenvolvidos precisarão ser trabalhados novamente para melhorar o ritmo de desenvolvimento do projeto;
  • Desenvolver geração de mapa aleatória funcional: Programar um sistema de geração procedural que funcione a partir dos parâmetros esperados pelo grupo;
  • Desenvolver IA capaz de navegar o mapa gerado: Programar uma inteligência artificial com múltiplos estados de comportamento e com a capacidade de navegar pelo mapa sem escrúpulos;  
  • Prototipação de uma classe de personagem jogável: Desenvolver e programar um personagem com estilo de jogo específico.

1.2 Procedimentos Metodológicos 

O projeto tem tomado um procedimento similar ao Modelo Agile (Beck et al., 2001b), de comunicação rápida e constante iterações de novos passos.

A programação na Unreal Engine 5 irá utilizar o sistema de Blueprints oferecido pelo editor do motor, e a metodologia será adotada de vídeos de tutorial (REE Animation, 2024).

Os personagens desenvolvidos para o projeto serão modelados diretamente em seus polígonos, onde se posiciona cada ponto manualmente, assim expandindo e definindo a malha dos modelos 3D gradualmente, o processo pode ser intuitivo e controlado mas leva um tempo considerável, algo aliviado pelo baixo valor total de vértices no modelo (“How to Make 3D Models: The Ultimate Guide | Aristek Systems”, 2022).

1.2.1 Metodologia do Projeto 

Para a realização do projeto, se estabeleceu uma metodologia simples mas efetiva de, ao definir quais objetivos são os mais importantes em um devido momento, separar tais objetivos e cada membro, manejando seu tempo, realiza tal função até a próxima reunião semanal, onde um próximo passo é definido. 

Tal metodologia é muito facilitada com o escopo focado e pequeno - poucas mecânicas de uso e funcionamento direto, modelos com pouca resolução e complexidade de malha ou textura, uso consciente mas liberal de arquivos prontos, entre outros. 

2. Conceito 

O gênero escolhido para o protótipo é o Extraction Shooter, o qual consiste em juntar elementos de jogos de Tiro, Ação e Aventura e adicionar um novo formato de objetivo que consiste em o jogador completar algum tipo de objetivo, geralmente coletar algum item, ou ativar alguma coisa ou matar um inimigo especial e então se locomover até um ponto específico onde ele terá a possibilidade de escapar. 

O jogador poderá escolher entre 4 classes, as quais terão suas respectivas características (Armas, equipamento e aparência). Essas classes consistem em: Gunner, Scout, Support e Demolitionist. 

Para o protótipo somente a classe Gunner estará disponível para uso. O Gunner possui armas com alta quantidade de munição, porém dano mediano e um equipamento que possibilita a ele sobreviver situações precárias. O jogo possuirá uma perspectiva 3D e consistirá de gráficos low-poly, para o fácil desenvolvimento de elementos gráficos e personagens (jogáveis e não-jogáveis). 

2.1 Mecânicas 

A mecânica em um jogo pode ser definida como um conjunto de regras e objetivos que regula como o jogador deve jogar e a mecânica também reflete bastante na temática de um jogo, deixando muitas vezes bastante claro do que um jogo se trata a partir de suas aparências. Scott Rogers (2014, p. 78) define mecânica como “um item ou elemento que jogadores interagem para criar ou ajudar durante a gameplay.” As mecânicas de um jogo não precisam ser inovadoras ou complexas para que seja um bom produto, muitas vezes se ater ao básico já basta. 

Figura 1: Blueprint para gerar sala inicial.


Figura 2: Blueprint para gerar as próximas salas.

Figura 3: Blueprint que verifica salas sobrepostas.

Figura 4.1: Blueprint para apagar salas sobrepostas.

Figura 4.2: Blueprint para apagar salas sobrepostas.


2.1.1 Jogabilidade 

Para a jogabilidade, o jogador vai dispor de um sistema de seleção de classes, onde o jogador terá oportunidade de escolher entre 4 estilos de jogo, que constituem de características únicas e equipamentos únicos para auxiliar em sua sobrevivência.  

O jogo possui como objetivos, a possibilidade  do jogador de explorar um mapa gerado processualmente em busca de itens que possam ajudar em sua sobrevivência, cumprir uma missão fornecida e então procurar pela saída para que possa escapar do mapa.  

Como perigo periódico, inimigos estarão posicionados pelo mapa (Estaticamente ou em movimento) para tentar impedir o progresso do jogador. Dentre esses inimigos será possível identificar 3 tipos diferentes, os quais se resumem a um “batedor” que é um inimigo de comportamento agressivo, um “atirador” que é um inimigo estático que combate de longas distâncias e um inimigo “pesado” que possui também um comportamento agressivo porém uma movimentação mais lenta.  

2.2 Design Visual 

Para melhor otimização do trabalho da equipe, foi decidido que os modelos usados tenham poucos polígonos, assim simplificando o processo de modelagem. A estética como um todo se definiu bem com ficção científica, se passando em um ambiente extraterrestre.

2.2.1 Personagens jogáveis 

O jogador controla um membro de uma equipe aparentemente humana, baseada em exploradores espaciais militarizados, a aparência de cada classe dá indícios a sua função e especialidade na equipe, onde o “Demolidor” mostra uma armadura reforçada e carregar explosivos visíveis, enquanto no “Explorador” se pode notar itens de alpinismo e mecanismos tecnológicos para amortecer possíveis quedas, por exemplo. 

 As armas dos jogadores, por enquanto, vão ser majoritariamente mordernas, usando mecanismos de pólvora ou tecnologias de futuro próximo, e até tradicionais para o tema, possibilitando o uso de modelos prontos de uso aberto para facilitar o desenvolvimento do protótipo.

Figura 5: Modelo 3D de uma das classes jogáveis.


2.2.2 Personagens não jogáveis 

Os inimigos que opõe a missão dos jogadores serão alienígenas, humanoides mas com certos detalhes reptilianos - caudas, pele verde,  texturas escamosas - que portarão armas igualmente indefinidas nesse momento, sendo possível o uso de modelos clássicos como armas laser ou lâminas energéticas.

Figura 6: Modelo 3D de um dos inimigos.

2.2.3 Cenário 

O cenário, em seu conceito, é pra ser a habitação dos alienígenas adversários dos jogadores, no desenvolvimento atual os temas consistem de habitações internas, como apartamentos e corredores, voltados pro extraterrestre, usando como inspiração itens encontrados em uma típica habitação para répteis, porém em escala humana e levemente alterados para distanciar das referências reais. Se deve notar que esse cenário estará decaído, pois o jogo se passa na exploração das ruínas desse povo, com superfícies degradadas, plantas dominando as estruturas, passagens quebradas, e afins. 

Figura 7: Arte conceitual do cenário.



2.3 Telas e Interfaces 

O jogo possuirá telas de início e menu principal simples, com selecionáveis práticos e uma interface dentro da partida que constituirá de elementos visuais correspondentes à: arma equipada, munição, mini-mapa, retículo de mira, objetivo de missão, itens de cura, barras de vida e armadura.  

Figura 8: Arte conceitual de tela inicial.

Figura 9: Arte conceitual de interface in-game.


3. Design Técnico 

O projeto terá seu desenvolvimento realizado através do motor de jogos Unreal Engine 5.4.3 graças a possibilidade de realizar a programação em formato de Blueprints, que por sua parte é bastante acessível e permite a programação de jogos de uma maneira mais prática e amigável ao usuário. 

3.1 Motor de Jogo 

A Unreal Engine se firma hoje como um dos motores gráficos mais importantes da indústria de jogos, graças à sua filosofia acessível e facilidade de uso. A Epic Games oferece uma ampla documentação, tutoriais detalhados e um fórum de comunidade ativa, onde desenvolvedores podem compartilhar dúvidas e soluções, incluindo suporte de profissionais diretamente ligados ao motor. Além disso, a licença EULA permite seu uso gratuito para desenvolvedores até que o lucro bruto do projeto alcance 1 milhão de dólares, incentivando novos criadores a explorarem o motor sem barreiras financeiras iniciais. 

A Unreal Engine 5 se destaca por seu avanço tecnológico e por ferramentas como Nanite e Lumen, que oferecem gráficos ultrarrealistas e iluminação dinâmica. Isso a torna ideal tanto para desenvolvedores independentes quanto para grandes estúdios, como Square Enix e CD Projekt Red, que optaram por utilizá-la em grandes títulos como Dragon Quest XII e o próximo The Witcher. Paralelamente, ferramentas complementares como o Blender, software de modelagem 3D de código aberto, são frequentemente utilizadas no processo de criação visual, oferecendo suporte integrado para modelagem, texturização e animação em projetos na Unreal (Gamevicio, 2022) e WindowsClub, 2024). 

A combinação de acessibilidade, suporte comunitário e avanços técnicos solidifica a Unreal Engine como um pilar na indústria de desenvolvimento de jogos, atraindo tanto iniciantes quanto veteranos em busca de qualidade e inovação. 

3.2 Descrição dos Scripts

Blueprint é um sistema de programação visual. A documentação da Unreal Engine 5 diz: “O sistema Blueprint Visual Scripting na Unreal Engine é um sistema de programação de jogabilidade completo baseado no conceito de usar uma interface baseada em nodos para criar elementos de jogabilidade dentro do Editor Unreal.”. As Blueprints tomam forma de nodos acessíveis pelo editor da Unreal Engine, que são usadas para definir classes orientadas por objetos, ou objetos em si. 

Blueprints tomam formato visual de caixas e fios. O conteúdo de cada caixa é conectado e reage a outras caixas pelos fios. Uma blueprint básica irá conter uma caixa com um evento, que inicia o processo da blueprint (Exemplo: o jogador entrando dentro de uma área específica) e outras caixas que irão executar as ações do evento (Como fechar uma porta atrás do jogador). 

Há muitos eventos que podem ser feitos através de blueprints, variando desde envenenar o personagem ou criar um trampolim, e sem limite de quão grande uma blueprint pode ser, elas podem cuidar de elementos extremamente complexos. 

3.3 Inteligência Artificial

Inteligência Artificial (IA) são programas capazes de realizar tarefas específicas com certo nível de habilidade e autonomia similar a um ser inteligente, com um bom exemplo sendo o tradutor DeepL. 

A IA em jogos são utilizadas de muitos jeitos, com alguns básicos sendo padrões de movimento, máquinas de estado e redes neurais. Na maioria dos casos, a IA é utilizada como oposição para o jogador, como em Pac Man (1980) com os padrões de movimento usados pelos fantasmas e Doom (1992) que usa máquinas de estado para alterar os comportamentos de seus diversos inimigos. 

Para o desenvolvimento dos comportamentos da IA dos inimigos, serão utilizadas as técnicas: Máquinas de Estado Finito, que tem como função expressar o comportamento dos personagens, permitindo mudanças de ações dos personagens; Pathfinding, é uma técnica que verifica o melhor caminho possível para o personagem percorrer (Bourg, 2004); Padrões de Movimento, que serve para definir os estados animados do personagem, desde movimentação à ações de ataque e defesa (Lamothe, 1999). 

Figura 10: Blueprint da IA do inimigo.


Figura 11: Blueprint de troca de comportamento do inimigo.


3.4 Delineamento de Testes 

Até o momento, o projeto passou apenas por um teste de estresse que tinha como objetivo descobrir a capacidade de processamento máxima da geração procedural do mapa. A execução foi realizada pelo nosso programador Ricardo Londero Machado e os testes foram bem sucedidos, com o projeto conseguindo gerar mais de 1000 elementos de mapa sem perder capacidade de processamento. Futuramente serão realizados mais testes envolvendo desempenho da IA aplicada aos inimigos e geração de mapas com assets personalizados de decoração e ambientação para descobrir novamente as capacidades do projeto. 

3.5 Cronograma

Figura 12: Tabela de prazos.


4. Considerações Finais 

Até o momento o projeto se mostrou desafiador, pois as mecânicas de geração processual de mapas e inteligência artificial que estão sendo exploradas pelos acadêmicos se mostraram mais problemáticas do que o esperado apesar do uso da programação simplificada utilizando a linguagem de blueprints do motor Unreal Engine.

No momento não é possível chegar a uma conclusão clara sobre o desenvolvimento final das mecânicas que estão sendo trabalhadas, porém já obtivemos resultados aceitáveis da geração processual de mapas, no entanto a inteligência artificial ainda não foi trabalhada, algo que esperamos priorizar logo para o desenvolvimento do projeto. 

Referências 

BECK, K., et al. The Agile Manifesto. 2001 

ROGERS, S. Level up : the guide to great video game design. 2. ed. Chichester: Wiley, 2014. 

BOURG, David M.; SEEMAN, Glenn. AI for Game Developers. Sebastopol: O’Reilly. 2004

LAMOTHE, André. Tricks of the Windows Game Programming Gurus: Fundamentals of 2D And 3D Game Programming. Indianópolis: Sams. 1999.

Links

Billy Butcher. Epic Games divulga lista de estúdios que estão trabalhando com o Unreal Engine 5 nos seus projetos - GAMEVICIO, 5 de abril de 2022. Disponível em <https://www.gamevicio.com/noticias/2022/04/epic-games-divulga-lista-de-estudios-...>. Acesso em: 27 nov. 2024.

COSTA, D. O que é Extraction Shooter e quais os melhores jogos disponíveis. Disponível em: <https://www.terra.com.br/gameon/plataformas-e-consoles/o-que-e-extraction-shoote...>. Acesso em: 27 nov. 2024.

DeepL Team, Como funciona o DeepL?, 2021. Disponível em: <https://www.deepl.com/pt-BR/blog/how-does-deepl-work>. Acesso em: 27 nov. de 2024.

Epic Games, Blueprint Class Assets in Unreal Engine | Unreal Engine 5.5 Documentation | Epic Developer Community. Disponível em: <https://dev.epicgames.com/documentation/en-us/unreal-engine/blueprint-class-asse...>. Acesso em: 27 nov. de 2024.

Epic Games, Blueprints Visual Scripting in Unreal Engine. Disponível em:<https://dev.epicgames.com/documentation/en-us/unreal-engine/blueprints-visual-sc...>. Acesso em: 27 nov. de 2024.

Jorge Henrique. Halo é relançado no Unreal Engine 5, 343 Industries se torna Halo Studios e tem vários jogos em desenvolvimento - Windows Club, 7 de outubro de 2024. Disponível em <https://windowsclub.com.br/halo-e-relancado-no-unreal-engine-5-343-industries-se...>. Acesso em: 27 nov. 2024.


Ficha completa da equipe (Programação Aplicada):

Enzo de Vargas Shiguefuzi - Programador - https://akkrid.itch.io/

Francisco Guinle de Barros - Artista 2D e 3D 

Ricardo Londero Machado - Programador - https://ripkit.itch.io

Yasmin Adria Fornero - Artista 2D - https://mimichiii.itch.io/

Ficha completa da equipe (Inteligência Artificial):

Enzo de Vargas Shiguefuzi - Programador - https://akkrid.itch.io/

Ricardo Londero Machado - Programador - https://ripkit.itch.io

Mateus dos Santos Heinz - Auxiliar de Programação - https://deatch.itch.io/

...

Marcelo Dornbusch Lopes - Orientador - m4rc3lo

Universidade do Vale do Itajaí - UNIVALI

Giorgio Gilwan | Coordenador do Curso de Design de Jogos

Rafael Kojiio | Coordenador Gamelab UNIVALI

-‌---

Projeto  desenvolvido como requisito parcial para obtenção de aprovação nas disciplinas: (i) Programação Aplicada - Professor - Marcelo Dornbusch Lopes; e (ii) Inteligência Artificial -  Professor - Rafael Kojiio Nobre


Download

Download
Project_E.IN.O.S.zip 642 MB

Comments

Log in with itch.io to leave a comment.

Ideia muito maneira, espero que seja desenvolvida mais!

Brabíssimo!