Relatorio Da PAP Rodrigo Tavares

Fazer download em docx, pdf ou txt
Fazer download em docx, pdf ou txt
Você está na página 1de 42

Escola Secundária António Damásio

Curso Técnico de Gestão e Programação de Sistemas Informáticos

Prova de Aptidão Profissional

Jogo

Rodrigo Alexandre Neves Tavares

Professores Orientadores: Ester Tavares e Eugénia Rodrigues

Maio 2021
Dedicatória

Quero começar por dedicar aos meus Pais por me darem a oportunidade de poder
estudar e darem um ambiente propício para que tal aconteça, agradecer por me
ajudarem a superar as dificuldades que tive ao longo destes três anos e por sempre
guiar-me pelos caminhos certos.

Agradecer á minha Mãe por todo o trabalho para cuidar de mim e ajudar-me no
meu dia-a-dia, apesar de todos os choques, está sempre cá para mim.

Ao meu Pai pelo esforço para trazer o bem estar para mim e para minha
família,de não estar connosco todos os dias devido ao seu trabalho e por tudo o que fez
por mim nos últimos anos.

Obrigado por serem quem são, pois sem eles, sem a sua presença e personalidade, não
seria quem sou hoje.

i
ii
Agradecimentos

Gostava de começar por agradecer aos professores Paula Alves, Lisete Pires,
Manuel Mariano, Ester Oliveira e Eugénia Rodrigues que me ajudaram durante o meu
percurso neste curso.

Quero agradecer aos meus amigos Ruben Almeida, Diogo Valério, Tomás Melo,
Misael Armando, Francisco Santos, David Tenda que ajudaram-me imenso durante o
desenvolvimento do projeto com dicas, conselhos e tambem por se darem ao trabalho de
testa-lo.

Sem esquecer do meu irmão que ajudou-me na decisão de vir para esta área de
informática e que esteve comigo desde inicio.

Um obrigado especial á minha Namorada, foi quem me apoio mais emocinalmente


e psicologicamente durante o desenvolvimento do projecto, ajudou-me imenso nesta
etapa final, obrigado.

iii
Resumo

Neste relatório irei começar por falar em que é a Prova Aptidão Profissional (PAP),
e em que é que consiste o meu projecto final de curso.

De seguida, refiro sobre a identificação do projecto, da fundamentação da escolha


do próprio, os objectivos e público-alvo.

Apresento as ferramentas necessárias para a concretização do projecto,


desenvolvo sobre a interface, as funções e ferramentas do Godot, tais como, GDScript,
Nós, Cena, Instanciação, Singleton, Sinais e Grupos.

Indico também o motivo de usar o Godot a outras engines que são mais
conhecidas e faço a comparação com as mesmas.

Posteriormente, vou mostrar sobre as etapas do desenvolvimento do meu jogo,


das personagens, animações, níveis, código utilizado e método de guardar os dados do
jogo.

Por fim faço a conclusão sobre as dificuldades e situações que encontrei durante
o desenvolvimento do jogo e também do relatório.

Palavras chave: Software, Jogo 2D, Godot, Jogo Plataforma.

iv
v
Lista de abreviatura

PAP – Prova de Aptidão Profissional;

Godot – Godot Game Engine;

Linguagens :

GDScript – Godot Script;

vi
Índice

Introdução.......................................................................................................................... 1
Prova de Aptidão Profissional.............................................................................................2
Em que consiste a PAP......................................................................................................4
Elementos a envolver na PAP............................................................................................5
Concretização do Projeto...................................................................................................6
Identificação do projeto......................................................................................................7
Fundamentação da escolha do projeto...............................................................................8
Objectivos........................................................................................................................... 9
Objectivos principais........................................................................................................... 9
Objectivos específicos........................................................................................................9
Público-alvo...................................................................................................................... 10
Ferramentas Utilizadas.....................................................................................................11
Godot Engine................................................................................................................... 12
Recursos que constituem a engine..................................................................................13
1.GDScript.................................................................................................................... 16
2. Nó............................................................................................................................. 17
3.Cena.......................................................................................................................... 18
4.Instância.................................................................................................................... 18
5.Sinais e grupos.......................................................................................................... 18
6.Singleton.................................................................................................................... 19
Godot e outras engines....................................................................................................20
Unity............................................................................................................................. 20
Unreal Engine............................................................................................................... 21
Motivos de uso do Godot:.............................................................................................21
Desenvolvimento do Projecto...........................................................................................22
Personagem Principal...................................................................................................22
Mapas........................................................................................................................... 24
Coletável....................................................................................................................... 25
Inimigos........................................................................................................................ 26
Interface........................................................................................................................ 27
Créditos........................................................................................................................ 27
Notação e Glossário......................................................................................................... 29

