I was starting to develop a 2D game in Java and Android Studio, using SurfaceView. My idea was to make my first engine to understand how game engines work, and also get complete of control over the game flow.

I have had many problems, such as FPS, and handling the stop and resume functions. On the other side, I see many 2D games made with Unity that work very nice.

What does Unity use for 2D rendering on an Android?

  • \$\begingroup\$ Take a look at this answer \$\endgroup\$
    – noone
    Jan 20 '17 at 16:14
  • \$\begingroup\$ Addressing your problems with FPS and handling stop and resume, you should look into async loading. With FPS issues, you should decrease graphics settings or read up on this: docs.unity3d.com/Manual/iphone-performance.html \$\endgroup\$
    – user84154
    Jan 20 '17 at 16:16
  • \$\begingroup\$ @GMR516 OP's FPS and resume problems happened with Java and Android Studio \$\endgroup\$
    – noone
    Jan 20 '17 at 16:28
  • \$\begingroup\$ Generally we can give better quality answers to questions like "This is a problem I have, how can I address it?" than "Here's a game/tool with a similar problem - how did they address it?" - There's nothing in the first question that precludes looking at existing software for best practices, but it also doesn't limit the question to discussing those. Quite often, the best solution for your particular case today won't necessarily be the same as the best solution shipped by a different studio in the past, even if they're aiming for similar ends. \$\endgroup\$
    – DMGregory
    Jan 20 '17 at 16:59

According to this, the current Unity rendering options are:

  • OpenGL ES 2
  • OpenGL ES 3
  • Vulkan (experimental)

Android also has a rendering layer called Skia. I don't know whether or not Unity makes use of Skia or not. From what I could tell digging through the documentation, Skia uses Open GL on the backend. (SO post of possible interest: How do the pieces of Android's (2D) Canvas drawing pipeline fit together?)

It's a common technique to use a 3D API like DirectX or OpenGL for 2D rendering - for instance, a lot of game UI gets handled that way.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .