Obtén novedades de Google for Games Developer Summit en g.co/gamedevsummit

Conceptos básicos sobre el desarrollo de juegos para Android

En esta guía, se presentan a los nuevos desarrolladores de juegos las principales herramientas y bibliotecas que se usan en el desarrollo de juegos para Android. Las guías de desarrollo de juegos para Android están destinadas a los desarrolladores que ya hayan configurado o planificado la mayor parte de su entorno de desarrollo de juegos. Por ejemplo, los desarrolladores con experiencia en juegos ya tienen uno en desarrollo que usa un motor de juegos, un IDE y una API de gráficos específicos.

En la mayoría de los casos, recomendamos opciones más fáciles de usar para los principiantes, en lugar de las opciones avanzadas que maximizan el rendimiento. Si ya conoces estas herramientas y bibliotecas, puedes consultar la descripción general para encontrar las guías que admiten los tipos específicos de optimización, como alto rendimiento o mayor duración de batería.

Motores de juego

Un motor de juego es un framework de software que incluye un conjunto de bibliotecas y herramientas para el desarrollo de juegos. Puedes usar las bibliotecas para agregar una amplia variedad de funciones a tu juego que, de otro modo, no permitirían que te enfoques en el contenido y la optimización del juego. Por lo general, estas funciones incluyen gráficos, animación, sonido, bucles de juego, compatibilidad con dispositivos de entrada y mucho más.

Además, los motores de juego suelen incluir un IDE y otras herramientas para configurar funciones, así como diseñar, desarrollar y exportar tu juego a Android.

Una de las decisiones más importantes que debes tomar cuando desarrollas un juego es si deseas desarrollar un motor de juego nuevo, personalizar uno existente, o bien usar uno sin modificar.

Compilación previa

Esta es la opción que recomendamos si estás dando tus primeros pasos en el desarrollo de juegos. Con un motor de juego precompilado, no necesitas dedicar tiempo al desarrollo de un motor de juego ni a agregar bibliotecas AGDK, lo que lo convierte en la forma más sencilla de desarrollar juegos para Android. Sin embargo, a fin de desarrollar juegos para Android sin modificar un motor de juego, este último ya debe ser compatible con el desarrollo de Android.

Cuando se usa un motor de juego que se compiló con anterioridad, se ofrecen optimizaciones adicionales para Android, herramientas de flujo de trabajo y prácticas recomendadas. Además, ofrecemos los Servicios de Google Play, que incluyen una amplia variedad de herramientas de distribución y redes sociales.

Estos son algunos motores de juego existentes que admiten el desarrollo de Android:

  • Godot: un motor de juego de código abierto que admite varios lenguajes de programación, incluidos GDScript, C# y C++.
  • Defold: un motor de juego de código abierto que usa el lenguaje de programación Lua.
  • Unity: un motor de juego comercial muy popular que usa el lenguaje de programación C#.
  • Unreal: un motor de juego comercial que se especializa en gráficos 3D de gran calidad. Usa el sistema de secuencia de comandos visual Blueprint y C++.

Si quieres obtener más información, consulta la guía para usar un motor de juego en Android.

Personalizado

La opción más avanzada es crear un motor de juego nuevo o agregar la compatibilidad con Android a uno ya existente. Esto es complejo y demanda mucho tiempo, pero te permite desarrollar un motor completamente optimizado y adaptado a tus necesidades. Por ejemplo, muchos motores de juegos existentes incluyen funciones adicionales que aumentan el tamaño y reducen el rendimiento de tu juego, un área que puedes mejorar si excluyes esas funciones.

Debido a la complejidad y el tiempo necesario para desarrollar un motor de juego, no recomendamos esta opción para quienes recién comienzan a desarrollar juegos. De hecho, esta opción es la más adecuada para organizaciones más grandes que planean usar el motor en varios juegos.

IDE

