De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

libGDX es un marco de aplicación de desarrollo de juegos [2] gratuito y de código abierto [3] escrito en el lenguaje de programación Java con algunos componentes 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 , Mac OS X , Android , iOS , BlackBerry y navegadores web con soporte WebGL . [2] [6]

Historia [ editar ]

A mediados de 2009 Mario Zechner, el creador de libGDX, quiso escribir juegos para Android y comenzó a desarrollar un marco llamado AFX (Efectos de Android) para esto. Cuando descubrió que implementar los cambios desde el escritorio al dispositivo Android era engorroso, modificó AFX para que funcionara también en el escritorio, lo que facilitó la prueba de programas. Este fue el primer paso hacia el marco del juego más tarde conocido como libGDX. [1]

En marzo de 2010, Zechner decidió abrir AFX, alojándolo en Google Code bajo la GNU Lesser General Public License (LGPL). Sin embargo, en ese momento afirmó que "no es la intención del marco que se utilice para crear juegos de escritorio de todos modos", con la intención de que el marco esté dirigido principalmente a Android. En abril, consiguió su primer colaborador. [1] [7]

Cuando Zechner creó un contenedor Box2D JNI , esto atrajo a más usuarios y contribuyentes porque los juegos de física eran populares en ese momento. [se necesita una mejor fuente ] Muchos de los problemas con Android se resolvieron debido a esto. [1]

Debido a que muchos usuarios sugirieron cambiar a una licencia diferente debido a que LGPL no era adecuada para Android, libGDX cambió su licencia a Apache License 2.0 en julio de 2010, lo que hizo posible el uso del marco en juegos comerciales de código cerrado. [1] [8] El mismo mes se lanzó su foro phpBB . [1] [9]

Debido a problemas con Java Sound, la implementación del escritorio de audio cambió a OpenAL en enero de 2011. [1] [10] También se terminó el desarrollo de una pequeña biblioteca de manipulación de imágenes llamada Gdx2D, que depende de la biblioteca STB de código abierto . [1] [11]

El resto de 2011 se dedicó a agregar una biblioteca de IU [12] y a trabajar en los conceptos básicos 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] [13] Esto hizo posible que las extensiones gdx-audio [14] y gdx-freetype [15] se desarrollaran durante los meses siguientes. [1]

Inspirado por Google 's reproducirN multiplataforma marco de desarrollo de juego que utiliza Google Web Toolkit (GWT) para compilar Java a JavaScript código, Zechner escribió un HTML / JavaScript backend en el transcurso de varias semanas, lo que permitió a las aplicaciones libgdx que se ejecuten en cualquier navegador con soporte WebGL . [1] Después de que Google abandonó PlayN, fue mantenido por Michael Bayne, quien le agregó soporte para iOS . LibGDX utilizó partes de este trabajo para su propio backend basado en MonoTouch . [1] [16] [17]

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 rastreador de problemas 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 facilita que los desarrolladores con diferentes IDE trabajen juntos. [1] [18] [19]

Debido a problemas con el MonoTouch iOS backend Niklas Thernig escribió un RoboVM backend para libgdx en marzo de 2013, que se integró en el proyecto en septiembre. [1] [20] [21] De marzo a mayo de 2013, también se desarrolló una nueva API 3D que se integró en la biblioteca. [1] [22] [23]

En junio de 2013, se rehizo el sitio web del proyecto, que ahora cuenta con una galería donde los usuarios pueden enviar sus juegos creados con libGDX. [1] [24] En enero de 2016 se han enviado más de 3000 juegos. [25]

Después de la migración del código fuente a GitHub el año anterior, en septiembre de 2013, el rastreador de problemas y la wiki también se trasladaron allí desde Google Code. [1] [26] El mismo mes, el sistema de gestión de compilación y dependencia se cambió de Maven a Gradle . [1] [27]

Después de una fase de limpieza en los primeros meses de 2014, libGDX versión 1.0 fue lanzada 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 , y fue elegido por su enfoque en la independencia de la plataforma. [28] [29]

De un equipo diverso de entusiastas del código abierto viene 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 e implementar ese mismo código en Android. , navegadores compatibles con iOS y WebGL, algo que no está ampliamente disponible en este momento. El objetivo de libGDX, dice el creador Mario Zechner, "es cumplir la promesa de 'escribir una vez, ejecutar en cualquier lugar' de la plataforma Java específicamente para el desarrollo de juegos".

-  Revista Java, septiembre / octubre de 2014 [30]

En abril de 2016 se anunció que sería libgdx cambiar a Intel 's Multi-OS motor en el backend IOS después de la interrupción de RoboVM. [31] [32] Con el lanzamiento de libGDX 1.9.3 el 16 de mayo de 2016, se proporciona Multi-OS como alternativa, mientras que, de forma predeterminada, la biblioteca usa su propia bifurcación de la versión de código abierto de RoboVM. [33] [34]