vii
Webgrafía......................................................................................................................... 30

Índice de Figuras

Figura 1 Ecrã inial do Jogo.....................................................................................................7


Figura 2 Exemplo de Visual Script........................................................................................12
Figura 3 Scene e Import........................................................................................................13
Figura 4 FyleSystem............................................................................................................. 13
Figura 5 Inspector................................................................................................................. 14
Figura 6 Nós......................................................................................................................... 14
Figura 7 Cena vazia.............................................................................................................. 15
Figura 8 Exemplo de GDScript..............................................................................................17
Figura 9 IDE do Unity............................................................................................................ 20
Figura 10 Exemplo da animação de ataque..........................................................................23
Figura 11 Nós utilizados........................................................................................................23
Figura 12 Script do personagem...........................................................................................23
Figura 13 Nível 1................................................................................................................... 24
Figura 14 Nível 2................................................................................................................... 24
Figure 15 Nós do mapa 1......................................................................................................25
Figura 16 Nós usados na moeda..........................................................................................25
Figura 17 Moeda depois de coletada...................................................................................26
Figura 18 Nós do inimigo......................................................................................................26
Figura 19 Primeiro inimigo criado..........................................................................................26
Figure 20 Nós dos créditos...................................................................................................27
Figure 21 Cena de créditos...................................................................................................27

viii
Indice de Tabelas

Tabela 1 Ferramentas utilizadas...........................................................................................11

ix
Relatório da Prova de Aptidão Profissional Moonlight Knight

Introdução

Inicialmente tinha planeado criar um website sobre gastronomia e reservas em


restaurantes. Ao fim de algum tempo comecei a ficar desmotivado com o
desenvolvimento do site. Ao mesmo tempo comecei a ficar interessado numa plataforma
de desenvolvimento de jogos que um colega estava a utilizar. Decidi explorar mais sobre
a plataforma, ver vídeos sobre a mesma e aprender mais sobre ela. Em meados de
dezembro mudei o meu projecto por completo e iniciei o desenvolvimento do meu jogo
em Godot.

No âmbito da Prova de Aptidão Profissional (PAP), venho por este meio falar
sobre todo o desenvolvimento do meu projecto, o jogo “Moonlight Knight”, o percurso da
minha PAP e o que é a PAP em si. Falo sobre o meu jogo e os objectivos que trago com
ele, a fundamentação para a escolha do projecto, a descrição e explicação da interface e
ferramentas do software principal que usei, que foi o Godot.

1
Rodrigo Tavares
Relatório da Prova de Aptidão Profissional Moonlight Knight

Prova de Aptidão Profissional

No âmbito das competências atribuídas à Escola Secundaria António Damásio, na


Portaria 235-A/2018, sob proposta da Direcção Pedagógica ao Conselho Pedagógico, o
presente Regulamento, define as condições de realização da Prova de Aptidão
Profissional (PAP) a realizar pelos alunos finalistas dos cursos profissionais. As
disposições previstas na Portaria n. 235-A/2018, aplicam-se apenas aos cursos criados
pela legislação anterior ao Decreto-Lei n.º 369/2007 de 31 de Dezembro, pelo Decreto-
Lei nº 55/2018 de 6 de Julho, adequa o Sistema Nacional de Qualificações ao Quadro
Europeu de Qualificações, dada a crescente mobilidade no espaço europeu e
consequente necessidade de comparabilidade. Assim, os alunos que obtenham a
certificação através de um Curso Profissional têm, agora, Nível IV de qualificação.

O presente Regulamento fixa as normas de organização e funcionamento da


Prova de Aptidão Profissional, adiante designada PAP, e resulta do Regulamento Interno
Geral, dele fazendo parte integrante e da aplicação dos diplomas aqui referidos.

Rodrigo Tavares 2
Relatório da Prova de Aptidão Profissional Moonlight Knight

Objectivos da PAP:

1.

A realização da PAP visa proporcionar a experiência de concepção e definição de


