Java – один из самых популярных языков программирования, но когда речь заходит о создании игр, многие задумываются, какой инструмент использовать. Одним из лучших решений является libGDX – мощный кроссплатформенный фреймворк, позволяющий разрабатывать игры для Windows, macOS, Linux, Android, iOS и HTML5.
В этой статье мы разберем, как как установить LibGDX, создать первый проект и запустить его. Но сначала немного вводной информации.
libGDX был создан Марио Зехнером (Mario Zechner) в 2009 году как проект с открытым исходным кодом. Целью было предоставить удобный инструмент для создания игр на нескольких платформах без необходимости писать код для каждой из них отдельно. Со временем libGDX стал одним из самых популярных фреймворков для 2D- и 3D-игр на Java.
libGDX активно используется как инди-разработчиками, так и крупными студиями. Этот фреймворк позволяет создавать игры для мобильных устройств, ПК и браузеров.
Некоторые популярные игры, созданные с использованием libGDX:
- Mindustry – многопользовательская стратегическая игра с элементами защиты базы
- Slay the Spire – карточная игра с уникальной механикой
- Delver – экшен игра, в пиксельном стиле с видом от первого лица
- Pixel Dungeon – игра в жанре традиционного roguelike.
- Dungeoneers – тактическая пошаговая RPG
И так начнем.
Для начала работы с libGDX требуется libGDX Project Setup Tool(gdx-liftoff), который автоматически создаст проект с нужными зависимостями. С подробной информацией можно ознакомится на официальном сайте фреймворка libgdx.com. Скачать же libGDX Project Setup Tool (gdx-liftoff) можно на github.com
После запуска, укажите названия проекта, пакета и главного класса.
Выберите "project option" и добавьте необходимые платформы на которых будет запускаться игра.
Платформы, которые можно добавить в libGDX:
Основные:
- CORE – основной модуль, в котором находится основной код игры.
- DESKTOP (lwjgl3) – запускает игру на ПК с использованием LWJGL3 (OpenGL, Vulkan). Работает на Windows, macOS и Linux.
ANDROID – для запуска на Android-устройствах. Использует Android SDK и требует настройки Gradle. - iOS – для iOS (iPhone/iPad). Требует RoboVM и только java 7 или 8).
Работает только на macOS (из-за Xcode). - HTML (GWT/Web) – запуск в браузере с помощью GWT, требует Java 8–11.
Дополнительные:
- HEADLESS – запуск игры без графики (для серверов). Полезно для серверов многопользовательских игр.
Можно использовать для юнит-тестирования логики.
Не поддерживает рендеринг (только логика и физика). - HTML (TeaVM) – альтернатива GWT для браузеров. Генерирует WebAssembly и JavaScript, работает быстрее, чем GWT.
Требует TeaVM (не входит в стандартный libGDX).
Используется, если нужна оптимизированная web-версия. - iOS-MOE (Multi-OS Engine, MOE) – альтернатива RoboVM для iOS. Позволяет запускать libGDX на iPhone/iPad.
Поддержка MOE прекратилась, но есть форки (например, MobiVM).
Требует Mac + Xcode для сборки. - Desktop-Legacy (LWJGL 2) – старая версия Desktop-платформы.Используется для совместимости со старыми проектами.
LWJGL 2 не развивается, лучше использовать LWJGL 3.
Может работать на старых устройствах, где LWJGL 3 не поддерживается. - SERVER – модуль для серверной части игры.Позволяет запускать сервер на Java (обычно с Netty или Kryo).
Не включает графику (в отличие от desktop).
Используется для онлайн-игр (чаты, PvP).
Можно запускать на Linux, Windows, macOS (на выделенном сервере или облаке). - SHARED – модуль для общего кода в Kotlin Multiplatform (KMP). Полезен при использовании Kotlin и Kotlin/Native.
Позволяет разделять код между платформами без жесткой зависимости от Java.
Если вы новичок в libGDX, лучше использовать только основные платформы и добавлять их по мере необходимости. Например, если планируется только Desktop-версия, то достаточно выбрать только desktop, без лишних модулей. Во вкладке LANGUAGES не чего не добавляем, по умолчанию у нас язык программирования Java.
Далее нужно выбрать расширения, которые необходимы для игры, в нашем случае необходимы Box2d и Tools.
Box2D – физический движок для 2D-игр
- Позволяет создавать реалистичную физику в играх.
- Поддерживает тела, силы, столкновения, трение, гравитацию.
- Используется для платформеров, головоломок, симуляций.
- Основан на C++-движке Box2D, но адаптирован для Java/libGDX.
Tools – набор вспомогательных инструментов
- Включает утилиты для работы с графикой, текстом, картами, анимацией.
На странице с неофициальными расширениями можно оставить все пустым.
На следующей странице указать версию java, лучше поставить 11 и выбрать папку для проекта.
Нажмите "Generate" и откройте проект в IntelliJ IDEA.
Для создания проекта с использованием libGDX используется Gradle. Раньше в libGDX сборка проекта была сложной, особенно если нужно было поддерживать сразу несколько платформ. С Gradle этот процесс стал автоматизированным, что значительно упростило работу.
После автоматического импорта необходимых библиотек требуется добавить конфигурацию для запуска/отладки. Для desktop это будет выглядеть следующим образом:
Следует открыть Run/Debug Configurations, выбрать "Application".
Необходимо заполнить поля как на следующем рисунке. Рекомендуется использовать java версии 17.
Основной код созданного приложения находится в модуле core.
После сохранения конфигурации можно запустить созданный шаблон.
Запуститься скомпилированное desktop приложение:
Заключение
libGDX – мощный и гибкий инструмент для разработки игр на Java. Он позволяет создавать проекты, работающие на разных платформах, с минимальными изменениями в коде.
В этой статье были рассмотрены основные шаги по созданию и запуску проекта.
libGDX предоставляет множество возможностей: от создания 2D- и 3D-игр до разработки серверных решений. Начав с базовых платформ и расширений, вы сможете постепенно усложнять свой проект и охватывать новые платформы.
Если статья была полезной, ставьте лайк и подписывайтесь на канал, чтобы не пропустить новые статьи и материалы! Удачи в создании вашей первой игры!