2D Gaming Libraries / Frameworks / Engines for Android [cerrado]

89

¿Hay tales cosas disponibles para ayudarme a construir mi juego de Android?

Bryan Denny
fuente

Respuestas:

63

EDITAR: PSA: Tenga en cuenta que esta respuesta fue escrita en 2012, y 3 años después, existen muchos más motores, y muchos de ellos están hechos exclusivamente para dispositivos móviles. No dé por sentada esta respuesta y busque en Google motores más recientes.


Porto Irrlicht en Android y lo uso para juegos 2D. No es la mejor solución, pero tengo buenos resultados. Probé muchos Java Frameworks, pero Garbage Collector puede retrasar tus juegos durante 0.2s en el teléfono G1 ... Por lo tanto, el marco debe hacer la asignación con mucho cuidado.

Marcos comerciales de C ++:

  • unity3D : muy bueno (disponible en Android, iOS, Web, Windows, OS X) [Juego: Rocket Bunnies]
  • Unreal Engine (comercial): el mejor motor pero no para principiantes [Juego: Dungeon Defenders]

Marcos de código abierto C ++:

  • SDL : probablemente la mejor biblioteca C para desarrolladores de juegos, código abierto y multiplataforma (móvil incluido)
  • Ogre3D : el mejor motor 3D de código abierto pero es un marco grande
  • Irrlicht : buen rendimiento, marco ligero [Juego: Moblox]
  • Linderdaum Engine : código abierto para Windows y Android
  • Cocos2d-x : plataforma cruzada de código abierto

Marcos de código abierto de Java:

  • LibGDX : código abierto, muy popular, admite múltiples plataformas, admite mosaico , Box2D y otros, buena documentación
  • AndEngine (Open Source): buen rendimiento. Para obtener documentación, busque ejemplos y lea el código fuente; pero es la biblioteca gratuita para comenzar un proyecto de juego [Juego: Drop Block]
  • cocos2d para Android: problema del recolector de basura
  • rokon : buen rendimiento y diseñado para dispositivos móviles, pero el proyecto parece muerto.

Motor de Física:

  • box2d (OpenSource): rápido y fácil
  • jbox2d (OpenSource): tan lento en Java que hice un contenedor JNI con SWIG para usar box2d nativo (AndEngine hace lo mismo)
  • chipmunk (OpenSource): rápido pero prefiero box2d
  • bala (OpenSource): excelente motor 3D

Advertencia, con Froyo y JIT, las bibliotecas Java funcionan mucho mejor. Pero los problemas del recolector de basura siempre son válidos. Con Gingerbread, el recolector de basura es continuo, así que no hay problema.

Ellis
fuente
1
También me gustaría agregar cocos2d-x, está en la licencia MIT y funciona en Android, iOS y Windows Phone. Creo que esto es diferente de lo que se mencionó anteriormente, ya que este es específicamente en C ++ no en Java.
Jamornh
AndEngine toma prestado el contenedor box2d de libgdx.
Matsemann
66
Unity3d no es C ++. Es compatible con C #, un dialecto Javascript y boo
lhk
Definitivamente puedes hacerlo a través de Native si así lo deseas. Los chicos que hicieron Tiny Words hicieron jmoses.co/2014/10/23/…
John Moses
1
SDL no es Java; es C. El Java que puede haber experimentado es un contenedor / enlaces que llama al código C. Ninguna de las funciones del motor ocurre en Java.
Slipp D. Thompson
24

Me sorprende que nadie haya mencionado libgdx. http://code.google.com/p/libgdx/

Grayger
fuente
libgdx y AndEngine son mejores para 2d, aquí puedes encontrar más enlaces
michael
@michael AndEngine tutorial tutorial pegajoso: solo usa un tenedor de un tenedor de AndEngine ... muchos problemas, errores. No recomiendo aprenderlo desde allí.
matheszabi el
11

AndEngine es bastante nuevo, pero es de código abierto y parece prometedor.

Auto descripcion:

Motor de juego Android 2D OpenGL gratuito. AndEngine es desarrollado por Nicolas Gramlich.

cstack
fuente
1
He experimentado un poco en esto, viniendo de Cocos2d en iPhone, y hasta ahora parece bastante bueno para juegos 2D basados ​​en sprites. El proyecto parece activo y tiene una comunidad de foros decente alrededor.
Matt Guest
Acerca de AndEngine ... Empecé a hacer un juego bastante básico y después de un tiempo comencé a encontrar críticas negativas sobre AndEngine, especialmente su rendimiento con muchos sprites. Entonces, hice una prueba y agregué 20 sprites a mi juego mientras aún estaba en el desarrollo inicial. Hice todo "por el libro" y casi mató mi deseo HTC Z. Bastante decepcionado y cambiando a LibGDX.
@AscensionSystems No sé qué hiciste allí, pero sé que lo estabas haciendo mal. Con un Desire Z puedes tener fácilmente cientos de Sprites en movimiento en la pantalla. Simplemente ejecute los puntos de referencia en los ejemplos y verá cómo hacerlo correctamente.
Nicolas Gramlich
Gracias, Nicolas. Aprecio el hecho de que estés "defendiendo" tu motor, pero, francamente, no estaba haciendo nada malo. Tiene algo que ver con Android y un error con las llamadas de VBO también activa el GC. Podría hacer que el andengine funcionara bien deshabilitando los VBO, pero eso también hizo que mi teléfono se calentara tanto que fallaría después de unos 5 minutos de juego. Tuve el mismo problema con libGDX, así que escribí mi propio motor en C ++. Tampoco puedes obtener "cientos" en la pantalla usando la aplicación de ejemplos. Podría obtener alrededor de 90 128x128, 2 sprites físicos animados "frame" antes de que se quedara con su motor.
(continuación) ... en mi motor puedo obtener 170, 512x512, 16 sprites físicos animados de "fotogramas" en la pantalla antes de ver que mi velocidad de fotogramas incluso comienza a caer por debajo de 60 fps.
8

