top of page

Porte do Jogo Climber

  • Foto do escritor: Antonio Lucas
    Antonio Lucas
  • 2 de mai. de 2019
  • 8 min de leitura

O jogo que escolhi para o desenvolvimento foi o jogo Climber. Foi lançado em 1986, originalmente para Game & Watch na versão Crystal Screen e posteriormente, para a versão New Wide Screen em 1988. Ambas as versões foram produzidas pela Nintendo. No jogo, você controla o personagem Climber, o qual está tentando chegar ao topo de uma fortaleza de 25 andares. Ele recebeu um par de botas esquecias que fazem com que ele salte muito alto, além de uma armadura que permite que ele quebre o teto. Sempre que você chega ao topo, é levado para a próxima fase.


Modelo Natural


Jogador:


  • O jogador pode estar em seis posições na tela no eixo horizontal.

  • Ele se movimenta através das setas para a esquerda e direita.

  • Se estiver na extremidade esquerda e aperta novamente para esquerda, vai para a extremidade oposta. O mesmo vale para a direita.

  • Apertando o botão jump, o personagem pula, tendo outras 3 posições de pulo.

  • Durante o pulo, pode se mover uma vez ou para esquerda, ou para a direita.


Inimigos:


  • Existem dois tipo básicos de inimigos: Eyerom(Pássaros) e o Blockman.

  • Ambos aparecem pelas laterais de cada andar e se movem até o lado oposto ao que apareceram.

  • Caso solidam com o personagem, você desce novamente até o primeiro andar e ganha uma falha

  • Uma função exclusiva do Blockman, é a capacidade de criar plataformas ou as restaurar, case tenham sido danificadas pelo personagem.

Plataformas:


  • São a base dos andares do jogo.

  • São formadas aleatoriamente a cada andar que o personagem sobe.

  • Caso o personagem bata nelas por baixo, sofrem dano e quebram um pouco. Na segunda batida, são destruídas.



Bônus ao final da fase:


  • Aparecem sempre que o personagem chega ao final de uma fase.

  • Dependendo da fase, podem ser ou um pássaro que leva para a próxima fase ou um monstro a ser morto.

  • Se movem constantemente, para dificultar serem pegos.

  • Caso sejam, dão uma pontuação extra.


Sistema:


  • O personagem precisa chegar ao topo da fortaleza de 25 andares.

  • Para isso, precisa sair quebrando o teto e subindo os andares.

  • Sempre que sobe um andar, a quantidades de andares a subis diminui.

  • Caso seja atingido por um inimigo, o personagem cai de volta para o primeiro andar e ganha pontos referentes a quantidade de andares que subiu.

  • Caso chegue no final, ganha pontos e tem um desafio. Caso o complete, ganha pontos extra, caso não, apenas passa para a próxima fase.


Modelo Matemático:


Jogador:


  • O personagem pode estar em seis posições diferentes no eixo x, tanto quando está andando, quanto quando está pulando.

  • Quando uma das setas é pressionada, o personagem modifica a sua posição em x para a próxima posição na direção da seta que foi pressionada.

  • Caso esteja em uma das extremidades e a seta na mesma direção dessa extremidade seja pressionada, ele vai para a posição na extremidade oposta, aparecendo do outro lado da tela.

  • Caso pressione a tecla de pulo, o personagem se desloca em até três posições no eixo Y uma por vez e quando chega na posição mais alta, começa a descer, também uma posição por vez.

  • Caso exista uma plataforma no eixo Y logo acima do personagem durante o pulo, ele se desloca apena uma posição para cima e logo volta para a posição original.

  • Caso se mova para uma das seis posições da parte inferior, e não exista plataforma abaixo, o personagem cai até o início da fase.

