A downloadable game for Windows

Trabalho de Programação Aplicada

1 Introdução

Este projeto consiste na continuação da prototipação do jogo survival shooter ProjEcto, criado nas disciplinas de Projeto de Jogos e Motores de Jogos Avançados, no primeiro semestre de 2024, e na implementação de atualizações para atender aos objetivos que a equipe de desenvolvedores considera necessário para sua melhora. Seu desenvolvimento tem como objetivo pôr em prática o conteúdo  e as técnicas de design desenvolvidas nas disciplinas do curso de Design De Jogos, além da implementação do feedback recebido durante playtests anteriores para aprimorar a experiência proposta.

ProjEcto visa criar uma experiência embasada na cultura brasileira, incorporando lendas de seu folclore mesclado com conceitos utilizados em jogos de survival shooter. Os principais procedimentos metodológicos utilizados para seu desenvolvimento são a realização de reuniões periódicas, playtests, divisões de funções e documentação para registro.

O projeto apresentado tem como principal objetivo a melhora da versão desenvolvida no primeiro semestre de 2024, implementando novas mecânicas, aumentando a dinâmica de jogo e sem deixar de lado uma experiência divertida e imersiva para o jogador.

1.1 Objetivos

Este projeto tem como objetivo geral aprimorar a versão desenvolvida no primeiro semestre de 2024 através da delimitação de melhorias e propostas de ampliação da dinâmica de jogo, além da implementação de novas mecânicas que aumentem a complexidade do mesmo, sem deixar de proporcionar uma experiência divertida e imersiva ao jogador.

Para isso, foram traçados alguns objetivos específicos:

  • Criar uma nova arte para a tela de menu;
  • Adicionar dois novos inimigos, o Homem do Saco e a Mula sem Cabeça;
  • Desenvolvimento de novas armas;
  • Desenvolver dois novos cenários;
  • Incorporar variedade de sons para a arma e o menu principal;
  • Construir uma economia;
  • Repaginar as artes da HUD.

1.2 Procedimentos Metodologicos

O principais procedimento metodológico utilizado para o desenvolvimento de ProjEcto é o Kanban, tendo como ferramenta o Trello. Essa metodologia é aplicada através da realização de reuniões semanais para planejamento e divisão de tarefas, desenvolvimento de protótipos e realização de playtests para aprimorar seu balanceamento, além da segmentação de setores de trabalho e o desenvolvimento de documentações direcionadas para os mesmos.

1.2.1 Metodologia de Projeto

Nas reuniões semanais para planejamento, são vistos e analisados os trabalhos que foram feitos durante a semana até aquele momento, e também é feito o alinhamento dos prazos e divisão de tarefas para serem entregues até a próxima semana. Uma outra ferramenta de auxílio utilizada é o Whatsapp, onde é enviado uma mensagem  no grupo de desenvolvedores, após toda reunião, lembrando as tarefas semanais a serem cumpridas. 

Referente ao desenvolvimento de protótipos e realização de playtests, a equipe definiu que a cada marco de projeto, é disponibilizado uma build para playtest. Ou seja, quando um fator determinante do jogo é implementado, como por exemplo um inimigo novo e toda sua conjuntura (como sons, efeitos visuais, animações e mecânicas etc), deve ser feito um playtest, e só depois de tudo estar rodando sem problemas, a produção do jogo volta a sua rotina normal.

Quanto às documentações, utiliza-se o Google Drive sempre que algum registro ou desenvolvimento de documentação mais extensa se faz necessária. A equipe utiliza essa ferramenta também como arquivo para o projeto, concentrando todo o material necessário para implementação num único local.

2 Conceito

ProjEcto é um jogo pixel art, do gênero Survival Shooter, que tem como uma das suas principais mecânicas os rounds de sobrevivência. Como personagem principal, o jogo conta com um soldado cuja missão é explorar uma base militar abandonada, enfrentando hordas de inimigos para limpar o local de qualquer resquício de pesquisa antiga. A ambientação em uma base militar brasileira e a inclusão de uma lenda local adicionam um toque de familiaridade especial à obra.

Em 2024.2, tem-se como objetivo retirar o sistema de melhoria por round, adicionar dois novos inimigos, duas armas novas e dois novos cenários. A arte atual do cenário será modificada, e será implementada a mecânica de Ectoplasma.

