Из Википедии, свободной энциклопедии
Перейти к навигации Перейти к поиску

libGDX является свободным и открытым исходным кодом [3] фреймворк игры-разработки [2] написано на языке программирования Java с некоторыми C и C ++ компонентов для исполнения зависимого кода. [4] Это позволяет разрабатывать настольные и мобильные игры с использованием одной и той же кодовой базы. [5] Он кроссплатформенный, поддерживает Windows , Linux , Mac OS X , Android , iOS , BlackBerry и веб-браузеры с поддержкой WebGL . [2] [6]

История [ править ]

В середине 2009 года Марио Зехнер, создатель libGDX, захотел писать игры для Android и начал разработку для этого фреймворка под названием AFX (Android Effects). Когда он обнаружил, что развертывание изменений с настольного компьютера на устройство Android является обременительным, он модифицировал AFX для работы с настольным компьютером, что упростило тестирование программ. Это был первый шаг к созданию игрового фреймворка, позже известного как libGDX. [1]

В марте 2010 года Зехнер решил открыть AFX, разместив его на Google Code в рамках Стандартной общественной лицензии ограниченного применения GNU (LGPL). Однако в то время он заявил, что «фреймворк не будет использоваться для создания настольных игр в любом случае», имея в виду, что фреймворк в первую очередь ориентирован на Android. В апреле у него появился первый участник. [1] [7]

Когда Зехнер создал оболочку Box2D JNI , это привлекло больше пользователей и участников, поскольку в то время были популярны игры с физикой. [ необходим лучший источник ] Благодаря этому были решены многие проблемы с Android. [1]

Поскольку многие пользователи предлагали перейти на другую лицензию из-за того, что LGPL не подходит для Android, libGDX изменила свою лицензию на Apache License 2.0 в июле 2010 года, что позволило использовать фреймворк в коммерческих играх с закрытым исходным кодом. [1] [8] В том же месяце был запущен его форум phpBB . [1] [9]

Из-за проблем с Java Sound реализация звукового рабочего стола перешла на OpenAL в январе 2011 года. [1] [10] Также была завершена разработка небольшой библиотеки обработки изображений под названием Gdx2D, которая зависит от библиотеки STB с открытым исходным кодом . [1] [11]

Остаток 2011 года был потрачен на добавление библиотеки пользовательского интерфейса [12] и разработку основ 3D API. [1]

В начале 2012 года Зехнер создал небольшую вспомогательную библиотеку под названием gdx-jnigen для облегчения разработки привязок JNI. [1] [13] Это сделало возможным разработку расширений gdx-audio [14] и gdx-freetype [15] в течение следующих месяцев. [1]

Вдохновленный Google «s PlayN рамках кросс-платформенной разработки игр , которая используется Google Web Toolkit (GWT) для компиляции Java в JavaScript код, Zechner написал HTML / JavaScript бэкенд в течение нескольких недель, что позволило libGDX приложения , которые будут работать в любой браузер с поддержкой WebGL . [1] После того, как Google отказался от PlayN, его поддерживал Майкл Бейн, который добавил в него поддержку iOS . LibGDX использовала часть этой работы для своего собственного бэкэнда на основе MonoTouch . [1] [16] [17]

В августе 2012 года проект переключил свою систему контроля версий с Subversion на Git , перейдя с Google Code на GitHub . Однако трекер проблем и вики оставались в Google Code еще на год. Основная система сборки также была изменена на Maven , что упростило совместную работу разработчиков с разными IDE . [1] [18] [19]

Из - за проблемы с прошивкой MonoTouch бакэнда Никлас Thernig написал RoboVM бэкенд для libGDX в марте 2013 года, который был интегрирован в проект в сентябре. [1] [20] [21] С марта по май 2013 года был разработан и интегрирован в библиотеку новый 3D API. [1] [22] [23]

В июне 2013 года веб-сайт проекта был переделан, и теперь на нем появилась галерея, где пользователи могут отправлять свои игры, созданные с помощью libGDX. [1] [24] По состоянию на январь 2016 года было отправлено более 3000 игр. [25]

После миграции исходного кода на GitHub годом ранее, в сентябре 2013 года, средство отслеживания проблем и вики также были перенесены туда из Google Code. [1] [26] В том же месяце система управления сборкой и зависимостями была переведена с Maven на Gradle . [1] [27]

После фазы очистки в первые месяцы 2014 года libGDX версия 1.0 была выпущена 20 апреля, более чем через четыре года после начала проекта. [1]

В 2014 году libGDX стала одним из победителей ежегодной премии Duke's Choice Award , будучи выбранной за ее ориентацию на независимость от платформы. [28] [29]

