No decorrer do desenvolvimento de um game é comum o uso de engines. Esses são softwares que contém diversas ferramentas/bibliotecas, como física, colisores, luzes, áudio, mecânicas, animações, entre outras necessárias para o processo. Existem diversas engines no mercado, gratuitas ou pagas, cada uma com suas vantagens e desvantagens. Dentre essas engines existem aquelas nas quais não se faz necessário escrever as linhas de código pois já possuem diversas features (behaviors) pré-configurados.
Engines com programação visual são muito interessantes pois, visto que não há necessidade de preocupação com sintaxes de códigos, os desenvolvedores se atentam mais ao algoritmo, pensamento computacional e lógica de programação de jogos. Ao passo que, também existem algumas limitações impostas a essas engines como desempenho e otimização, caso os eventos não forem trabalhados corretamente. No entanto, essas limitações não foram empecilho para excelentes jogos publicados como Odallus: The Dark Call (JoyMasher), Freedom Planet (GalaxyTrail), Not a Hero (Roll7), Rift Racoon (Marcos GameDev), Duck Souls (Green Dinosaur Games/Ratalaika Games) e Lil BUB’s Hello Earth (Florian Rival).
Existem hoje diversas engines com programação visual e, assim como outros motores, o desenvolvedor deverá escolher e aperfeiçoar naquela que mais atende o projeto. A WarpZone escreveu um artigo completo falando sobre as principais ferramentas para criação de jogos, incluindo as de programação visual bem como alguns exemplos de jogos desenvolvidos por cada uma. Aqui, além de tratar dos assuntos relacionados à motores de programação visual vamos conversar com três profissionais de referência da área que usam essas ferramentas no dia a dia e saber a opinião deles. Os devs convidados foram Matheus Salvalagio (Canal Fusion Makers), Marcos Fuchter (Canal Marcos Game Dev, Construct 2/3) e Lucas Faustino (Canal Eu Sou o Professor Lucas, GDevelop 5).
Matheus é desenvolvedor independente de jogos e especialista na engine Clickteam Fusion 2.5. Atualmente Matheus tem um jogo publicado na Play Store, o Link Bubbles, e está desenvolvendo, junto a outro desenvolvedor (Nando Bastos), o jogo Morgan, pela Pixhitt. Matheus, além de desenvolvedor, também é professor e ministra curso de desenvolvimento de jogos com a engine ClickTeam Fusion 2.5.
Marcos também é desenvolvedor indie de jogos e faz uso da engine Construct 2 e Construct 3 para seus games. Marcos tem dois games publicados na Steam, o Rift Racoon e o Super Forklift 3000, além do Explosive Candy World, em desenvolvimento. Além disso, Marcos também é professor e ministra diversos cursos fazendo uso do Construct.
Lucas é desenvolvedor de jogos e professor dessa mesma área usando a engine GDevelop 5. Lucas tem um game, Zombie Eater, publicado no Itch.Io e outro, Cyber Cyclops, em desenvolvimento. Os cursos ministrados pelo Professor Lucas estão disponíveis na Udemy, um deles ensina como criar 5 jogos e o outro, mais recente, ensina como desenvolver um game de plataforma 2D, ambos usando a GDevelop 5
[WZ] Conte para nós um pouco sobre sua história como programador de jogos.
[Lucas || GDevelop 5] Desde de criança eu gosto de jogar videogame, mas nunca havia passado em minha mente em ser um desenvolvedor de jogos. Um dia recebi uma ligação de uma escola de cursos para fazer uma prova para concorrer a uma bolsa de curso de games, então fui até a escola, consegui a bolsa e comecei a estudar games por curiosidade, pois eu jogava bastante, mas não tinha a menor ideia de como era o processo de desenvolvimento. No curso eu comecei aprender a usar programas como UDK (Atualmente Unreal Engine 4), 3ds Max, Zbrush e Photoshop. Cheguei a criar alguns pequenos projetos, mas senti dificuldade na programação com UDK que na época era usado o Kismet, posteriormente substituído pelo Blueprint.
Comecei a procurar por novas engines e encontrei a Godot. Quando chegou na hora da programação eu me frustrei novamente. Agora eu entendia a lógica, mas, mesmo assim, não conseguia desenvolver algo próprio. A ideia de ficar escrevendo e revisando código não me agradava muito e eu não queria voltar para o visual script da Unreal.
Então conversando com um amigo e ele me perguntou “Lucas porque você não começa por jogos 2D” e foi aí que, navegando pelo Youtube, encontrei um vídeo básico sobre a GDevelop 5. Uma engine Open Source, sem blueprint ou códigos escritos, rapidamente peguei o jeito com a programação baseada em eventos da GDevelop que, na época não havia muitos tutoriais na internet.
O que eu não encontrava eu mexia na engine até aprender, ou seja, me tornei um autodidata na engine. Neste meio tempo eu consegui uma vaga de estagiário na escola que e tinha cursado meu primeiro curso de games. Após um tempo como estagiário fui contratado como professor de desenvolvimento de games e informática. Pouco depois de me tornar professor publiquei meu primeiro jogo feito na GDevelop 5 e também decidi criar um projeto focado em ajudar novos desenvolvedores e, em agosto de 2019, publiquei meu primeiro curso gratuito.
De 2019 pra cá eu venho me dedicando à área da psicologia dos jogadores e gamificação. No ano passado, em 2020, decidi abrir meu próprio canal no Youtube com o nome “Eu sou o professor Lucas” para compartilhar todo este conhecimento com novos desenvolvedores, o meu objetivo é ajudar aqueles que não se identificam ou não gostam das linguagens de programação por código, oferecendo a eles alternativas para criarem seus próprios jogos.
[Marcos || Construct] Me interesso por desenvolvimento de jogos desde criança, por volta dos 10 anos. Foi nessa época que conheci o RPG Maker, que me mostrou um mundo novo e desconhecido. Um mundo em que eu poderia não somente ser um jogador, mas também um criador de jogos. Isso foi muito mágico para mim. Mas, na época, pela falta de experiência e incentivo, acabei desistindo. Retomei meus estudos em 2016, aos 17 anos.
Cheguei a entrar em um curso em Jogos Digitais em Criciúma, minha cidade, porém não me animei de continuar no curso. Não por falta de interesse em desenvolver jogos, foi por falta de interesse no curso em si mesmo. Saí e continuei meus estudos em casa, ainda em 2016. No ano seguinte criei o canal Marcos Game Dev, no YouTube, para me ajudar a aprender, ensinando outras pessoas. O canal se tornou profissão. Junto com meus jogos publicados na Steam, também sou professor de desenvolvimento de jogos em cursos online, focando na ferramenta Construct.
[Matheus || ClickTeam Fusion] Eu comecei quando criança, cerca de 10 anos de idade mais ou menos. Na época era difícil encontrar conteúdo sobre isso. Foi mais ou menos em 2004, eu conheci o fórum da Gaming Brasil através do jogo Sonic Universe 2, e desde então eu me apaixonei em desenvolver jogos.
Trabalhei em alguns jogos (alguns acabei removendo do Google Play temporariamente), desenvolvi mecânicas para a Clickstore (a loja da Clickteam) e atualmente trabalho em um jogo chamado Morgan, da Pixhitt, junto com o Nando Bastos. Mas o que eu mais fiz durante esses anos foi criar tutoriais (texto, mecânicas e vídeos). Faz poucos anos que decidi criar jogos de fato, pois até então eu só ensinava.
[WZ] Quais as engines que teve contato, como conheceu e por quê optou por essa que usa hoje?
[Lucas || GDevelop 5] A primeira que tive contato foi a UDK, depois a Godot e a Unreal Engine 4. Por último a GDevelop 5, que é a minha favorita, gosto dela pela sua simplicidade e como é claro entender e aplicar a lógica de programação nela, é uma ótima engine tanto para quem está começando quanto para quem já é experiente.
[Marcos || Construct] Já utilizei RPG Maker (2000, 2003, XP, VX, VXAce), Scratch, Game Maker, Unity, Construct 2 e Construct 3, nessa ordem. RPG Maker foi na infância, era apenas uma diversão para mim, sem perspectiva de criar algo comercial. Tive alguns meses de estudos usando Scratch no semestre do tecnólogo em Jogos Digitais que fiz na minha cidade. Foi maravilhoso para desenvolver lógica de programação e desenvolver meus primeiros jogos simples. Nessa época eu não achava programação visual programação “de verdade”, então parti para estudar engines com programação “de verdade”, Game Maker e depois Unity.
Como eu era iniciante em todas as linguagens de programação, e ao mesmo tempo um jovem ansioso de 17 anos, me frustrei pela falta de resultados rápidos obtidos com essas engines, que precisariam de um tempo maior de dedicação para fazer mesmo o mais simples dos jogos. Foi aí que vi no Construct a maravilha de aprender mais rápido, sendo iniciante em programação. Apesar de hoje ter mais experiência, continuo usando o Construct por sua capacidade incrível de desenvolver jogos 2D dos gêneros que pretendo criar.
[Matheus || ClickTeam Fusion] Quando eu era criança gostava muito do Sonic, e sempre procurava jogos para jogar. Com a “chegada” da internet isso facilitou, e encontrei um jogo chamado Sonic Universe 2, desenvolvido pelo @lex, num site chamado “Pegar”. No jogo, havia a propaganda da Gaming Brasil. Entrei achando que era um site para baixar jogos do Sonic, mas descobri que era um site que ensinava a criar jogos. Foi aí que conheci o Multimedia Fusion Express.
Com o passar dos anos tive contato com as engines da Clickteam (MFX, TGF, MMF1, MMF2 e CF2.5), com RPG Maker 2000 e 2003, com o M.U.G.E.N., com o Unity e agora com a Unreal. Dei umas mexidas rápidas no Game Maker e Construct 1 na época da BRMaker. Uso o Clickteam Fusion 2.5+ por causa da praticidade e velocidade em criar jogos. Não ter que ficar dependendo de decorar códigos é algo que acelera bastante o processo. E também por costume, pois uso as engines da Clickteam desde os anos 2000.
[WZ] Quais as vantagens da programação visual na engine que você usa?
[Lucas || GDevelop 5] A programação visual da GDevelop 5 dá uma visão mais clara do que você tem a sua disposição para usar na hora de programar seus jogos. Sem falar o fato de que não é necessário nenhum conhecimento em alguma linguagem de programação para começar a criar jogos, muito pelo contrário. Começar a programar pela GD5 vai te dar uma ótima noção sobre lógica de programação.
[Marcos || Construct] Para iniciantes, a vantagem é de ter resultados rápidos e não passar meses para conseguir criar um jogo por conta própria. Com o Construct, em questão de dias, eu já era capaz de entendê-la a ponto de criar um jogo por conta própria, sem acompanhar um tutorial. Para intermediários e avançados, a vantagem de ser uma engine poderosa e de desenvolvimento rápido. Sendo experiente com a engine você pode levar, por exemplo, 6 meses para desenvolver um jogo X, enquanto em outra engine de programação tradicional levaria 1 ano para desenvolver o mesmo jogo.
[Matheus || ClickTeam Fusion] A primeira, como citei antes, é não ter que ficar decorando códigos. Apenas com o uso da lógica é possível desenvolver jogos e aplicativos em pouco tempo. Outra vantagem é a rapidez em compreender “os códigos” feitos por outra pessoa (ou por você mesmo após muito tempo sem ter contato com esses códigos antigos), o entendimento acaba ocorrendo de forma muito mais rápida.
E assim também posso dizer que a aprendizagem da lógica de programação acaba ficando muito mais rápida também. Para iniciantes nessa área é ótimo, pois não há necessidade em ficar se preocupando em decorar códigos, apenas entender a lógica, de forma fácil e agradável. E depois de aprender a lógica, o processo para aprender alguma linguagem será muito rápido.
[WZ] Você acha que existe alguma limitação relacionada a engines com programação visual?
[Lucas || GDevelop 5] Bom, sempre tem uma limitação por menor que seja, mas a GD5 tem provado que está trabalhando para superar muito dessas limitações.
[Marcos || Construct] Para pessoas já acostumadas com programação por meio de uma linguagem como C++ ou C#, pode ser frustrante utilizar uma engine completamente visual (apesar de que recentemente foi adicionado programação por Javascript também). Também é uma engine exclusivamente 2D. Há add-ons que permitem a criação de jogos 3D com a engine, mas como não é o foco dela fica um pouco precário, sendo melhor então buscar outra engine para criar jogos 3D. A integração para jogos multijogador também é um tanto complexa no Construct.
[Matheus || ClickTeam Fusion] Sim, com certeza. Tudo o que te facilita, te limita. As principais limitações são referentes ao desempenho e otimização. Há uma certa falta de liberdade para acessar dados e configurações mais profundas para a execução em si e otimização. E também na interpretação dos “códigos”, por exemplo, o CF2.5+ possui um interpretador dos eventos em tempo real para C++. É como se o software criasse um “emulador”, o que reduz o desempenho.
No Windows é quase imperceptível, mas em outros sistemas (como no Android) é preciso otimizar ao máximo o código, pois qualquer “deslize” pode reduzir bastante o desempenho, a tolerância é bem mais baixa. Outra limitação é depender totalmente da engine para trabalhar. Um jogo desenvolvido com linguagem de programação pode ser programado até mesmo num bloco de notas simples (apesar de não ser o ideal).
[WZ] Você vê necessidade de trabalhar com outra engine (ou mais de uma engine) durante o processo de desenvolvimento?
[Lucas || GDevelop 5] Não, as engines hoje em dia estão cada vez mais completas.
[Marcos || Construct] Não vejo necessidade de utilizar mais de uma engine durante a criação de um jogo. E quanto à trocar de engine, deixar de usar o Construct para usar outra engine, é possível que com o tempo isso aconteça, mas apenas se as limitações passarem a me atrapalhar ou se eu tiver a necessidade de aprender uma linguagem de programação. Por ora, estou muito satisfeito com o Construct 3.
[Matheus || ClickTeam Fusion] Depende. Em todos esses anos com as engines da Clickteam desenvolvi algumas mecânicas, aplicativos, softwares e jogos, e não senti a necessidade de usar outras engines para isso. Para as minhas necessidades ela me supriu bem. Mas para algumas ideias e projetos futuros eu vou precisar usar outras engines por limitações do CF2.5+.
Para jogos eu pretendo ir migrando aos poucos para a Unreal (Blueprint, que também é visual, e C++), até porque no CF2.5+ não dá para criar jogos em 3D de forma aceitável, e a facilidade em compilar os jogos para diversas plataformas, principalmente para consoles, me atraiu bastante. Claro que há outros motivos também, principalmente no processo de programação do jogo, mas os motivos que me fizeram decidir migrar no futuro são esses. Mas não vou abandonar o CF2.5+ totalmente, essa engine sempre vai ter um espacinho na minha vida.
É importante ressaltar que existem diversas game engines com programação visual ou com essa opção, como Unreal (Blueprints), Unity (Bolt), Game Maker Studio (Visual Scripting), Godot, Scratch, Stencyl, dentre outras. Assim, caberá ao desenvolvedor escolher a que atende melhor seu projeto e começar a aventura.