A downloadable game

Crash Re-Build

RESUMO

O projeto tem como objetivo desenvolver um jogo de plataforma 3D inspirado em clássicos da era PS1/PS2/N64, como Crash Bandicoot e Spyro. O jogo, produzido para a disciplina de Programação Aplicada, é desenvolvido por uma equipe de alunos, Eduardo Teixeira da Rosa, Gabriel Dutra da Silva e João Henrique Zimmermann Rohde, sob a orientação do professor Marcelo Dornbusch Lopes. O jogador deve avançar pelas fases, superando obstáculos e inimigos, e esquivar-se de explosivos. O diferencial do projeto está na combinação de elementos nostálgicos com técnicas modernas de game design e programação usando o motor de jogo da Unreal Engine 5.2.1. Além disso, o jogo se destaca por sua jogabilidade intuitiva e níveis desafiadores, que proporcionam uma experiência imersiva e divertida para os jogadores. A equipe utilizou ferramentas avançadas de desenvolvimento, como o sistema de programação via nós da Unreal chamado Blueprints e técnicas de game design para criar um ambiente visualmente agradável e mecanicamente sólido em termos de programação aplicada para sua jogabilidade, graças a ajuda de assets pertinentes da engine. Como resultado é obtido um protótipo de um jogo de plataforma 3D que agrega muito no aprendizado e conhecimento de programação e design para a equipe de estudantes da Univali.

Palavras-chave: Unreal. Protótipo. Jogo. Plataforma. 3D. Programação.

LISTA DE FIGURAS

Figura 1 - Baseado em Crash Bandicoot [Zine Cultural]

Figura 2 – Corpo dos Três Elementos do Menu [Autoria Própria]

Figura 3 – Bluprint Menu, Evento BeginPlay [Autoria Própria]

Figura 4 – Blueprint Menu, Métodos Open Level e Quit Game [Autoria Própria]

Figura 5 - Código para movimentação e pulo [Autoria Própria]

Figura 6 - Código para o input mapping [Autoria Própria]

Figura 7 - Código para o ataque do jogador [Autoria Própria]

Figura 8 - Código para o dano causado do jogador [Autoria Própria]

Figura 9 - Código para a câmera do jogador [Autoria Própria]

Figura 10 - Código para a câmera do jogador [Autoria Própria]

Figura 11 - Código para a mecânica de caixa quebrável [Autoria Própria]

Figura 12 - Código para a caixa child chamada TNT [Autoria Própria]

Figura 13 - Código para a caixa child chamada TNT [Autoria Própria]

Figura 14 - Código para ativar a animação de explosão da TNT [Autoria Própria]

Figura 15 - Código para ativar a animação de timing da TNT [Autoria Própria]

Figura 16 - Código para a caixa child chamada Bouncy [Autoria Própria]

Figura 17 - Código para a caixa child chamada Bouncy [Autoria Própria]

Figura 18 - IA [Autoria Própria]

Figura 19 - Código da IA [Autoria Própria]

SUMÁRIO

1.     INTRODUÇÃO

1.1.      Objetivos.

1.2.      Procedimentos metodológicos.

1.2.1.       Metodologia de Projeto.

2.     CONCEITO.

2.1.      Mecânicas.

2.2.      Personagens Não Jogáveis.

2.3.      Telas e Interfaces.

3.     DESIGN TÉCNICO.

3.1.      Motor de Jogo.

3.2.      Descrição dos Scripts.

3.3.      Inteligência Artificial

3.4.      Delineamento de Testes.

3.5.      Modelo de Dados.

3.6.      Cronograma.

4.     CONSIDERAÇÕES FINAIS

REFERÊNCIAS.

1. Introdução

 O projeto é desenvolvido para a disciplina de Programação Aplicada, com o apoio do professor Marcelo Dornbusch Lopes e a participação dos alunos Eduardo Teixeira da Rosa, Gabriel Dutra da Silva e João Henrique Zimmermann Rohde. O objetivo da disciplina é criar um jogo com mecânicas sólidas utilizando programação aplicada.

 O trabalho atual visa desenvolver e programar um jogo de plataforma 3D em formato de protótipo, com feedbacks visuais, inspirado nos jogos de Crash Bandicoot do PS1, mas agora utilizando a Unreal Engine 5.2.1.

 O protótipo busca entregar conceitos fundamentais para uma experiência em jogos do gênero, com o intuito de prototipar um produto sólido em termos de programação. No entanto, o aspecto estético será feito com assets, ou seja, objetos ou assets não associados ao produto final e de procedência do motor de jogo utilizado.

 A ideia foi inspirada em jogos lineares com mascotes da era PS1/PS2/N64, como Crash Bandicoot, Spyro, Mario 64, Donkey Kong Country, Banjo-Kazooie e o recente jogo para PC Lunistice, com um foco maior em Crash, pois se trata de uma reimaginação com fins de estudo de mecânicas fundamentais.