libGDX Jam [ editar ]

Desde el 18 de diciembre de 2015 hasta el 18 de enero de 2016, se organizó una jam del juego libGDX junto con RoboVM , itch.io y Robotality . De las 180 propuestas temáticas iniciales, se eligió "La vida en el espacio" como tema principal de la jam, y se crearon 83 juegos durante el transcurso de la competencia. [35] [36]

Versiones de lanzamiento [ editar ]

Arquitectura [ editar ]

libGDX permite al desarrollador escribir, probar y depurar su aplicación en su propia PC de escritorio y usar el mismo código en Android. Elimina las diferencias entre una aplicación común de Windows / Linux y una aplicación de Android. El ciclo de desarrollo habitual consiste en permanecer en la PC de escritorio tanto como sea posible mientras se verifica periódicamente que el proyecto sigue funcionando en Android. Su principal objetivo es proporcionar una compatibilidad total entre los dispositivos móviles y de escritorio, siendo la principal diferencia la velocidad y la potencia de procesamiento. [5]

Backends [ editar ]

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 host. La mayoría de las veces, el desarrollador no tiene que escribir código específico de la plataforma, a excepción de las clases de inicio (también llamadas lanzadores) que requieren una configuración diferente según el backend. [47]

  • En el escritorio, se utiliza la biblioteca de juegos Lightweight Java (LWJGL). También hay un backend JGLFW experimental que ya no se continúa. [ cita requerida ] [ cuando? ] En la Versión 1.8, se introdujo un nuevo backend LWJGL 3 , destinado a reemplazar al antiguo backend LWJGL 2 . [48]
  • El backend HTML5 utiliza Google Web Toolkit (GWT) para compilar el código de Java a JavaScript, que luego se ejecuta en un entorno de navegador normal. libGDX proporciona varias implementaciones de API estándar que no se admiten directamente allí, sobre todo la reflexión . [49] [50] [51]
  • El backend de Android ejecuta código Java compilado para Android con el SDK de Android . [ cita requerida ]
  • Para iOS, se usa una bifurcación personalizada de RoboVM para compilar Java en las instrucciones nativas de iOS. Intel 's Multi-OS motor se ha proporcionado como una alternativa ya que la interrupción de RoboVM. [31] [33]

Otros lenguajes de JVM [ editar ]

Mientras libgdx está escrito principalmente en Java , el compilado de código de bytes es independiente del lenguaje, permitiendo que muchos otros idiomas JVM para utilizar directamente la biblioteca. La documentación establece específicamente la interoperabilidad con Ceylon , Clojure , Kotlin , Jython , JRuby y Scala . [52]

Extensiones [ editar ]

Existen varias extensiones oficiales y de terceros que agregan funcionalidad adicional a la biblioteca.

gdxAI [ editar ]

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 hizo para libGDX, también se puede usar con otros marcos. El proyecto se centra en la IA útil para los juegos, entre ellos la búsqueda de caminos , la toma de decisiones y el movimiento. [53] [54]

gdx freetype [ editar ]

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 tampoco se escalan. [55]

Box2D [ editar ]

En 2010 se introdujo un contenedor para la biblioteca de física Box2D y se trasladó a una extensión con la versión 1.0. [1] [56]

packr [ editar ]

Una herramienta auxiliar que incluye un JRE personalizado con la aplicación para que los usuarios finales no tengan que tener uno propio instalado. [57] [58]

Juegos notables [ editar ]

  • Ingreso
  • Mata a la Aguja [59]
  • HOPLITE
  • Deep Town
  • Barco de arena
  • Unciv
  • Mindustry
  • Refugio espacial
  • Delver
  • Ruta
  • Medio camino
  • Riiablo
  • Reinos de Mirage
  • Raindancer
  • PokeMMO
  • Zombie Edad 3
  • Guerra épica de héroes
  • Mazmorra de píxeles destrozada
  • Cabello Dash

Ver también [ editar ]

  •  Portal de software gratuito
  •  Portal de programación informática