2.1 Mecânicas

Em ProjEcto, tem-se a mecânica principal de atirar, em que o jogador pode mirar e escolher em quem e em qual momento ele deseja dar dano. Acompanhando essa mecânica, existe também a ferramenta de recarregar, que acontece automaticamente depois que 4 balas são gastas. Existem também outras mecânicas que são atribuídas ao personagem principal, como correr para qualquer direção desejada, e dash.

Existe também a economia Ectoplasma, essa mecânica consiste em fazer com que os inimigos derrotados dropem uma “moeda” que recebeu o nome de Ectoplasma. Esse recurso possibilita aos jogadores que abram portas para novos cenários e modifiquem suas armas.

2.2 Personagens não jogáveis

Quanto às mecânicas de personagens não jogáveis, tem-se os inimigos, todos têm em comum a mecânica de correr atrás do player, mas cada inimigo é incubido com sua mecânica principal própria.Tem-se o Corpo Seco, que causa dano ao bater de perto, a Mula Sem Cabeça, representada abaixo, que explode ao encostar, e o Homem do Saco, que rouba pontos de Ectoplasma do player. 

Figura 1:  Gif da Mula Sem Cabeça Trotando [fonte autoral]


2.3 Telas e Interfaces 

Em ProjEcto, a tela inicial apresenta a logo do time de desenvolvedores, seguida por um menu com arte autoral e opções para jogar, acessar créditos e configurações, ver o tutorial ou sair. O jogo possui telas de vitória, que mostram os créditos, e de derrota, com uma animação do personagem morrendo, oferecendo a chance de tentar novamente ou voltar ao menu. Na tela de pausa, é possível retomar o jogo, iniciar, ajustar configurações ou retornar ao menu principal.

Quanto a HUD, foi desenvolvido até então um protótipo, como apresentado abaixo, e que tem-se por intenção ser aprimorado. Nele, aparecem elementos que indicam quantidade de inimigos abatidos, qual round o player se encontra, nivel de HP, e quantidade munição e de Ectoplasma.

Figura 2:  Prototipo de HUD  [fonte autoral]


3.0 Design Técnico

O design técnico desenvolvido neste projeto aborda os aspectos fundamentais que compõem o desenvolvimento do protótipo do jogo, focando na escolha de ferramentas, implementação de scripts, inteligência artificial, e fases de testes, tendo como principal  objetivo descrever a estrutura tecnológica por trás do projeto, destacando as decisões e práticas adotadas para garantir a funcionalidade e a eficiência do jogo, além de estipular metas e um cronograma para desenvolvimento do mesmo.

3.1 Motor de Jogo 

O presente projeto foi desenvolvido dentro da plataforma Unity, por ser uma engine versátil e poderosa, utilizada tanto por desenvolvedores independentes quanto por grandes estúdios. Esta plataforma é utilizada principalmente no desenvolvimento de jogos 2D e 3D, aplicativos de realidade aumentada e virtual, além de outras experiências interativas.

A arquitetura de design desenvolvida neste motor de jogo é baseada na modularidade, onde todos os objetos desenvolvidos na plataforma são construídos a partir de múltiplos componentes, que juntos definem o comportamento e a aparência do objeto. Isso possibilita a reutilização de códigos em diferentes objetos e contextos, facilitando a manutenção e escalabilidade do código.

Os objetos montados podem ser armazenados no projeto como Prefabs, podendo ser instanciados várias vezes com facilidade, permitindo a criação e modificação rápida de cenas sem precisar recriar elementos. Esta engine possui como base de seu sistema as linguagens C e C++, mas possui uma interface exclusivamente em C# para interação com o usuário.

3.2 Descrição dos Scripts 

Para o desenvolvimento dos scripts dentro de jogo e com o intuito de usufruir ao máximo do sistema modular disponibilizado pela plataforma Unity, os mesmos foram categorizados em duas principais funcionalidades, os scripts de comportamento e os administradores. Dessa forma, os scripts comportamentais podem ser adicionados aos objetos desejados sem a necessidade de recriação de código, enquanto os administradores organizam como estes comportamentos irão se manifestar.