um projecto de carácter profissional, interessante e exequível, adequado aos
desempenhos funcionais do técnico de Nível IV.

2.

A PAP, enquanto projecto de carácter profissional, visa uma efectiva aplicação


prática; enquanto projecto desenvolvido no quadro escolar, tem carácter pluridisciplinar e
visa a mobilização e a aplicação das aprendizagens produzidas nas diversas áreas de
formação.

3.

A PAP operacionaliza competências essenciais para a resolução de problemas


profissionais, nomeadamente:

 A reflexão sobre causas e/ou consequências das decisões profissionais;


 O espírito de iniciativa;
 O espírito de abertura a soluções criativas e alternativas;
 O desenvolvimento de capacidades de comunicação, programação e avaliação.

Rodrigo Tavares 3
Relatório da Prova de Aptidão Profissional Moonlight Knight

Em que consiste a PAP

A PAP (Prova de Aptidão profissional) consiste na apresentação e defesa de um


projeto, perante jurís, com base num produto numa atuação ou intervenção, consoante a
natureza dos curso(neste caso curso profissional de tecnico de gestão de sistemas
informáticos), em conjuntos com o projeto vem o respectivo relatório final de realização e
apreciação críticam demonstrativo das capacidades e competências (3254-(34) DIÁRIO
DA REPÚBLICA —I SÉRIE-B N.o 119 —21 de Maio de 2004) profissionais
adquiridos ao longo da formação e estruturante do futuro profissional do jovem.

O projetoa á qual se refere o parágrafo anterior centra-se em temas e


problemas desenvolvidos pelo aluno com ligação aos contextos de trabalho realizados na
formação e sobre a orientação e o acompanhamento de um ou mais professores.

Rodrigo Tavares 4
Relatório da Prova de Aptidão Profissional Moonlight Knight

Elementos a envolver na PAP

Os elementos envolvidos na realização da PAP são:

 O Diretor de Curso;
 Os Professores Orientadores;
 O Diretor de Turma;
 O Aluno;
 O Júri da PAP

O júri de avaliação da PAP tem a seguinte composição:

 O Coordenador de Departamento ou estrutura pedagógica


intermédia competente;
 O Diretor de Curso;
 O Diretor de Turma;
 Os Professores orientadores do projeto;

Um representante exterior à escola da formação profissional do curso ou dos sectores


de atividade afins ao curso.

Podem ainda participar no processo de avaliação outros elementos que não


intervenham no processo formativo do aluno ou que tenham qualquer conhecimento
sobre a formação profissional, nos termos estabelecidos no número anterior.

Rodrigo Tavares 5
Relatório da Prova de Aptidão Profissional Moonlight Knight

Concretização do Projeto

A concretização da PAP desenvolve-se do seguinte modo:

a) Apresentação da ideia/projeto pelo aluno e a sua aprovação pelo docente


orientador;
b) Desenvolvimento do projeto proposto, devidamente faseado, sob
orientação do professor orientador;
c) Elaboração, por parte do aluno, do relatório final;
d) Entrega dos elementos a defender na PAP ao presidente do júri, até 8
dias úteis antes da data da apresentação da prova

O relatório final integra, nomeadamente:

a) O porque da escolha do tema do projeto;


b) A realização e os documentos ilustrativos da concretização do projeto;
c) A análise crítica global da execução do projeto, considerando as
principais dificuldades e obstáculos encontrados e as formas encontradas para
os superar;
d) Os anexos, designadamente os registos de autoavaliação das diferentes
fases do projeto e das avaliações intermédias dos professores.

As fases ou ações a desenvolver ate à concretização da PAP são as que constam


do seguidamente:

a) Apresentação da ideia/projeto (Definição do tema e descrição do projeto);


b) Apresentação/Entrega do projeto e relatório final de realização e apreciação
critica;
c) Apresentação da Prova de Aptidão Profissional perante o júri.

Os alunos que não entregarem o relatório final até à data limite definida no
ponto anterior, apenas poderão fazer a apresentação da PAP no ano letivo seguinte, não
sendo da responsabilidade da escola a aquisição de matérias, a cobertura de
seguro escolar e/ou outras despesas inerentes à PAP.

Rodrigo Tavares 6
Relatório da Prova de Aptidão Profissional Moonlight Knight

Identificação do projeto