От разнообразной команды энтузиастов открытого исходного кода поставляется libGDX, кроссплатформенная среда разработки игр, которая позволяет программистам писать, тестировать и отлаживать Java-игры на настольных ПК с Windows, Linux или Mac OS X и развертывать тот же код на Android , браузеры с поддержкой iOS и WebGL - что-то не очень широко доступное в настоящее время. Цель libGDX, по словам создателя Марио Зехнера, «состоит в том, чтобы выполнить обещание платформы Java« написать один раз, запустить где угодно »специально для разработки игр».

-  Java Magazine, сентябрь / октябрь 2014 г. [30]

В апреле 2016 года было объявлено , что libGDX бы перейти на Intel «s Multi-OS Engine на серверной IOS после прекращения RoboVM. [31] [32] С выпуском libGDX 1.9.3 от 16 мая 2016 года в качестве альтернативы предоставляется мульти-ОС, в то время как по умолчанию библиотека использует собственный форк версии RoboVM с открытым исходным кодом. [33] [34]

libGDX Jam [ править ]

С 18 декабря 2015 года по 18 января 2016 года был организован игровой джем libGDX вместе с RoboVM , itch.io и Robotality . Из первоначальных 180 тематических предложений главной темой джема была выбрана «Жизнь в космосе», а в ходе конкурса было создано 83 игры. [35] [36]

Версии выпуска [ править ]

Архитектура [ править ]

libGDX позволяет разработчику писать, тестировать и отлаживать свои приложения на собственном настольном ПК и использовать тот же код на Android. Он абстрагируется от различий между обычным приложением Windows / Linux и приложением Android. Обычный цикл разработки заключается в том, чтобы как можно дольше оставаться на настольном ПК, периодически проверяя, что проект по-прежнему работает на Android. Его основная цель - обеспечить полную совместимость между настольными и мобильными устройствами, главное отличие - скорость и вычислительная мощность. [5]

Бэкэнды [ править ]

Библиотека прозрачно использует специфичный для платформы код через различные серверные части для доступа к возможностям хост-платформы. В большинстве случаев разработчику не нужно писать код для конкретной платформы, за исключением стартовых классов (также называемых пусковыми установками), которые требуют различной настройки в зависимости от серверной части. [46]

  • На рабочем столе используется облегченная библиотека игр Java (LWJGL). Существует также экспериментальный бэкэнд JGLFW, который больше не поддерживается . [ необходима цитата ] [ когда? ] В версии 1.8 был представлен новый бэкэнд LWJGL 3 , предназначенный для замены старого бэкенда LWJGL 2 . [47]
  • Бэкэнд HTML5 использует Google Web Toolkit (GWT) для компиляции кода Java в JavaScript, который затем запускается в обычной среде браузера. libGDX предоставляет несколько реализаций стандартных API, которые там напрямую не поддерживаются, в первую очередь отражение . [48] [49] [50]
  • Бэкэнд Android запускает код Java, скомпилированный для Android с помощью Android SDK . [ необходима цитата ]
  • Для прошивки обычая вилок из RoboVM используется для компиляции Java для собственных команд IOS. Intel «s Multi-OS Engine был представлен в качестве альтернативы после прекращения RoboVM. [31] [33]

Другие языки JVM [ править ]

Хотя libGDX написан в основном на Java , скомпилированный байт-код не зависит от языка, что позволяет многим другим языкам JVM напрямую использовать библиотеку. В документации конкретно указывается совместимость с Ceylon , Clojure , Kotlin , Jython , JRuby и Scala . [51]

Расширения [ править ]

Существует несколько официальных и сторонних расширений, которые добавляют библиотеке дополнительные функции.

gdxAI [ править ]

Искусственный интеллект основа (AI) , которая отделилась от основной библиотеки с версии 1.4.1 в октябре 2014 года и переехал в свое собственное хранилище. Хотя изначально он был разработан для libGDX, его также можно использовать с другими фреймворками. Проект фокусируется на ИИ, полезном для игр, в том числе поиска пути , принятия решений и передвижения. [52] [53]

gdx freetype [ править ]

Может использоваться для визуализации шрифтов FreeType во время выполнения вместо использования статических растровых изображений, которые также не масштабируются. [54]

Box2D [ править ]

Оболочка для библиотеки физики Box2D была представлена ​​в 2010 году и перенесена в расширение с выпуском 1.0. [1] [55]

packr [ править ]

Вспомогательный инструмент, который связывает пользовательскую среду JRE с приложением, поэтому конечным пользователям не нужно устанавливать свою собственную. [56] [57]

Известные игры [ править ]

  • Ingress
  • Убейте Шпиль [58]
  • ГОПЛИТ
  • Deep Town
  • Sandship
  • Unciv
  • Mindustry
  • Космическое убежище
  • Delver
  • Путь
  • Наполовину
  • Риабло
  • Царства миражей
  • Raindancer
  • PokeMMO
  • Возраст зомби 3
  • Эпическая война героев
  • Подземелье Расколотых пикселей
  • Прическа

