Game engines (motores de jogos) são softwares que detém diversas ferramentas para se trabalhar funcionalidades essenciais no processo de desenvolvimento de um game, como física, colisões, inputs, renderização, dentre outras. Essas ferramentas são fundamentais para que não seja necessário programar o game do absoluto zero (clique aqui e leia um artigo completo sobre o tema). Uma dúvida recorrente entre desenvolvedores de jogos digitais é justamente se devem ou não focar em uma única game engine.

Com a popularização e disponibilização de diversas game engines e considerando o fato de que todas tem vantagens e desvantagens, pode surgir a dúvida se é interessante focar e aperfeiçoar em uma única engine ou se especializar em mais de uma, de modo a aproveitar o que há de melhor dependendo da ferramenta. Para auxiliar nesse processo, a WarpZone realizou mais de 50 entrevistas com diversos desenvolvedores de jogos (as identidades dos participantes serão mantidas em sigilo). Mais da metade dos entrevistados foram programadores, seguidos de game designers e artistas, o que foi interessante para termos uma boa amostragem de profissionais da área.

PROPAGANDA

14 Top Skills for Video Game Designers to Learn

As engines mais conhecidas entre os profissionais entrevistados são Unity, Game Maker Studio e Unreal. Isso faz sentido visto que a maior parte dos desenvolvedores são independentes e essas são ótimas ferramentas para tal.

O Unity é muito utilizado dado a versatilidade em desenvolver games 2D e 3D complexos, fazendo uso da linguagem C#. Na verdade, mesmo os games em 2D no Unity são desenvolvidos dentro do ambiente 3D. Assim, o 2D é uma fração (sub-ambiente) do 3D. Essa integração permite uso de diversas features típicas do 3D para o 2D. Mesmo que isso possa pesar um pouco no desempenho final, vale a pena pelo resultado satisfatório. Além disso, o Unity é gratuito, multiplataforma e tem ferramentas interessantes para o trabalho colaborativo.

Alex Kidd in Miracle World DX

O Game Maker Studio é muito interessante e usado para desenvolvimento de games 2D, o qual é restrito. Essa engine usa uma linguagem própria para o processo de desenvolvimento, o Game Maker Language (GML), que é derivada do C. Para muitos desenvolvedores isso é interessante visto que o GML é muito amigável e permite a criação de diversas mecânicas interessantes. Porém, outros indagam que usar a GML pode ser complicado visto que se trata de uma “representação escrita” da linguagem visual (Drag and Drop) da engine, o que pode ser igualmente limitado e ainda pode trazer dificuldades em boas práticas de programação caso seja necessário migrar para outra engine.  O Game Maker possibilita o desenvolvimento de games 2D em ambiente nativo, o que pode gerar maior performance da versão final do jogo, e contém diversas funcionalidades especializadas no 2D. Embora seja uma engine paga, recentemente uma nova versão free (livre de time-trial) foi lançada. Essa versão tem todas as funcionalidades da versão paga, mas não permite exportar o jogo. Mas, mesmo assim, é excelente para quem deseja aprender a desenvolver jogos 2D com uma das engines mais usadas pelo mercado independente de desenvolvedores.

Katana Zero

O Unreal é uma engine normalmente adotada por empresas ou desenvolvedores independentes que tem seus projetos 3D voltados ao realismo. Embora seja possível programar com C++, os desenvolvedores tem preferência pelos Blueprints (visual scripting). Essa é uma engine gratuita, no entanto extremamente pesada, em termos de software, sendo necessário um computador mais robusto para desenvolver.

Final Fantasy VII Remake

Algumas outras engines que foram mencionadas na entrevista como também sendo adotadas são Godot (gratuita, open-source, usa principalmente linguagem GDScript, games 2D e 3D), Construct 3 (paga, usa visual scripting, focada em games 2D) e GDevelop (gratuita, usa visual scripting, focada em games 2D).

Duck Souls
Duck Souls
Born Race

De acordo com os entrevistados, as melhores engines para desenvolvimento de games 2D foram Game Maker Studio, Unity e Construct 3, nessa ordem. A maioria sinalizou o Game Maker como sendo a mais interessante dado a sua natividade no 2D e facilidade em programar, o Unity pela possibilidade de desenvolver games mais complexos e o Construct 3 pela facilidade de se trabalhar com o visual scripting e ainda produzir jogos de qualidade.

Quando se tratando de desenvolvimento de games 3D, Unity, Unreal e Godot, nessa ordem, foram as engines mais citadas, em especial as duas primeiras. Isso faz sentido visto que Unity e Unreal são concorrentes e as engines mais usadas para o 3D, especialmente no Brasil. Ambas permitem desenvolver games 3D com excelente qualidade gráfica e de programação. Godot está em desenvolvimento, mas, já muito adiantada, conta com excelentes expectativas sobre seu potencial futuro. Visto que é open-source, muitos desenvolvedores estão colaborando para seu aprimoramento e logo, provavelmente, estará a altura das anteriormente citadas.

A maioria dos desenvolvedores explica que é possível e válido dominar mais de uma game engine, visando suas vantagens e desvantagens. Mas, existem divergências sobre essa necessidade. Uma parte dos desenvolvedores preferem focar em uma única game engine para que possa extrair o máximo da ferramenta, o que leva bastante tempo, estudo e prática. No entanto, outra parte indaga que as game engines são ferramentas que devem ser selecionadas de acordo com o projeto. Assim, é interessante aprender e se aprofundar em mais de uma pensando na versatilidade dos projetos e nas vantagens que uma tem sobre a outra. Ainda assim, alguns indagam que as engines pertencentes à empresas (como Unity, Unreal, Game Maker Studio, Construct, etc…) podem estar sujeitas à alterações como de interface, valor/mensalidade, funcionalidades, enfim, que podem obrigar o desenvolvedor a migrar para outras. Assim, já tendo esse conhecimento em outra ferramenta, seria uma vantagem. Há também aqueles desenvolvedores que usam prioritariamente uma determinada engine para desenvolver, mas usam outras para finalidades diferentes. Por exemplo, usar Unity ou Game Maker para desenvolvimento, e Construct para prototipação/ensino ou vice-versa.

Celeste

Contudo, podemos concluir que usar ou não mais de uma game engine pode ser vantagem se houver um porquê, ou seja, uma necessidade. Mas, pode demandar de muito mais tempo para estudo e aperfeiçoamento em relação ao mesmo processo focado em uma única ferramenta. O que desenvolvedores, em especial iniciantes, precisam entender que o importante são os fundamentos e a lógica por trás do desenvolvimento de jogos. As engines irão auxiliar nesse processo, mas são apenas ferramentas.