libGDX es un marco de desarrollo de aplicaciones de juegos gratuito y de código abierto [ 3 ] [ 2 ] escrito en el lenguaje de programación Java con algunos componentes de C y C++ para código dependiente del rendimiento. [ 4 ] Permite el desarrollo de juegos de escritorio y móviles utilizando la misma base de código. [ 5 ] Es multiplataforma, compatible con Windows , Linux , macOS , Android , iOS , BlackBerry y navegadores web con soporte para WebGL . [ 2 ] [ 6 ]
Historia
A mediados de 2009, Mario Zechner, creador de libGDX, quiso escribir juegos para Android y comenzó a desarrollar un framework llamado AFX (Android Effects) para tal fin. Al descubrir que implementar los cambios de la versión de escritorio a un dispositivo Android era engorroso, modificó AFX para que también funcionara en la versión de escritorio, facilitando así las pruebas de los programas. Este fue el primer paso hacia el framework de juegos que más tarde se conocería como libGDX. [ 1 ]
En marzo de 2010, Zechner decidió liberar el código fuente de AFX, alojándolo en Google Code bajo la Licencia Pública General Reducida de GNU (LGPL). Sin embargo, en ese momento declaró que «De todos modos, la intención del framework no es que se utilice para crear juegos de escritorio», ya que su objetivo principal era Android. En abril, obtuvo su primer colaborador. [ 1 ] [ 7 ] En octubre, Nathan Sweet se unió [ 1 ] y finalmente se convirtió en uno de los principales colaboradores, [ 8 ] compartiendo los derechos de autor. [ 9 ] [ 10 ]
Cuando Zechner creó un envoltorio JNI para Box2D , esto atrajo a más usuarios y colaboradores porque los juegos de física eran populares en ese momento. Muchos de los problemas con Android se resolvieron gracias a esto. [ 1 ]
Debido a que muchos usuarios sugirieron cambiar a una licencia diferente ya que LGPL no era adecuada para Android, libGDX cambió su licencia a la Licencia Apache 2.0 en julio de 2010, lo que permitió usar el framework en juegos comerciales de código cerrado. [ 1 ] [ 11 ] Ese mismo mes se lanzó su foro phpBB . [ 1 ] [ 12 ]
Debido a problemas con Java Sound, la implementación de audio de escritorio cambió a OpenAL en enero de 2011. [ 1 ] [ 13 ] También se terminó el desarrollo de una pequeña biblioteca de manipulación de imágenes llamada Gdx2D, que depende de la biblioteca de código abierto STB . [ 1 ] [ 14 ]
El resto de 2011 se dedicó a añadir una biblioteca de interfaz de usuario [ 15 ] y a trabajar en los fundamentos de una API 3D. [ 1 ]
A principios de 2012, Zechner creó una pequeña biblioteca auxiliar llamada gdx-jnigen para facilitar el desarrollo de enlaces JNI. [ 1 ] [ 16 ] Esto hizo posible que las extensiones gdx-audio [ 17 ] y gdx-freetype [ 18 ] se desarrollaran durante los meses siguientes. [ 1 ]
Inspirado por el marco de desarrollo de juegos multiplataforma PlayN de Google , que utilizaba Google Web Toolkit (GWT) para compilar Java a código JavaScript , Zechner escribió un backend HTML /JavaScript durante varias semanas, lo que permitió ejecutar aplicaciones libGDX en cualquier navegador con soporte para WebGL . [ 1 ] Después de que Google abandonara PlayN, Michael Bayne lo mantuvo y le añadió soporte para iOS . libGDX utilizó partes de este trabajo para su propio backend basado en MonoTouch . [ 1 ] [ 19 ] [ 20 ]
En agosto de 2012, el proyecto cambió su sistema de control de versiones de Subversion a Git , pasando de Google Code a GitHub . Sin embargo, el sistema de seguimiento de incidencias y la wiki permanecieron en Google Code durante un año más. El sistema de compilación principal también se cambió a Maven , lo que facilitó la colaboración entre desarrolladores con diferentes IDE . [ 1 ] [ 21 ] [ 22 ]
Debido a problemas con el backend de MonoTouch para iOS, Niklas Thernig escribió un backend de RoboVM para libGDX en marzo de 2013, que se integró al proyecto en septiembre. [ 1 ] [ 23 ] [ 24 ] De marzo a mayo de 2013 también se desarrolló una nueva API 3D y se integró a la biblioteca. [ 1 ] [ 25 ] [ 26 ]
En junio de 2013 se rediseñó el sitio web del proyecto, que ahora incluye una galería donde los usuarios pueden enviar sus juegos creados con libGDX. [ 1 ] [ 27 ] A partir de enero de 2016Se han presentado más de 3000 juegos. [ 28 ]
Después de la migración del código fuente a GitHub el año anterior, en septiembre de 2013 el rastreador de incidencias y la wiki también se trasladaron allí desde Google Code. [ 1 ] [ 29 ] Ese mismo mes, el sistema de gestión de compilación y dependencias se cambió de Maven a Gradle . [ 1 ] [ 30 ]
Después de una fase de limpieza en los primeros meses de 2014, la versión 1.0 de libGDX se lanzó el 20 de abril, más de cuatro años después del inicio del proyecto. [ 1 ]
En 2014, libGDX fue uno de los ganadores anuales del premio Duke's Choice Award , siendo elegido por su enfoque en la independencia de la plataforma. [ 31 ] [ 32 ]
De un equipo diverso de entusiastas del código abierto surge libGDX, un marco de desarrollo de juegos multiplataforma que permite a los programadores escribir, probar y depurar juegos Java en una PC de escritorio con Windows, Linux o Mac OS X, y desplegar ese mismo código en Android, iOS y navegadores compatibles con WebGL , algo que no está ampliamente disponible en la actualidad. El objetivo de libGDX, según su creador Mario Zechner, "es cumplir la promesa de 'escribe una vez, ejecuta en cualquier lugar' de la plataforma Java, específicamente para el desarrollo de juegos".
— Revista Java, septiembre/octubre de 2014 [ 33 ]
En abril de 2016 se anunció que libGDX cambiaría al motor Multi-OS de Intel en el backend de iOS después de la descontinuación de RoboVM. [ 34 ] [ 35 ] Con el lanzamiento de libGDX 1.9.3 el 16 de mayo de 2016, Multi-OS se proporciona como alternativa, mientras que por defecto la biblioteca usa su propia bifurcación de la versión de código abierto de RoboVM. [ 36 ] [ 37 ]
Jam de libGDX
Del 18 de diciembre de 2015 al 18 de enero de 2016 se organizó una game jam de libGDX junto con RoboVM , itch.io y Robotality . De las 180 sugerencias de temas iniciales, se eligió "Vida en el espacio" como tema principal de la jam, y se crearon 83 juegos durante el transcurso de la competición. [ 38 ] [ 39 ]
Versiones de lanzamiento
Arquitectura
libGDX permite al desarrollador escribir, probar y depurar su aplicación en su propio ordenador de escritorio y usar el mismo código en Android. Abstrae las diferencias entre una aplicación común de Windows/Linux y una aplicación de Android. El ciclo de desarrollo habitual consiste en trabajar en el ordenador de escritorio tanto como sea posible, verificando periódicamente que el proyecto siga funcionando en Android. Su objetivo principal es proporcionar compatibilidad total entre ordenadores de escritorio y dispositivos móviles, siendo la principal diferencia la velocidad y la potencia de procesamiento. [ 5 ]
Sistemas de backend
La biblioteca utiliza de forma transparente código específico de la plataforma a través de varios backends para acceder a las capacidades de la plataforma anfitriona. La mayoría de las veces, el desarrollador no tiene que escribir código específico de la plataforma, excepto para las clases de inicio (también llamadas lanzadores) que requieren una configuración diferente según el backend. [ 53 ]
- En el escritorio se utiliza la biblioteca ligera de juegos Java (LWJGL). También existe un backend experimental JGLFW que ya no se desarrolla. En la versión 1.8 se introdujo un nuevo backend LWJGL 3 , destinado a reemplazar al antiguo backend LWJGL 2. [ 54 ]
- El backend HTML5 utiliza Google Web Toolkit (GWT) para compilar el código Java a JavaScript, que luego se ejecuta en un entorno de navegador normal. libGDX proporciona varias implementaciones de API estándar que no son compatibles directamente allí, en particular la reflexión . [ 55 ] [ 56 ] [ 57 ]
- El backend de Android ejecuta código Java compilado para Android con el SDK de Android .
- Para iOS se utiliza una bifurcación personalizada de RoboVM para compilar Java a instrucciones nativas de iOS. El motor Multi-OS de Intel se ha proporcionado como alternativa desde la descontinuación de RoboVM. [ 34 ] [ 36 ]
Otros lenguajes de JVM
Aunque libGDX está escrita principalmente en Java , el código de bytes compilado es independiente del lenguaje, lo que permite que muchos otros lenguajes de la JVM utilicen directamente la biblioteca. La documentación especifica la interoperabilidad con Ceylon , Clojure , Kotlin , Jython , JRuby y Scala . [ 58 ]
Extensiones
Existen varias extensiones, tanto oficiales como de terceros, que añaden funcionalidades adicionales a la biblioteca.
gdxAI
Un marco de inteligencia artificial (IA) que se separó de la biblioteca principal con la versión 1.4.1 en octubre de 2014 y se trasladó a su propio repositorio. Si bien inicialmente se creó para libGDX, también se puede usar con otros marcos. El proyecto se centra en la IA útil para juegos, entre ellas la búsqueda de rutas , la toma de decisiones y el movimiento. [ 59 ] [ 60 ]
gdx freetype
Se puede utilizar para renderizar fuentes FreeType en tiempo de ejecución en lugar de utilizar imágenes de mapa de bits estáticas , que no se escalan tan bien. [ 61 ]
Caja2D
En 2010 se introdujo un envoltorio para la biblioteca de física Box2D , que pasó a ser una extensión con la versión 1.0. [ 1 ] [ 62 ]
empaquetador
Una herramienta auxiliar que incluye un JRE personalizado con la aplicación para que los usuarios finales no tengan que instalar el suyo propio. [ 63 ] [ 64 ]
Juegos y aplicaciones destacadas
- Ingress (antes de su relanzamiento como Ingress Prime )
- Destruye la Aguja [ 65 ]
- Delver
- Industria
- Mazmorra de píxeles destrozados
- Mito salvaje [ 66 ]
- Columna vertebral (software) [ 67 ]
Véase también
Portal de software libre
Portal de programación informática
Referencias
- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 Zechner, Mario (20 de abril de 2014). "LibGDX 1.0 lanzado" . badlogicgames.com . Archivado del original el 13 de febrero de 2021. Recuperado el 31 de diciembre de 2015 .
- 1 2 3 4 "Objetivos y características" . libgdx.badlogicgames.com . Archivado del original el 6 de junio de 2012. Recuperado el 16 de diciembre de 2015 .
- ↑ "Sitio web oficial" . libgdx.badlogicgames.com . Archivado del original el 27 de mayo de 2011. Consultado el 2 de enero de 2016 .
- ↑ "mobilegameengines.com/game_engines/32-libgdx" . Archivado del original el 18 de enero de 2015.
- 1 2 "Inicio - libGDX" . libgdx.com .
- ↑ "libgdx/README.md en master" . github.com .
- ↑ Zechner, Mario (6 de marzo de 2010). "El futuro..." badlogicgames.com . Archivado del original el 14 de marzo de 2016. Recuperado el 31 de diciembre de 2015 .
- ↑ "Colaboradores de libGDX" . GitHub . Consultado el 2 de marzo de 2025 .
- ↑ Zechner, Mario. "Saluda a Nate" . badlogicgames.com . Archivado del original el 19 de enero de 2021. Consultado el 31 de diciembre de 2015 .
- ↑ "Autores de libGDX" . GitHub . Consultado el 2 de marzo de 2025 .
- ↑ Zechner, Mario (13 de julio de 2010). "libgdx cambia su licencia" . badlogicgames.com . Archivado del original el 14 de enero de 2016. Recuperado el 31 de diciembre de 2015 .
- ↑ Zechner, Mario (10 de julio de 2010). "¡Foros!" . badlogicgames.com . Archivado del original el 4 de marzo de 2016 . Recuperado el 3 de enero de 2016 .
- ↑ Zechner, Mario (21 de enero de 2011). "Carga de OpenAL y nativos en Libgdx" . badlogicgames.com . Archivado del original el 4 de marzo de 2016. Consultado el 3 de enero de 2016 .
- ↑ Zechner, Mario (26 de enero de 2011). "Gdx2D y Super Jumper" . badlogicgames.com . Archivado del original el 14 de marzo de 2016. Consultado el 3 de enero de 2016 .
- ↑ Zechner, Mario (25 de junio de 2011). "Diversión con la interfaz de usuario en Android con libgdx" . badlogicgames.com . Archivado del original el 4 de marzo de 2016. Consultado el 3 de enero de 2016 .
- ↑ Zechner, Mario (3 de enero de 2012). "gdx-jnigen: una idea estúpida que podría funcionar" . badlogicgames.com . Archivado del original el 14 de marzo de 2016. Consultado el 3 de enero de 2016 .
- ↑ Zechner, Mario (8 de enero de 2012). "gdx-audio" . badlogicgames.com . Archivado del original el 14 de marzo de 2016. Consultado el 3 de enero de 2016 .
- ↑ Zechner, Mario (6 de marzo de 2012). "Crea BitmapsFonts sobre la marcha con gdx-freetype" . badlogicgames.com . Archivado del original el 21 de enero de 2016. Consultado el 3 de enero de 2016 .
- ↑ Zechner, Mario (8 de junio de 2012). "Libgdx en iOS, días 1-2" . badlogicgames.com . Archivado del original el 14 de marzo de 2016. Recuperado el 3 de enero de 2016 .
- ↑ Zechner, Mario (13 de junio de 2012). "Libgdx en iOS, día 5" . badlogicgames.com . Archivado del original el 12 de enero de 2016. Recuperado el 3 de enero de 2016 .
- ↑ Zechner, Mario (8 de agosto de 2012). "Git y Maven" . badlogicgames.com . Archivado del original el 4 de marzo de 2016. Consultado el 4 de enero de 2016 .
- ↑ Zechner, Mario (10 de agosto de 2012). "Libgdx ya está en Github (más o menos)" . badlogicgames.com . Archivado del original el 4 de marzo de 2016. Consultado el 4 de enero de 2016 .
- ↑ Zechner, Mario (9 de marzo de 2013). "Backend de RoboVM libgdx en etapa temprana" . badlogicgames.com . Archivado del original el 13 de marzo de 2016. Recuperado el 6 de enero de 2016 .
- ↑ Zechner, Mario (10 de septiembre de 2013). "¡Backend de RoboVM en las versiones nocturnas de libgdx y primeras cifras de rendimiento!" . badlogicgames.com . Archivado del original el 4 de marzo de 2016. Recuperado el 6 de enero de 2016 .
- ↑ Zechner, Mario (28 de marzo de 2013). "Prepárense, se acerca una nueva API 3D" . badlogicgames.com . Archivado del original el 24 de febrero de 2016. Consultado el 6 de enero de 2016 .
- ↑ Zechner, Mario (20 de mayo de 2013). "Nueva API 3D en master" . badlogicgames.com . Archivado del original el 4 de marzo de 2016. Recuperado el 6 de enero de 2016 .
- ↑ Zechner, Mario (29 de junio de 2013). "¡Nuevo sitio de libgdx en línea!" . badlogicgames.com . Archivado del original el 4 de marzo de 2016 . Recuperado el 6 de enero de 2016 .
- ↑ "Galería" . libgdx.badlogicgames.com . Archivado del original el 19 de enero de 2016. Consultado el 6 de enero de 2016 .
- ↑ Zechner, Mario (14 de septiembre de 2013). "La gran migración de Github del rastreador de problemas y la wiki de libgdx" . badlogicgames.com . Archivado del original el 4 de marzo de 2016. Recuperado el 6 de enero de 2016 .
- ↑ Zechner, Mario (22 de septiembre de 2013). "Bienvenido a tu nuevo señor supremo: Gradle" . badlogicgames.com . Archivado del original el 4 de marzo de 2016. Recuperado el 6 de enero de 2016 .
- ↑ Kvitkar, Caroline (28 de septiembre de 2014). "Ganadores del premio Duke's Choice 2014" . blogs.oracle.com . Consultado el 30 de diciembre de 2015.
Los programadores pueden usar este marco de desarrollo de juegos multiplataforma para escribir, probar y depurar juegos Java.
- ↑ Zechner, Mario (29 de septiembre de 2014). "libgdx gana el premio Duke's Choice" . badlogicgames.com . Archivado del original el 1 de marzo de 2016. Consultado el 30 de diciembre de 2015 .
- ↑ Gill, Philip J. "Premios Duke's Choice 2014" . Revista Java . pág. 8. Consultado el 31 de diciembre de 2015 .
- 1 2 Zechner, Mario (15 de abril de 2016). "RoboVM ya no existe, ¿y ahora qué?" . Archivado del original el 8 de noviembre de 2020. Recuperado el 15 de abril de 2016 .
- ↑ Müller, Henric (15 de abril de 2016). "RoboVM Winding Down" . Archivado del original el 15 de abril de 2016. Recuperado el 16 de abril de 2016 .
- 1 2 Zechner, Mario (16 de mayo de 2016). "LibGDX 1.9.3 lanzado: nuevos backends para iOS" . Archivado del original el 18 de mayo de 2016. Recuperado el 17 de mayo de 2016 .
- ↑ "Bifurcación de RoboVM de MobiDevelop" . Consultado el 17 de mayo de 2016 .
- ↑ Zechner, Mario (22 de noviembre de 2015). "¡LibGDX Jam está en marcha! – Ronda de votación de temas n.° 1" . badlogicgames.com . Archivado del original el 16 de febrero de 2016. Recuperado el 13 de febrero de 2016 .
- ↑ Zechner, Mario (6 de febrero de 2016). "libGDX Jam – Y el ganador es…" . badlogicgames.com . Archivado del original el 16 de febrero de 2016. Recuperado el 13 de febrero de 2016 .
- ↑ Zechner, Mario (23 de mayo de 2014). "LibGDX 1.1.0 lanzado" . badlogicgames.com . Archivado del original el 16 de febrero de 2016. Recuperado el 13 de febrero de 2016 .
- ↑ Zechner, Mario (22 de junio de 2014). "LibGDX 1.2.0 lanzado" . badlogicgames.com . Archivado del original el 16 de febrero de 2016. Recuperado el 13 de febrero de 2016 .
- ↑ Zechner, Mario (9 de agosto de 2014). "LibGDX 1.3.0 lanzado" . badlogicgames.com . Archivado del original el 16 de febrero de 2016. Recuperado el 13 de febrero de 2016 .
- ↑ Zechner, Mario (10 de octubre de 2014). "LibGDX 1.4.1 lanzado" . badlogicgames.com . Archivado del original el 16 de febrero de 2016. Recuperado el 13 de febrero de 2016 .
- ↑ Zechner, Mario (8 de diciembre de 2014). "LibGDX 1.5.0 lanzado" . badlogicgames.com . Archivado del original el 16 de febrero de 2016. Recuperado el 13 de febrero de 2016 .
- ↑ Zechner, Mario (6 de mayo de 2015). "LibGDX 1.6.0 lanzado" . badlogicgames.com . Archivado del original el 16 de febrero de 2016. Recuperado el 13 de febrero de 2016 .
- ↑ Zechner, Mario (21 de septiembre de 2015). "LibGDX 1.7.0 lanzado" . badlogicgames.com . Archivado del original el 16 de febrero de 2016. Recuperado el 13 de febrero de 2016 .
- ↑ Zechner, Mario (5 de enero de 2016). "LibGDX 1.8.0 lanzado" . badlogicgames.com . Archivado del original el 16 de febrero de 2016. Recuperado el 13 de febrero de 2016 .
- ↑ Zechner, Mario (24 de enero de 2016). "LibGDX 1.9.0 lanzado" . badlogicgames.com . Archivado del original el 16 de febrero de 2016. Recuperado el 13 de febrero de 2016 .
- ↑ damios (18 de abril de 2021). "libGDX 1.10.0" . libgdx.com . Consultado el 19 de abril de 2021 .
- ↑ damios (11 de mayo de 2022). "libGDX 1.11.0" . libgdx.com . Consultado el 12 de mayo de 2022 .
- ↑ damios (2 de julio de 2023). "libGDX 1.12.0" . libgdx.com . Consultado el 24 de julio de 2023 .
- ↑ damios (17 de octubre de 2024). "libGDX 1.13.0" . libgdx.com . Consultado el 21 de octubre de 2024 .
- ↑ "Clases de inicio y configuración - libGDX" . libgdx.com . Consultado el 18 de enero de 2022 .
- ↑ Zechner, Mario (5 de enero de 2016). "libGDX 1.8.0" . badlogicgames.com . Archivado del original el 12 de enero de 2016. Recuperado el 11 de enero de 2016 .
- ↑ Zechner, Mario (12 de marzo de 2012). "Libgdx se pasa a HTML5" . badlogicgames.com . Archivado del original el 29 de marzo de 2016. Consultado el 17 de mayo de 2016 .
- ↑ Zechner, Mario (19 de enero de 2013). "Reflexión en el backend GWT de libgdx" . badlogicgames.com . Archivado del original el 10 de junio de 2016. Recuperado el 17 de mayo de 2016 .
- ↑ Zechner, Mario (17 de junio de 2013). "¡API de reflexión con soporte para GWT!" . badlogicgames.com . Archivado del original el 10 de junio de 2016 . Recuperado el 17 de mayo de 2016 .
- ↑ "Uso de libgdx con otros lenguajes de JVM" . libgdx.com . Consultado el 18 de enero de 2022 .
- ↑ "gdx-ai/README.md" . github.com . 12 de octubre de 2015 . Consultado el 16 de enero de 2016 .
- ↑ "Inteligencia Artificial" . libgdx.com . Consultado el 18 de enero de 2022 .
- ↑ "Gdx freetype" . libgdx.com . Consultado el 18 de enero de 2022 .
- ↑ "Box2d" . libgdx.com . Consultado el 18 de enero de 2022 .
- ↑ "libgdx/packr: Empaqueta tu JAR, recursos y una JVM para su distribución en Windows, Linux y Mac OS X" . github.com . Consultado el 6 de febrero de 2016 .
- ↑ Zechner, Mario (4 de mayo de 2014). "Packr: empaqueta tu aplicación libGDX para Windows, Linux y Mac OS X" . badlogicgames.com . Archivado del original el 27 de abril de 2020. Consultado el 6 de febrero de 2016 .
- ↑ Couture, Joel (22 de enero de 2020). "Camino al IGF: Mega Crit Games' Slay the Spire" . www.gamasutra.com . Archivado del original el 22 de enero de 2020. Recuperado el 22 de enero de 2020 .
- ↑ "Notas del parche - Wiki de Wildermyth" . wildermyth.com . Consultado el 23 de agosto de 2022 .
- ↑ "La tecnología detrás de Spine" . Esoteric Software . Consultado el 2 de marzo de 2025 .
Enlaces externos
- Bibliotecas de audio
- Software libre multiplataforma
- Software gratuito de gráficos 3D
- Bibliotecas informáticas gratuitas
- Motores de juegos gratuitos
- Software gráfico gratuito
- Software libre programado en Java.
- Bibliotecas gráficas
- API de Java
- Bibliotecas de Java (lenguaje de programación)
- OpenGL
- Software que utiliza la licencia Apache.
- Software para el desarrollo de videojuegos
- Software de desarrollo de videojuegos para Linux
- Motores de videojuegos