Bibliotecas de jogos 2D / Frameworks / Engines para Android [fechado]

89

Existem itens disponíveis para me ajudar a criar meu jogo Android?

Bryan Denny
fonte

Respostas:

63

EDIT: PSA: Lembre-se de que esta resposta foi escrita em 2012 e, 3 anos depois, existe muito mais mecanismos, e muitos deles são feitos exclusivamente para dispositivos móveis. Não tome essa resposta como garantida e pesquise no Google por mecanismos mais recentes.


Porto o Irrlicht no Android e o uso para jogos em 2D. Não é a melhor solução, mas tenho desempenhos fortes. Eu tentei muitos frameworks Java, mas o Garbage Collector pode atrasar seus jogos durante 0,2s no telefone G1 ... Portanto, o framework deve fazer uma alocação com muito cuidado.

Estruturas comerciais C ++:

  • unity3D : muito bom (disponível no Android, iOS, Web, Windows, OS X) [Jogo: Rocket Bunnies]
  • Unreal Engine (comercial): o melhor mecanismo, mas não para iniciantes [Jogo: Dungeon Defenders]

Estruturas C ++ de código aberto:

  • SDL : provavelmente a melhor biblioteca C para desenvolvedores de jogos, código aberto e multiplataforma (incluindo dispositivos móveis)
  • Ogre3D : o melhor mecanismo 3D de código aberto, mas é um grande quadro
  • Irrlicht : bom desempenho, estrutura leve [Jogo: Moblox]
  • Linderdaum Engine : código aberto para Windows e Android
  • Cocos2d-x : plataforma cruzada de código aberto

Frameworks de código aberto Java:

  • LibGDX : Código aberto, muito popular, suporta múltiplas plataformas, suporte para Tiled, Box2D e outros, boa documentação
  • AndEngine (código aberto): bom desempenho. Para documentação, veja exemplos e leia o código fonte; mas é a biblioteca gratuita para iniciar um projeto de jogo [Jogo: Drop Block]
  • cocos2d para Android: problema do coletor de lixo
  • rokon : bom desempenho e projetado para dispositivos móveis, mas o projeto parece morto.

Motor de Física:

  • box2d (OpenSource): rápido e fácil
  • jbox2d (OpenSource): tão lento no Java que criei um wrapper JNI com SWIG para usar o box2d nativo (o AndEngine faz o mesmo)
  • chipmunk (OpenSource): rápido, mas eu prefiro o box2d
  • bullet (OpenSource): excelente mecanismo 3D

Atenção, com o Froyo e o JIT, as bibliotecas Java têm um desempenho muito melhor. Mas os problemas do Garbage Collector são sempre válidos. Com Gingerbread, o coletor de lixo é contínuo, então não há problema.

Ellis
fonte
11
Eu também gostaria de adicionar o cocos2d-x, ele está na licença MIT e funciona no Android, iOS e Windows Phone. Eu acredito que isso é diferente do que foi mencionado acima, pois este é especificamente em C ++ e não em Java.
21412 Jamornh
O AndEngine empresta o wrapper box2d da libgdx.
Matsemann 24/05
6
O Unity3d não é C ++. Ele suporta C #, um dialeto Javascript e boo
lhk
Definitivamente, você pode fazê-lo através do nativo, se quiser. Os caras que criaram Tiny Words fizeram jmoses.co/2014/10/23/…
John Moses
11
SDL não é Java; é C. O Java que você pode ter experimentado é um wrapper / ligações que chama no código C. Nenhuma das funcionalidades do mecanismo acontece em Java.
Slipp D. Thompson
24

Estou surpreso que ninguém tenha mencionado a libgdx. http://code.google.com/p/libgdx/

grayger
fonte
libgdx e AndEngine são os melhores para 2d, aqui você pode encontrar um pouco mais de ligação
michael
@michael AndEngine fórum tutorial pegajoso: basta usar um garfo de um garfo de AndEngine ... um monte de problemas, bugs. Eu não recomendo aprender a partir daí.
matheszabi
11

O AndEngine é bastante novo, mas é de código aberto e parece promissor.

Auto descrição:

Livre Android 2D OpenGL Game Engine. AndEngine é desenvolvido por Nicolas Gramlich.

cstack
fonte
11
Eu experimentei um pouco isso, vindo do Cocos2d no iPhone, e até agora parece muito bom para jogos 2D baseados em sprites. O projeto parece ativo e possui uma comunidade decente no fórum.
Matt Visitante
Sobre o AndEngine ... Comecei a fazer um jogo bem básico e depois de um tempo comecei a encontrar críticas negativas sobre o AndEngine, especialmente seu desempenho com muitos sprites. Então, eu fiz um teste e adicionei 20 sprites ao meu jogo enquanto ainda estava no desenvolvimento inicial. Eu fiz tudo "pelo livro" e quase matou o meu desejo HTC Z. Muito decepcionado e mudando para o LibGDX.
@AscensionSystems Não sei o que você fez lá, mas sei que você estava fazendo errado. Com um Desire Z, você pode facilmente ter centenas de Sprites em movimento na tela. Basta executar os benchmarks nos exemplos e você verá como fazê-lo corretamente.
Nicolas Gramlich
Obrigado Nicolas, agradeço o fato de você estar "empolgado" com o seu motor, mas sinceramente não estava fazendo nada de errado. Tem algo a ver com o Android e um bug com as chamadas da VBO também acionando o GC. Eu conseguia que o andengine funcionasse bem desativando os VBO's, mas isso também fazia meu telefone ficar tão quente que ficaria danificado após cerca de 5 minutos de jogo. Eu tive o mesmo problema com o libGDX, então escrevi meu próprio mecanismo em C ++. Além disso, você não pode obter "centenas" na tela usando o aplicativo de exemplos. Eu poderia obter cerca de 90 sprites físicos animados de 128 "128" e 2 "quadros" antes que isso ficasse com o seu mecanismo.
(continuado) ... no meu mecanismo, posso exibir sprites físicos animados de 170, 512x512, 16 "quadros" na tela antes de ver minha taxa de quadros começar a cair abaixo de 60 fps.
8