O jogo é baseado em tutoriais da internet que detalham passo a passo os fundamentos de gameplay de produtos similares. Em destaque, há o vídeo tutorial de Laley (2023) e o vídeo criativo de GEMAPLYS (2022).

 Não houve interdisciplinaridade para a equipe, apenas o uso de processos metodológicos, das quais combina a análise de caso com a iteração e prototipagem. Foram consultados materiais da biblioteca digital da universidade, como um livro sobre o uso de programação via nós no motor de jogo Unreal Engine e outro sobre possibilidades em game design no mesmo software, intitulados respectivamente: Blueprints Visual Scripting for Unreal Engine: The Faster Way to Build Games Using UE4 Blueprints, 2nd Edition e Unreal Engine: Game Development From A to Z. A documentação da Unreal Engine 5 foi essencial também para o processo de desenvolvimento do jogo.

1.1. Objetivos

 O projeto é desenvolvido para a disciplina de Programação Aplicada, com o apoio do professor Marcelo Dornbusch Lopes e a participação dos alunos Eduardo Teixeira da Rosa, Gabriel Dutra da Silva e João Henrique Zimmermann Rohde. O objetivo da disciplina é criar um jogo com mecânicas sólidas utilizando programação aplicada.

 O trabalho atual visa desenvolver e programar um jogo de plataforma 3D em formato de protótipo, com feedbacks visuais, inspirado nos jogos de Crash Bandicoot do PS1, mas agora utilizando a Unreal Engine 5.2.1.

 O protótipo busca entregar conceitos fundamentais para uma experiência em jogos do gênero, com o intuito de prototipar um produto sólido em termos de programação. No entanto, o aspecto estético será feito com assets, ou seja, objetos ou assets não associados ao produto final e de procedência do motor de jogo utilizado.

A ideia foi inspirada em jogos lineares com mascotes da era PS1/PS2/N64, como Crash Bandicoot, Spyro, Mario 64, Donkey Kong Country, Banjo-Kazooie e o recente jogo para PC Lunistice, com um foco maior em Crash, pois se trata de uma reimaginação com fins de estudo de mecânicas fundamentais.

 O jogo é baseado em tutoriais da internet que detalham passo a passo os fundamentos de gameplay de produtos similares. Em destaque, há o vídeo tutorial de Laley (2023) e o vídeo criativo de GEMAPLYS (2022).

 Não houve interdisciplinaridade para a equipe, apenas o uso de processos metodológicos, das quais combina a análise de caso com a iteração e prototipagem. Foram consultados materiais da biblioteca digital da universidade, como um livro sobre o uso de programação via nós no motor de jogo Unreal Engine e outro sobre possibilidades em game design no mesmo software, intitulados respectivamente: Blueprints Visual Scripting for Unreal Engine: The Faster Way to Build Games Using UE4 Blueprints, 2nd Edition e Unreal Engine: Game Development From A to Z. A documentação da Unreal Engine 5 foi essencial também para o processo de desenvolvimento do jogo.

1.2. Procedimentos Metodológicos

 O projeto é desenvolvido para a disciplina de Programação Aplicada, com o apoio do professor Marcelo Dornbusch Lopes e a participação dos alunos Eduardo Teixeira da Rosa, Gabriel Dutra da Silva e João Henrique Zimmermann Rohde. O objetivo da disciplina é criar um jogo com mecânicas sólidas utilizando programação aplicada.

 O trabalho atual visa desenvolver e programar um jogo de plataforma 3D em formato de protótipo, com feedbacks visuais, inspirado nos jogos de Crash Bandicoot do PS1, mas agora utilizando a Unreal Engine 5.2.1.

 O protótipo busca entregar conceitos fundamentais para uma experiência em jogos do gênero, com o intuito de prototipar um produto sólido em termos de programação. No entanto, o aspecto estético será feito com assets, ou seja, objetos ou assets não associados ao produto final e de procedência do motor de jogo utilizado.

 A ideia foi inspirada em jogos lineares com mascotes da era PS1/PS2/N64, como Crash Bandicoot, Spyro, Mario 64, Donkey Kong Country, Banjo-Kazooie e o recente jogo para PC Lunistice, com um foco maior em Crash, pois se trata de uma reimaginação com fins de estudo de mecânicas fundamentais.