Los IDE que usas a fin de desarrollar juegos para Android dependen del motor de juego que uses y tu flujo de trabajo. Los motores de juego más comunes incluyen un editor para su diseño y la edición de código, que los desarrolladores suelen usar junto con Android Studio. En Windows, también se admiten la depuración y la creación de perfiles de juegos para Android con Visual Studio.

Editor de juegos

Por lo general, un editor de juegos integra estrechamente las funciones de diseño del juego con la edición de código. En algunos casos, estos editores ayudan a los diseñadores a completar tareas de desarrollo sin escribir código. Si estás desarrollando tu primer juego para Android, te recomendamos que uses esta opción junto con Android Studio. Estos son algunos de los beneficios:

  • La IU y el conjunto de herramientas se centran más en el diseño de juegos.
  • Integra las tareas de edición de código y diseño de elementos.
  • Se centra en el lenguaje de programación compatible con el motor de juego.
  • Incluye herramientas de modelado y renderización.

Android Studio

Este es el IDE oficial para desarrollar apps para Android. Como Android Studio se centra en el desarrollo de Android, te recomendamos que lo instales junto con cualquier otro IDE que uses. A continuación, te mostramos algunas de las tareas que puedes realizar con Android Studio:

  • Depurar el código escrito en C/C++, Java o Kotlin
  • Administrar el SDK de Android, que es necesario a fin de compilar juegos para Android
  • Compilar, generar perfiles y optimizar juegos
  • Editar el código C/C++ con el NDK de Android
  • Configurar los paquetes de apps y los parámetros de Google Play

Para obtener más información, consulta la descripción general de Android Studio.

Visual Studio

Si desarrollas tu juego en Windows con Visual Studio, puedes agregar Android como destino con Android Game Development Extension para Visual Studio (AGDE). Esta configuración se orienta a los juegos que ya están en desarrollo mediante un proyecto de Visual C++, por lo que es una opción destinada a desarrolladores de juegos más avanzados. Puedes usar AGDE para hacer lo siguiente:

  • Usar un proyecto de Visual C++ existente a fin de crear un juego para Android
  • Depurar y generar perfiles de tu juego con Visual Studio
  • Utilizar sistemas de compilación distribuidos, como Incredibuild o SN-DBS

Para obtener más información, consulta la descripción general de AGDE.

NDK de Android

El NDK de Android es un conjunto de herramientas que te permiten desarrollar una app para Android en código nativo mediante C o C++. Dado que brinda acceso más directo al hardware del dispositivo, puede mejorar el rendimiento del juego. También permite reutilizar bibliotecas C y C++, y compartir código de juego en varias plataformas.

Algunas bibliotecas y herramientas de AGDK requieren el NDK, así como muchos motores de juego cuando se desarrollan para Android. Una de las razones es que el NDK es una forma común y eficaz de acceder a las API de gráficos de bajo nivel más comunes que admiten los dispositivos Android.

Para obtener más información sobre el NDK, consulta la documentación del NDK de Android.

API de gráficos

A fin de lograr el mejor rendimiento de gráficos 2D y 3D, el juego para Android debe usar una API de gráficos de bajo nivel para comunicarse con una GPU. Las opciones más usadas para el desarrollo de juegos de Android son OpenGL ES y Vulkan.

Si usas un motor de juego sin modificar que admite el desarrollo de Android, es probable que se usen OpenGL ES o Vulkan. Si usas AGDK para desarrollar un juego en C o C++, también necesitarás usar OpenGL ES o Vulkan. Además, estas son las únicas API de gráficos compatibles con la herramienta de generación de perfiles de gráficos AGI.

OpenGL ES

OpenGL ES tiene los siguientes beneficios:

  • Alto rendimiento
  • Menos complejo y más fácil de usar
  • Admisión en una gama más amplia de dispositivos más antiguos

Para obtener más información, consulta la descripción general de OpenGL ES para Android.

Vulkan

Vulkan tiene los siguientes beneficios:

  • Rendimiento aún mayor
  • Más control sobre la GPU
  • Menor uso de la CPU

Para obtener más información, consulta la Descripción general de Vulkan para Android.