Hero Slayers
A downloadable game for Windows
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.
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çãoonde 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.
2.2.1 Design técnico:
O tópico a seguir conta como está o trabalho e como é trabalhar com a engine.
2.2.2 Motor de jogo:
O motor de jogo usado é 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 até agora foi a morte do protagonista e os checkpoints.
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 até agora, 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.
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á os chefes, planejo deixar eles com estratégias mais complexas para torna-los mais desafiadores.
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.
Jogador 2/Raiver: Funcionando muito bem mas também com a animação de ataque bugada.
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.
As plataformas móveis não estão funcionando e estão travando o jogo.
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.
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 (parcialmente), tesouros e inimigo 1 (parcialmente), jogador 2/Raiver.
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 do inimigo 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 | 7 days ago |
Status | In development |
Platforms | Windows |
Author | RicGo |
Genre | Action |
Leave a comment
Log in with itch.io to leave a comment.