O jogo é baseado em tutoriais da internet que detalham passo a passo os fundamentos de gameplay de produtos similares. Em destaque, há o vídeo tutorial de Laley (2023) e o vídeo criativo de GEMAPLYS (2022).

Não houve interdisciplinaridade para a equipe, apenas o uso de processos metodológicos, das quais combina a análise de caso com a iteração e prototipagem. Foram consultados materiais da biblioteca digital da universidade, como um livro sobre o uso de programação via nós no motor de jogo Unreal Engine e outro sobre possibilidades em game design no mesmo software, intitulados respectivamente: Blueprints Visual Scripting for Unreal Engine: The Faster Way to Build Games Using UE4 Blueprints, 2nd Edition e Unreal Engine: Game Development From A to Z. A documentação da Unreal Engine 5 foi essencial também para o processo de desenvolvimento do jogo.

1.2.1. Metodologia de Projeto

 Para a metodologia, foram consideradas várias etapas. A primeira etapa foi a definição do objetivo, onde se determinou o que deveria ser feito (um projeto que recriasse as mecânicas elementares de Crash Bandicoot) e se selecionaram os tutoriais que serviriam de base.

Na etapa seguinte, os tutoriais Laley (2023) e GEMAPLYS (2022) foram avaliados para verificar se atendiam ao objetivo final do projeto. Em seguida, o projeto foi desenvolvido como um todo, seguindo cada etapa dos tutoriais escolhidos e utilizando assets da engine.

Na última fase, foi criado um design de nível próprio, com base nos conhecimentos adquiridos nos vídeos selecionados, onde cada prototipação foi original da equipe. Por fim, o projeto foi testado para identificar se seriam necessárias mudanças. Esse processo permitiu uma abordagem flexível e adaptativa, garantindo que o protótipo final fosse funcional e atendesse aos objetivos estabelecidos.

2. Conceito

 Um jogo inspirado na franquia Crash Bandicoot, com o propósito de aprender e aplicar conhecimentos de game design e programação. O jogador deve avançar pelas fases, superando obstáculos e inimigos, enquanto coleta o maior número possível de caixas.

Baseado nos primeiros jogos de plataforma 3D em terceira pessoa lançados nos anos 2000, com foco em mascotes caricatos, como o caso da franquia Crash Bandicoot.

Figura 1 - Baseado em Crash Bandicoot [Zine Cultural]

Crash Re-Build desafia você a derrotar inimigos no caminho e desviar de explosivos, enquanto enfrenta diversos obstáculos inusitados pelo cenário.

2.1. Mecânicas

 De acordo com Schell (2008), "mecânicas de jogo são as regras e procedimentos que guiam o jogador e a resposta do jogo às ações do jogador". Elas formam a base da jogabilidade, permitindo aos jogadores realizar ações específicas dentro do jogo e influenciar seu progresso.

 As mecânicas são derivadas de um jogo inspirado na franquia Crash Bandicoot, mas em formato de protótipo, cujo objetivo do projeto é aprender e aplicar conhecimentos de game design e programação, mantendo como objetivo final a progressão de fases.

 Este protótipo serve como uma plataforma para a aplicação prática dos conhecimentos adquiridos em game design e programação. A escolha de um jogo baseado em Crash Bandicoot permite explorar uma variedade de mecânicas clássicas, como saltos precisos, coleta de itens e combate contra inimigos, proporcionando uma base rica para o portfólio da equipe.

 Loop de Gameplay, Estados e Comportamentos dos Personagens

  • Andar
  • Pular
  • Atacar e Passar de Fase.

 Mecânicas

  • Save/Load (Menu de Seleção)
  • Movimentação (Andar, Pular e Atacar)
  • Quebrar Caixas
  • Caixa de Pulo
  • Dinamite com Cronômetro, em Segundos
  • Rota de Inimigo
  • Matar Inimigos com Ataque e Morrer.

 Através do desenvolvimento do protótipo, os participantes têm a oportunidade de experimentar diferentes técnicas e abordagens, testando suas habilidades em game design. Apesar do foco no estudo de práticas de programação e design, o objetivo final do protótipo ainda é proporcionar uma experiência de jogo completa. Isso significa que, além de aprender e aplicar conhecimentos técnicos, os desenvolvedores também precisam garantir que o jogo seja divertido e desafiador.