См. Также [ править ]

  •  Портал бесплатного программного обеспечения
  •  Портал компьютерного программирования

Ссылки [ править ]

  1. ^ a b c d e f g h i j k l m n o p q r s t u v Зехнер, Марио (20 апреля 2014 г.). «Выпущена libGDX 1.0» . badlogicgames.com . Проверено 31 декабря 2015 года .
  2. ^ a b c d «Цели и особенности» . libgdx.badlogicgames.com . Проверено 16 декабря 2015 года .
  3. ^ "Официальный сайт" . libgdx.badlogicgames.com . Проверено 2 января +2016 .
  4. ^ "mobilegameengines.com/game_engines/32-libgdx" . Архивировано из оригинала 18 января 2015 года.
  5. ^ a b «Домашняя страница · libgdx / libdgx Wiki» . github.com .
  6. ^ "libgdx / README.md на главном сервере" . github.com .
  7. ^ Zechner, Марио (6 марта 2010). «Будущее ...» badlogicgames.com . Проверено 31 декабря 2015 года .
  8. ^ Zechner, Марио (13 июля 2010). "libgdx меняет свою лицензию" . badlogicgames.com . Проверено 31 декабря 2015 года .
  9. ^ Zechner, Марио (10 июля 2010). "Форумы!" . badlogicgames.com . Проверено 3 января +2016 .
  10. ^ Zechner, Марио (21 января 2011). «Загрузка OpenAL и Natives в Libgdx» . badlogicgames.com . Проверено 3 января +2016 .
  11. ^ Zechner, Марио (26 января 2011). «Gdx2D и Super Jumper» . badlogicgames.com . Проверено 3 января +2016 .
  12. ^ Zechner, Марио (25 июня 2011). «Удовольствие от пользовательского интерфейса на Android с libgdx» . badlogicgames.com . Проверено 3 января +2016 .
  13. ^ Zechner, Марио (3 января 2012). «gdx-jnigen: глупая идея, которая может сработать» . badlogicgames.com . Проверено 3 января +2016 .
  14. ^ Zechner, Марио (8 января 2012). "gdx-audio" . badlogicgames.com . Проверено 3 января +2016 .
  15. ^ Zechner, Марио (6 марта 2012). «Создавайте растровые шрифты на лету с помощью gdx-freetype» . badlogicgames.com . Проверено 3 января +2016 .
  16. ^ Zechner, Марио (8 июня 2012). «Libgdx на iOS, дни 1-2» . badlogicgames.com . Проверено 3 января +2016 .
  17. ^ Zechner, Марио (13 июня 2012). «Libgdx на iOS, день 5» . badlogicgames.com . Проверено 3 января +2016 .
  18. ^ Zechner, Марио (8 августа 2012). «Git & Maven» . badlogicgames.com . Проверено 4 января +2016 .
  19. ^ Zechner, Марио (10 августа 2012). «Libgdx теперь на Github (вроде как)» . badlogicgames.com . Проверено 4 января +2016 .
  20. ^ Zechner, Марио (9 марта 2013). "Бэкэнд RoboVM libgdx на ранней стадии" . badlogicgames.com . Проверено 6 января +2016 .
  21. ^ Zechner, Марио (10 сентября 2013). "Бэкэнд RoboVM в ночных сборниках libgdx и первые цифры производительности!" . badlogicgames.com . Проверено 6 января +2016 .
  22. ^ Zechner, Марио (28 марта 2013). «Готовьтесь к выходу нового 3D API» . badlogicgames.com . Проверено 6 января +2016 .
  23. ^ Zechner, Марио (20 мая 2013). «Новый 3D API в мастере» . badlogicgames.com . Проверено 6 января +2016 .
  24. ^ Zechner, Марио (29 июня 2013). "Новый сайт libgdx работает!" . badlogicgames.com . Проверено 6 января +2016 .
  25. ^ "Галерея" . libgdx.badlogicgames.com . Проверено 6 января +2016 .
  26. ^ Zechner, Марио (14 сентября 2013). «Отличное средство отслеживания проблем libgdx и миграция Wiki на Github» . badlogicgames.com . Проверено 6 января +2016 .
  27. ^ Zechner, Марио (22 сентября 2013). «Добро пожаловать, ваш новый повелитель: Градл» . badlogicgames.com . Проверено 6 января +2016 .
  28. ^ Kvitkar, Каролина (28 сентября 2014). «Лауреаты премии« Выбор герцога 2014 »» . blogs.oracle.com . Проверено 30 декабря 2015 года . Программисты могут использовать эту кроссплатформенную среду разработки игр для написания, тестирования и отладки игр Java.
  29. ^ Zechner, Марио (29 сентября 2014). "libgdx получает награду" Выбор герцога " . badlogicgames.com . Проверено 30 декабря 2015 года .
  30. Перейти ↑ Gill, Philip J. «2014 Duke's Choice Awards» . Журнал Java . п. 8 . Проверено 31 декабря 2015 года .
  31. ^ a b Зехнер, Марио (15 апреля 2016 г.). "RoboVM больше нет, что теперь?" . Проверено 15 апреля 2016 года .
  32. Мюллер, Хенрик (15 апреля 2016 г.). "Сворачивание РобоВМ" . Проверено 16 апреля 2016 года .
  33. ^ a b Зехнер, Марио (16 мая 2016 г.). «Выпущен libGDX 1.9.3 - Новые бэкенды iOS» . Дата обращения 17 мая 2016 .
  34. ^ "Форк RoboVM от MobiDevelop" . Дата обращения 17 мая 2016 .
  35. ^ Zechner, Марио (22 ноября 2015). «libGDX Jam включен! - Тематический раунд №1» . badlogicgames.com . Проверено 13 февраля +2016 .
  36. ^ Zechner, Марио (6 февраля 2016). «libGDX Jam - И победитель…» . badlogicgames.com . Проверено 13 февраля +2016 .
  37. ^ Zechner, Марио (23 мая 2014). «Выпущена libGDX 1.1.0» . badlogicgames.com . Проверено 13 февраля +2016 .
  38. ^ Zechner, Марио (22 июня 2014). «Выпущена libGDX 1.2.0» . badlogicgames.com . Проверено 13 февраля +2016 .
  39. ^ Zechner, Марио (9 августа 2014). «Выпущена libGDX 1.3.0» . badlogicgames.com . Проверено 13 февраля +2016 .
  40. ^ Zechner, Марио (10 октября 2014). «Выпущена libGDX 1.4.1» . badlogicgames.com . Проверено 13 февраля +2016 .
  41. ^ Zechner, Марио (8 декабря 2014). «Выпущена libGDX 1.5.0» . badlogicgames.com . Проверено 13 февраля +2016 .
  42. ^ Zechner, Марио (6 мая 2015). «Выпущена libGDX 1.6.0» . badlogicgames.com . Проверено 13 февраля +2016 .
  43. ^ Zechner, Марио (21 сентября 2015). «Выпущена libGDX 1.7.0» . badlogicgames.com . Проверено 13 февраля +2016 .
  44. ^ Zechner, Марио (5 января 2016). «Выпущена libGDX 1.8.0» . badlogicgames.com . Проверено 13 февраля +2016 .
  45. ^ Zechner, Марио (24 января 2016). «Выпущена libGDX 1.9.0» . badlogicgames.com . Проверено 13 февраля +2016 .
  46. ^ "Стартовые классы и конфигурация · libgdx / libgdx Wiki" . github.com . 10 декабря 2015 . Проверено 19 декабря 2015 .
  47. ^ Zechner, Марио (5 января 2016). «libGDX 1.8.0» . badlogicgames.com . Проверено 11 января +2016 .
  48. ^ Zechner, Марио (12 марта 2012). «Libgdx переходит на HTML5» . badlogicgames.com . Дата обращения 17 мая 2016 .
  49. ^ Zechner, Марио (19 января 2013). "Отражение в бэкэнде libgdx GWT" . badlogicgames.com . Дата обращения 17 мая 2016 .
  50. ^ Zechner, Марио (17 июня 2013). "Reflection API с поддержкой GWT!" . badlogicgames.com . Дата обращения 17 мая 2016 .
  51. ^ "Использование libgdx с другими языками jvm" . github.com . 16 декабря 2015 . Проверено 30 декабря 2015 года .
  52. ^ "gdx-ai / README.md" . github.com . 12 октября 2015 . Проверено 16 января +2016 .
  53. ^ «Искусственный интеллект» . github.com . 12 марта 2015 . Проверено 16 января +2016 .
  54. ^ "Gdx freetype" . github.com . 19 декабря 2015 . Проверено 23 января +2016 .
  55. ^ "Box2d" . github.com . Проверено 23 января +2016 .
  56. ^ «libgdx / packr: упаковывает ваш JAR, ресурсы и JVM для распространения в Windows, Linux и Mac OS X» . github.com . Проверено 6 февраля +2016 .
  57. ^ Zechner, Марио (4 мая 2014). «Packr - упакуйте свое приложение libGDX для Windows, Linux, Mac OS X» . badlogicgames.com . Проверено 6 февраля +2016 .
  58. От кутюр, Джоэл. «Дорога к IGF: Mega Crit Games 'Slay the Spire» . www.gamasutra.com . Проверено 22 января 2020 года .

Внешние ссылки [ править ]

  • Официальный сайт