Eu acho que você poderia usar o jogo Replica Island de Chris Pruett como um exemplo de um jogo 2D. Acho que deveria ser a base para outros jogos, conforme explicado neste vídeo do Google I / O 2010. Você pode assistir ao jogo aqui .

arielsan
fonte
Sim, é um bom vídeo, definitivamente vale a pena assistir, especialmente quando ele fala sobre eficiência.
Spidey
7

O Unity3D (que tecnicamente pode ser usado para criar jogos em 2D) está "chegando em breve" para Android: http://unity3d.com/

Bryan Denny
fonte
Sim, eu concordo totalmente. Em segundo lugar, se você pagar pelas licenças do Unity3D, poderá publicar o mesmo trabalho para várias plataformas. Então você começa com a licença gratuita do WINDOWS / MAC. Aprenda o programa. Em seguida, atualize a licença para qualquer plataforma que você achar melhor primeiro. Atualmente Android porém, é única edição PRO o que significa que você precisa Android PRO = $ 3000 Unity3D PRO + ...
BerggreenDK
Tendo feito de 10 a 15 jogos 2D usando o Cocos2D para iOS, fiz um usando o Unity 4.6 e foi uma experiência horrível, lenta e com bugs - para iOS - não posso dizer nada sobre desempenho para outras plataformas. Embora o 4.6 tenha melhorado bastante trabalhando com material 2D desde o início, não está nem perto de um mecanismo de renderização 2D dedicado como o Cocos2D ou provavelmente o outro. O desempenho é péssimo e eles ainda estão lutando com o suporte ao iOS de 64 bits. Dito isto, é claro que a força multiplataforma é a maior ... força.
26915 Jonny
5

O cocos2d para Android é baseado na biblioteca cocos2d do iPhone . Não tenho certeza de como é utilizável no momento, mas vale a pena conferir.

Firas Assaad
fonte
4

Rokon parece muito bom, ainda não tentei, mas parece bastante ativo.

Spidey
fonte
4

androidbox2d é a porta android do Box2D. O Box2D é um mecanismo de física de corpo rígido 2d rico em recursos.

Adam Harte
fonte
4

Existe uma porta Android de SDL em andamento no momento, e SDL é provavelmente a melhor estrutura de gráficos 2D disponível no mercado. Ele foi projetado por um dos líderes da Blizzard, para que você conheça alguma experiência real em criação de jogos.

Mason Wheeler
fonte
3

Mecanismo de jogo SIO2. Acabei de lançar uma nova versão com suporte completo para Android. Você pode criar jogos 2D e 3D usando-o e portando entre plataformas diferentes. http://sio2interactive.com

Gabriel
fonte
3

Slick2D e GOLDEN T GAME MOTOR

Eliezer
fonte
+1 para o Slick2D - eu fiz um pouco com isso e parece bastante sólido. O desenvolvedor também lançou alguns jogos para Android.
mrohlf
2

Estou trabalhando em um mecanismo de jogo 2D de código aberto chamado YoghurtGum, que deveria ser para Windows Mobile e Android. No entanto, portar tudo para o Android C ++ se mostrou extremamente difícil.

Esta é a resposta mais inútil de todas, estou bem ciente.

knight666
fonte
2

Se você gosta de desenvolver no AIR for Android, pode usar o Flash. O Flash em si não possui nenhum recurso específico para o jogo, mas graças ao sucesso do Flash na Web, há uma enorme quantidade de bibliotecas de terceiros, especialmente projetadas para jogos.

Algumas das estruturas de terceiros mais populares para jogos no Flash incluem Flixel (http://flixel.org/) e PushButtonEngine (http://pushbuttonengine.com/), totalmente projetadas para o desenvolvimento de jogos. O Flash também possui uma versão do Box2D (mecanismo de física mencionado acima - http://box2dflash.sourceforge.net/ ) e existem várias bibliotecas 3D, como o Papervision (http://code.google.com/p/papervision3d/) se você quiser seguir esse caminho no futuro.

A principal desvantagem do desenvolvimento no AIR, porém, é que tenho certeza de que você precisará direcionar o Froyo 2.2 ou posterior, para que aparelhos mais antigos sejam deixados de fora.

Kyle Rodgers
fonte
Além do AndEngine, eu tenho jogado com o AIR for Android Betas, e eles são muito legais, embora um pouco lentos. Eu acho que funcionará bem em jogos de estratégia ou jogos de ação sem muitos elementos. Eu tenho trabalhado com o beta no 2.1, então a versão final no 2.2 pode ser significativamente rápida, ainda não tenho certeza. Definitivamente algo para assistir.
Matt Visitante
1

O Cocos2D-x é uma porta do Cocos2D para iPhone escrita em C ++ direcionada ao Android NDK e está sendo ativamente desenvolvida para obter paridade de recursos com a versão do iPhone. Não haverá problemas de coleta de lixo, e você terá uma porta relativamente fácil para iOS, Win32 e provavelmente OSX em um futuro próximo.

Steve Tranby
fonte
0

PlayN é uma estrutura de jogo 2D multiplataforma que tem como alvo o Android, além de HTML5, Flash e JVM. É um pouco novo, mas foi usado para escrever a implementação HTML5 do Angry Birds e tem uma comunidade razoavelmente ativa.

samskivert
fonte