2.2. Personagens Não Jogáveis

 Folter, Rodrigo (2022) diz que os inimigos, conhecidos nos jogos como NPCs (Non Playable Characters ou Personagens Não Jogáveis), são elementos que oferecem desafios ou ajudam o jogador.

 No projeto da equipe, os personagens não jogáveis têm como principal função desafiar o jogador. Foram criadas variantes incrementais para aumentar a imersão do jogador, ou seja, inimigos com diferentes escalas e estéticas para cada nível.

 São três fases com inimigos característicos dos biomas escolhidos: Ilha, Deserto e Gelo. Os NPCs se tornam mais desafiadores conforme a progressão das fases, aumentando a dificuldade do jogo. No entanto, suas mecânicas permanecem consistentes, com a habilidade de percorrer um caminho e causar dano, impedindo que o jogador avance no nível e, consequentemente, levando-o à morte.

 Inimigos Incrementais

  • Ilha: Tartaruga;
  • Deserto: Escorpião e Cobra;
  • Gelo: Pinguim, Urso Polar e Leão Marinho;

2.3. Telas E Interfaces

Crash Re-Build possui uma interface de usuário simples e minimalista, desenhada para oferecer uma experiência intuitiva e dinâmica ao indivíduo que jogar o projeto.

No menu principal, os jogadores são recebidos com uma tela inicial que exibe nesta ordem: O título do game, a opção “Press Start” para começar o jogo e o botão para sair do jogo “Quit”. Essa estrutura de menu garante que todas as funcionalidades essenciais estejam facilmente acessíveis, melhorando a navegabilidade e a usabilidade do jogo.

Menu

  • Título do Jogo;
  • Botão Jogar “Press Start”;
  • Botão Sair do Jogo “Quit”;

Figura 2 – Corpo dos Três Elementos do Menu [Autoria Própria]


Figura 3 – Bluprint Menu, Evento BeginPlay [Autoria Própria]


Figura 4 – Blueprint Menu, Métodos Open Level e Quit Game [Autoria Própria]


3. Design Técnico

O design técnico envolve a criação de um ambiente de jogo que capture a essência da série original, o foco principal está na jogabilidade fluida e na interação do personagem principal com o cenário e os inimigos. Para isso, é essencial desenvolver um sistema de controle responsivo que permita ao jogador realizar movimentos clássicos como girar, pular e correr, assim introduzindo habilidades clássicas da franquia que possam enriquecer a experiência do jogador.

Desenvolvedores e Seus Cargos

  • João Henrique
  • Programador
  • Ilustrador
  • Designer de UI e Game Designer Principal.


  • Gabriel Dutra 
  • Modelador Secundário
  • Game Designer Secundário e Programador Secundário.

  • Eduardo Teixeira
  • Modelador Principal de Personagem e Cenário.

A criação de assets é uma etapa crucial no desenvolvimento do protótipo. Os personagens, tanto o principal quanto os inimigos, devem ser representados com atenção aos detalhes para garantir uma aparência coerente com o estilo do jogo. Elementos do cenário, como caixas de tokens, trampolins e dinamites, precisam ser visualmente distintos e facilmente reconhecíveis pelo jogador. Além disso, os coletáveis devem ser projetados para se destacarem no ambiente, incentivando a exploração e a coleta.

Assets

  • Personagem (Manequins da Unreal) ;
  • Inimigos Espalhados Pelo Mapa (Todos Manequins Iguais da Unreal, mas com diferentes visuais) ;
  • Elementos Visuais do Cenário;
  • Caixas (Caixa de Tokens, Caixa Trampolim e Dinamite com Contagem);

As animações e Efeitos Visuais (VFX) desempenham um papel vital na imersão do jogador. Animações fluidas para ações como girar, correr e pular são essenciais para uma experiência de jogo satisfatória. Efeitos visuais, como explosões e a quebra de caixas, adicionam um nível de dinamismo e satisfação ao jogo.

VFX

  • Giro;
  • Correr;
  • Pular;
  • Morrer, tela preta;
  • Final de Fase (Andar para o fim do cenário sozinho);
  • Animação de rota da Tartaruga e sua morte (Explosão);
  • Animação de rota do Escorpião e sua morte (Explosão);
  • Animação de rota do Pinguim e sua morte (Explosão);
  • Caixas Quebrando, Explodindo e Expandindo;

3.1. Motor de Jogo