Inimigos:


  • Os inimigos possuem sete posições diferentes no eixo X.

  • Eles surgem das posições nas extremidades e se movem em direção a extremidade oposta uma posição por vez.

  • Eles surgem tanto no andar inferior, como no superior.

  • Os pássaros surgem sempre das posições mais a esquerda, já os Blockmans podem surgir tanto da posição mais a esquerda, como da mais a direita.

  • Suas posições são intercaladas com as do personagem, sempre com uma diferença de 32 pixels de seus respectivos centros.

  • Sempre que um inimigo da um passo e muda sua posição em X, ocorre uma verificação da posição atual do personagem no eixo X e Y. Caso a posição em Y seja igual e a posição em X seja maior que a anterior e menos que a atual, o personagem ganha uma falha e volta para o início da fase. Isso vale para caso o inimigo esteja indo da esquerda para a direita.

  • Quando o inimigo chega a última posição no eixo x, no próximo passo ele some.

  • Caso o personagem suba um andar e a posição em Y do inimigo seja maior que o tamanho da tela, ele também some.

  • Os Blockman tem uma característica especial. Antes de mover para a posição seguinte, verificam se a plataforma um pouco a frente na posição x existe. Caso não exista, ou esteja danificada, ele restaura a plataforma e logo em seguida some.

Plataformas:


  • Elas são geradas aleatoriamente e são distribuídas em dezoito posições diferentes. São três posições no eixo Y e seis no eixo X.

  • São geradas aleatoriamente e quando maior for a fase atual, menos plataformas são geradas por cada andar.

  • Os blockmans conseguem as gerar sempre que se deslocam para uma posição onde não existe plataforma.

  • Sempre que o personagem pula, ocorre uma verificação para ver se a posição em x da plataforma é a mesma do personagem e se a plataforma está na segunda posição no eixo Y. Caso essa verificação seja verdadeira, a plataforma é danificada. Se isso se repetir, ela é destruída.

Bônus ao final da fase:


  • Ao final de casa fase podem aparecer dois desafios bônus diferentes, ambos aparecem na parte superior da e caso sejam completados, o jogador ganha uma pontuação extra. O personagem possui 2 chances para completar o bônus.

  • O primeiro a aparecer é o pássaro bônus(amarelo). Ele possui três posições diferentes no eixo X, e altera entre elas em intervalos aleatórios, sempre indo da esquerda para a direita. Depois de chegar a posição mais a direita, desaparece por uns momentos, para logo em seguida reaparecer na posição mais a esquerda.

  • Durante o bônus, o personagem ganha uma quarta posição de pulo, e caso ele esteja nessa posição ao mesmos tempo que o pássaro está na posição central do eixo x, o jogador ganha 20 pontos de bônus.

  • Já o boss aparece a cada 5 fases. Ele possui duas posições diferentes no eixo Y, uma sobre a plataforma e outra pulando. Ele alterna entre as duas em intervalos aleatórios.

  • Da mesma forma que o pássaro bônus, aqui o jogador também ganha uma quarta posição de pulo, com a diferença que nessa ele usa uma espada. Caso o personagem esteja na quarta posição do pulo e o boss esteja na posição mais abaixo no eixo Y, o personagem o acerta com a espada, ganhando assim 30 pontos extra.

  • Caso o Personagem não consiga completar o desafio, apenas passa para a próxima fase.

Sistema:


  • Sempre que o personagem é atingido por um inimigo ou passa por uma posição se plataforma, ele volta para o andar mais baixo da fortaleza e o contador de erros recebe uma marcação, além de ganhar pontos equivalentes a quantidade de andares que subiu.

  • Caso o marcador chegue a três, o jogo acaba.

  • Sempre que termina a fase, o personagem ganha pontuação e pode enfrentar o bônus referente ao nível atual e caso ganho, recebe mais pontos.

  • Se chegar a trezentos pontos, o contador de erros é zerado.


Modelo Computacional:


Desenvolvimento:



Depois de jogar o jogo e entender suas mecânicas e interações, utilizei a imagem ao lado para retirar os sprites.

Esses são os sprites do remake Game & Watch Gallery 4 para Game Boy Advanced. Após recortar todos os frames redimensionei para o tamanho usado no meu remake, que foi o dobro do tamanho original, já que era um tamanho que não deixava a imagem muito pixelada.


Com prints do jogo para Game Boy, tirei as medidas das posições das plataformas e criei um objeto para ela e posicionei em suas respectivas posições. Logo após, criei o objeto personagem e defini manualmente todas as suas posições na tela, tando no eixo X, quanto no eixo Y.

Fiz o mesmo com os inimigos, assim, conseguindo todas as posições do objetos base.