Referencias [ editar ]

  1. ^ a b c d e f g h i j k l m n o p q r s t u v Zechner, Mario (20 de abril de 2014). "libGDX 1.0 lanzado" . badlogicgames.com . Consultado el 31 de diciembre de 2015 .
  2. ^ a b c d "Objetivos y características" . libgdx.badlogicgames.com . Consultado el 16 de diciembre de 2015 .
  3. ^ "Sitio web oficial" . libgdx.badlogicgames.com . Consultado el 2 de enero de 2016 .
  4. ^ "mobilegameengines.com/game_engines/32-libgdx" . Archivado desde el original el 18 de enero de 2015.
  5. ^ a b "Inicio · libgdx / libdgx Wiki" . github.com .
  6. ^ "libgdx / README.md en el maestro" . github.com .
  7. ^ Zechner, Mario (6 de marzo de 2010). "El futuro ..." badlogicgames.com . Consultado el 31 de diciembre de 2015 .
  8. ^ Zechner, Mario (13 de julio de 2010). "libgdx cambia su licencia" . badlogicgames.com . Consultado el 31 de diciembre de 2015 .
  9. ^ Zechner, Mario (10 de julio de 2010). "¡Foros!" . badlogicgames.com . Consultado el 3 de enero de 2016 .
  10. ^ Zechner, Mario (21 de enero de 2011). "Carga de OpenAL y nativos en Libgdx" . badlogicgames.com . Consultado el 3 de enero de 2016 .
  11. ^ Zechner, Mario (26 de enero de 2011). "Gdx2D y Super Jumper" . badlogicgames.com . Consultado el 3 de enero de 2016 .
  12. ^ Zechner, Mario (25 de junio de 2011). "UI Fun en Android con libgdx" . badlogicgames.com . Consultado el 3 de enero de 2016 .
  13. ^ Zechner, Mario (3 de enero de 2012). "gdx-jnigen: una idea estúpida que podría funcionar" . badlogicgames.com . Consultado el 3 de enero de 2016 .
  14. ^ Zechner, Mario (8 de enero de 2012). "gdx-audio" . badlogicgames.com . Consultado el 3 de enero de 2016 .
  15. ^ Zechner, Mario (6 de marzo de 2012). "Cree BitmapsFonts sobre la marcha con gdx-freetype" . badlogicgames.com . Consultado el 3 de enero de 2016 .
  16. ^ Zechner, Mario (8 de junio de 2012). "Libgdx en iOS, días 1 a 2" . badlogicgames.com . Consultado el 3 de enero de 2016 .
  17. ^ Zechner, Mario (13 de junio de 2012). "Libgdx en iOS, día 5" . badlogicgames.com . Consultado el 3 de enero de 2016 .
  18. ^ Zechner, Mario (8 de agosto de 2012). "Git & Maven" . badlogicgames.com . Consultado el 4 de enero de 2016 .
  19. ^ Zechner, Mario (10 de agosto de 2012). "Libgdx ahora está en Github (sorta)" . badlogicgames.com . Consultado el 4 de enero de 2016 .
  20. ^ Zechner, Mario (9 de marzo de 2013). "Backend libgdx de RoboVM en etapa inicial" . badlogicgames.com . Consultado el 6 de enero de 2016 .
  21. ^ Zechner, Mario (10 de septiembre de 2013). "¡El backend de RoboVM en libgdx nightlies y primeras cifras de rendimiento!" . badlogicgames.com . Consultado el 6 de enero de 2016 .
  22. ^ Zechner, Mario (28 de marzo de 2013). "Prepárate, nueva API 3D entrante" . badlogicgames.com . Consultado el 6 de enero de 2016 .
  23. ^ Zechner, Mario (20 de mayo de 2013). "Nueva API 3D en master" . badlogicgames.com . Consultado el 6 de enero de 2016 .
  24. ^ Zechner, Mario (29 de junio de 2013). "¡Nuevo sitio libgdx en vivo!" . badlogicgames.com . Consultado el 6 de enero de 2016 .
  25. ^ "Galería" . libgdx.badlogicgames.com . Consultado el 6 de enero de 2016 .
  26. ^ Zechner, Mario (14 de septiembre de 2013). "El gran rastreador de problemas libgdx y migración Wiki Github" . badlogicgames.com . Consultado el 6 de enero de 2016 .
  27. ^ Zechner, Mario (22 de septiembre de 2013). "Bienvenido a tu nuevo señor supremo: Gradle" . badlogicgames.com . Consultado el 6 de enero de 2016 .
  28. ^ Kvitkar, Caroline (28 de septiembre de 2014). "Ganadores del premio Duke's Choice Award 2014" . blogs.oracle.com . Consultado el 30 de diciembre de 2015 . Los programadores pueden utilizar este marco de desarrollo de juegos multiplataforma para escribir, probar y depurar juegos Java.
  29. ^ Zechner, Mario (29 de septiembre de 2014). "libgdx gana el premio Duke's Choice Award" . badlogicgames.com . Consultado el 30 de diciembre de 2015 .
  30. ^ Gill, Philip J. "Premios Elección de Duke 2014" . Revista Java . pag. 8 . Consultado el 31 de diciembre de 2015 .
  31. ↑ a b Zechner, Mario (15 de abril de 2016). "RoboVM ya no existe, ¿ahora qué?" . Consultado el 15 de abril de 2016 .
  32. ^ Müller, Henric (15 de abril de 2016). "RoboVM terminando" . Consultado el 16 de abril de 2016 .
  33. ↑ a b Zechner, Mario (16 de mayo de 2016). "LibGDX 1.9.3 lanzado - Nuevos backends de iOS" . Consultado el 17 de mayo de 2016 .
  34. ^ "Horquilla RoboVM de MobiDevelop" . Consultado el 17 de mayo de 2016 .
  35. ^ Zechner, Mario (22 de noviembre de 2015). "¡LibGDX Jam está en marcha! - Ronda de votación del tema # 1" . badlogicgames.com . Consultado el 13 de febrero de 2016 .
  36. ^ Zechner, Mario (6 de febrero de 2016). "libGDX Jam - Y el ganador es ..." . badlogicgames.com . Consultado el 13 de febrero de 2016 .
  37. ^ Zechner, Mario (23 de mayo de 2014). "libGDX 1.1.0 lanzado" . badlogicgames.com . Consultado el 13 de febrero de 2016 .
  38. ^ Zechner, Mario (22 de junio de 2014). "libGDX 1.2.0 lanzado" . badlogicgames.com . Consultado el 13 de febrero de 2016 .
  39. ^ Zechner, Mario (9 de agosto de 2014). "libGDX 1.3.0 lanzado" . badlogicgames.com . Consultado el 13 de febrero de 2016 .
  40. ^ Zechner, Mario (10 de octubre de 2014). "libGDX 1.4.1 lanzado" . badlogicgames.com . Consultado el 13 de febrero de 2016 .
  41. ^ Zechner, Mario (8 de diciembre de 2014). "libGDX 1.5.0 lanzado" . badlogicgames.com . Consultado el 13 de febrero de 2016 .
  42. ^ Zechner, Mario (6 de mayo de 2015). "libGDX 1.6.0 lanzado" . badlogicgames.com . Consultado el 13 de febrero de 2016 .
  43. ^ Zechner, Mario (21 de septiembre de 2015). "libGDX 1.7.0 lanzado" . badlogicgames.com . Consultado el 13 de febrero de 2016 .
  44. ^ Zechner, Mario (5 de enero de 2016). "libGDX 1.8.0 lanzado" . badlogicgames.com . Consultado el 13 de febrero de 2016 .
  45. ^ Zechner, Mario (24 de enero de 2016). "libGDX 1.9.0 lanzado" . badlogicgames.com . Consultado el 13 de febrero de 2016 .
  46. ^ damios (18 de abril de 2021). "libGDX 1.10.0" . libgdx.com . Consultado el 19 de abril de 2021 .
  47. ^ "Clases de inicio y configuración · libgdx / libgdx Wiki" . github.com . 10 de diciembre de 2015 . Consultado el 19 de diciembre de 2015 .
  48. ^ Zechner, Mario (5 de enero de 2016). "libGDX 1.8.0" . badlogicgames.com . Consultado el 11 de enero de 2016 .
  49. ^ Zechner, Mario (12 de marzo de 2012). "Libgdx se convierte en HTML5" . badlogicgames.com . Consultado el 17 de mayo de 2016 .
  50. ^ Zechner, Mario (19 de enero de 2013). "Reflexión en el backend GWT de libgdx" . badlogicgames.com . Consultado el 17 de mayo de 2016 .
  51. ^ Zechner, Mario (17 de junio de 2013). "¡Reflexión API con soporte GWT!" . badlogicgames.com . Consultado el 17 de mayo de 2016 .
  52. ^ "Uso de libgdx con otros lenguajes jvm" . github.com . 16 de diciembre de 2015 . Consultado el 30 de diciembre de 2015 .
  53. ^ "gdx-ai / README.md" . github.com . 12 de octubre de 2015 . Consultado el 16 de enero de 2016 .
  54. ^ "Inteligencia artificial" . github.com . 12 de marzo de 2015 . Consultado el 16 de enero de 2016 .
  55. ^ "Gdx freetype" . github.com . 19 de diciembre de 2015 . Consultado el 23 de enero de 2016 .
  56. ^ "Box2d" . github.com . Consultado el 23 de enero de 2016 .
  57. ^ "libgdx / packr: Empaqueta su JAR, activos y una JVM para su distribución en Windows, Linux y Mac OS X" . github.com . Consultado el 6 de febrero de 2016 .
  58. ^ Zechner, Mario (4 de mayo de 2014). "Packr: empaqueta tu aplicación libGDX para Windows, Linux, Mac OS X" . badlogicgames.com . Consultado el 6 de febrero de 2016 .
  59. ^ Alta costura, Joel. "Camino al IGF: Slay the Spire de Mega Crit Games" . www.gamasutra.com . Consultado el 22 de enero de 2020 .

Enlaces externos [ editar ]

  • Página web oficial