
ProjEcto 2.0
A downloadable game
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. Como ressalta Lima (2020), “as práticas lúdicas podem contribuir de maneira significativa para a valorização da diversidade cultural brasileira, proporcionando um espaço onde as diferentes expressões culturais possam ser exploradas e incorporadas ao universo dos jogos.”, e é esse espaço de valorização cultural que ProjEcto se propõe a fazer.
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
O objetivo geral do projeto visa aprimorar a versão anterior, implementando melhorias, novas mecânicas e maior complexidade, mantendo uma experiência divertida e imersiva para o 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. O jogador assume o papel de um soldado em uma missão: explorar uma base militar abandonada e enfrentar hordas de inimigos para eliminar qualquer vestígio de pesquisas antigas. A ambientação, situada em uma base militar brasileira, ganha um toque especial com a inclusão de uma lenda local, trazendo uma sensação de familiaridade e conexão ao longo da experiência.
Em 2024.2, teve 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 foi modificada, e foi 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 ao acabar, ou clicando no botão direito do mouse. Existem também outras mecânicas que são atribuídas ao personagem principal, como correr para qualquer direção desejada, e dash.
Para além disso, tem-se a economia Ectoplasma, essa mecânica consiste em fazer com que os inimigos derrotados soltem uma “moeda” que recebeu o nome de Ectoplasma. Esse recurso possibilita aos jogadores que abram portas para novos cenários e modifiquem suas armas.
Também foram adicionadas duas armas novas ao jogo, que podem ser adquiridas nas bancadas de arma, e o jogador agora pode comprar mais munição em locais designados para isso.
Outra mecânica que foi implementada, é a maquina de vida, que permite que o jogador gasta uma certa quantia de seu ectoplasma para recuperar sua vida por completo.
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 conta com a 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 um protótipo, que em seguida foi aprimorado, como apresentado abaixo. Nele, aparecem elementos que indicam qual round o jogador se encontra, nível de HP, e quantidade munição e de Ectoplasma.
Figura 2: Prototipo de HUD [fonte autoral]
Para além disso, foram adicionadas duas cenas curtas, ao início e ao final do jogo, em prol de para melhorar o contexto narrativo.
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” , implementação de portas, máquina de armas, máquina de vida, caixa de munição e um computador para alcançar o fim do jogo. 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 destrói 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.
Dois novos prefabs de armas foram desenvolvidos a partir do script da pistola desenvolvido anteriormente, sendo chamados "ShotGun" e "MachineGun". A diferença entre esses prefabs é a quantidade de balas instanciadas, cadência de tiro entre cada recarga da arma e suas artes e animações, proporcionando maior imersão ao jogador. Além disso, foi desenvolvido um sistema de inventário, permitindo que o jogador possa armazenar mais de uma arma enquanto joga, e trocá-las ao pressionar a tecla "Q".
Em seguida, foi desenvolvido um prefab denominado "WeaponsSation" responsável por instanciar o prefab das armas desenvolvidas através do uso de ectoplasma. Como este objeto necessita da interação do jogador, foi desenvolvido um sistema de proximidade através do uso de triggers que detecta quando o jogador entra na área delimitada e indica o custo da arma, se ela está disponível para compra, e o botão utilizado para realizar a interação.
Para o desenvolvimento da máquina de vida, foi criada a interface " IInteractble", que dentro do script deste prefab detecta quando a tecla de interação é pressionada, e aumenta a quantidade de vida atual do jogador ao longo do tempo, forçando-o a permanecer próximo à máquina para recuperar toda sua vida. Assim como a estação de armas, foi desenvolvido um feedback visual ao se aproximar, indicando o custo total e o botão de interação necessário para utilizá-la.
O computador final segue uma lógica de programação similar à máquina de vida, onde ao interagir, ao invés de carregar a vida do jogado ao longo do tempo, aumenta uma barra de progressão presente na arte do computador. Com o botão pressionado o jogador pode carregar essa barra, mas ao se afastar ou soltar o botão, a porcentagem do computador para de carregar. Ao chegar em 100%, inicia uma animação específica para destruição e muda a cena de jogo para as cinemáticas finais.
Por fim, foi desenvolvido uma caixa de munição, permitindo que o jogador não tivesse mais munição infinita, e através do uso do ectoplasma, seja induzido à administrar tanto sua quantidade de ectoplasma quanto sua munição para se manter vivo.
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 está na fase final de testes internos, onde alterações em mecânicas e audiovisuais são avaliadas por meio de playtests, com o objetivo de identificar balanceamento e falhas. Esse processo foi repetido diversas vezes durante o desenvolvimento para garantir a qualidade do produto.
Recentemente, o jogo passou por dois testes abertos ao público: o primeiro no evento Test Night, organizado pelo Centro Acadêmico de Design de Jogos (CADJ) da Universidade do Vale do Itajaí, e o segundo no evento Passeio Geek, onde o jogo recebeu a Menção Honrosa de Melhor Jogo por Voto Popular. Em ambos os testes, as observações dos jogadores e formulários de feedback foram usados para coletar informações sobre a experiência das pessoas com o jogo. O próximo evento será o GameFest, também organizado pelo CADJ. Nesse evento, os jogadores também serão observados e um questionário será aplicado para coletar feedback sobre as atualizações, que serão analisadas para 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 sua duração. Através do diagrama, cobriu-se as demandas semanais ao longo do desenvolvimento do jogo, 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á alguns polimentos a serem feitos, como a implementação de assets e áudio. Com o avanço do desenvolvimento, é crucial focar na 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.
LIMA, Maurício de Araújo. Jogos e cultura: a importância das práticas lúdicas na valorização da diversidade cultural brasileira. Observatório da Diversidade Cultural, 2020. Disponível em: https://observatoriodadiversidade.org.br. Acesso em: 15 out. 2024.
--------
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
Status | Released |
Authors | Caroline ribeiro serpa, Théo Santos, bgun2609, Filipe Pereira Coutinho |
Genre | Survival |
Tags | Monsters, Pixel Art, Top down shooter, Unity, Zombies |
Comments
Log in with itch.io to leave a comment.
A I.A de perseguição acaba sendo muito basica, a maioria dos encontros com inimigos chega a ficar banal fora isso acho que a adição da mula sem cabeça melhora muitos as coisas, e desde a ultima versão as coisas vem melhorado muito, espero ver mais de vocês!!!
Adorei o conceito dos inimigos, genial!