Java 3D игры: Настройка LWJGL проекта в Gradle

Настраиваем проект и подключаем библиотеку LWJGL (Lightweight Java Game Library) для разработки 3D-игр.

Подключение LWJGL через Gradle

Для разработки используется стороннняя библиотека LWJGL. Подключение осуществляется через её официальный сайт. На странице загрузки, в разделе «Customize», указываем параметры:

  • Система сборки: Gradle (или Maven).
  • Платформа: Windows, Linux или macOS.
  • Комплектация: Вариант, включающий все возможности библиотеки и дополнение joml.

Сайт сгенерирует код подключения. Он содержит множество зависимостей, многие из которых могут быть не нужны. Поэтому предлагаем использовать упрощенный вариант dependencies, содержащий только необходимые библиотеки и классы (доступен по ссылке).

Важно: на Windows замените natives macos на natives windows, а на Linux — на natives linux.

Настройка файла build.gradle

В файле build.gradle:

  1. Удаляем блоки test и dependencies. Блок dependencies содержит зависимости для юнит-тестирования.
  2. Вставляем скопированный блок dependencies.

После вставки зависимостей, синхронизируем проект в IDE для загрузки библиотек.

Создание и запуск основного класса

Создаём или открываем класс Main. Удаляем его содержимое, оставив объявление класса и пакета.

Вставляем базовый код запуска приложения (раздел «Get Started» на официальном сайте LWJGL). Убедитесь, что имя класса соответствует имени файла (Main) и что объявление package сохранено. Иначе возникнет ошибка.

Запускаем проект, нажав кнопку запуска в IDE. Первая сборка может занять некоторое время.

Решение проблемы с отображением окна приложения

Если окно не отображается, добавляем параметры VM options:

  1. В настройках запуска приложения (Edit Configuration) выбираем наше приложение.
  2. Нажимаем «Modify options».
  3. Добавляем VM options (Add VM options).
  4. Вставляем строку с опциями (ссылка).
  5. Нажимаем «Apply» и «OK».

После этого запускаем проект. Должно открыться окно с красным фоном и кнопками управления (полноэкранный режим, закрытие).

Анализ базового кода

Рассмотрим основной код:

  • window: Идентификатор окна.
  • run(): Запускает приложение. Вызывается из main().
  • init(): Инициализирует окно и настройки, используя GLFW (библиотека для доступа к OpenGL). Устанавливает размер окна, заголовок, коллбеки (например, обработчик Escape). Центрирует окно.
  • loop(): Отрисовывает содержимое окна. Создаёт плоскость и заполняет её красным цветом. Содержит цикл работы приложения.
  • Функции очистки памяти: Выполняются при закрытии приложения.

В init() работаем с OpenGL через GLFW, устанавливаем параметры окна и обрабатываем события. loop() отвечает за отрисовку. В следующем уроке рассмотрим отрисовку подробнее.

Мы настроили проект и запустили базовое приложение на LWJGL. Научились подключать библиотеку, настраивать параметры запуска и разобрали основной код. В следующих уроках продолжим работу с LWJGL и создадим более сложные элементы игры.

Что будем искать? Например,программа