89
\$\begingroup\$

Are any such things available to help me build my Android game?

\$\endgroup\$
63
\$\begingroup\$

EDIT: PSA: Keep in mind this answer was written in 2012, and 3 years later, a lot more of engines exists, and lots of them are made purely for mobile devices. Don't take this answer for granted and search google for more recent engines.


I port Irrlicht on Android and use it for 2D games. It is not the best solution but I have strong performances. I tried many Java Frameworks but the Garbage Collector can lag your games during 0.2s on G1 phone... So the framework should do allocation very carefully.

Commercial C++ frameworks:

  • unity3D: very good (available on Android, iOS, Web, Windows, OS X) [Game: Rocket Bunnies]
  • Unreal Engine (commercial): the best engine but not for beginners [Game: Dungeon Defenders]

Open Source C++ frameworks:

  • SDL: probably best C library for game dev, open source and cross platform (mobile included)
  • Ogre3D: the best open source 3d engine but it is a large framework
  • Irrlicht: good performance, light framework [Game: Moblox]
  • Linderdaum Engine: open source for Windows and Android
  • Cocos2d-x: open source cross platform

Java Open Source Frameworks:

  • LibGDX : Open Source, Very Popular, Supports multiple platforms, Support for Tiled, Box2D and other, Good Documentation
  • AndEngine (Open Source): good performance. For documentation, look examples and read source code; but it is the Free library to begin a game project [Game: Drop Block]
  • cocos2d for Android: Garbage Collector problem
  • rokon: good performance and designed for mobile but project seems dead.

Physics Engine:

  • box2d (OpenSource): fast and easy
  • jbox2d (OpenSource): so slow on Java that I made a JNI wrapper with SWIG to use native box2d (AndEngine does the same)
  • chipmunk (OpenSource): fast but I prefer box2d
  • bullet (OpenSource): excellent 3D engine

Warning, with Froyo and JIT, Java libraries perform much better. But the Garbage Collector problems are always valid. With Gingerbread, the garbage collector is continous so no problem.

\$\endgroup\$
  • 1
    \$\begingroup\$ I'd also like to add cocos2d-x, it is on the MIT license and works on both Android, iOS, and Windows Phone. I believe this is different than what was mentioned above since this one is specifically in C++ not Java. \$\endgroup\$ – Jamornh May 23 '12 at 18:19
  • \$\begingroup\$ AndEngine borrows the box2d wrapper from libgdx. \$\endgroup\$ – Matsemann May 24 '12 at 15:46
  • 6
    \$\begingroup\$ Unity3d is not C++. It supports C#, a Javascript dialect and boo \$\endgroup\$ – lhk Dec 27 '12 at 11:22
  • \$\begingroup\$ You can definitely do it through native if you wanted to as well. The guys who made Tiny Words did jmoses.co/2014/10/23/… \$\endgroup\$ – John Moses Oct 23 '14 at 15:15
  • 1
    \$\begingroup\$ SDL is not Java; it's C. The Java you may have experienced is a wrapper/bindings that calls into the C code. None of the engine's functionality happens in Java. \$\endgroup\$ – Slipp D. Thompson Jan 13 '16 at 16:23
3
\$\begingroup\$

SIO2 Game Engine. Just released a new version with full Android Support. You can build 2D and 3D games using it and port between different platforms. http://sio2interactive.com

\$\endgroup\$
3
\$\begingroup\$

Slick2D and GOLDEN T GAME ENGINE

\$\endgroup\$
  • \$\begingroup\$ +1 for Slick2D -- I've done a little bit with it and it seems pretty solid. The developer has released a couple of Android games based on it, too. \$\endgroup\$ – mrohlf Aug 30 '11 at 17:54
2
\$\begingroup\$

I'm working on an open source 2d game engine called YoghurtGum which is supposed to be for both Windows Mobile and Android. However, porting the whole thing to Android C++ has proven extremely hard.

This is most unhelpful answer ever, I'm well aware.

\$\endgroup\$
2
\$\begingroup\$

If you fancy developing in AIR for Android then you could use Flash. Flash itself doesn't have any game specific features, really, but thanks to Flash's success on the web there are a huge amount of 3rd party libraries for it especially designed for games.

Some of the more popular 3rd party frameworks for games in Flash include Flixel (http://flixel.org/) and PushButtonEngine (http://pushbuttonengine.com/), which are fully designed for game development. Flash also has a version of Box2D (physics engine mentioned above - http://box2dflash.sourceforge.net/) and there are various 3D libraries, such as Papervision (http://code.google.com/p/papervision3d/) if you want to go down that road in the future.

The main disadvantage of developing in AIR, though, is that I'm pretty sure that you'll need to target Froyo 2.2 or later, though, so older handsets will get left out.

\$\endgroup\$
  • \$\begingroup\$ In addition to AndEngine, I've been playing with the AIR for Android Betas, and they are pretty nice, if a little slow. I think it'll work well for strategy games, or action games without too many elements. I've been working with the beta on 2.1 though, so the final release on 2.2 might be significantly fast, I'm not sure yet. Definitely something to watch. \$\endgroup\$ – Matt Guest Aug 30 '10 at 20:16
0
\$\begingroup\$

PlayN is a multiplatform 2D game framework that targets Android in addition to HTML5, Flash and JVM. It is somewhat new, but was used to write the HTML5 implementation of Angry Birds, and has a reasonably active community.

\$\endgroup\$

Not the answer you're looking for? Browse other questions tagged or ask your own question.