Instituição: Escola Secundária António Damásio

Tema: Jogo Plataforma 2D

Orientadores: Ester Oliveira e Eugénia Rodrigues

Autor: Rodrigo Alexandre Neves Tavares

Período de desenvolvimento: 180 dias

Figura 1 Ecrã inial do Jogo

Rodrigo Tavares 7
Relatório da Prova de Aptidão Profissional Moonlight Knight

Fundamentação da escolha do projeto

A Prova de Aptidão Profissional (PAP) é o projeto exigido para a realização do


Curso Profissional Técnico de Gestão e Programação de Sistemas Informáticos, cujo
objetivo foi a realização de um jogo de entretenimento com o tema “Moonlight Knight”,
baseado em cavaleiros e aventura.

A escolha do nome deve-se ao facto de ser um jogo de aventura na qual o


personagem que usamos é um Cavaleiro daí o “Knight” e o “Moonlight“ vem de um tipo
de cor mais escuro em tons de roxo, que vai ser uma cor recorrente durante os níveis.

A escolha inícial do meu projeto era um website de gastronomia pois faz parte de
uma das minhas áreas favoritas, e comecei com o seu desenvolvimento no inicio do ano
letivo 2020/2021, mas devido á falta de motivação para o sua concretização, fui buscar
ideias ao meu hobby principal que é jogar video jogos.

Acabei por iniciar o desenvolvimento de um jogo 2D plataforma que abrange


também um dos meus hobbys, e que acaba por ter um toque nostálgico, porque tentei
desenvolver um jogo no estilo de “Castlevania” que é uma das minhas sagas de jogos
predilecta, tendo-se tornado a minha inspiração principal durante todo o desenvolvimento.

No desenvolvimento do meu projeto usei um software de desenvolvimento de


jogos, opensource abrangido pela licença MIT chamado Godot Engine, que irá ser
desenvolvido mais para a frente.

Rodrigo Tavares 8
Relatório da Prova de Aptidão Profissional Moonlight Knight

Objectivos

Objectivos principais

 Foco principal, como é obvio, é entretar todos os seus jogadores e tambem trazer
um sentimento nostalgico a jogadores mais velhos, como é mencionado abaixo no
proximo tópico.
 Trazer um design mais retro feito em pixel art tornando o jogo mais apelativo para
quem já conheçe e gosta deste estilo.
 Trás uma jogabilidade simples e intuitiva, mas com um design de níveis mais
dificultado, com “armadihas”, inimigos veloses e saltos mais complexos.
 Este jogo permite, para quem nunca jogou, desenvolver uma autonomia com os
controles, devido a base dos controlos é igual em todos os jogos.

Objectivos específicos

Estes objetivos baseiam-se em todo o desenvolvimento e concretização do


projecto e com isso, conseguir aplicar todos os conhecimentos ganhos durante a
realização do mesmo e todas as funções implementadas.

Rodrigo Tavares 9
Relatório da Prova de Aptidão Profissional Moonlight Knight

Público-alvo

O público-alvo abrangerá pessoas da geração(1990-2003), que cresceram neste


mundo dos jogos e que hoje em dia procuram a nostalgia desde estilo de jogos mais
retro.

Mas isto não significa que tenha algum tipo de restrições, pois hoje em dia este
estilo de jogos tem voltado á moda, com o exemplo de um dos jogos de plataforma mais
vendido, que foi “Hollow Knight” e devido a isto, este jogo torna-se ideal para todos.

“Moonlight Knight” é feito para todos os amantes de jogos retro plataforma, e


dessa forma é apropriado para todas as faixas etárias. A única limitação que possa existir
é o facto de o jogo estar em inglês, mas nada que possa afetar a estádia nele, pois trás
um vocabulário simples.

Rodrigo Tavares 10
Relatório da Prova de Aptidão Profissional Moonlight Knight

Ferramentas Utilizadas

Audacity Logo Pixelorama Logo Piskel Logo

Godot Logo

GIMP Logo LibreSprite Logo

Tabela 1 Ferramentas utilizadas

1) Audacity- Usei para converter e editar audio no jogo.


2) Pixelorama- Usei para a edição e desenvolvimento das animações das sprites.
3) Piskel- Usei para fazer o logo do jogo.
4) Gimp- Usei para recortar e dividir cada sprite.
5) Godot Engine- Software principal para escrever e desenvolver o jogo.
6) LibreSprite- Usei para a edição de sprites.

Rodrigo Tavares 11
Relatório da Prova de Aptidão Profissional Moonlight Knight

Godot Engine

O Godot Engine é uma engine multiplataforma para o desenvolvimento de jogos


2D e 3D. É um software opensource sob a linceça MIT.

O Godot foi inicialmente desenvolvido por dois argentinos, Juan Linietsky, Ariel
Manzur e por várias companhia latino-americanas, posteriormente lançado para o publico
em 2014.

O ambiente de desenvolvido integrado, é capaz de operar em multiplos sistemas,


tais como, Linux, macOS, e Microsoft Windows. O Godot permite criar jogos para PC,
telemóveis e plataformas web.

Na última versão do Godot, a 3.2.2, trouxe várias novidades para a IDE, entre
elas, suporte a Realidade Virtual, que se torna cada vez mais famosos a cada a ano que
passa, adaptação á linguagem C#, que irá ser referido mais tarde neste documento, um
novo processamento 3D e umas das funções mais uteis que adicionaram que foi
VisualScript, que basicamente uma forma de conectar scripts por puxar e largar.

Figura 2 Exemplo de Visual Script

Rodrigo Tavares 12
Relatório da Prova de Aptidão Profissional Moonlight Knight

Recursos que constituem a engine

• IDE: como todas as outras trazum um debug com suporte a breakpoints com
avanços incrementais, e sistema inteligente.

• Renderização: o motor gráfico utiliza a tecnologia OpenGL ES 2 e 3.Sendo o 2


para graficos integrados e 3 para gráficos de Placas Gráficas(GPU). O motor suporta
transparências, mapeamento normal, reflexos, sombras dinâmicas e programação de
shaders.

• 2D e 3D: é suportado com as seguintes características: sprites, animações, física


e colisões.

Quando entramos dentro da engine, ela estará dividida em secções, sendo elas
as Scene(cena), o Import, FileSystem, Inspector, Node e uma EmptyScene( cena vazia).

Dentro da área da scene, é onde irá adicionar todos os nodes e criar ramos de
nodes para o projecto que estiver a desenvolver.

A área de FileSystem é espaço onde irá estar armazenado todos os ficheiros


ligados ao projecto, tais como imagens, scenes e scripts.

Figura 3 Scene e Import Figura 4 FyleSystem


Rodrigo Tavares 13
Relatório da Prova de Aptidão Profissional Moonlight Knight

O inspector é uma ferramenta que permite editar cada node separadamente,


permitindo assim mais opções visuas entre outras.

Na secção Node onde se cria todos os sinais e grupos de forma mais facilitada,
mas pode tambem cria-los a partir do script

Figura 5 Inspector Figura 6 Nós

Rodrigo Tavares 14
Relatório da Prova de Aptidão Profissional Moonlight Knight

Nesta imagem aparece a ultima e mais crucial parte da Engine do Godot, que é a
EmptyScene. A EmptyScene é os espaço onde aparecerá tudo o que criar, vai ser aqui
que irá juntar todas as peças do seu jogo.

Figura 7 Cena vazia

No caso de decidir usar esta engine, é necessário ter algum conhecimento sobre
programação e certos conceitos básicos táis como;

1. GDScript
2. Nó
3. Cena
4. Instanciação
5. Sinais e grupo
6. Singleton

Que foram os principais e mais usados pela minha parter durante o desenvolvimento do
meu projeto final.

Rodrigo Tavares 15
Relatório da Prova de Aptidão Profissional Moonlight Knight

1.GDScript

GDScript é uma linguagem de programação dinâmica de alto nível. Tem uma


sintaxe parecida a Python, isto é, blocos de código que são baseados na indentação, e
muitas palavras chave são semelhantes.

O seu objetivo é ser otimizado e altamente integrado com o Godot Engine,


permitindo assim, flexibilidade para a criação e integração de conteúdo. Além dos tipos
de dados básicos que estão embutidos, existem tipos de dados relacionados a vetores e
à própria engine . Eles são:

 Vector2:vetor 2D que contém os campos x e y. Pode ser acessado como


uma variável indexada.
 Vector3: vetor 3D que contém os campos x, y e z. Também pode ser acessado
comouma variável indexada.
 NodePath: caminho compilado para um nó, usado principalmente no sistema
de cenas. Pode ser facilmente atribuído de e para uma String.

Existe tambem a possiblidade de exportar variáveis, e com isto, podem ter os


seus valores guardados junto com a cena em que estão presentes, para alem de poder
mudá-la na própria cena ao em vez de ter de voltar ao script. Elas podem ser modificas
no editor de propriedades, que é o motivo principal para fazer a exportação de uma
variável. Isto torna mais facil a integração do trabalho dos desenvolvedores que não são
programadores.

Não há garbage collectors, apenas contadores de referências. Por padrão, todas


as classes que não definem herança estem da classe Reference. Caso contrário a classe
deve herdar da classe Object manualmente, e deve invocar o método free.

O Godot oferece tambem a possiblidade de escrever o script adaptado a C#

Rodrigo Tavares 16
Relatório da Prova de Aptidão Profissional Moonlight Knight

Figura 8 Exemplo de GDScript

2. Nó

Existem vários tipos diferentes de nós, cada um com as suas caracteristicas e


objectivos. Um nó pode mostrar uma imagem, tag de texto, tocar uma música(ou um
som), exibir modelos 2D e 3D. Mas no entanto, todos os nós têm as seguinste
caracteristicas:

 Tem um nome;
 Tem atributos que podem ser editados;
 Pode receber um callback de execução todos os frames;
 Pode ser estendido (para receber mais funções);
 Pode ser adicionado à outro nó como filho, criando assim uma estrutura em
árvore.

Rodrigo Tavares 17
Relatório da Prova de Aptidão Profissional Moonlight Knight

3.Cena

Cenas são compostas por grupos de nós organizados de maneira hierárquica.

Todas as cenas têm:

 Obrigatóriamente um nó raiz;
 Podem ser salvas no disco e recarregados posteriormente;
 Podem ser instanciadas.

Quando executamos um jogo, isso significa executar uma cena que pode(ou não)
estar conectada a outras. Tem de haver sempre uma cena raiz. O Godot em poucas
palavras é um editor de cenas, com várias interfaces para modificá-la e editar os nós que
a compõe.

4.Instância

É possivel criar cópias de uma cena. Ao criar nova instâncias dela e juntando a
raiz de A como filha de um nó B de outra cena. Dessa forma, uma cena pode ter várias
outras cenas instanciadas nela. Como por exemplo: uma instanciação de cenas é usada
para criar uma área com vários objetos nela, o desenvolvedor instância os objetos na
cena da sala pelo próprio editor do Godot.

5.Sinais e grupos

Sinais são notificações emitadas a partir de um nó, quando algum tipo de evento
ocorre. Um sinal pode estar conectado a um ou mais nós, que receberá a sua emissão e
executará o método associado. Existem sinais predefinidos para cada classe, mas há a
possibilidade de criar novos sinais por código.

Nós podem ser adicionados em grupos, pela interface do Godot ou por código, e
não existem restrições em relação à quantidade de grupos que um nó pertence. Grupos
são úteis para verificar se um nó corresponde à um conjunto específico antes de executar

Rodrigo Tavares 18
Relatório da Prova de Aptidão Profissional Moonlight Knight

algum bloco de código. Por exemplo, existe um sinal que é emitido quando um nó do tipo
Area2D colide com um nó do tipo StaticBody2D ou KinematicBody2D.

6.Singleton

Em algumas situações, é preciso guardar informações que serão utilizadas após


uma mudança de cena, por exemplo dados que guardam o progresso do jogador, ou o
inventário de um personagem. Para isso, é possível criar nós que atuam como singletons
e associar scripts aos mesmos. Esses nós serão carregados na execução do jogo,
independente da cena que será executada. As variáveis presentes nos scripts são como
variáveis globais, que podem ser acessadas por todas as cenas a qualquer instante.

Além dessas características, o nó singleton será responsável por lidar com


transições entre cenas, como no caso onde existe uma tela de carregamento do jogo.

Rodrigo Tavares 19
Relatório da Prova de Aptidão Profissional Moonlight Knight

Godot e outras engines

Para além do Godot, há muitas outras engines que permitem o desenvolvimento


de jogos, muito mais conhecidas, tais como o Unity e o Unreal Engine.

Unity

O Unity é uma engine multiplataforma que permite o desenvolvimento de jogos 2D