A Unreal Engine 5 é uma ferramenta avançada e gratuita para criação 3D em tempo real. Ela permite que desenvolvedores de jogos e criadores de conteúdo em diversas indústrias realizem projetos com uma liberdade, fidelidade e flexibilidade sem precedentes, sua filosofia de design é baseado em uma variedade de recursos e ferramentas, incluindo o sistema de script visual Blueprint, que permite criar lógica de jogo sem escrever código, além de suportar programação tradicional em C++ para desenvolvedores experientes. Conhecido por produzir gráficos de alta qualidade, o motor permite desenvolvimento em tempo real, onde mudanças são vistas imediatamente. Além disso, o Unreal Engine possui uma forte comunidade e extensos recursos de aprendizado, como tutoriais, documentação e fóruns, que ajudam desenvolvedores de todos os níveis a aprimorar suas habilidades.

Entre seus recursos inovadores estão o Nanite, um sistema de geometria de micropolígonos virtualizado que permite a criação de mundos com detalhes geométricos massivos, e o Lumen, uma solução de iluminação global dinâmica que se adapta em tempo real às mudanças na iluminação direta ou na geometria. Além disso, a Unreal Engine 5 oferece ferramentas de animação e modelagem amigáveis para artistas, que reduzem a necessidade de iterações e aceleram o processo criativo. Por isso, a equipe optou por essa engine, dada a complexidade do trabalho.

Para este projeto específico, foi utilizada a versão 5.2.1 da Unreal Engine, pois era a versão do tutorial Laley (2023), que serviu como base para todo o escopo do protótipo de jogo.

O Jogo necessita pelo menos da versão Windows 10 de 64 bits ou mais recente, processador AMD ou Intel quad-core 2,5 GHz, ou mais rápido, 8 GB de RAM e placa de vídeo compatível com DirectX 11 ou 12.

3.2. Descrição de Scripts

A Blueprint na Unreal Engine 5 é uma ferramenta poderosa de programação visual que permite aos desenvolvedores criar lógicas de jogo sem a necessidade de escrever código manualmente. Utilizando um sistema de nós e conexões, os desenvolvedores podem definir comportamentos, eventos e interações de forma intuitiva. Isso facilita a prototipagem rápida e a experimentação, permitindo que ideias sejam testadas e trabalhadas com eficiência.

O sistema de programação em blocos é especialmente útil para designers de jogos que podem não ter um forte background em programação. Com ela, é possível criar scripts complexos para movimentação de personagens, interações com o ambiente e ter maior flexibilidade durante toda a pipeline de produção.

O sistema de nós oferece aos desenvolvedores uma plataforma robusta para criar jogos de alta qualidade com menos esforço e mais criatividade. A interface visual também torna mais fácil de entender e modificar a lógica do jogo, promovendo uma colaboração mais eficaz entre programadores e designers. Para mais informações consulte as referências e acesse a documentação da Unreal Engine 5.

A seguir será apresentado seções de Blueprints e suas influências para a construção de mecânicas para o jogo de plataforma em 3D:

Figura 5 - Código para movimentação e pulo [Autoria Própria]


A engine já vem com alguns comandos simples de movimentação e pulo, na qual ela apenas lê o input do jogador mediante sua localização espacial e aplica uma força de deslocamento vetorial. Da mesma maneira, porém verticalmente se dá a ação de pular. Ainda há uma leve alteração, feita pela equipe, ao qual proporcionou um modificador de câmera que permitiu seguir os movimentos do jogador dada sua determinada localização também.

Figura 6 - Código para o input mapping [Autoria Própria]


Basicamente o código de input mapping permite a leitura e validação do input ao qual o desenvolvedor programou para determinada ação, este também é um elemento ao qual vem preparado com o motor gráfico.

Figura 7 - Código para o ataque do jogador [Autoria Própria]


A ativação desta função de ataque, mediante ao input do próprio jogador, permite causar uma animação em VFX de giro, este efeito especial na tela é criado pelo sitema de partículas da própria da Unreal Engine, ao qual a equipe trabalhou.

Figura 8 - Código para o dano causado do jogador [Autoria Própria]


Esta Blueprint permite o ataque e dano ao cenário e a eventuais inimigos através de seu sistema de cápsulas de colisões, que ao tocar em um game object ativa o deferimento do ataque e seu efeito.

Figura 9 - Código para a câmera do jogador [Autoria Própria]


Este código permite que através de um evento de detecção da localização do jogador a câmera o persegue acompanhando sua posição e rotação, respondendo em informações de ângulo para a pespectiva da visão do player.

Figura 10 - Código para a câmera do jogador [Autoria Própria]


Seguindo a mesma lógica da Figura 5, esta Blueprint permite a atualização das informações coletadas pelo código anterior e projetar para câmera de visão do jogador.

Figura 11 - Código para a mecânica de caixa quebrável [Autoria Própria]

