Parece que libGDX es mejor que Android SDK para el desarrollo de aplicaciones. ¿Por qué no está derrotando el SDK en el mercado de desarrollo?

Los desarrolladores de juegos generalmente no les gusta Java.

Con la única excepción notable de Minecraft, muy pocos juegos importantes están escritos en Java. Esto incluye juegos escritos para Android.

Según mis observaciones, la mayoría de los juegos en Android e iOS están escritos en uno de:

  • Unidad3d
  • Cocos2d-x
  • UE4
  • Un motor C / C ++ personalizado, que a menudo incluye Lua para secuencias de comandos

… en un orden aproximado de popularidad.

Entiendo que libgdx es en realidad un motor bastante decente. Pero si has jugado Minecraft durante un período de tiempo prolongado, notarás que se bloquea periódicamente, a veces durante unos segundos a la vez.

Los desarrolladores profesionales de juegos odian este “jank”. Y es difícil de evitar debido a la forma en que Java trata con la memoria. No solo es basura recolectada, sino que muchos de los patrones de lenguaje estándar alientan asignaciones adicionales.

Por lo tanto, el trabajo que debe hacer en la administración de la memoria para evitar el jank en Java en realidad termina siendo más que el trabajo necesario para escribir el juego en C ++. Y C ++ es simplemente más rápido. Entonces Java simplemente pierde.

Si prefiere Java, probablemente sea mejor aprender C # y usar Unity3d.

Pero libgdx es una opción razonable si te gusta. Simplemente no se sorprenda si sigue siendo impopular.