e 3D, é conhecido por vários jogos de sucesso, entre eles: Rust, AngryBirds, Hollow
Knight e muitos mais. Mas mesmo com todos estes sucesso, o motivo de não ter
escolhido usar o Unity, veio do seu ambiente gráfico, que para uma pessoa que esteja a
desenvolver jogos pela primeira vez, que é o meu caso, torna-se muito confuso com
demasiada informação, o scripting ser feito em C#, que é uma linguagem mais complexa
com que nunca trabalhei, para além de ter um ambiente desatualizado para as normas de
hoje em dia.

Figura 9 IDE do Unity

Rodrigo Tavares 20
Relatório da Prova de Aptidão Profissional Moonlight Knight

Unreal Engine

O Unreal Engine é uma das plataformas mais conhecidas no mundo dos


videojogos, foi o criador de imenso sucessos de jogos de consolas e PC, e é uma das
engines mais antigas, desenvolvida em 1995 e vêm desde então a trazer exitos para
todos os entusiastas de video jogos. Trazendo agora os motivos de não ter escolhido a
Unreal, vem do seu scripting que como no Unity, é feito em C# e principalmete as
royalties, que basicamente são os direitos de usar a engine para o desenvolvimento do
jogo, que tambem acontece no Unity.

Motivos de uso do Godot:

O Godot vem se tornando cada vez mais relevante no que toca ao


desenvolvimento de jogos. Trás uma interface intuitiva e atualizada, uma linguagem de
scripting mais simplificada, para quem tem mais dificuldades trás com ele o
VisualScripting(mencionado anteriomente neste documento), para alem de facilitar o uso
de ferramentas. Para além de ser uma engine opensource ao contrário das que falei
anteriormente.

Rodrigo Tavares 21
Relatório da Prova de Aptidão Profissional Moonlight Knight

Desenvolvimento do Projecto

Decidi começar a desenvolver um jogo, numa engine na qual um colega já me


tinha mencionado e explicado previamente sobre a sua interface intuitiva e facilidade de
navegar pela mesma.

Inicializei esta jornada a aprender os básicos sobre o Godot em vídeos, fóruns e


sites. Aprendi sobre as funções que o constituem e como utilizá-las .

Comecei por decididir que tipo de jogo ia desenvolver, devido há pouco tempo ter
terminado um dos jogos mais vendidos dos estilo plataforma que gostei imenso. Por isso,
escolhi fazer um jogo 2D plataforma à qual chamei “Moonlight Knight”.

Comecei por procurar por sprites em sites online, de seguida editei algumas delas
para ficarem com um aspecto que desejava. Dali em diante, comecei o desenvolvimento
do jogo em concreto e dei início à criação da personagem principal, mapas, coletáveis,
inimigos, interface e créditos.

Personagem Principal

Foram usados vários nós diferentes para a criação do personagem, para além de
o uso de sinais e grupos, que podem ser vistos nas figuras 10 e 11

O personagem dispões de várias animações, como , saltar, atacar, correr, idle e


morrer.

Como consegue ver na figura 11, o personagem tem duas hitboxes, na qual a azul
é a área que abrange o personagem, e a cinzento, é área de ataque.

Rodrigo Tavares 22
Relatório da Prova de Aptidão Profissional Moonlight Knight

Figura 10 Exemplo da
animação de ataque

Figura 11 Nós utilizados

Abaixo aparece o script onde escrevi todo o código para a movimentação, vida e
ataques do personagem principal.

Figura 12 Script do personagem

Rodrigo Tavares 23
Relatório da Prova de Aptidão Profissional Moonlight Knight

Mapas

Na criação dos mapas, usei vários tilesets diferentes para criar uma diversidade
ao jogo, e com isso, ir buscar a atenção dos jogadores aos detalhes deste estilo mais
retro.

Figura 12 Tileset do
primeiro nivel.

De seguida, comecei por criar o primeiro nível do jogo, na qual tentei criar um
design simples e direto, para quem for jogar consiga entender as mecânicas e aplicalas
no nível seguinte.

Figura 13 Nível 1

O nivel dois é mais complexa, pois decidi criar várias armadilhas para dar um
ritmo diferente a este nível.

Rodrigo Tavares 24
Relatório da Prova de Aptidão Profissional Moonlight Knight

Há um terceiro mapa secundário, sendo esse o tutorial para ajudar os jogadores


