[Artigo] Game Engines - Porquê (não) usar?
Enviado: Qua Nov 30, 2016 2:31 pm
Game Engines - Porquê (não) usar?
P.S.: Não irei falar apenas de Game Engines, embora o título.
É fato que novatos no mundo do desenvolvimento de jogos se sentem completamente perdidos sem saberem para onde ir, o que procurar, o que fazer, como respirar etc.
Eis então este artigo, com o intuito de lhe ajudar no primeiro passo... Escolher a ferramenta certa para estudar e aprender a usar.
Neste artigo terá a descrição sobre algumas game engines que recomendo o (não) uso, e claro, muita opinião pessoal que espero ser respeitada.
DICA: Muito longo? Preguiça de ler tudo? Vá apenas aos pontos que lhe interessa. Como a plataforma desejada de desenvolvimento e ferramentas que mais lhe agrada.
Plataforma: WEB
Bem, se seu desejo é fazer jogos para a plataforma WEB é um bom começo saber qual exatamente será o ambiente de sua escolha.
Eu recomendo ficar bem longe do Flash, o mesmo já é uma tecnologia ultrapassada e praticamente aposentada. Todos estão se afastando do mesmo e você não quer começar a navegar em um barco que está afundando, certo?
Se já estiver neste barco, recomendo migrar para o HTML5.
- JavaScript -
Falando em HTML5, é uma boa escolha de ambiente. Você pode programar jogos usando JavaScript sem nenhuma necessidade de compilador ou IDE.
Se quiser começar neste ambiente (principalmente se for apegado ao Game Maker) eu posso recomendar o uso do Tululoo Game Maker.
Tem toda razão em achar o Tululoo uma droga, pois ele é. Mas é um primeiro passo sutil para se conectar ao JavaScript.
Embora o Tululoo "mate" o JavaScript para rodar código de forma semelhante ao GM, e tenha uma qualidade de seu código muito ruim, poderá aprender a usar o JavaScript nele sem problema já que não há nenhum tipo de "bloqueio" que impeça de usar qualquer recurso do JavaScript.
Isto é ótimo já que poderá usar a forma simples do Tululoo no que não souber fazer, e fazer coisas mais "interessantes" para uso no jogo sem problema algum.
Para fazer jogos de forma mais avançada com JavaScript não conheço nenhuma Game Engine, mas quem precisa delas?
enchant.js é uma framework para jogos HTML5 e tem uma ótima qualidade. Após brincar no Tululoo, é uma ótima escolha de ferramenta.
Mas também você não é obrigado a usar framework, fazendo tudo na raça com suas habilidades em JavaScript.
Fiz uma biblioteca para jogos HTML5 que nomeei de SliB.js, o código pode lhe servir de estudo.
Veja o tópico: https://tgmbrasil.com.br/viewtopic.php?f=32&t=1140
- Java - (Não confundir com JavaScript)
Além de Flash (eca!), muitas outras linguagens podem ser usadas para criar Applets. Que são aplicações que rodam com plugins por cima de outro software, no nosso caso o navegador.
Java está em todos os lados, inclusive no front-end.(badun-tis!)
É uma escolha interessante, pois quase todos os computadores tem Java instalado e pode usar a mesma linguagem para programar para diversos ambientes.
Se quiser entrar para esse mundo, recomendo pesquisar bem antes de tomar essa decisão.
Mas se quiser mergulhar de cabeça sem olhar se tem água na piscina, pode baixar o JDk(Java Development Kit) agora: Clique aqui
O JDK é necessário para o desenvolvimento no ambiente Java, e nesse mesmo link tem botão para download do Netbeans(IDE) com o JDK.
- Game Maker: Studio -
É claro que vou falar de algumas game engines.
O Game Maker: Studio não é uma boa opção, mas seu uso é prático e creio que mereça recomendação. (não deixa de ser uma escolha )
Se você já sabe usar o GM:S bem, não digo que será jogar dinheiro fora comprar o módulo HTML5... (Mas cogite outras opções antes disso)
Agora, se você não usa o GM:S NEM COMECE A USAR! Sairá caro e não será a melhor opção para jogos na plataforma WEB.
- Unity -
Eu diria uma escolha terrível para jogos pequenos, mas boa para jogos mais complexos.(Jogo complexo? WEB?? )
No Unity a coisa mais simples se torna um monstro, e necessita do Unity Web Player instalado no PC do jogador.
Realmente não é nenhum pouco adequado para jogos simples, o que é basicamente a descrição de um jogo para a plataforma WEB.
Mas se a ideia é ser um jogo 3D, ou algo realmente grande, não será uma má escolha.
Se você usa ou não o Unity e quer fazer "joginhos" WEB, eu recomendo procurar outra escolha.
P.S.: Com "joginhos" me refiro aos jogos mais simples.
- Godot Engine - (Open-Source)
Esta é uma ótima escolha de ferramenta. Utiliza uma linguagem própria derivada de Phyton, multiplataforma, perfeita para jogos 2D e 3D, e é GRATUITA!
Leia mais sobre onde eu falo dela na plataforma Desktop aqui embaixo. \/
Plataforma: Desktop
Se o seu plano de vida é criar um jogo de computador para vender na Steam ou para o que for, o ideal é escolher A ferramenta que usará em todas as ocasiões.
Sem essa de "se eu vou fazer um jogo assim, uso X. Se é um jogo assado, uso Y", essas Game Engines específicas para um tipo de jogo nunca são boas. Fique longe delas.
- Java - (Não confundir com JavaScript)
Óbvio que o Java também é uma ótima escolha para desenvolver um jogo para a plataforma Desktop.
Se você já conhece este ambiente sabe do que estou falando, e se não conhece vale a pena pesquisar.
- C/C++ e SDL -
SDL é uma biblioteca multiplataforma perfeita para desenvolver jogos.(mas não é destinada exclusivamente para jogos)
Com ela poderá fazer um jogo 2D/3D e exportar para o Windows, Linux, Mac OS X e Android.
C++ é a linguagem mais utilizada no mundo para desenvolver jogos.
- "Mas eu nunca vi uma Game Engine que usa C++"
Não fera, sai dessa. Existe um mundo fora das Game Engines, e neste "mundo real" o C++ reina.
Talvez toda a liberdade que o C++ lhe dá possa assustar principalmente os programadores inexperientes, mas vale a pena aprender esta linguagem.
Outra linguagem que recomendo também é o Phyton.
P.S.: C++ é tipo um 2.0 do C, cujo o qual é um incremento a linguagem C para suporte a Programação Orientada a Objetos.
C++ contém algumas características próprias inexistentes no C fora o POO, mas TUDO o que C tem o C++ também tem.
Por isso muitos programadores se referem ao compilador de C++ como de C/C++, já que compila tanto código no formato de código em C como em C++.
- Blender -
Já que falei sobre Phyton, vamos começar por ele...(P.S.: Blender usa a SDL)
O Blender é muito conhecido por ser um programa para modelagem 3D. Muitos não são curiosos como eu para sair fuçando por ai até não ter mais nada para ser encontrado...
Mas enfim, o que poucos sabem é que Blender também é uma Game Engine.
O mesmo tem um sistema interessante de ligar ações com comparadores e sensores para gerar uma lógica de execução sem necessidade de programar.
Mas também é possível utilizar da linguagem Phyton para executar códigos mais avançados.
Blender conta com um editor de código embutido e uma opção de interface prática para a criação da mecânica do jogo.
Se ainda estiver descrente, veja uns prints da versão 2.66 instalada em meu PC: Caso queira exportar seu jogo como um .exe para que as pessoas possam jogar, terá que ativar essa opção nas configurações.
Arquivo > Preferências de usuário > Complementos > "Game Engine: Save As Game Engine Runtime"
Para facilitar encontrar essa opção nos complementos, basta clicar no botão "Game Engine" no lado esquerdo.
DICA: Para deixar o Blender em português, vá em: File > User preferences > System
Marque a caixa "international fonts", escolha a linguagem e marque as caixas para traduzir a interface e as dicas.
(Essa opção é bem escondida e só após muito tempo com o Blender que resolvi fuçar as configurações e a encontrei)
- Unity -
Se tem desejo de fazer um jogo 3D em um ambiente bem organizado e que pode exportar para várias plataformas esta é a escolha.
Eu sei que o Unity pode fazer também jogos 2D, mas eu NÃO recomendo seu uso para tal.
Além do processo nada prático o resultado não é adequado.
Agora, o Unity é uma ótima ferramenta para jogos 3D. Poderá fazer o jogo de forma bem prática e até escolher entre as linguagens disponíveis.
Cuja elas são JavaScript*, C# e Boo. Essa variedade de linguagens tem como principal vantagem o trabalho em equipe, onde cada um pode usar a linguagem que mais lhe agrada.
* Não é JavaScript de verdade, mas sim um derivado próprio do Unity apartir da especificação ECMAScript.
Creio que o nome JavaScript seja usado na interface do Unity para atrair programadores que usam esta linguagem.
- Gibbo 2D -
Já que falei do Unity não ser uma boa escolha para jogos 2D, vou lhe dá uma caso goste de C#.
Gibbo 2D não é uma ferramenta que eu tenho muita experiência, mas mesmo uma versão bem antiga que baixei anos atrás me agradou.
Nunca usei (e nunca usarei), mas é uma boa opção.
Vale a pena ver direito.
(Leia sobre as features dela)
- Game Maker: Studio -
O GM:S não é nem de longe a melhor escolha para desenvolver um jogo.
O mesmo usa uma linguagem própria nomeada de GML, que resumindo é uma droga...
Mas esta dita Game Engine tem uma certa praticidade ao desenvolver um jogo, inclusive não há necessidade de programar usando de um sistema de D&D.
Além da possibilidade de exportar para várias plataformas.(mas tem que pagar MUITO CARO por cada módulo)
Se você já usa o GM:S não tem o porquê de mudar de Game Engine, mas recomendo ver outras opções principalmente se não usa ainda.
O GM:S além de fazer jogos 2D de forma bem prática, não tem nenhum entrave para criar jogos 3D. O mesmo não conta com a praticidade contida em Game Engines destinada a jogos 3D mas não impossibilita seu desenvolvimento.
- Godot Engine - (Open-Source)
Vou começar falando que é gratuita.
Tem uma ótima praticidade para jogos 2D e 3D, exporta para várias plataformas e usa de uma linguagem própria derivada do Phyton.
Não tenho experiência com essa Game Engine por causa de um probleminha de vídeo e não posso instala-la aqui.(placa de vídeo queimou e vídeo on-board não suporta OpenGL)
Mas já li e vi muito sobre ela e posso dizer que é uma excelente escolha seja lá a plataforma que deseja exportar seu jogo.
Leia sobre as features do Godot.
- JavaScript -
Imagine que interessante você poder fazer o jogo em sua linguagem favorita, sem Game Engine e poder exportar para a plataforma WEB, Desktop e móvel?
Bem, usando HTML5* é completamente possível.
Não vou dizer que seja uma boa escolha exportar seu jogo feito em HTML5 para Desktop, pois isso vai aumentar o tamanho do jogo em uns 50~60MB de tamanho só com um aglomerado de arquivos e executável para poder rodar o jogo no PC.
Mas não deixa de ser uma opção completamente viável e de bom desempenho. (embora o tamanho monstruoso...)
Vou lhe dá a melhor opção que encontrei para isso, se chama Electron.
Electron é uma framework de código aberto que pode ser usada para exportar seu jogo para o Windows, Linux e Mac OS.
E não pense que isso é uma "gambiarra" pouco usada, vou citar como exemplo o PhoneGap que não passa de uma aplicação HTML5 que usa o Electron.
* HTML não é linguagem de programação, mas os programadores WEB usam o termo HTML5 como uma forma prática para se referir a HTML + CSS + JavaScript. (HTML5 é a quinta versão do HTML)
Plataforma: Móvel
Jogos móveis são um ótimo passatempo. Estamos em uma época em que os cidadãos idiotas passam 99% do seu tempo com a cara enfiada em seus respectivos smartphones.
Você quer ser um dos responsáveis por isso? Ótimo, então deve se preparar com a melhor arma para o combate.
- Java - (Não confundir com JavaScript)
Lá vem Java de novo. Bem, como eu disse está por todos os lados.
Java também é uma ótima escolha para a plataforma móvel, não esquece de dar uma olhada. ;)
Você pode usar a ferramenta oficial do Google para desenvolver seu jogo, o Android Studio.
- JavaScript -
E lá vem o metido do JavaScript também, mas dessa vez ele não trouxe uma bagagem de 60MB com ele.
HTML5 pode ser compilado para rodar no Android como um aplicativo nativo da plataforma.(.apk)
Isso sem gerar um código monstruoso nem nada do tipo.
A ferramenta que recomendo é o DroidScript, você instala ele em seu dispositivo móvel e pode usar da conexão WiFi para programar no computador e testar de forma prática e rápida no dispositivo.
Ou então, programar diretamente em seu aparelho móvel.
Usando o DroidScript você pode fazer aplicações de duas maneiras. Usando puramente JavaScript ou HTML5*
Algo que achei interessante no DroidScript é poder testar sem problema as aplicações no aparelho sem precisar pagar nada. Inclusive há a possibilidade de criar atalhos na tela principal para rodar como se fosse uma aplicação já compilada.
Enquanto ao preço para poder compilar? Não é muito alto, atualmente está no valor de R$ 45,00 podendo ser comprado no menu "Plugins".
- Godot Engine -
Com certeza é uma ótima ferramenta, e não há nenhuma "contra-indicação" para a plataforma móvel.
Mais informações sobre o Godot, leia onde falei dele na parte de plataforma desktop ali em cima. /\
- Unity -
O Unity só tenho o que queixar pelo fato do tamanho do jogo gerado, o que é ligeiramente grande.
Fora isso, não deixa de ser uma boa ferramenta para a plataforma móvel. Exceto pelo que já me queixei sobre jogos 2D e mais básicos, e deve tomar cuidado em relação a desempenho em aparelhos mais antigos.
- Game Maker: Studio -
Lá vem o carinha que mora logo ali.
O que posso dizer é que se você já usa o GM:S não irá ter problemas para fazer um jogo na plataforma móvel.
Não será perda de dinheiro comprar o módulo Android, IOs ou qualquer outro que deseje exportar seu jogo.
Mas o GM:S não deixa de ser uma escolha ruim, se quer investir tempo em aprender a usar uma ferramenta escolha outra. e.e
Resumão
- JavaScript é uma boa escolha para jogos na plataforma WEB e móvel, mas não recomendo seu uso para jogos Desktop.
- Java é uma escolha ótima para qualquer plataforma, mas não é todos que conseguem engolir o geito Java de ser. Então é bom pesquisar bem antes de mergulhar nessa.
- C/C++ e SDL é perfeito para programadores mais experientes que queiram fazer um jogo multiplataforma.
- Unity é uma boa escolha para jogos 3D para qualquer plataforma, mas jogos mais simples ou 2D eu recomendo que escolha outra ferramenta.
- Gibbo 2D é ideal para você que gosta de C# e tem plano de criar um jogo bidimensional para a plataforma Desktop. Interessante seu uso como uma alternativa ao Unity para jogos 2D, já que o Gibbo também usa o Mono como ambiente.(e a linguagem C#)
- Godot Engine é uma escolha muito boa para várias plataformas e para 2D e 3D, vale a pena pesquisar e ver se lhe agrada.
- Blender não parece mas pode ser uma ótima escolha para desenvolver um jogo tridimensional. Principalmente para quem está habituado a linguagem Phyton.
- Game Maker: Studio não é uma boa escolha. Mas cumpre o que promete de uma forma bem prática, ótimo para iniciantes aprenderem.
Contra-indicação
É bom ser avisado de antemão de possíveis escolhas ruins que você pode fazer.
Existe 157% de chance de eu ser linchado, mas espero que respeite o que vou dizer como alguém que já tem certa experiência* com programação e sabe do que está falando.
O que vou dizer a seguir é baseado em minha experiência pessoal com essas Game Engines.
* Vale destacar que tenho experiência como programador e não desenvolvedor de jogos, nunca entrei nesse ambiente de cabeça pois desisti dessa ideia maluca antes mesmo de tentar pra valer. (Maluca para mim que só sei programar)
- Tululoo Game Maker -
Já que citei esse brinquedinho, é bom avisar que ele não é uma boa escolha para usar de verdade.
Como uma plataforma de aprendizado para sair do Game Maker e começar com JavaScript pode lhe servir, mas usar como ferramenta de verdade...
Bem, resumindo o código é uma porcaria de péssima qualidade. E eles conseguiram transformar a praticidade do JavaScript na porcaria da limitação do GML na forma como eles fizeram sua biblioteca.
- RPG Maker, 001 Game Maker e semelhantes -
Fique longe dessas ferramentas mal feitas próprias para um tipo de jogo.
Talvez a praticidade de inserir elementos já prontos para fazer seu joginho de RPG lhe agrade, mas isso não passa de um brinquedo para passar o tempo.
Se quiser se divertir com essas "ferramentas" não há crime, mas não use com intuito de fazer um jogo de verdade... Irá perder MUITO tempo precioso que poderia ser investido em aprender a usar uma ferramenta de verdade.
Essas coisas não servem sequer como plataforma de aprendizado. Sério, FIQUE LONGE!
- Game Maker: Studio -
Eu sei, GM:S é prático, exporta para várias plataformas e sequer precisa programar.
Mas sinceramente, quer mesmo pagar CARO por uma ferramenta de má qualidade que usa a linguagem de criança GML?
Baixar a versão gratuita para aprender não é ruim, mas pagar por isso como se fosse uma ferramenta boa?
Bom, por outro lado se já tem experiência nesta coisa não deixa de ser uma opção. Então se já tem a ferramenta comprada ou se conseguiu em uma promoção vida loka ai, não tem porque abandonar ela.
Mas se não estiver dentro deste "mundo GM", não recomendo que entre. Sério, feche esse portão minino!
- Construct 2 -
Eu não queria falar mal dessa coisa, mas após vasculhar ela mais e mais eu tenho que contra-indicar. (e agora que falei mal do filho predileto do fórum, já estou morto mesmo )
Esse troço que chamam de Game Engine tem um foco como muitas outras, fazer um jogo sem programar.
Mas diferente das outras, no C2 é simplesmente impossível programar.
O C2 conta com um sistema de "já ta tudo pronto, só montar o jogo e exportar", tudo isso parece bom né?
Que nada! É uma porcaria!
Ele tem um sistema de evento muito mal feito, o sistema do jogo é mal organizado, e conta com a infelicidade de ter extremas limitações na versão gratuita.
Para mim, o C2 é uma ARMADILHA para ganhar dinheiro fácil.
Quando você o vê, pensa: "Nossa, se eu pagar vou poder fazer o jogo de forma bem simples sem precisar programar"
A questão, é que as pessoas que querem usar sistemas como esse geralmente são pessoas inexperientes. Logo não tem planos de fazer jogos muito avançados para venda que compense a compra.
Por outro lado, usa-lo como apenas aprendizado é simplesmente INÚTIL. Você não aprende nada de útil usando o C2.
E tem o fato de toda essa facilidade do C2 ser mal organizada, o que dificulta as coisas.
Se você é um designer e simplesmente não quer(ou não consegue) aprender a programar e não quer (ou não consegue) fazer uma equipe, talvez o C2 seja uma má escolha.
Fora isso perderá dinheiro, tempo ou os dois.
- Portugol e Delphi -
Melhor nem falar nada.
Conclusão
Até mesmo com a pior Game Engine do planeta vai existir pessoas que vão conseguir fazer um bom jogo com ela.
A questão de ser uma péssima ou ótima escolha não impossibilita ou possibilita criar um jogo de qualidade.
O que faz o jogo de verdade é você(a menos que você seja o Miss) e não a Game Engine ou a linguagem utilizada.
Mas é claro que certas Game Engines não deixam de ser de péssima qualidade por isso, portanto saiba escolher bem.
P.S.: Não irei falar apenas de Game Engines, embora o título.
É fato que novatos no mundo do desenvolvimento de jogos se sentem completamente perdidos sem saberem para onde ir, o que procurar, o que fazer, como respirar etc.
Eis então este artigo, com o intuito de lhe ajudar no primeiro passo... Escolher a ferramenta certa para estudar e aprender a usar.
Neste artigo terá a descrição sobre algumas game engines que recomendo o (não) uso, e claro, muita opinião pessoal que espero ser respeitada.
DICA: Muito longo? Preguiça de ler tudo? Vá apenas aos pontos que lhe interessa. Como a plataforma desejada de desenvolvimento e ferramentas que mais lhe agrada.
Plataforma: WEB
Bem, se seu desejo é fazer jogos para a plataforma WEB é um bom começo saber qual exatamente será o ambiente de sua escolha.
Eu recomendo ficar bem longe do Flash, o mesmo já é uma tecnologia ultrapassada e praticamente aposentada. Todos estão se afastando do mesmo e você não quer começar a navegar em um barco que está afundando, certo?
Se já estiver neste barco, recomendo migrar para o HTML5.
- JavaScript -
Falando em HTML5, é uma boa escolha de ambiente. Você pode programar jogos usando JavaScript sem nenhuma necessidade de compilador ou IDE.
Se quiser começar neste ambiente (principalmente se for apegado ao Game Maker) eu posso recomendar o uso do Tululoo Game Maker.
Tem toda razão em achar o Tululoo uma droga, pois ele é. Mas é um primeiro passo sutil para se conectar ao JavaScript.
Embora o Tululoo "mate" o JavaScript para rodar código de forma semelhante ao GM, e tenha uma qualidade de seu código muito ruim, poderá aprender a usar o JavaScript nele sem problema já que não há nenhum tipo de "bloqueio" que impeça de usar qualquer recurso do JavaScript.
Isto é ótimo já que poderá usar a forma simples do Tululoo no que não souber fazer, e fazer coisas mais "interessantes" para uso no jogo sem problema algum.
Para fazer jogos de forma mais avançada com JavaScript não conheço nenhuma Game Engine, mas quem precisa delas?
enchant.js é uma framework para jogos HTML5 e tem uma ótima qualidade. Após brincar no Tululoo, é uma ótima escolha de ferramenta.
Mas também você não é obrigado a usar framework, fazendo tudo na raça com suas habilidades em JavaScript.
Fiz uma biblioteca para jogos HTML5 que nomeei de SliB.js, o código pode lhe servir de estudo.
Veja o tópico: https://tgmbrasil.com.br/viewtopic.php?f=32&t=1140
- Java - (Não confundir com JavaScript)
Além de Flash (eca!), muitas outras linguagens podem ser usadas para criar Applets. Que são aplicações que rodam com plugins por cima de outro software, no nosso caso o navegador.
Java está em todos os lados, inclusive no front-end.(badun-tis!)
É uma escolha interessante, pois quase todos os computadores tem Java instalado e pode usar a mesma linguagem para programar para diversos ambientes.
Se quiser entrar para esse mundo, recomendo pesquisar bem antes de tomar essa decisão.
Mas se quiser mergulhar de cabeça sem olhar se tem água na piscina, pode baixar o JDk(Java Development Kit) agora: Clique aqui
O JDK é necessário para o desenvolvimento no ambiente Java, e nesse mesmo link tem botão para download do Netbeans(IDE) com o JDK.
- Game Maker: Studio -
É claro que vou falar de algumas game engines.
O Game Maker: Studio não é uma boa opção, mas seu uso é prático e creio que mereça recomendação. (não deixa de ser uma escolha )
Se você já sabe usar o GM:S bem, não digo que será jogar dinheiro fora comprar o módulo HTML5... (Mas cogite outras opções antes disso)
Agora, se você não usa o GM:S NEM COMECE A USAR! Sairá caro e não será a melhor opção para jogos na plataforma WEB.
- Unity -
Eu diria uma escolha terrível para jogos pequenos, mas boa para jogos mais complexos.(Jogo complexo? WEB?? )
No Unity a coisa mais simples se torna um monstro, e necessita do Unity Web Player instalado no PC do jogador.
Realmente não é nenhum pouco adequado para jogos simples, o que é basicamente a descrição de um jogo para a plataforma WEB.
Mas se a ideia é ser um jogo 3D, ou algo realmente grande, não será uma má escolha.
Se você usa ou não o Unity e quer fazer "joginhos" WEB, eu recomendo procurar outra escolha.
P.S.: Com "joginhos" me refiro aos jogos mais simples.
- Godot Engine - (Open-Source)
Esta é uma ótima escolha de ferramenta. Utiliza uma linguagem própria derivada de Phyton, multiplataforma, perfeita para jogos 2D e 3D, e é GRATUITA!
Leia mais sobre onde eu falo dela na plataforma Desktop aqui embaixo. \/
Plataforma: Desktop
Se o seu plano de vida é criar um jogo de computador para vender na Steam ou para o que for, o ideal é escolher A ferramenta que usará em todas as ocasiões.
Sem essa de "se eu vou fazer um jogo assim, uso X. Se é um jogo assado, uso Y", essas Game Engines específicas para um tipo de jogo nunca são boas. Fique longe delas.
- Java - (Não confundir com JavaScript)
Óbvio que o Java também é uma ótima escolha para desenvolver um jogo para a plataforma Desktop.
Se você já conhece este ambiente sabe do que estou falando, e se não conhece vale a pena pesquisar.
- C/C++ e SDL -
SDL é uma biblioteca multiplataforma perfeita para desenvolver jogos.(mas não é destinada exclusivamente para jogos)
Com ela poderá fazer um jogo 2D/3D e exportar para o Windows, Linux, Mac OS X e Android.
C++ é a linguagem mais utilizada no mundo para desenvolver jogos.
- "Mas eu nunca vi uma Game Engine que usa C++"
Não fera, sai dessa. Existe um mundo fora das Game Engines, e neste "mundo real" o C++ reina.
Talvez toda a liberdade que o C++ lhe dá possa assustar principalmente os programadores inexperientes, mas vale a pena aprender esta linguagem.
Outra linguagem que recomendo também é o Phyton.
P.S.: C++ é tipo um 2.0 do C, cujo o qual é um incremento a linguagem C para suporte a Programação Orientada a Objetos.
C++ contém algumas características próprias inexistentes no C fora o POO, mas TUDO o que C tem o C++ também tem.
Por isso muitos programadores se referem ao compilador de C++ como de C/C++, já que compila tanto código no formato de código em C como em C++.
- Blender -
Já que falei sobre Phyton, vamos começar por ele...(P.S.: Blender usa a SDL)
O Blender é muito conhecido por ser um programa para modelagem 3D. Muitos não são curiosos como eu para sair fuçando por ai até não ter mais nada para ser encontrado...
Mas enfim, o que poucos sabem é que Blender também é uma Game Engine.
O mesmo tem um sistema interessante de ligar ações com comparadores e sensores para gerar uma lógica de execução sem necessidade de programar.
Mas também é possível utilizar da linguagem Phyton para executar códigos mais avançados.
Blender conta com um editor de código embutido e uma opção de interface prática para a criação da mecânica do jogo.
Se ainda estiver descrente, veja uns prints da versão 2.66 instalada em meu PC: Caso queira exportar seu jogo como um .exe para que as pessoas possam jogar, terá que ativar essa opção nas configurações.
Arquivo > Preferências de usuário > Complementos > "Game Engine: Save As Game Engine Runtime"
Para facilitar encontrar essa opção nos complementos, basta clicar no botão "Game Engine" no lado esquerdo.
DICA: Para deixar o Blender em português, vá em: File > User preferences > System
Marque a caixa "international fonts", escolha a linguagem e marque as caixas para traduzir a interface e as dicas.
(Essa opção é bem escondida e só após muito tempo com o Blender que resolvi fuçar as configurações e a encontrei)
- Unity -
Se tem desejo de fazer um jogo 3D em um ambiente bem organizado e que pode exportar para várias plataformas esta é a escolha.
Eu sei que o Unity pode fazer também jogos 2D, mas eu NÃO recomendo seu uso para tal.
Além do processo nada prático o resultado não é adequado.
Agora, o Unity é uma ótima ferramenta para jogos 3D. Poderá fazer o jogo de forma bem prática e até escolher entre as linguagens disponíveis.
Cuja elas são JavaScript*, C# e Boo. Essa variedade de linguagens tem como principal vantagem o trabalho em equipe, onde cada um pode usar a linguagem que mais lhe agrada.
* Não é JavaScript de verdade, mas sim um derivado próprio do Unity apartir da especificação ECMAScript.
Creio que o nome JavaScript seja usado na interface do Unity para atrair programadores que usam esta linguagem.
- Gibbo 2D -
Já que falei do Unity não ser uma boa escolha para jogos 2D, vou lhe dá uma caso goste de C#.
Gibbo 2D não é uma ferramenta que eu tenho muita experiência, mas mesmo uma versão bem antiga que baixei anos atrás me agradou.
Nunca usei (e nunca usarei), mas é uma boa opção.
Vale a pena ver direito.
(Leia sobre as features dela)
- Game Maker: Studio -
O GM:S não é nem de longe a melhor escolha para desenvolver um jogo.
O mesmo usa uma linguagem própria nomeada de GML, que resumindo é uma droga...
Mas esta dita Game Engine tem uma certa praticidade ao desenvolver um jogo, inclusive não há necessidade de programar usando de um sistema de D&D.
Além da possibilidade de exportar para várias plataformas.(mas tem que pagar MUITO CARO por cada módulo)
Se você já usa o GM:S não tem o porquê de mudar de Game Engine, mas recomendo ver outras opções principalmente se não usa ainda.
O GM:S além de fazer jogos 2D de forma bem prática, não tem nenhum entrave para criar jogos 3D. O mesmo não conta com a praticidade contida em Game Engines destinada a jogos 3D mas não impossibilita seu desenvolvimento.
- Godot Engine - (Open-Source)
Vou começar falando que é gratuita.
Tem uma ótima praticidade para jogos 2D e 3D, exporta para várias plataformas e usa de uma linguagem própria derivada do Phyton.
Não tenho experiência com essa Game Engine por causa de um probleminha de vídeo e não posso instala-la aqui.(placa de vídeo queimou e vídeo on-board não suporta OpenGL)
Mas já li e vi muito sobre ela e posso dizer que é uma excelente escolha seja lá a plataforma que deseja exportar seu jogo.
Leia sobre as features do Godot.
- JavaScript -
Imagine que interessante você poder fazer o jogo em sua linguagem favorita, sem Game Engine e poder exportar para a plataforma WEB, Desktop e móvel?
Bem, usando HTML5* é completamente possível.
Não vou dizer que seja uma boa escolha exportar seu jogo feito em HTML5 para Desktop, pois isso vai aumentar o tamanho do jogo em uns 50~60MB de tamanho só com um aglomerado de arquivos e executável para poder rodar o jogo no PC.
Mas não deixa de ser uma opção completamente viável e de bom desempenho. (embora o tamanho monstruoso...)
Vou lhe dá a melhor opção que encontrei para isso, se chama Electron.
Electron é uma framework de código aberto que pode ser usada para exportar seu jogo para o Windows, Linux e Mac OS.
E não pense que isso é uma "gambiarra" pouco usada, vou citar como exemplo o PhoneGap que não passa de uma aplicação HTML5 que usa o Electron.
* HTML não é linguagem de programação, mas os programadores WEB usam o termo HTML5 como uma forma prática para se referir a HTML + CSS + JavaScript. (HTML5 é a quinta versão do HTML)
Plataforma: Móvel
Jogos móveis são um ótimo passatempo. Estamos em uma época em que os cidadãos idiotas passam 99% do seu tempo com a cara enfiada em seus respectivos smartphones.
Você quer ser um dos responsáveis por isso? Ótimo, então deve se preparar com a melhor arma para o combate.
- Java - (Não confundir com JavaScript)
Lá vem Java de novo. Bem, como eu disse está por todos os lados.
Java também é uma ótima escolha para a plataforma móvel, não esquece de dar uma olhada. ;)
Você pode usar a ferramenta oficial do Google para desenvolver seu jogo, o Android Studio.
- JavaScript -
E lá vem o metido do JavaScript também, mas dessa vez ele não trouxe uma bagagem de 60MB com ele.
HTML5 pode ser compilado para rodar no Android como um aplicativo nativo da plataforma.(.apk)
Isso sem gerar um código monstruoso nem nada do tipo.
A ferramenta que recomendo é o DroidScript, você instala ele em seu dispositivo móvel e pode usar da conexão WiFi para programar no computador e testar de forma prática e rápida no dispositivo.
Ou então, programar diretamente em seu aparelho móvel.
Usando o DroidScript você pode fazer aplicações de duas maneiras. Usando puramente JavaScript ou HTML5*
Algo que achei interessante no DroidScript é poder testar sem problema as aplicações no aparelho sem precisar pagar nada. Inclusive há a possibilidade de criar atalhos na tela principal para rodar como se fosse uma aplicação já compilada.
Enquanto ao preço para poder compilar? Não é muito alto, atualmente está no valor de R$ 45,00 podendo ser comprado no menu "Plugins".
- Godot Engine -
Com certeza é uma ótima ferramenta, e não há nenhuma "contra-indicação" para a plataforma móvel.
Mais informações sobre o Godot, leia onde falei dele na parte de plataforma desktop ali em cima. /\
- Unity -
O Unity só tenho o que queixar pelo fato do tamanho do jogo gerado, o que é ligeiramente grande.
Fora isso, não deixa de ser uma boa ferramenta para a plataforma móvel. Exceto pelo que já me queixei sobre jogos 2D e mais básicos, e deve tomar cuidado em relação a desempenho em aparelhos mais antigos.
- Game Maker: Studio -
Lá vem o carinha que mora logo ali.
O que posso dizer é que se você já usa o GM:S não irá ter problemas para fazer um jogo na plataforma móvel.
Não será perda de dinheiro comprar o módulo Android, IOs ou qualquer outro que deseje exportar seu jogo.
Mas o GM:S não deixa de ser uma escolha ruim, se quer investir tempo em aprender a usar uma ferramenta escolha outra. e.e
Resumão
- JavaScript é uma boa escolha para jogos na plataforma WEB e móvel, mas não recomendo seu uso para jogos Desktop.
- Java é uma escolha ótima para qualquer plataforma, mas não é todos que conseguem engolir o geito Java de ser. Então é bom pesquisar bem antes de mergulhar nessa.
- C/C++ e SDL é perfeito para programadores mais experientes que queiram fazer um jogo multiplataforma.
- Unity é uma boa escolha para jogos 3D para qualquer plataforma, mas jogos mais simples ou 2D eu recomendo que escolha outra ferramenta.
- Gibbo 2D é ideal para você que gosta de C# e tem plano de criar um jogo bidimensional para a plataforma Desktop. Interessante seu uso como uma alternativa ao Unity para jogos 2D, já que o Gibbo também usa o Mono como ambiente.(e a linguagem C#)
- Godot Engine é uma escolha muito boa para várias plataformas e para 2D e 3D, vale a pena pesquisar e ver se lhe agrada.
- Blender não parece mas pode ser uma ótima escolha para desenvolver um jogo tridimensional. Principalmente para quem está habituado a linguagem Phyton.
- Game Maker: Studio não é uma boa escolha. Mas cumpre o que promete de uma forma bem prática, ótimo para iniciantes aprenderem.
Contra-indicação
É bom ser avisado de antemão de possíveis escolhas ruins que você pode fazer.
Existe 157% de chance de eu ser linchado, mas espero que respeite o que vou dizer como alguém que já tem certa experiência* com programação e sabe do que está falando.
O que vou dizer a seguir é baseado em minha experiência pessoal com essas Game Engines.
* Vale destacar que tenho experiência como programador e não desenvolvedor de jogos, nunca entrei nesse ambiente de cabeça pois desisti dessa ideia maluca antes mesmo de tentar pra valer. (Maluca para mim que só sei programar)
- Tululoo Game Maker -
Já que citei esse brinquedinho, é bom avisar que ele não é uma boa escolha para usar de verdade.
Como uma plataforma de aprendizado para sair do Game Maker e começar com JavaScript pode lhe servir, mas usar como ferramenta de verdade...
Bem, resumindo o código é uma porcaria de péssima qualidade. E eles conseguiram transformar a praticidade do JavaScript na porcaria da limitação do GML na forma como eles fizeram sua biblioteca.
- RPG Maker, 001 Game Maker e semelhantes -
Fique longe dessas ferramentas mal feitas próprias para um tipo de jogo.
Talvez a praticidade de inserir elementos já prontos para fazer seu joginho de RPG lhe agrade, mas isso não passa de um brinquedo para passar o tempo.
Se quiser se divertir com essas "ferramentas" não há crime, mas não use com intuito de fazer um jogo de verdade... Irá perder MUITO tempo precioso que poderia ser investido em aprender a usar uma ferramenta de verdade.
Essas coisas não servem sequer como plataforma de aprendizado. Sério, FIQUE LONGE!
- Game Maker: Studio -
Eu sei, GM:S é prático, exporta para várias plataformas e sequer precisa programar.
Mas sinceramente, quer mesmo pagar CARO por uma ferramenta de má qualidade que usa a linguagem de criança GML?
Baixar a versão gratuita para aprender não é ruim, mas pagar por isso como se fosse uma ferramenta boa?
Bom, por outro lado se já tem experiência nesta coisa não deixa de ser uma opção. Então se já tem a ferramenta comprada ou se conseguiu em uma promoção vida loka ai, não tem porque abandonar ela.
Mas se não estiver dentro deste "mundo GM", não recomendo que entre. Sério, feche esse portão minino!
- Construct 2 -
Eu não queria falar mal dessa coisa, mas após vasculhar ela mais e mais eu tenho que contra-indicar. (e agora que falei mal do filho predileto do fórum, já estou morto mesmo )
Esse troço que chamam de Game Engine tem um foco como muitas outras, fazer um jogo sem programar.
Mas diferente das outras, no C2 é simplesmente impossível programar.
O C2 conta com um sistema de "já ta tudo pronto, só montar o jogo e exportar", tudo isso parece bom né?
Que nada! É uma porcaria!
Ele tem um sistema de evento muito mal feito, o sistema do jogo é mal organizado, e conta com a infelicidade de ter extremas limitações na versão gratuita.
Para mim, o C2 é uma ARMADILHA para ganhar dinheiro fácil.
Quando você o vê, pensa: "Nossa, se eu pagar vou poder fazer o jogo de forma bem simples sem precisar programar"
A questão, é que as pessoas que querem usar sistemas como esse geralmente são pessoas inexperientes. Logo não tem planos de fazer jogos muito avançados para venda que compense a compra.
Por outro lado, usa-lo como apenas aprendizado é simplesmente INÚTIL. Você não aprende nada de útil usando o C2.
E tem o fato de toda essa facilidade do C2 ser mal organizada, o que dificulta as coisas.
Se você é um designer e simplesmente não quer(ou não consegue) aprender a programar e não quer (ou não consegue) fazer uma equipe, talvez o C2 seja uma má escolha.
Fora isso perderá dinheiro, tempo ou os dois.
- Portugol e Delphi -
Melhor nem falar nada.
Conclusão
Até mesmo com a pior Game Engine do planeta vai existir pessoas que vão conseguir fazer um bom jogo com ela.
A questão de ser uma péssima ou ótima escolha não impossibilita ou possibilita criar um jogo de qualidade.
O que faz o jogo de verdade é você(a menos que você seja o Miss) e não a Game Engine ou a linguagem utilizada.
Mas é claro que certas Game Engines não deixam de ser de péssima qualidade por isso, portanto saiba escolher bem.