Olá pessoas, há muito tempo já tenho a ideia de um jogo e queria compartilhar pra ver se todos acham que seria bom como eu acho.
Esse era uma versão bem inicial do jogo feito em 2013 por meu irmão e eu:
Mas vamos lá, vou tentar explicar a ideia, aviso que será um textão:
Jogabilidade
Vejam a imagem novamente. O jogo é competitivo, um jogador contra outro (possivelmente pode ser expandido pra 2x2, quem sabe até 3x3). Nele você assume o pale de um mago e precisa invocar criaturas para atacarem seu inimigo, que fica na outra ponta da tela. Apesar de não aparecer na imagem, cada jogador tem um castelo, o objetivo final é usar suas criaturas para atacar os castelo inimigo e destruí-lo.
Invocando criaturas
Observem na image que no canto superior esquerdo há uma grid de elementos. Esses elementos aparecem aleatoriamente nessa grid.
Você pode também selecionar um desses elementos e trocar com outro, eles apenas trocam de lugar.
Mas por que você trocaria de lugar? Porque quando você combina elementos de maneira correta eles se transformam em uma criatura, por exemplo, vou usar os elementos numerados de 1 a 4. Imagine que uma criatura simples é criada sempre que existem dois elementos 1 um do lado do outro na horizontal, então se uma linha da grid for assim : 2 3 1 2 1 1 2, então os dois 1s serão substituídos por uma imagem da tropa simples. Para invocá-la, você apenas a seleciona e aperta enter.
Invocando criaturas complexas
No último exemplo usei uma criatura simples pra ilustrar como as grids funcionam, mas elas podem ser muito mais complexa, por exemplo:
Criaturas médias:
2 2
2 2
---
3
2
1
--
3 3 3
2 2 2
1 1 1
--
4 4 4
4 1 4
4 1 4
--
Criaturas fortes:
4 4 4 4
2 3 3 2
3 2 2 3
4 4 4 4
4 4 4
3 3 3
2 2 2
1 1 1
Quanto mais complexo for a forma dessa criatura, mais forte ela será. Quando uma criatura é invocada, os elementos que estavam criando ela somem e são substituídos por novos elementos ordenados de forma aleatória.
Onde invocar criaturas
Ao invocar uma criatura, você terá 3 opções de onde invocá-la, pois existem 3 lanes, quando invocadas, elas começam a caminhar em direção ao castelo inimigo. Também pode haver tropas maiores que ocupam 2 lanes ao mesmo tempo, ou até 3.
Quando inimigos se encontram
Quando inimigos se encontram algo simples acontece: eles brigam. O perdedor morre e o vencedor continua na lane avançando.
Atributos de uma criatura
As criaturas terão ataque, vida, alcance de ataque, velocidade, tamanho. Possivelmente outros podem ser adicionados.
Magias
Você é um mago e pode lançar magias que foram escolhidas antes da partida, essas magias podem fazer várias coisas dependendo da estratégia do jogador, elas podem: Dar dano em inimigos que estão em uma área, dar dano ao castelo inimigo, dar um buff à suas criaturas, dar um debuff aos inimigos, curar seu castelo, etc.
Pacotes de elementos x Classes
Nesse ponto eu ainda não estou certo de como funcionará. Não quero que todos os players tenham as mesmas criaturas, isso ficaria enjoativo rapidamente. A forma mais fácil de fazer isso seria criando classes, cada classe teria um conjunto específico de elementos, assim criando monstros diferentes.
Outra alternativa seria criar pacotes de elementos, dessa forma, um jogador poderia misturar mais de um pacote em sua grid, por exemplo:
Misturar um pacote de mortos (com elementos de mortos, as criaturas seriam esqueletos, zumbis, demônios) e o pacote da natureza (diferentes tipos de animais). Dessa forma, sua grid teria aleatoriamente esses elementos que podem gerar as criaturas. Lembrando, misturar elementos dos mortos e dos animais não geraria nada, apenas combinando os elementos dos mortos OU dos da natureza geraria criaturas. O jogador teria que escolher esses pacotes de forma estratégica para isso funcionar.
Gráficos
A imagem é antiga, hoje eu acho que o melhor seria usar pixel art pra fazer os monstros, daria um visual bem legal ao jogo. Porém, minhas artes são terríveis, não tem a menor chance de eu fazer a arte.
Desafios para o jogador
A ideia é que o jogador tenha que formar uma boa estratégia e ser mais rápido que seu inimigo. Essa estratégia pode ser variada: rushar para o castelo de seu inimigo o mais rápido possível, usando criaturas rápidas e pequenas, controlar as lanes com criaturas parrudas, fazer um jogo médio com criaturas que atacam a distância + criaturas com ataque e vida média. Enfim, isso ficaria ao critério do jogador.
Mantendo o jogador interessado
Para manter os jogadores ativos poderia ser lançado novos pacotes (ou novas classes), assim como novos modos de jogo (como 2x2). Eventos também seriam uma boa.
Outra questão é se existiria uma moeda dentro do jogo. Imagino que seja sim necessário, para comprar outras classes/pacotes e comprar roupas e skins para seu mago. Acho que esse esforço para comprar outros elementos de jogo seria saudável para o jogador se manter jogando.
Desafios do desenvolvimento
Então, esse é um jogo extremamente complexo, provavelmente a coisa mais difícil vai ser ter que criar toda a lógica em um servidor, o cliente do jogo faria muito pouca coisa. A engine usada provavelmente seria o Game Maker, que seria exportado pra HTML5.
Já fiz uma versão prévia bem básica de um servidor em NodeJS com uma interface em HTML5 puro, porém é algo bem trabalhoso, ultimamente tenho pensando que seria legal usar Kotlin pra fazer o servidor, já que ele tem uma sintaxe bem mais legal pra trabalhar com orientação a objetos no server.
Outro desafio enorme seria criar as criaturas e achar uma forma de deixar o jogo balanceado, claro, ele poderia mudar com o tempo e ajustes poderia ser feitos, mas ainda assim, isso é muito difícil.
Finalizando
É isso, queria que vocês comentassem se acham uma boa ideia ou não, e também sobre a questão dos pacotes/classes.