com as teclas e ambiente do jogo.

Segui a mesma base de nós para a criação de todos os mapas, trocando apenas
o design deles. Os mapas não tem nenhum tipo de codificação.

Figure 15 Nós do mapa 1

Coletável

Os coletáveis estão em todos os níveis. Esses coletáveis são moedas como pode
ver figura 17. Todos eles tem um sinal para serem coletadas, figura 18.

Figura 16 Nós usados na moeda

Rodrigo Tavares 25
Relatório da Prova de Aptidão Profissional Moonlight Knight

Quando apanhadas, irão aparecer na interface do jogador. Elas não trazem


nenhuma melhoria para o personagem apenas traz um objetivo para o jogo.

Figura 17 Moeda depois de coletada

Inimigos

Criei vários tipos de inimigos para cada nivel, mas a sua cadificação mantém-se
igual para todos. Mantendo tambem os nós para a criação de cada um, alterando apenas
as sprites.

Figura 18 Nós do inimigo Figura 19 Primeiro


inimigo criado

Rodrigo Tavares 26
Relatório da Prova de Aptidão Profissional Moonlight Knight

Interface

A interface é dividida em várias cenas: o ecrã inicial, ecrã de áudio, ecrã de pausa
e os mapas. O jogador pode interagir com todas estas cenas ao longo do jogo.

Créditos

No final do jogo, irá aparecer uma breve cena de créditos com todas as
informações sobre o desenvolvedor do jogo e uma mensagem de agradecimento.

Figure 20 Nós dos créditos

Figure 21 Cena de créditos

Rodrigo Tavares 27
Relatório da Prova de Aptidão Profissional Moonlight Knight

Conclusão

Durante a realização do meu projeto de final de curso, consegui desenvolver as


minhas aptidões como programador, aprendi como ultilizar a engine que me era
desconhecida até ao ínicio deste trabalho. Concretizei o objetivo de desenvolver um jogo
e, consequentemente, completar a minha PAP.

Sinto-me realizado com todo o meu projeto apesar de todas as dificuldades


sentidas. A sua execução será útil para todo o meu desenvolvimento futuro dentro desta
área, para mim como estudante que nunca tinha desenvolvido algo desta dimensão e
futuramente durante a minha carreira profissional.

Rodrigo Tavares 28
Relatório da Prova de Aptidão Profissional Moonlight Knight

Notação e Glossário

Sprites – Sprites é o nome que se dá a uma função bidimensional que se integra numa
cena, utilizada mais é jogos do tipo 2D.

Tiliset – É um conjunto de texturas reunidas numa mesma imagem que formam as peças
gráficas que compõem um cenário de um jogo.

Engine – Engine é um motor que executa uma função essencial para outros programas.
O termo Engine também é utilizado para descrever um programa de propósito especial
que usa algoritmos.

Opensource – Open source é um termo que originalmente se refere a um software de c


ódigo aberto, um código que é criado e disponibilizado publicamente.

Debuger - O debuger é uma função utilizado durante a execução de um programa que


permite o programador rastrear todas as operações em andamento e monitorizar as
mudanças nos recursos do computador.

BreakPoint - Um breakpoint é um ponto de paragem ou de pausa intencional num


programa colocado em prática para fins de encontrar algo no debuger.

Rodrigo Tavares 29
Relatório da Prova de Aptidão Profissional Moonlight Knight

Webgrafía

https://docs.godotengine.org/en/stable/

https://godottutorials.pro/

https://pt.wikipedia.org/wiki/Godot

https://www.youtube.com/playlist?list=PL9FzW-m48fn2jlBu_0DRh7PvAt-GULEmd

https://www.youtube.com/playlist?list=PLyckz_-Rzq6ClGevL2fneJ5YJnMPKWa4M

https://www.youtube.com/playlist?list=PLhqJJNjsQ7KF0o0ke_CA2QlqK8BxQNSFS

https://opengameart.org/

https://itch.io/

Rodrigo Tavares 30
Rodrigo Alexandre Neves Tavares

Moonlight Knight

Projeto e relatório para a conclusão do curso profissional técnico de


gestão e programação de sistemas informáticos (TGPSI), feito por
Rodrigo Tavares, aluno do 12º ano, número 14.

Escola Secundária António Damásio

Olivais, 2021

Você também pode gostar