Minha participação no Ludum Dare #44
Depois de não participar das últimas 3 edições do Ludum Dare, decidi tentar fazer um jogo em 48 horas na edição 44. Demorei um pouco pra pensar em uma ideia, e depois de executá-la achei que não ficou bom e decidi não terminar e publicar o jogo na página do evento.
Até tive tempo para me dedicar no jogo, e não demorei muito para achar algo que combinava com o tema Your life is currency (sua vida é moeda, em tradução livre). Meu problema foi acreditar que minha primeira ideia já seria interessante e comecei a desenvolver sem pensar muito. É exatamente pra isso que serve protótipos: validar uma ideia antes de desenvolver, porém não havia muito tempo para validar uma ideia antes de fazer um jogo em 48 horas.
Game Design
Minha ideia era faz um um jogo onde o jogador estava sempre atacando os inimigos, e vice-versa. Com dois botões, aumentar ataque e aumentar defesa, o jogador poderia causar mais dano ou resistir mais aos ataques do inimigo. Porém, esses upgrates lhe custariam vida, e seria necessário balançar o quanto de vida poderia ser usada para upgrades uma vez que os inimigos iriam atacar sem parar. Minha ideia era fazer algo no formato de waves, onde após derrotar alguns inimigos a vida do jogador seria restaurada para uma próxima wave - sempre com inimgos cada vez mais fortes.
Depois de fazer uma primeira batalha do jogador contra um inimigo achei que ficou bem chato e confuso para saber em qual momento o upgrade valeria a pena - sem falar na dificuldade absurda que seria balancear isso e não deixar o jogador apenas gastar tudo em defesa e esperar sentado as coisas acontecerem.
Programação
Decidi usar a boa e velha Unity para realmente não perder tempo relembrando ou pesquisando coisas relacionadas a uma engine ou framework durante a game jam. Apesar de não ter muitos desafios técnicos, gostei da maneira que organizei os atributos padrões do jogador e do inimigo, já pensando em variações que poderiam ser facilmente configuradas através do ScriptableObject que criei. Isso também ajudou bastante para testar o balanceamento do jogador, já que seus atraibutos base estavam em um arquivo.
Outro destaque foi a fórmula para calcular o dano considerando a defesa. Eu pesquisei na internet mas perdi o link da fonte, porém deve ser uma fórmula bem comum para jogos de RPG: ataqueRecebido * ataqueRecebido / (ataqueRecebido + defesa)
. Como podem ver o no gif acima, o dano é reduzido/aumentado de acordo com os upgrades feitos no jogador. O código do projeto está disponível no meu GitHub.
Arte
Não cheguei tão longe para pensar na arte do jogo, mas minha ideia era fazer a base do jogo em 2D e depois mudar para 3D com cubos se atacando e usar algumas coisas como Camera Shake e partículas para o feedback dos ataques dados e recebidos. Como não sou artista seria algo bem básico, e também seria meu primeiro jogo 3D em um ludum dare.
Conclusão
Apesar de não ter enviado o jogo para a game jam não fiquei frustrado. Pelo contrário, ao perceber que o jogo ficaria ruim e parar de trabalhar nele me poupei da frustação. Talvez desse pra pensar em outro jogo e fazer algo bem simples, mas também não queria ter esse desgaste no meu fim de semana. As vezes as coisas não dão certo, e mesmo falhar é uma grande lição para próximas vezes. Com certeza estarei mais preprado para a próxima vez, e mesmo depois de 10 participações ainda tenho muito para aprender em game jams.