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 I.A. 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 (Tiro de Extração). Os objetivos principais entornam em fazer um sistema de geração processual de mapas simples e uma I.A. 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 

  • Desenvolver um protótipo funcional; 
  •  Desenvolver as mecânicas propostas;
  •  Aprimorar o conhecimento em relação as mecânicas propostas; 

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 

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. 

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 tradicionais e até simples para o tema, possibilitando o uso de modelos prontos de uso aberto para facilitar o desenvolvimento do protótipo.

Figura 1: 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 2: 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 que um encontraria em uma habitação para lagartos, 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 3: 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 4: Arte conceitual de tela inicial.

Figura 5: 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 

O motor Unreal Engine disponibiliza inúmeras possibilidades graças ao seu fácil entendimento e filosofia acessível para novos usuários, se firmando hoje na indústria como um dos motores de jogos de maior uso. Juntamente com o uso da Unreal Engine, o desenvolvimento visual do projeto está sendo realizado utilizando o software de modelagem 3D Blender, programa de código aberto generalista, capaz de realizar modelagem, animação e texturização no mesmo projeto.  

Atualmente a Unreal Engine se aproveita de uma filosofia que permite o fácil entendimento e utilização pelo usuário, com direito a documentação e tutoriais de desenvolvimentos simples para um rápido aprendizado do funcionamento do motor, um fórum de comunidade onde é possível tirar dúvidas com outros usuários ou até mesmo os próprios desenvolvedores do motor e licenciamento de código aberto a partir da licença EULA (End-User License Agreement) que permite o uso gratuito do motor até que o jogo desenvolvido alcance um lucro bruto de 1 milhão de dólares. 

3.2 Descrição dos Scripts

Blueprint é um sistema de programação visual feita para facilitar o uso de mecânicas normalmente só disponíveis à programadores. 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 I.A. 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 I.A. 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 de animados do personagem, desde movimentação à ações de ataque e defesa (Lamothe, 1999). 

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 I.A. 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 6: 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.


Ficha completa da equipe:

Enzo de Vargas Shiguefuzi - Atividades/Função - https://akkrid.itch.io/

Francisco Guinle de Barros- Atividades/Função 

Ricardo Londero Machado- Atividades/Função - https://ripkit.itch.io

Yasmin Adria Fornero- Atividades/Função - https://mimichiii.itch.io/

...

Marcelo Dornbusch Lopes - Orientador - m4rc3lo

Universidade do Vale do Itajaí - UNIVALI

Giorgio Gilwan | Coordenador do Curso de Design de Jogos

-‌---

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


Updated 4 days ago
StatusPrototype
AuthorsRipkit, Mimichi, Akkrid
GenreAction

Leave a comment

Log in with itch.io to leave a comment.