Plataformas de desenvolvimento de jogos

Olá,

Faz um tempo que não frequento mais aqui (mesmo embora eu goste bastante, é muito tópico e se eu ficar acompanhando eu não trabalho, rsrsr), e agora juntei uma galera para desenvolvermos games (não temos intenção, pelo menos de início, ganhar a vida fazendo jogos… O incentivo é que o jogo que mais jogávamos foi bloqueado no Brasil provavelmente pelo uso excessivo de hacks de usuários brasileiros), então pensamos em desenvolver um jogo “parecido” com aquele para jogarmos e para disponibilizarmos para os brasileiros jogar gratuitamente.

O problema é que faz muito tempo que não desenvolvo jogo nenhum (e nunca desenvolvi profissionalmente, foi somente “brincadeiras”) e portanto não conheço bem as alternativas para desenvolvimento. Estamos decidindo a plataforma (que estávamos pensando em UDK, mas depois que vimos que tiraram o suporte a linux desanimamos de continuar estudando essa plataforma, mas se alguém souber uma boa forma de exportar o executável do jogo para linux podemos pensar nesse assunto) e estamos com as seguintes dúvidas: (obs, não queremos gastar com licença)

  1. Unity exporta o jogo para linux?
  2. Alguém já ouviu falar do game maker (tem no steam)? Sabe se é bom a versão gratuita?
  3. Acham vantagem, mesmo que seja para aprender (a integrar com 3D), trabalharmos diretamente com Java e/ou C++?
  4. Se desenvolvermos um jogo em Java com OpenGL hoje, ele rodará bem em todas as plataformas com suporte a java e opengl? Ou precisa fazer alguma coisa para rodar o OpenGL?
  5. O DirectX tem muita vantagem em relação ao OpenGL? Não existe DirectX para Linux “sem usar emulador” né?

Já vi (e estou vendo) outros tópicos aqui do Guj sobre jogos, estamos pensando nas alternativas… Nosso jogo funcionaria muito bem com o UDK…

1 - Sim, e recomendo: http://unity3d.com/unity/multiplatform/ a UDK também é uma ótima alternativa.
2 - Já ouvi falar. É bem limitado, por ser um maker e não uma Engine.
3 - Diretamente com Java, não, a menos que o foco seja Android. Com C++ ou C#, sim.
4 - Não. O Java não tem suporte à OpenGL. Ela será acessada externamente, através da LWJGL, Então precisa da LWJGL para a plataforma alvo.
5 - Desde o pipeline programável, nenhuma vantagem.

Me diz uma coisa, senão ficará muito difícil te ajudar: Como é esse jogo? 2D? 3D? Primeira pessoa? Plataforma?

Olá VinyGodoy,

obrigado pela resposta.

A ideia “inicial” é fazer um MOBA 3D em 3ª pessoa, estilo “S4 League”, “Brawl Busters” e afins, mas com recursos específicos e depois prepararmos um “story” multiplayer.

Agora, voltando.

  1. O Unity é pago não? Ouvi dizer que o custo dele é bem elevado (caso algum dia, mesmo não sendo a intenção hoje, a gente acabe monetizando o jogo de alguma forma). Conhece as diferenças entre Unity e UDK? Estou tendendo mais para UDK (mas queria exportar para Linux também e talvez para PS3, mas PS3 é só porque tenho um, rsrsr)
  2. Pensei que o Game Maker fosse uma engine… Olhei um pouco só por cima, não encontrei muita referência… Não temos interesse em usar maker…
  3. C# rodaria só em Windows não? Não conheço C#, C++ tenho uma boa tendência a usar (gosto de C++, mesmo estando meio enferrujado e não conhecendo tão bem). Android no momento não estamos pensando… Mais é em Windows e Linux.
  4. Sei que o Java não acessa direto o OpenGL, minha pergunta ficou meio vaga mesmo, rsrsr, mas a dúvida nesse ponto é mais especificamente se vou ter que fazer código diferente para Windows e Linux… Nunca usei java com OpenGL mas acredito que seja só trocar as libs de acordo com o SO, da mesma forma que o SWT, é isso mesmo?
  5. Então acho que vou atrás de OpenGL mesmo… Mas ainda estou na dúvida se uso alguma engine como UDK ou Unity ou programo “do zero”… acho que usar a engine vai ser mais prático e vai ficar melhor o resultado final, mas estou com receio de não conseguir exportar para Linux…

