Apesar de ter gostado inicialmente da Godot, acho que algumas coisas deveriam ser mais fáceis de se conseguir fazer. Por isso, gastei um tempinho pesquisando outras ferramentas que juntasse:
- Game engine;
- Editor de scena;
- Suporte a 3D;
- Desenvolver no Linux.
As descobertas foram:
Encontrei uma muito interessante, chamada Maratis. Usando um pouco, a impressão é de que o ambiente de desenvolvimento é bem mais estável do que a Godot. A interface é mais intuitiva, porém há menos coisas que dá para se fazer só visualmente e em vez de haver uma árvore de entidade (destacando quem é filho de quem) há apenas uma lista - o que dificulta um pouco.
Porém, acho que um diferencial muito legal é na parte de fazer código: a princípio, usa-se script em Lua para resolver a maioria das coisas. Entretanto, há uma API em C++ e é possível escrever código em C++ para definir plugins. Acontece que esses plugins não são para a engine, mas para o seu jogo mesmo. Então, se você quiser fazer um movimento complexo para os seus NPCs, é possível fazer código em C++ usando a API e, na IDE, você coloca pluga esse comportamento no NPC.
Fora isso, a integração com o Blender parece ser bem robusta. Eles fizeram um plugin para você usar o “Mode Maratis” dentro do Blender e também para exportar tudo direito. E como bônus, nenhum arquivo que o Maratis gera é binário - o que é muito bom para versionamento.
Quanto a referências, no próprio site há alguns exemplos simples e bem instrutivos. Também existe uma documentação até que razoável da ferramenta e da API e além disso é possível encontrar conteúdo espalhado pela internet. Em particular, essa série de vídeos é “totalmente excelente”: http://www.youtube.com/playlist?list=PLOIk_wUiUn3wt57DkyfE980ZDtBOJTK7i
Polycode
Essa engine é bem promissora. Pelo GitHub dá para ver que o desenvolvimento é ativo e já há algumas funcionalidades bacanas. Existe um IDE, onde é possível “montar” o jogo da mesma forma que na Unity. Uma coisa bem bacana para 2D é que com a IDE é possível também construir muita coisa que compõe um sprite: dá para carregar uma imagem cheia de figuras, mandar a ferramenta “recortar” os frames e montar as animações com esses frames. Tudo muito fácil.
Além disso, existe suporte a 3D. Pelo editor, dá para ver e há exemplos acessíveis pela própria IDE mostrando o básico.
Porém… o editor não é não responsivo quanto o esperado e (o pior) o projeto não é tão grande. Então achar exemplos é muuuito difícil e documentação não é tão extensa assim. Mas o que está documentado mostra como usar as duas linguagens suportadas (Lua e C++).
Urho 3D
Esse aqui… até que consegui fazer funcionar… o editor - o proporcionou uma surpresa interessante: a IDE foi feita com a própria engine! Esse tipo de coisa é muito legal!
Depois de fazer o editor abrir, você se depara com um monte de botões que causam aquela sensação de “caraca, essa ferramenta deve ser muito foda!”. Mais ou menos do mesmo jeito que acontece ao abrir um modelador 3D pela primeira vez. Só que fazer alguma coisa mesmo é meio complicado.
Tentei abrir o exemplo que vem junto e até consigo ver os componentes, porém não consegui ver a cena de jogo mesmo. Também tentei executar a versão exportada do exemplo e só apare uma tela preta. Não sei mexer nessa engine e nem vi onde daria para aprender. Existe sim alguma documentação, mas é mais da API e não de como usar o editor em si. O mais triste é procurar na internet e não encontrar um blog sequer com alguém explicando como usar a ferramenta - isso porque eu nem me dei ao trabalho de ir atrás do tal “Angel Script” que ela usa.
Resumindo: parece que a engine tem bastante coisa, mas sofre do mesmo problema da UGDK.
Torque 3D
De todas, essa talvez seja a mais madura e completa. Essa engine tinha licença paga assim como a Unity, porém em setembro de 2012 passou a ser um projeto open source com licença MIT. Mil maravilhas exceto… não roda no Linux ainda. Há um esforço da comunidade para fazer funcionar no Linux e até algumas pessoas mostrando que conseguiram, mas essa funcionalidade ainda não está consolidada.
Eu tentei usar o código do repositório aqui no meu computador, mas não consegui compilar de jeito nenhum.
Então, essa vai ficar para um futuro onde ou eles teriam terminado a portabilidade ou nós teríamos desistido desse negócio de usar Linux.
Conclusão
Dada a situação atual esses projetos, acho que na prática só a Maratis é uma alternativa viável a Godot (talvez seja até melhor - ainda não sei dizer). Para o caso de jogos 2D, talvez a Polycode até valha a pena.
Se alguém fizer experimentos, ou descobrir mais coisas, mande aqui.
Falou!