Relatorio Da PAP Rodrigo Tavares
Relatorio Da PAP Rodrigo Tavares
Relatorio Da PAP Rodrigo Tavares
Jogo
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.
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.
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.
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.
iv
v
Lista de abreviatura
Linguagens :
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
viii
Indice de Tabelas
ix
Relatório da Prova de Aptidão Profissional Moonlight Knight
Introdução
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
Rodrigo Tavares 2
Relatório da Prova de Aptidão Profissional Moonlight Knight
Objectivos da PAP:
1.
2.
3.
Rodrigo Tavares 3
Relatório da Prova de Aptidão Profissional Moonlight Knight
Rodrigo Tavares 4
Relatório da Prova de Aptidão Profissional Moonlight Knight
O Diretor de Curso;
Os Professores Orientadores;
O Diretor de Turma;
O Aluno;
O Júri da PAP
Rodrigo Tavares 5
Relatório da Prova de Aptidão Profissional Moonlight Knight
Concretização do Projeto
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
Rodrigo Tavares 7
Relatório da Prova de Aptidão Profissional Moonlight Knight
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.
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
Rodrigo Tavares 9
Relatório da Prova de Aptidão Profissional Moonlight Knight
Público-alvo
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.
Rodrigo Tavares 10
Relatório da Prova de Aptidão Profissional Moonlight Knight
Ferramentas Utilizadas
Godot Logo
Rodrigo Tavares 11
Relatório da Prova de Aptidão Profissional Moonlight Knight
Godot Engine
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.
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.
Rodrigo Tavares 12
Relatório da Prova de Aptidão Profissional Moonlight Knight
• IDE: como todas as outras trazum um debug com suporte a breakpoints com
avanços incrementais, e sistema inteligente.
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.
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
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.
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
Rodrigo Tavares 16
Relatório da Prova de Aptidão Profissional Moonlight Knight
2. Nó
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
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
Rodrigo Tavares 19
Relatório da Prova de Aptidão Profissional Moonlight Knight
Unity
Rodrigo Tavares 20
Relatório da Prova de Aptidão Profissional Moonlight Knight
Unreal Engine
Rodrigo Tavares 21
Relatório da Prova de Aptidão Profissional Moonlight Knight
Desenvolvimento do Projecto
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
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
Abaixo aparece o script onde escrevi todo o código para a movimentação, vida e
ataques do personagem principal.
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
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.
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.
Rodrigo Tavares 25
Relatório da Prova de Aptidão Profissional Moonlight Knight
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.
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.
Rodrigo Tavares 27
Relatório da Prova de Aptidão Profissional Moonlight Knight
Conclusão
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.
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
Olivais, 2021