1- É pago sim, custa U$1500,00. É considerado um valor baixo. Existe a opção free, sem alguns recursos, já dá para fazer ótimos jogos nela. A UDK é free até que sua empresa fature um determinado valor com ela, depois disso eles cobram um percentual sobre seu faturamento. Se quer algo 100% free use uma combinação de Ogre +BulletPhysics.

3 - A Unity usa C#, assim como o DevKit do PS Vita e o Windows RT. São ótimas plataformas para se fazer games comercialmente, por isso a recomendação.

4 - Isso mesmo. Não vai ter que fazer código diferente. :slight_smile:

5 - Use uma engine.

  1. Também considero 1500 dólares um valor baixo pelos recursos que ele fornece, a questão é que não queríamos gastar mesmo, rsrsr. Por isso pensamos no UDK, a licença comercial do UDK é 99 dólares e mais 25% dos nossos lucros que passarem de 50.000 dólares. Mas como não vamos começar com nada comercial, pelo menos de início não teríamos que comprar a licença do UDK. Não conhecia Ogre e BulletPhysics, vou dar uma estudada neles. Tem referências “getting started” delas? Rodam bem em Windows e Linux?
  2. Mas C# não roda bem em linux né? Já vi umas implementações de .net para linux mas nunca consegui fazer as aplicações rodarem bem. (mas desisti de tentar rodar essas aplicações no linux faz uns 3 anos), agora já está funcionando melhor?
  3. Estou tendendo mesmo a usar uma engine pronta.

Curiosidade, C# tem melhor desempenho que o java?

Cuidado que o valor de 50.000 não é por jogo, mas sim, por empresa. No seu caso, como é um projeto indie sem muita pretensão, é uma boa. Mas, se o projeto der super certo, sai bem mais caro que a Unity.

[quote]3. Mas C# não roda bem em linux né? Já vi umas implementações de .net para linux mas nunca consegui fazer as aplicações rodarem bem. (mas desisti de tentar rodar essas aplicações no linux faz uns 3 anos), agora já está funcionando melhor?
[/quote]

Na Unity roda perfeitamente. Mas não recomendaria no seu caso fora da Unity.

Não, mas tem plataformas com suporte decente para jogos, e comercialmente mais interessantes. Também tem um fabricante que tem interesse no mercado de games, e investe nele.
Isso resulta em boas APIs e uma comunidade mais forte. Mas realmente, é melhor se vc quisesse Microsoft.

[quote]Cuidado que o valor de 50.000 não é por jogo, mas sim, por empresa. No seu caso, como é um projeto indie sem muita pretensão, é uma boa. Mas, se o projeto der super certo, sai bem mais caro que a Unity.[/quote]Sim, pensei nisso também… pode até ser que dê super certo, mas no momento não é exatamente o nosso foco. Mas o que me chamou a atenção foram Ogre e BulletPhysics que mencionaste. A noite vou dar uma procurada neles para ver melhor se tem os recursos que preciso. Sabe me informar se são muito mais trabalhosos que o o UDK+Blender para desenvolver?

[quote]Não, mas tem plataformas com suporte decente para jogos, e comercialmente mais interessantes. Também tem um fabricante que tem interesse no mercado de games, e investe nele.
Isso resulta em boas APIs e uma comunidade mais forte. Mas realmente, é melhor se vc quisesse Microsoft.[/quote]Pensei que o C++ teria melhores bibliotecas e maior compatibilidade de plataformas que o C#. Não corri muito atrás de aprender C# porque é linguagem microsoft, rsrsr. Eu até gosto do Windows, mas só para jogos mesmo…

É mais sim por serem 2 APIs distintas, mas é mais flexível também. E totalmente Open Source. O Torchlight foi desenvolvido com a Ogre.
Vc ainda vai usar o Blender para a modelagem.

Faz sentido, principalmente se seu foco é Linux. Citei o C# por ser similar ao Java e ser comercialmente mais interessante do que este (além de bem melhor de programar no caso de games).
Mas no quesito portabilidade, nada supera o C++.

[quote]É mais sim por serem 2 APIs distintas, mas é mais flexível também. E totalmente Open Source. O Torchlight foi desenvolvido com a Ogre.
Vc ainda vai usar o Blender para a modelagem.[/quote]Vou analisar direitinho o ogre e o bulletphysics, só depois vou escolher a plataforma.

Agradeço todas as respostas, me ajudou bastante. Vou analisar bem o Ogre e o BullefPhysics e deṕois posto aqui o que eu decidir!

Muito obrigado!