Ao contrário de quando comecei a estudar sobre desenvolvimento de jogos, hoje a internet está repleta de bons guias, tutoriais e passo-a-passos sobre o tema. Inclusive aqui no Blast contamos com toda uma sessão dedicada a isso. Minha recomendação especial fica para a série, ainda em andamento, focada em Unity, do Rodrigo Garcia Pontes — vale a pena conferir.
Como desenvolvedor e professor, tendo a ponderar bastante sobre a ferramenta, ou o conjunto delas, que farei uso em um projeto. Não há necessidade de usar algo extremamente completo e, por vezes, complexo para pequenos protótipos. Na realidade, quanto mais robusto é o motor gráfico — ou game engine, em inglês — mais custoso tende a ser o processo de desenvolvimento. Simplificando bastante: quanto mais possibilidades você dá ao programador, mais passos ele tem que dar para construir as mecânicas mais simples. E, com o objetivo de ser mais direto e ajudar a guiar quem está ingressando na produção de jogos, trouxe a discussão de hoje: qual é a melhor engine para quem está começando?
Como desenvolvedor e professor, tendo a ponderar bastante sobre a ferramenta, ou o conjunto delas, que farei uso em um projeto. Não há necessidade de usar algo extremamente completo e, por vezes, complexo para pequenos protótipos. Na realidade, quanto mais robusto é o motor gráfico — ou game engine, em inglês — mais custoso tende a ser o processo de desenvolvimento. Simplificando bastante: quanto mais possibilidades você dá ao programador, mais passos ele tem que dar para construir as mecânicas mais simples. E, com o objetivo de ser mais direto e ajudar a guiar quem está ingressando na produção de jogos, trouxe a discussão de hoje: qual é a melhor engine para quem está começando?
Programação visual
Como ponto de partida, vou trazer uma visão pessoal para essa conversa. Boa parte dela é baseada em experiências profissionais e de ensino, mas ainda assim pessoais. Portanto, o espaço está aberto para discordâncias e opiniões divergentes. Também pretendo deixar de lado algumas engines mais complexas, que possuam linguagens de programação e/ou scripts dedicados — como a CryEngine, por exemplo —, pois creio que essa característica possa ser uma grande barreira de entrada para quem está começando.Tendo isso em vista, vou citar superficialmente algumas opções que, apesar de não serem as melhores para iniciantes e de apresentarem a característica citada anteriormente, ainda possuem opções de programação visual, algo que abordaremos mais para frente. A Godot faz uso de GDScript, C# e C++, mas também traz a opção do Orchestrator. A Unity, por outro lado, apesar de usar C# e javascript, ainda conta com o Unity Visual Scripting, que, semelhante aos Blueprints da Unreal — que usa C++ —, é uma boa opção de programação visual para testes e prototipação. No entanto, essa abordagem ainda implica algumas limitações no desenvolvimento e na otimização.
Nos últimos anos, alguns jogos foram lançados utilizando programação visual em engines mais robustos. O Bright Memory foi um projeto cujo lançamento acompanhei e que foi desenvolvido unicamente pelo chinês Zeng "FYQD" Xiancheng. Além das facilidades da programação visual da Unreal, ele fez uso de bancos de assets pagos do Unreal Marketplace para desenvolver o projeto.
Atualmente, existem boas alternativas para quem quer começar a produzir os primeiros projetos. Engines como o Construct, o Game Maker e o GDevelop trazem uma gama de possibilidades atreladas à simplicidade e dinamismo no processo de criação e desenvolvimento, principalmente por apresentarem como principal facilitadora a já citada programação visual. Dispensando o conhecimento e domínio de linguagens computacionais mais complexas, com o conhecimento básico de lógica de programação já é possível criar um projeto funcional e até mesmo expansível, com o potencial de vir a se tornar um projeto viável, completo e finalizado.
Ponto de partida
Costumo dizer que a limitação de possibilidades traz mais inventividade para um projeto. Com poucas opções disponíveis, cabe ao desenvolvedor manejar, criar, recriar e inovar dentro das restrições das ferramentas. Isso torna-se ainda mais latente quando falamos em motores gráficos de aprendizagem, como o objeto de discussão a seguir: o Scratch.
O Scratch é uma ferramenta de programação visual em blocos desenvolvida pelo MIT, com foco no ensino de programação para crianças. Apesar de ter mais de 20 anos de vida, só tive contato com ele há poucos anos, enquanto ministrava aulas para crianças e adolescentes. É uma ótima ferramenta introdutória, um bom ponto de partida para gerar interesse e engajar os públicos mais jovens. Simples e objetiva, mas que, ainda assim, tem potencial para atiçar a imaginação e a criatividade.
Um passo além
Indo um pouco mais a fundo na cena de desenvolvimento, começam a surgir outras opções bem mais interessantes. Algumas delas são muito familiares para mim pessoalmente; outras, entretanto, ainda são novidades, e meu contato, até então, é irrisório. Preciso deixar claro aqui que, apesar de valer a menção, não vou me aprofundar em algumas engines e frameworks que comumente associamos à criação de games do início do milênio, como o Cocos, o MonoGame, o ClickTeam Fusion e até mesmo o queridinho e primeiro contato de muitos (inclusive o meu): o RPG Maker.
Começando a jornada
Talvez a principal dificuldade para quem está começando seja, de fato, começar. Saber por onde, como e quando tende a atormentar bastante os devs de primeira viagem, e é compreensível, afinal, estamos falando de todo um novo universo de possibilidade de criação e expressão. Eu, pessoalmente, nos tempos de graduação, comecei pelo Construct — na época, a segunda versão, e atualmente já em sua terceira. Posteriormente, inclusive, foi a primeira ferramenta que usei para ministrar minhas primeiras aulas de desenvolvimento de jogos e, sinceramente, ainda a considero como, senão a melhor, sem dúvida uma das melhores. O sistema de behaviors (conjuntos de mecânicas, comportamentos e funções pré-programados) é um advento incrível para os iniciantes, dando todo o alicerce necessário para que os desenvolvedores moldem as funções para executá-las o mais próximo possível do objetivo inicial.
Recentemente, devido à curiosidade gerada pelo contato com jogos incríveis como Katana Zero, Hyper Light Drifter e Blazing Chrome, comecei meus estudos em GameMaker. Preciso enfatizar que, apesar de ainda não a considerar como a melhor porta de entrada, as capacidades da ferramenta para criação de jogos bidimensionais são realmente surpreendentes. Minhas primeiras impressões ainda são superficiais, porém muito agradáveis. É provável que, ao longo da minha pós-graduação, eu tente desenvolver algum projeto menor na engine e consiga trazer, então, opiniões com mais propriedade e embasamento.
Revisão: Mariana Marçal