Implementei toda a movimentação no personagem, passo para os lados, pulo, colisão com plataforma, animação de morte e a interação que acontece com todo o resto do jogo quando o personagem sobe um andar. Depois criei um objeto chamado cria fase, que era responsável por aleatorizar cada andar e posicionar as plataformas. Para isso, crie uma matriz que continha as três vetores de seis objetos. Essa matriz era gerada por um script que fazia a varredura da matiz e colocava valores de 0 ou 1 em cada posição. O objeto criava plataformas em todos os elementos da matriz que eram iguais a 1 e as posicionava em seu lugar. Em seguida, mais uma função nesse objeto, que fazia com que sempre que o personagem subisse uma andar, o andar de baixo recebesse o andar do meio, o andar do meio recebia o andar de cima e o andar de cima era aleatorizado, assim fazendo com que as plataformas ficassem na mesma posição quando o personagem subisse um andar.


Como vi que iria começar a precisar de várias variáveis globais, criei um objeto controlador para guardar todas essas variáveis, por ora essa foi a única utilidade dela, mas mais para frente ele volta a ser usado.


O passo seguinte foi fazer os inimigos. Os dois inimigos possuem mecânicas parecidas. Como já tinha suas posições, apenas programei para que em um intervalo fixo, eles fossem para a posição seguinte e caso fosse para fora da tela, ele era destruído. Com isso pronto, comecei a criar a colisão com o personagem. Sempre o inimigo dava um passo para frente, ele verificava se o personagem estava na sua mesma posição em Y e se a posição em X era 32pixels menor, caso fosse, o personagem levava a dano. Com apenas esse código o pássaro estava pronto. depois apenas complementei o blockman, fazendo com que sempre que ele fosse dar um passo, verificasse se não existia plataforma ou se ela estava danificada, e caso isso retorna-se verdadeiro, em vez de dar o passo, ele se destruía, reconstruía a plataforma e modificava a matriz que gera as plataformas para que aquela posição, que antes era 0, virasse 1.


Após isso, crie um objeto gera inimigo. Ele randomiza a aparição dos inimigos e faz com que eles apareçam nas posições certas, além de não criar inimigos caso o andar já tenha algum inimigo do mesmo tipo.


Com todas essas partes prontas, voltei para o personagem. Já que todas as formas de morte estavam prontas, refiz a animação de morte, fazendo o personagem cair todos os andares que tinha subido. Também criei um objeto vida, que exibia a quantidade de vidas perdidas.


Agora, voltando ao objeto controlador, eu adicionei várias variáveis que criei no decorrer de toda a programação nele e, para manter o jogo mais organizado, fiz com que todos o objetos fossem criados por ele, assim facilitando quando fosse passar o jogo para a próxima fase, já que para fazer isso, destruía todos os objetos da tela, voltava todas as variáveis globais para o seu valor inicial e recriava os objetos do personagem, o objeto cria fase e o objeto cria inimigo. Também utilizei o objeto controlador para mostrar todos as informações necessárias na tela, como o andar atual, pontuação atual e a fase atual.


Depois da estrutura do jogo pronta, comecei a fazer a parte do bônus ai final das fases. Primeiro modifiquei objeto cria fase para que ele gerasse a estrutura do bônus de maneira correta. em seguida criei dois objetos, o pássaro bônus e o boss. A programação dos dois era simples, o pássaro bônus entrava na tela pela esquerda, ficava um tepo aleatório no centro e sair pela direita, já o boss, ficava pulando em intervalos aleatórios, mudando de posição. Com os dois prontos, os adicionei no objeto cria inimigo e botei a condição para que eles só aparecessem durante e bônus e que sempre aparecesse o certo, já que o boss só aparecia a cada cinco fases. Depois fio apenas programei a condição de vitória de cada, do mesmo jeito que foi descrito no modelo matemático.


Para finalizar, utilizei o emulador de game boy para capturar os efeitos sonoros dos jogo original e os utilizei no remake para deixar mais próximo do real. Como ultimo passo criei uma tela para ser exibida ao início do jogo, mostrando vários dos elementos do mesmo, assim como acontecia na versão original.



Instruções para jogar e links:


Segue o link para o projeto no Game Maker e com o .exe do jogo pronto. para jogar,

  • Na tela inicial, aperte Enter para começar.

  • As setas para esquerda e para a direita movem o personagem.

  • A barra de espaço pula.

  • Aperte esc para reiniciar o jogo a qualquer momento.

 
 
 

Comentarios


© 2019 Mami

Faça parte da nossa lista de emails

bottom of page