Creo que podrías usar el juego Replica Island de Chris Pruett como ejemplo de un juego en 2d. Creo que se supone que es una base para otros juegos, como se explica en este video de Google I / O 2010. Puedes ver el juego aquí .

arielsan
fuente
Sí, ese es un buen video, definitivamente vale la pena verlo especialmente cuando habla de eficiencia.
Spidey
7

Unity3D (que técnicamente se puede usar para hacer juegos 2D) está "próximamente" para Android: http://unity3d.com/

Bryan Denny
fuente
Sí, estoy totalmente de acuerdo. En segundo lugar, si paga por las licencias de Unity3D, puede publicar el mismo trabajo para múltiples plataformas. Entonces, comienza con licencias GRATUITAS de WINDOWS / MAC. Aprende el programa. Luego actualice la licencia a cualquier plataforma que considere adecuada primero. Sin embargo, actualmente Android es solo una edición PRO, lo que significa que necesita Unity3D PRO + Android PRO = $ 3000 ...
BerggreenDK
Después de haber hecho 10-15 juegos 2D usando Cocos2D para iOS, hice uno usando Unity 4.6 y fue una experiencia horrible, lenta y con errores, para iOS, no puedo decir nada sobre el rendimiento para otras plataformas. Mientras que 4.6 mejoró bastante trabajando con material 2D desde antes, no está cerca de un motor de renderizado 2D dedicado como Cocos2D o probablemente la mayoría. El rendimiento es horrible y todavía están luchando con el soporte de iOS de 64 bits. Dicho esto, por supuesto, la fuerza multiplataforma es la mayor ... fuerza.
Jonny
4

Rokon se ve bastante bien, no lo he probado yo mismo, pero parece bastante activo.

Araña
fuente
4

androidbox2d es el puerto de Android de Box2D. Box2D es un motor de física de cuerpo rígido 2d rico en funciones.

Adam Harte
fuente
4

Hay un puerto Android de SDL actualmente en curso, y SDL es probablemente el mejor marco de gráficos 2D que existe. Fue diseñado por uno de los líderes de Blizzard, por lo que sabes que se ha adquirido cierta experiencia en la construcción de juegos.

Mason Wheeler
fuente
3

Motor de juego SIO2. Acabo de lanzar una nueva versión con soporte completo para Android. Puedes construir juegos en 2D y 3D usándolo y portarlos entre diferentes plataformas. http://sio2interactive.com

Gabriel
fuente
3

Slick2D y GOLDEN T GAME ENGINE

Eliezer
fuente
+1 para Slick2D: he hecho un poco y parece bastante sólido. El desarrollador también ha lanzado un par de juegos de Android basados ​​en él.
mrohlf
2

Estoy trabajando en un motor de juegos 2D de código abierto llamado YoghurtGum, que se supone que es para Windows Mobile y Android. Sin embargo, portar todo a Android C ++ ha resultado extremadamente difícil.

Esta es la respuesta más inútil que he tenido, soy muy consciente.

caballero666
fuente
2

Si desea desarrollar en AIR para Android, puede usar Flash. Flash en sí mismo no tiene características específicas del juego, pero gracias al éxito de Flash en la web, hay una gran cantidad de bibliotecas de terceros especialmente diseñadas para juegos.

Algunos de los marcos de terceros más populares para juegos en Flash incluyen Flixel (http://flixel.org/) y PushButtonEngine (http://pushbuttonengine.com/), que están completamente diseñados para el desarrollo de juegos. Flash también tiene una versión de Box2D (motor de física mencionado anteriormente - http://box2dflash.sourceforge.net/ ) y hay varias bibliotecas 3D, como Papervision (http://code.google.com/p/papervision3d/) si quieres seguir ese camino en el futuro.

Sin embargo, la principal desventaja de desarrollar en AIR es que estoy bastante seguro de que tendrá que apuntar a Froyo 2.2 o posterior, por lo que los teléfonos más antiguos quedarán fuera.

Kyle Rodgers
fuente
Además de AndEngine, he estado jugando con AIR para Android Betas, y son bastante agradables, aunque un poco lentos. Creo que funcionará bien para juegos de estrategia o juegos de acción sin demasiados elementos. Sin embargo, he estado trabajando con la versión beta en 2.1, por lo que la versión final en 2.2 podría ser significativamente rápida, todavía no estoy seguro. Definitivamente algo para mirar.
Matt Guest
1

Cocos2D-x es un puerto de Cocos2D para iPhone escrito en C ++ dirigido al NDK de Android y se está desarrollando activamente para lograr la paridad de características con la versión de iPhone. No tendrá problemas de recolección de basura, y obtendrá un puerto relativamente fácil para iOS, Win32 y, probablemente, OSX en el futuro cercano.

Steve Tranby
fuente
0

PlayN es un marco de juego 2D multiplataforma dirigido a Android además de HTML5, Flash y JVM. Es algo nuevo, pero se usó para escribir la implementación HTML5 de Angry Birds, y tiene una comunidad razonablemente activa.

samskivert
fuente