Dentro do escopo abordado no desenvolvimento deste projeto, as principais alterações estão presentes no sistema de som do jogo, implementação de dois novos inimigos, implementação da economia denominada “Ectoplasma” e portas que necessitam desta para abrir, além das alterações audiovisuais citadas anteriormente. Referente ao sistema de som, um novo script administrador denominado “Music Manager” foi desenvolvido e aplicado à uma AudioSource para coordenar a reprodução das diferentes músicas dentro do jogo. 

Além disso, tanto o “Music Manager” quanto o “SFX Manager” tiveram seus códigos alterados, adicionando uma variável para modificação do volume de cada sistema de som. Para que o usuário possa modificar esta variável dentro do jogo, foram criados dentro da interface do jogo um menu de configurações composto por dois Sliders, que por sua vez receberam dois scripts comportamentais que utilizam as informações armazenadas nos administradores para alterar o volume dentro do jogo.

Para o desenvolvimento dos novos inimigos, inicialmente foi elaborado o prefab do inimigo “Mula”, que contém o comportamento de vida e um administrador que determina a velocidade, trajetória e instancia um prefab denominado “Explosion” ao entrar em contato com o jogador. Este novo prefab, por sua vez, contém o comportamento que causa dano aos objetos presentes em sua área, podendo ser tanto o jogador quanto outros inimigos. Ambos prefabs contém um objeto dentro de sua hierarquia para realizar as animações desejadas, gerenciadas por seus respectivos scripts administradores de animações.

Assim como a mula, foi desenvolvido um inimigo “Homem do Saco” que contém o comportamento de vida, além de seu próprio administrador de variáveis e de animações, mas ao invés de instanciar um novo objeto ao entrar em contato com o jogador, ele ativa o script comportamental “SacoAttackBehaviour”, roubando uma quantidade de ectoplasma do player e fugindo.

A economia do jogo foi implementada através da modificação do script “PlayerManager” possibilitando o armazenamento da variável ectoPlasm. Além disso, todos os inimigos implementados receberam modificações em seus respectivos administradores, agora responsáveis por instanciar o prefab “Ectoplasma” dentro do jogo ao serem eliminados, este que por sua vez possui um script comportamental próprio que aumenta o valor da variável  de ectoplasma presente no jogador ao mesmo tempo em que se destroi ao entrar em contato com o mesmo.

Para criação das portas dentro do cenário, foram criados objetos denominados “Door” que continham dois colisores, um deles sendo utilizado como detector. Dentro deste objeto foi adicionado o script comportamental “OpenDoorBehaviour” que utiliza o mecanismo de interface para detectar a presença do jogador próximo à porta e desativar a colisão caso a quantidade de ectoplasma coletada por ele seja maior que o mínimo estipulado.

3.3 Inteligência Artificial 

A inteligência artificial é um conceito que consiste na capacidade que máquinas, seja ela física, software ou outro sistema têm de interpretar dados externos e aprender a partir dessa interpretação e utilizar esse aprendizado para resolver tarefas específicas. Este avanço tecnológico permite que sistemas simulem uma inteligência similar à humana, indo além da programação de ordens específicas para tomar decisões de forma autônoma (BARBOSA; PORTES, 2023).

Para os desenvolvedores de jogos, a aplicação da IA surgiu como complemento ao processo de desenvolvimento, com o objetivo de suprir a necessidade que existia com a ausência de um ambiente dinâmico e realista, possibilitando a capacidade de simular o pensamento humano e extrapolar um universo atrativo para o usuário (GOBETE; LUCCA, 2022).

O presente projeto utiliza a inteligência artificial para elaboração do comportamento dos inimigos que serão enfrentados no jogo. O inimigo “Corpo Seco” contém em seu script comportamentos de movimento que serão orientados pelo objeto componente Nav Mesh Agent, fazendo com que o mesmo sempre se mova em direção ao jogador, ultrapassando obstáculos necessários, além de comportamentos como ataque e morte, que auxiliam na emulação do comportamento humano e na imersão do jogador.