Blueprint demonstrada na Figura 7 é responsável aos childs a seguir, pois se trata da mecânica de interações para com as caixas destrutivas, esta é a caixa básica que herdará para seus parentescos a característica de se destruir, mediante ao ataque do jogador.

Figura 12 - Código para a caixa child chamada TNT [Autoria Própria

Child da programação anterior, esta Blueprint é a versão TNT das caixas, aqui pode notar-se a função de ativação e decrementação de um crônometro referente a sua auto-destruição, esta que provoca uma animação de explosão.

Figura 13 - Código para a caixa child chamada TNT [Autoria Própria]


Dada a lógica anterior da TNT, aqui pode-se observar como essa informação e repassada para uma interface de usuário visível para o jogador, conforme o tempo de explosão da dinamite.

Figura 14 - Código para ativar a animação de explosão da TNT [Autoria Própria]


Para continuar as lógicas de dinamites, é apresentado na Figura 10 acima, a ativação do dano em área da explosão da TNT, dado algum dano recebido para a caixa pelo jogador.

Figura 15 - Código para ativar a animação de timing da TNT [Autoria Própria]


Para a lógica final referente a TNT, está representado na Figura 11, a programação de validação da ativação da caixa explosiva, mediante ao esgotamento do tempo cronometrado para o dano causado em área, desativando por sua vez o sistema de UI da contagem regressiva.

Figura 16 - Código para a caixa child chamada Bouncy [Autoria Própria]


Neste último child é possível perceber que se trata de uma caixa de pulo, pois ao subir nela o personagem é jogado para cima três vezes, perdendo assim sua intensidade cada vez decorrida.

Figura 17 - Código para a caixa child chamada Bouncy [Autoria Própria]


Por fim, a lógica da caixa de pulo se encerra quando em determinado número de pulos causados, aqui é trabalhado um limite de três pulos, a caixa se destroí completamente pelo jogador.

3.3. Inteligência Artificial

A Inteligência Artificial (IA) é um ramo da ciência da computação que se dedica ao desenvolvimento de sistemas capazes de realizar tarefas que normalmente requerem inteligência humana. Segundo a IBM (2024), "a IA permite que computadores e máquinas simulem a capacidade de resolução de problemas e a inteligência humana". A Inteligência Artificial para Jogos é uma aplicação específica da IA que visa criar personagens virtuais mais realistas e oferecer uma experiência de jogo imersiva. De acordo com Mandelli (2023), "a IA em jogos usa algoritmos e aprendizado de máquina para fazer com que personagens virtuais e ambientes respondam a ações dos jogadores de maneira autônoma e realística". Segundo ainda Awari (2023) “A inteligência artificial permite que os jogos simulem a tomada de decisões realistas, imitando o pensamento humano. Isso torna a experiência de jogo mais desafiadora e imprevisível”.

A inteligência artificial deste trabalho é baseada em trajetos programados, onde o inimigo, independentemente do tipo, segue um caminho definido pela programação do desenvolvedor, para saber mais a respeito desta técnica acesse a documentação da Unreal Engine 5, a respeito do World Partitioned Navigation Mesh, presente nas referências.

Figura 18 - IA [Autoria Própria]

Figura 19 - Código da IA [Autoria Própria]

Quando o inimigo atinge o jogador durante seu percurso, o jogador morre. O objetivo do jogador é evitar esse obstáculo do cenário para completar a fase, contudo trata-se de um personagem novo para o jogo, com mecânicas diferentes do protagonista trabalhado anteriormente no projeto, para mais informações acesse a documentação da Unreal Engine, a respeito de visões gerais e tipos de Blueprints (Character), presente nas referências.

O jogador pode tentar eliminar o inimigo com seu golpe giratório, em vez de apenas desviar desse obstáculo móvel. A diferença entre os inimigos está na área de interceptação e detecção do jogador, devido a sua cápsula, um componente presente na programação do jogo que comporta comportamentos e/ou efetua detecções, para saber mais a respeito desse tópico acesse a documentação da Unreal, a respeito de Components, presente nas referências.

3.4. Delineamento de Testes

O jogo foi desenvolvido e testado ao longo de sua produção, utilizando a metodologia de iteração e prototipagem, juntamente com o estudo de caso. À medida que havia uma evolução significativa no projeto conforme o tutorial, o jogo era testado pelos desenvolvedores, analisado e corrigido, se necessário.

Normalmente, o jogo era testado a cada 30 minutos de desenvolvimento, seja de forma independente ou seguindo o tutorial. Houve decisões originais por parte da equipe diante das variáveis do jogo, de modo que o protótipo atendesse aos requisitos do trabalho acadêmico.

Durante os testes, os itens explorados foram as correções e ajustes na jogabilidade, para que o jogo se assemelhasse mais a um título original da franquia trabalhada por todos os três membros da equipe: Eduardo Teixeira da Rosa, Gabriel Dutra da Silva e João Henrique Zimmermann Rohde. A conclusão destes testes foi a adaptação de game designs, para alcançar a obra de inspiração.

3.5. Modelo de dados

A Unreal Engine 5 tem a opção de criar level, para cada instância de seu jogo, conhecido também como map, todavia esse conceito foi utilizado para efetuar o salvamento do jogo mediante a fase escolhida.

O jogador ao entrar no menu poderá escolher entre as fases disponíveis, ao morrer ele opta por voltar ao menu e escolher outro level ou tentar novamente o mapa atual, mas começando do início dele. Portanto a equipe usa o formato de .umap na própria engine para acessar o início de cada fase através dos diferentes menus trabalhados no projeto, de forma que o jogador ao morrer possa voltar para o começo do mapa e jogar apenas carregando o arquivo do level atual

3.6. Cronograma

O projeto está, no momento da criação deste documento, 90% concluído, considerando as necessidades teóricas e documentais exigidas pela disciplina.

Dado a nova entrega este relatório técnico será entregue para o dia 27 de novembro, e em seguida, o desenvolvimento final do itch.io será retomado para entrega em 4 de dezembro.

O jogo se encontra com o primeiro level completo e com suas mecânicas base também. A entrega final do projeto está prevista para o final da disciplina de Programação Aplicada. Portanto, o cronograma da equipe visa atender as datas fornecidas pelo professor Marcelo Lopes para a matéria vigente.

4. Considerações Finais / Conclusão

O desenvolvimento do protótipo de um jogo de plataforma 3D inspirado em Crash Bandicoot revive conceitos clássicos do gênero, mas com tecnologias modernas e características únicas da Unreal Engine 5, como a programação via nós através de blueprints e ferramentas de produções para jogos profissionais, proporcionando um grande aprendizado técnico para a equipe em programação e game design na linha de jogos retrô.

A metodologia adotada, que combina análise de caso, iteração e prototipagem, refletiu uma abordagem prática e adaptativa ao desenvolvimento do jogo. Sem interdisciplinaridade, a equipe conseguiu focar em áreas mais necessárias para o escopo do game, como a interface voltada ao usuário.

As dificuldades foram superadas com a ajuda de vídeos das referências e consultas a fóruns de programação ou documentação do motor gráfico. Houve problemas no código referente a optimização, no entanto graças ao tutorial completo selecionado pela equipe foi obtido respostas em vídeo para a solução dos problemas apresentado.

A escolha de utilizar assets, embora não permita um design completamente agradável, viabiliza a criação de uma entrega completa e coesa em termos de programação. Portanto, houve maior foco nas mecânicas fundamentais, como movimentação, salto e ataque, clássicos de uma era de jogos, garantindo que a experiência do jogador se mantenha próxima aos jogos do gênero. Essa abordagem permitiu, desde o início do desenvolvimento, alcançar as expectativas propostas pela disciplina de Programação Aplicada, atendendo a todas as exigências da entrega final da M3, como as mecânicas básicas e comuns abordadas durante o trabalho e presentes na maioria dos jogos do mercado e documentações pertinentes ao desenvolvimento.

Portanto, ao entregar a ideia proposta, dado ao desafio de recriar um jogo clássico, estudar e aplicar os fundamentos sólidos desta programação específica, a equipe cumpre com o objetivo planejado da matéria. Embora, possa haver aspectos que pecam em otimizações técnicas e gráficas para o mercado como um produto, o time acredita que o protótipo experimental foi um sucesso em termos de contribuições datadas, para aplicações em um desenvolvimento aprofundado a posteriori.

Referências

AWARI. Como a inteligência artificial está revolucionando os jogos. Disponível em: Link. Acesso em: 12 out. 2024.

Epic Developer Community. Components in Unreal Engine | Unreal Engine 5.5 Documentation. Disponível em: Link. Acesso em: 12 out. 2024.

Epic Developer Community. Documentação da Unreal Engine 5. Disponível em: Link. Acesso em: 28 set. 2024.

Epic Developer Community. Overview of Blueprints Visual Scripting in Unreal Engine | Unreal Engine 5.5 Documentation. Disponível em: Link. Acesso em: 12 out. 2024.

Epic Developer Community. World Partitioned Navigation Mesh | Unreal Engine 5.5 Documentation. Disponível em: Link. Acesso em: 12 out. 2024.

‌FIA. Estudos de Caso: O que são, Exemplos e Como Fazer para TCC. Disponível em: Link. Acesso: 09 de out. de 2024.

Folter, Rodrigo CANALTECH. O que é NPC? Disponível em: Link. Acesso em: 12 out. 2024.

GEMAPLYS. fiz um jogo 3d do bee movie pra ps1. Vídeo do YouTube, 26 de julho de 2022. 27min52s. Disponível em: Link. Acesso em: 26 de novembro de 2024.

JOANNA LEE; JOHN P. DORAN; NITISH MISRA. Unreal Engine: Game Development From A to Z. Birmingham: Packt Publishing, 2016. Disponível em: Link. Acesso em: 29 set. 2024.

Laley, Ryan. Unreal Engine 5 Live Class – Let’s Create Crash BandicootVídeo do YouTube, 24 de junho de 2023. 2h49min10s. Disponível em: Link. Acesso em: 26 de novembro de 2024.

MANDELLI (2023), Pedro. Inteligência artificial para jogos: Como ela muda o jogo. Disponível em: Link. Acesso em: 12 out. 2024.

MARCOS ROMERO; BRENDEN SEWELL. Blueprints Visual Scripting for Unreal Engine : The Faster Way to Build Games Using UE4 Blueprints, 2nd Edition. Birmingham: Packt Publishing, 2019. Disponível em: Link. Acesso em: 29 set. 2024.

PEREIRA, M. O que é prototipagem e qual sua importância para a TI | Runrun.it. Disponível em: Link. Acesso: 09 de out. de 2024.

RYAN LALEY. Unreal Engine 5 Live Class - Let’s Create Crash Bandicoot. Disponível em: Link. Acesso: 28 de set. de 2024.

SCHELL, Jesse. The Art of Game Design: A Book of Lenses. CRC Press, 2008.

Unreal Engine 5. Blueprints Visual Scripting in Unreal Engine. Disponível em: Link. Acesso: 09 de out. de 2024.

Unreal Engine 5. Disponível em: Link. Acesso: 09 de out. de 2024.

WEB, J. Ele está de volta: Crash Bandicoot! Disponível em: Link. Acesso em: 12 out. 2024.

IBM. O que é Inteligência Artificial (IA)?. Disponível em: Link. Acesso em: 12 out. 2024.

YTALO CANTANHEDE. Estudo de caso: veja como aplicar esta metodologia! Disponível em: Link. Acesso em: 12 out. 2024.

-‌---

Ficha completa da equipe:

Eduardo Teixeira da Rosa - Modelador principal de personagem e cenário, sound designer principal. - Eduardo Teixeira da Rosa - itch.io

Gabriel Dutra da Silva - Animador principal, modelador secundário, game designer secundário e programador secundário. - Duhtra - itch.io

João Henrique Zimmermann Rohde - Programador, Ilustrador/Designer de UI e game designer principal.  - https://joaohzr.itch.io/

...

<https: www.unrealengine.com="" en-us="" unreal-engine-5=""></https:>

-‌---

Ficha completa da equipe:

Eduardo Teixeira da Rosa - Modelador principal de personagem e cenário, sound designer principal. - Eduardo Teixeira da Rosa - itch.io

Gabriel Dutra da Silva - Animador principal, modelador secundário, game designer secundário e programador secundário. - Duhtra - itch.io

João Henrique Zimmermann Rohde - Programador, Ilustrador/Designer de UI e game designer principal.  - https://joaohzr.itch.io/

...

Marcelo Dornbusch Lopes - Orientador - 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; (ii) Eduardo Teixeira da Rosa - Eduardo Teixeira da Rosa - itch.io, Gabriel Dutra da Silva Duhtra - itch.io e João Henrique Zimmermann Rohde https://joaohzr.itch.io/.

Download

Download
Análise de Comentários.docx 12 kB
Download
Crash Re-Engineering Apresentação (Desatualizado).pdf 25 MB
Download
Descrição e GDD do Jogo Crash Re-Build, Programação Aplicada (V.3.0).docx 3.9 MB
Download
Vídeo do Protótipo Crash Re-Build V.1.0.mp4 92 MB
Download
Relatório_M2_Eduardo_Teixeira_da_Rosa_Gabriel_Dutra_da_Silva_e_João_Henrique_Zimmermann_Rohde.pdf 2.8 MB
Download
Windows.rar 515 MB

Leave a comment

Log in with itch.io to leave a comment.