Clone Worms
Autor: Emilio | Publicado: 2011-06-06T14:11:00-07:00

Bom, última postagem 11 de Maio, hoje é dia 6 de Julho... É, acho que tem alguma coisa atrasada! Professor ficou dodoi também então não tivemos uma semana de aula, o blog dele pirou e sumiram alguns posts de exercícios, mas pelo menos o negócio atrasou pra todo mundo mesmo, não foi só eu.

O meu projeto de jogo para o curso será um clone de Worms. Caso não conheças esse jogo, vá no youtube e procure por Worms World Party ou Worms Reloaded. É, é aquilo. (tirando um vídeo pornô que aparece junto com os resultados da pesquisa, yay google como sempre!)

Como o jogo é basicamente um clone, chamarei de "Clone Worms", nome do projeto em alfa (Pena que descobrí que Worms soa muito diferente de Wars). Depois eu boto um nome mais apropriado (porque não vai ter minhocas no jogo literalmente).

O diferencial do meu jogo para o original é o jogo será em apenas uma tela fixa, sem scrolling (já que com scrolling ia ser de doer pra programar). A terra não é afetada pela gravidade mas os personagens são, como é o original. E para reduzir dores de cabeça pra programar os mapas serão pré-prontos, e não gerados automaticamente. (Aqui vale eu comentar que a Team17, que fez o Worms, foi realmente muito ninja em conseguir bolar um gerador automático de terreno e ainda sim ser bem leve.)

O jogo, à nível de programação, terá de lidar com várias características do jogo. Eu ilustro isso em forma de rascunho na figura abaixo.
O jogo consistem em times com vários personagens em cada time. O time que perder todos os integrantes perde o jogo, quem ganha é o sobrevivente. As armas utilizadas para dar cabo nos inimigos (e eventualmente nos aliados por acidente também...) são diversas, mas em sua maoria possuem uma trajetória balística, na qual preciso programar. Há também o fator vento, que influenciará na trajetória dos projéteis. E também os tiros podem sair da tela e voltar, para evitar problemas de limite de espaço no jogo.
Os personagens podem se movimentar pelo mapa, porém possuem certas limitações. Existe uma inclinação máxima em que os personagens não podem mais escalar. Eles também podem pular, mas dependendo da queda eles tomam dano e perdem o turno.
As armas possuem um raio de destruição e um raio de dano. O raio de dano irá afetar os jogadores dependendo da distância em que este estiver da explosão, e o raio de destruição ira remover parte do terreno afetada e se um jogador estiver dentro desse raio ele será jogado longe. (Pra resumir é isso, eu pretendo fazer um pouco diferente disso, mas ainda há de se estudar mais a física envolvida)

Para determinar o dano dos jogadores envolvidos será feito o cálculo do dano da arma, e se houver, o dano da queda. Cada personagem teu seu HP próprio. (E o que significa HP afinal? Health Points? Hit Points? Não! HP significa "Hauptsteuerzahl für Panzerabwehrlenkwaffe", que em alemão significa "número principal de controle de míssel anti-tanque".) Caso o HP chegue à zero, personagem morre com uma animaçãozinha.

Haverão também armas do tipo granada que irão quicar pelo terreno, o que será um pouco complicado de fazer também. Estas terão um timer, então só explodirão quando o timer chegar à zero.



Ainda fiz com carinha de blueprint.
 

Para organizar essa bagunça todo, o jogo terá esta topologia:



Clique na imagem para ver tamanho original e conseguir ler.

Presumo que a imagem acima seja auto-explicativa.
Lembrando que isso não é a versão final. Tem sempre aquela alteração de última hora na hora que você tá escrevendo o código que você descobre que daquele jeito não vai dar certo ou vai ficar muito ruim. Tem muita coisa alí que eu mesmo nem sei ainda como vou resolver... Mas vou!

É isso! Talvez hoje mesmo posto algo mais já que faltam alguns exercícios acumulados pra fazer.