Hero Slayers
A downloadable game for Windows and macOS
HERO SLAYERS
1 Introdução
No mundo de Hero Slayers todos aclamam os aventureiros como verdadeiros e corajosos heróis, derrotando os monstros e seres místicos e coletando os tesouros ocultos e valiosos.
Porém, poucos sabem a real índole desses ditos como "heróis", Drake, um jovem de uma vila no interior aprende isso da maneira mais severa quando Sir Kestus, um dos heróis mais famosos, acaba o traindo junto a todo o seu grupo de aventureiros para conseguir um tesouro muito valioso, a lágrima de Anjo, Drake acaba sendo deixado para morrer até que um ser semelhante a um corvo chamado Raiver o salva e juntos desmascaram Kestus para toda a vila.
Após isso Drake se une a Raiver e um grupo de seres chamados Assassinos de heróis, que visam exterminar todos os heróis corruptos!
1.1 Objetivos:
1 - Fazer no mínimo 3 fases - 2 de normais e 1 de chefe.
2 – Deixar o jogo divertido para se jogar
3 – Fazer no mínimo 2 personagens jogáveis – Drake e Raiver
4 – Fazer um jogo legal
1.2 Procedimentos metodológicos:
Utilizar tutoriais no youtube ou no site da Godot que ensinam alguns códigos que não conheço ou ajudam a revisar os meus erros.
Utilizei também um site de criar sprites chamado Piskel.
A ideia do projeto surgiu quando eu pensei "E se víssemos as histórias de fantasia pelo ponto de vista dos monstros"
Para o sons eu só utilizei uma música do jogo Death's Door, mais precisamente a música do Hub world do jogo.
1.2.1 Metodologia de Projeto:
Começo primeiro fiz algumas sprites de personagens e terreno no site Piskel. Depois vi os tutoriais para ter uma noção de como é fazer o jogo. E em seguida comecei a programação do jogo, primeiro fazendo a parte mais de design e em seguida a programação dos scripts q foi aonde mais me dediquei.
2 Desenvolvimento
Hero Slayers é um sidescroller inspirado em jogos como os da franquia Megaman e em alguns Roguelikes como Death's Door e Hades.
O jogo está sendo desenvolvido na engine Godot porém com a reutilização da programação de um outro jogo que foi desenvolvido nela chamado OceanTower(Primeira imagem). Nete jogo o personagem devia subir uma torre no fundo do mar enquanto coletava gemas.
Porém Hero Slayers terá uma pegada bem diferente e ao invés de saltos precisos e velocidade será necessário experiência e habilidade já que o mesmo terá mais foco em combate e exploração mas com elementos de plataforma.
2.1 Conceito
Como dito acima o jogo terá foco em combate, já que é planejado uma quantia ainda não definida de inimigos nas fases e algumas plataformas, fora a exploração onde há tesouros escondidos pelo mapa e pegá-los garante pontos e alguns novos poderes ao jogador.
Por enquanto foram desenvolvidos somente os esboços iniciais dos personagens principais (Os assassinos/Imagens ao lado), mas para conceituá-los no universo do game, todos os assassinos possuem um tema diferente. No caso do Drake "bom" ele é um dragão, ou seja ele terá habilidades como cuspir fogo, voar, escamas protetoras e garras. Raiver, por outro lado é baseado num corvo, seu nome é uma união das palavras em inglês raven (corvo) e raider (caçador), e suas habilidades envolvem voar, garras, penas que perfuram e cortam os oponentes e manipulação das sombras.
Os outros dois assassinos ainda estão sendo trabalhados, mas um será um esqueleto e o outro um Kelpie (um cavalo aquático da mitologia irlandesa).
Os elementos de gameplay também lembram um pouco de jogos Metroidvania e roguelikes como Skul e Hollow Knight. Mas as maiores inspirações são dois jogo em específico, Megaman Zero, na questão de gameplay e Death's Door na questão visual.
Figura1: Megaman Zero, Fonte: https://www.ign.com/games/mega-man-zero.
Megaman Zero vem do fato do jogo ser um sidescroller com muitos inimigos, e o jogador ter vários tipos de arma.
Figura 2: Death's Door, Fonte: https://br.ign.com/deaths-door/92069/review/review-deaths-door
Death's Door , o segundo conceito, é uma inspiração no visual que remeterá à um tempo mais antigo e sombrio.
Já sobre a história... Bom o jogo tem como base o conceito de quem é bom e quem é mau feito de uma maneira similar a série de quadrinhos "The Boys" aonde os ditos Heróis são pessoa horríveis que só pensam na fama. E o conceito de tempos antigos veio de um pensamento que eu tive sobre contos de Cavaleiros vs Dragões e pensei "e se ao invés de vermos a história pelo lado do cavaleiro nós visemos pelo ponto de vista do dragão?" e foi aí que surgiu a ideia.
2.2 Programação
A seguir veremos como está o desenvolvimento do jogo e sobre a engine.
2.2.1 Design técnico:
A Godot utiliza o C#, ou seja utiliza códigos para programar o jogo afinal a mesma se mostra uma engine focada em ser uma engine tanto para novos programadores quanto para mais experientes.
2.2.2 Motor de jogo:
O motor de jogo usado, já mencionado anteriormente, é a Godot, que tem a proposta de ser um motor fácil de se utilizar com linguagens de programação e sistemas como de colisão bem simples, funcionais e variadas de se usar. Sua filosofia é ser uma engine fácil de se compreender para novos desenvolvedores.
Funciona muito bem tanto para jogos 2D e 3D e com linguagens de programação bem conhecidas.
- Mecânicas: Ataque normal/corpo a corpo, usar poderes e coletar tesouros tanto para ter pontos ou para recuperar vida.
- Personagens não jogáveis: Por enquanto são apenas os inimgos que só andam e dão dano quando encostam no jogador. um dos chefes, Kestus, está com a sprite pronta mas não está programado.
- Telas/Interfaces: A tela inicial ainda não está feita mas a interface do jogo, o hud, que tem as estatísticas do jogador como vida e quantia de tesouros está funcionando perfeitamente.
O Godot utiliza a programação C#:
E como foi dito anteriormente estou reutilizando e até refazendo a programação de um jogo antigo feito na matéria de estágio obrigatório chamado OceanTower.
O problema que deu mais trabalho no começo foi a morte do protagonista e os checkpoints. Mas após isso o maior problema foi o chefão, ele utiliza o mesmo script do cavaleiro1 com modificações no movimento e na IA. O maior problema foi que a sua hitbox não funcionou, tentei consertar várias vezes e não deu. Então a solução foi criar uma estratégia para o jogador derrota-lo.
2.2.3 Scripts:
Player: O jogador. Possui as funções de movimentos como andar, pular e atacar, morrer, levar dano, coletar tesouros e recuperar vida.
Cavaleiro1: Único inimigo e npc, pode apenas andar, virar, dar dano e morrer com as funções e variáveis.
Morte: Mata o jogador instantaniamente, está linkado com o checkpoint e gamemanager. possui funções e variáveis herdadas com o gamemanager como .
Gamemanager: Serve para termos mais consistência e link entre os scripts, como a morte e o checkpoint com o player. Possui as variáveis, gained_tesouro e current_checkpoint.
Checkpoint: Marca o ponto de spawn do jogador. Possui variáveis herdadas do gamemanager para isso. como o current_checkpoint.
Hud: É apenas o medidor de quanto de tesouro foi recuperado durante a fase. Herda a variável gained_tesouro do gamemanager.
Tesouro_1: possui apena uma função _on_area_entered para q seja pego pelo player.
Vida_pick: possui também uma função _on_area_entered para ser recuperada pelo player e uma delas. Herda também o Max_vida e a vida do player.
Plataforma_movel: possui uma variável para mover a plataforma e uma função _on_area_entered para ser movida quando o player sobe nela.
Kestus: Possui o mesmo script dos cavaleiros, porém com diferenças como mais vida e variáveis para as animações.
Plataforma_que_cai: Possui o mesmo script da plataforma movel porém ela cai ao invés de ir para frente e a área que ativa essa função funciona só com o player para evitar que o boss se mate.
Incompletos/Descartados:
Menu e Hub world/Seleção de fases. Os scripts ainda estão no jogo mas não foram concluídos devido a problemas.
2.2.4 Hud e Telas:
O menu não colocarei por que ocorreu outro bug na programação e ficou aparecendo na segunda fase.
Já o hud do jogo funcionou muito bem e não teve praticamente nenhum problema. A barra de vida e de tesouro funcionarem muito bem e provavelmente foram a parte mais fácil do projeto. Porém na fase 2 por algum motivo a barra de tesouros se enche sozinha com apenas uma moeda.
2.3 Discussão dos Resultados
2.3.1 IA:
A IA pelo menos dos inimigos será o básico, andar, atacar e recuar, já os NPCs passivos, você pode conversar com eles e só.
Já o chefe, planejo deixar ele um pouco mais estratégico. Para derrota-lo o jogador vai precisar de mais do que os punhos e poderes.
2.3.2 Testes:
Os testes do jogo foram em sua maioria bem sucedidos mas teve alguns problemas como o mal funcionamento do checkpoint e da morte que ficaram sem funcionar por um tempo.
Vou fazer depois uma folha listando os futuros testes e quando for dia de playtest farei um questionário para ver o que o pessoal gostou e falhas do projeto
Jogador 1/Drake: Funcionando bem porém a animação de ataque está bugada, fazendo as outras animações dele pararem de funcionar.
Jogador 2/Raiver: Funcionando muito bem mas também com a animação de ataque bugada porém não interfere nas outras animações.
Inimigos:
Cavaleiro1: funcionando até que bem porém não estava virando e andando de volta (consertado). O problema ainda é que ele ainda está morrendo só com um golpe do Jogador.
Kestus: Funcionando bem, porém ocorreu um defeito com a sua hitbox ele não está tomando dano, tentei consertar já várias vezes e não consegui arrumar, então o jeito foi bolar uma estratégia para o jogador derrota-lo, o jogando de um precipício.
As plataformas móveis não estão funcionando e estão travando o jogo (Consertado).
Checkpoints e morte:
Está funcionando mas teve alguns problemas como o jogador não morrer no ponto da morte. Até então só da pra ter um checkpoint por fase, já que a morte esta ligada a um checkpoint apenas. Os checkpoints com Raiver não estão funcionando direito, precisando estar em lugares altos por que senão ele renasce abaixo do cenário.
Coletáveis: Funcionando bem mas o inimigo pode pega-los também e você recebe os pontos.
Plataformas móveis e que somem: As que somem não estão funcionando direito, elas estão sumindo e aparecendo quando o jogador está em cima dela (Removidas).
Já as que se movem na inicialmente te jogavam pra frente, mas foi concertado e elas agora vão para frente e para trás normalmente.
Também adicionei a plataforma que cai para derrotar o boss derrubando ele, por causa do defeito com a hitbox (Imagem ao lado).
2.3.3 Modelo de dados:
Os dados do jogo são salvos através dos checkpoints e quando vc fecha o jogo vc volta o progresso do último checkpoint salvo. Será salvamento automático, basta apenas passar pelo altar que é o checkpoint.
3 Conclusão
O que foi concluído até agora foi:
O jogador/Drake, a morte, checkpoint , tesouros e inimigo 1 (parcialmente), jogador 2/Raiver, Kestus/1ºChefe e plataformas.
Praticamente tudo.
3.1 Cronograma:
Diariamente: Programação - 30 minutos
Design de fases (level design) e personagens - 25 minutos (pra cada)
Roteiro - 25 minutos
Descanso - 5-6 minutos
3.2 Considerações finais:
Pessoalmente estou curtindo trabalhar nesse projeto, mesmo sozinho e tendo que fazer todas as funções. Acho que no mínimo vou conseguir fazer as 3 fases para esse jogo.
Mesmo com as complicações na programação e problemas como os do checkpoint e dos inimigos que foram bem complicados de programar, acredito que vou conseguir entregar tudo que pretendo fazer.
Referências
Imagens: https://www.ign.com/games/mega-man-zero, https://br.ign.com/deaths-door/92069/review/review-deaths-door.
----
Ficha completa da equipe:
Ricardo Pinto Jorge - Tudo, roteiro, criação, programação, etc - https://ricgo.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: Motores de Jogos Avançados - Professor - Marcelo Dornbusch Lopes; Ricardo Pinto Jorge - https://ricgo.itch.io/.
Updated | 9 days ago |
Status | In development |
Platforms | Windows, macOS |
Author | RicGo |
Genre | Action |
Leave a comment
Log in with itch.io to leave a comment.