6 Passos para começar no desenvolvimento independente de jogos
Hoje em dia, há mais ferramentas e recursos disponíveis para o desenvolvimento de jogos indie do que nunca. Isto significa que os criadores de jogos indie podem criar jogos que não teriam sido possíveis nem mesmo há uma década atrás, mas também pode tornar muito assustador começar.
Pensando nisso, vou compartilhar um pouco o "Caminho das Pedras" que tem funcionado pra mim durante esse aprendizado. A ideia seria sair deste post sabendo como escolher a biblioteca ou arquitetura certa e o que realmente importa para um criador de jogos principiante.
Passo 1 - Escolha uma ideia factível
Vou mandar a real, por mais que disposição você possa ter de sobra no início, por estar inspirado em games como Civilization ou Stardew Valley, a melhor escolha para começar é sim como o Felipe Deschamps disse uma vez, um escopo pequeno no qual você consiga definir metas que de fato podem ser alcançadas para se manter motivado.
Infelizmente, ao começar a desenvolver, não estamos preparados para algo complexo por não ter experiência com uma engine, arte, story telling ou mesmo com lógica de programação, e isso faz com os games AAA sejam um salto muito grande para darmos só com força de vontade e nossos cambitos finos.
Assim como no desenvolvimento web, a melhor forma de começar é sempre pensar em mvp num prazo X. Entregar o primeiro projeto de forma que a funcionalidade esteja lá, sendo bonito ou não, havendo organização de código ou não. Sei que é difícil fazer código feio, mas pelo bem do aprendizado, é necessário aprender a se libertar das amarras do "MVC's Slavery" e fazer um pouquinho de código com smell, até que se aprenda o conceito.
Mantenha como hábito, um ou dois dias de refatoração a cada entrega do mvp, assim o código consegue evoluir em boas práticas sem que afete o aprendizado.
Passo 2 - Escolha sua Engine
As Engines são basicamente um framework que vai facilitar sua vida para não sobrecarrega-lo como coisas como gerenciamento de memória, física, entre outros. Engines como Unity, Godot (open source) ou Unreal vêm normalmente com interfaces gráficas e a funcionalidade mais integrada.
É fácil ficar dias e dias vendo vídeos no youtube sobre qual engine é melhor, mas a grande verdade é que você deve escolher a que lhe permita focar mais no desenvolvimento do seu jogo, e não assistindo tutoriais no youtube de como fixar bugs na engine.
Não-Programadores
Se você não tem experiência em programação, acredito que a Unreal pode ser a escolha certa. Ela fornece muitas das suas características através de uma interface gráfica, o que significa que pode começar a fazer jogos sem ter o domínio total de uma certa linguagem de programação. Ainda terá de aprender a codificar eventualmente, mas a blueprint é super amigável e fácil de entender.
Programadores
Sendo programador, o leque de opções é quase infinito e seria até difícil sugerir uma engine, mas as que mais são usadas por conta da simplicidade e da alta confiabilidade sem dúvidas seriam Unity e Godot. Essas engines são relativamente fáceis de aprender, e a sua familiaridade com as linguagens C# e Python vai te ajudar a se concentrar na aprendizagem de como fazer um jogo.
Passo 3 - Crie um protótipo
Seja no desenvolvimento de API's ou de UI's, é sempre importante ter uma blueprint ou protótipo daquilo que se almeja fazer, pois ela será o nosso guia durante o desenvolvimento. E mesmo havendo mudanças no escopo, o intuito dela é nos manter com o pé no chão e dentro da linha para que de fato entreguemos algo.
No desenvolvimento de jogos, isso não é diferente! Então arranque fora todas as features que não fazem sentido estar em um MVP e se concentre naquelas que farão seu jogo de fato nascer.
Isto não só ajuda a limitar o alcance do escopo do seu jogo, como também proporciona uma experiência valiosa na aprendizagem para tornar os jogos divertidos. Se tiver um jogo de plataforma onde tudo o que pode fazer é mover-se e saltar, então a diversão do seu jogo está directamente ligada ao quão bom se sente o seu movimento e a sua mecânica de saltos. Ajustar a altura de um salto ou quão rápido o seu personagem corre pode ter um impacto dramático na forma como o jogo se sente.
A sua mecânica principal é sempre a que mais contribui para a diversão do seu jogo. Começar pequeno com um protótipo simples vai ajudar a experimentar facilmente a sua mecânica e aprender como ajustá-la para ter a melhor sensação possível.
Passo 4 - Encontrando assets/recursos
Aqui é onde aqueles que escolheram engines como a Unity e a Unreal se deliciam, pois elas contam com uma infinidade de assets gratuítos para serem usados no seu jogo a um clique de distância.
Essa etapa é uma das mais importantes, pois os assets vão dar cara, som e vida ao seu jogo, portanto, nada de preguiça, pesquise bem e se não houver o asset que precisa online gratuítamente, existe sempre a opção de entrar em contato com algum artista 3d/2d e negociar os assets diretamente, e assim até conseguir um desconto.
Vale lembrar que, a maioria dos jogos que faz terá protótipos ou assets temporários nas suas versões iniciais, por isso é bom aprender a encontrar imagens e sons de lugares interessantes online.
Passo 5 - Feedback e Completando o jogo
É amigos, chegamos na tão assustadora fase de feedback e conclusão do seu joguinho, essa por sua vez é de fato aquilo que realmente vai fazer você desenvolver algo que as pessoas querem jogar e que lhes pareça divertido suficiente para que elas te patrocinem ou queiram comprar seu joguinho, por isso, é de extrema importância a utilização de plataformas como youtube, twitter ou itch.io para que seu jogo chame atenção da comunidade.
O "completo" sempre muda
Com o feedback seu jogo vai mudar constantemente, e hoje em dia é comum jogos serem lançados em early access e só depois de um certo amadurecimento, a definição de completo aparece e o jogo é oficialmente lançado.
Aqui o que é importante manter em mente, é que se você trabalhou na etapa anterior com bastante empenho, sua comunidade deve lhe dizer quais features eles querem implementadas, e pra onde seu jogo deve evoluir e isso é sensacional!
Tenho que, entretanto, deixar um disclaimer pois nem todas as ideias serão um sucesso e principalmente no começo esse não é o foco principal, mas fazer esses passos mesmo que sem obter muito feedback é o que vai construir "calos e um couro duro" o suficiente para enfrentar críticas e elogios no futuro quando seus jogos começarem a ter atenção, portanto NÃO PULEM ESSE PASSO!!!!!
Passo 6 - Começar novos projetos
É importante que você se mantenha sempre engajado com o seu projeto principal, afinal, se tudo deu certo ele já deve estar lhe rendendo uns trocados. Mas como tudo na vida, você precisa evoluir e portanto, é de extrema importância para o aprendizado, testar novas mecânicas, novos shadders, novas técnicas de desenvolvimento no geral para que você consiga construir um cinto de ferramentas eficiente o suficiente para conseguir fazer qualquer tipo de jogo que queira no futuro.
Esse aprendizado sempre tende a um exponencial de novos conhecimentos e isso "estoura" a capacidade dos nosso primeiro projeto, portanto, explore ao máximo, crie, faça remakes e mais importante de tudo, faça isso disciplina, mas respeitando o limite do seu corpo. É muito fácil trabalhando como indie, ficar desmotivado e ainda ter burnout com a comprança que nós mesmos criamos pra sí mesmos, portanto, faça um plano que seja confortável e fique nele!
Agradecimentos
Galera, eu fiz esse pequeno post como forma de compartilhar o que eu aprendi nesses 6 meses estudando game dev e nesses 4 anos que trabalho como web dev também. Espero que tenha sido útil e que ajude você que está pensando em começar a desenvolver jogos.
Agradeço aos que tiveram paciência de ler até o final, cês são foda!