O inimigo “Mula” segue um mesmo padrão de programação, tendo sua inteligência artificial voltada para perseguição do jogador, realizando o comportamento de explosão ao alcançá-lo. Já o inimigo “Homem do Saco”, além de perseguir o jogador, ele tem a possibilidade de roubar ectoplasma, e ao fazer isso, sua IA altera seu comportamento para fuga, tentando se distanciar do player ao mesmo tempo que tenta alcançar uma das poças de onde surgem os inimigos para completar sua fuga, levando o ectoplasma consigo.

3.4 Delineamento de Testes

Atualmente o jogo encontra-se na primeira etapa de testes interna, onde as alterações mecânicas e audiovisuais desenvolvidas até o momentos estão sendo avaliadas pelos integrantes por meio de playtests em busca de inconsistências e falhas em sua execução. Este procedimento será realizado mais duas vezes durante o desenvolvimento do projeto, para averiguar a qualidade do produto desenvolvido.

Por fim, o jogo será exposto em um  playtest aberto ao público desenvolvido pelo Centro Acadêmico do Curso de Design de Jogos da Universidade do Vale do Itajaí denominado Test Night, evento em que diversos desenvolvedores podem expor seus jogos, com o objetivo de realizar um teste aberto para a comunidade, alunos e egressos da universidade. Neste evento será feita a observação atenta dos jogadores, em conjunto com anotações de suas reações e comentários. Para além disso, será  aplicado um questionário para recebimento de feedback referente às atualizações implementadas no jogo, que posteriormente serão analisadas para delimitação de futuras mudanças.

3.5 Cronograma

Para o desenvolvimento do projeto proposto, foi elaborado um cronograma baseado no diagrama de Gantt, ferramenta visual voltada para gestão das atividades e suas duração. Através do diagrama, cobriu-se as demandas semanais ao longo dos próximos três meses de desenvolvimento, dividido entre os principais objetivos propostos para prototipação atrelados às demandas de arte, sonorização e programação, como demonstrado na imagem abaixo.

Figura 3:  Cronograma de Produção  [fonte autoral]


4 Considerações Finais/Conclusão

O desenvolvimento do jogo ProjEcto está em andamento e tem proporcionado uma experiência prática significativa aos membros da equipe. Até agora, a versão anterior foi aprimorada com a inclusão de novas mecânicas, inimigos e cenários, além de melhorias na interface, elevando a experiência do jogador.

Contudo, ainda há muito a ser feito, como a integração das mecânicas de aprimoramento de armas e testes com grandes públicos. Esses obstáculos representam oportunidades para melhorias contínuas. Com o avanço do desenvolvimento, é crucial focar no cumprimento do cronograma, boa comunicação entre a equipe, e na análise do feedback dos usuários para potencializar ainda mais o ProjEcto.

5 Referências

UNITY TECHNOLOGIES. Unity user manual 2022.3 (LTS). Disponível em: <https: docs.unity3d.com="" manual="" index.html="">. Acesso em: 7 out. 2024. </https:>

BARBOSA, L. M.; PORTES, L. A. F. (EDS.). Revista Tecnologia Educacional. Associação Brasileira de Tecnologia Educacional, 2023. Edição Especial. 

GOBETE FILHO, A. R.; LUCCA FILHO, J. de. INTELIGÊNCIA ARTIFICIAL EM JOGOS DIGITAIS. Revista Interface Tecnológica, [S. l.], v. 19, n. 2, p. 342–354, 2022. DOI: 10.31510/infa.v19i2.1546.

--------

Ficha completa da equipe:

Andrei  Falk -  ( https://andrei-falk.itch.io/)

Bruno Alves -  ( https://bgun2609.itch.io)

Caroline Serpa -( https://caroline-ribeiro-serpa.itch.io/)

Filipe Coutinho - ( https://filp-cout.itch.io)

Theo Santos - ( https://theofs.itch.io)

--------

Marcelo Dornbusch Lopes - ( m4rc3lo)

Universidade do Vale do Itajaí - UNIVALI

Cesar Albenes Zeferino | Diretor Escola Politécnica

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.

O conteúdo aqui tem direito reservado e pode conter inconsistências conceituais.

Visite a versão anterior deste projeto! --->  https://bgun2609.itch.io/projecto

Download

Download
ProjEcto TestNight.rar 47 MB

Leave a comment

Log in with itch.io to leave a comment.