Найти тему
Артур Хасанов

Пишем игры на Java: библиотека LibGDX

Познакомился с любопытной разработкой — библиотекой LibGDX для Java. Она представляет собой игровой «движок», облегчающий создание компьютерных игр. Конечно, проект куда более скромный, чем такие гиганты как Unity и Unreal Engine. Тем не менее, с его участием разрабатываются в том числе и коммерчески-успешные (пусть и небольшие) игры, которые, например, продаются в Steam или Google Play. Среди подобных проектов можно выделить, например, карточный рогалик Slay the spire, FTL-вариация Space Heaven или клон знаменитой Цивилизации для Android — проект unCiv. На сайте представлена своеобразная «витрина» таких игр.

Библиотека является открытой и кросс-платформенной: созданные приложения могут быть запущены на Desktop, на Android и iOS — и даже в браузере (с использованием HTML5). Разработка и поддержка решения продолжается уже больше 10 лет. С официальный пакет входят инструменты:

  • Для работы с 2D-графикой;
  • Для работы с 3D-графикой;
  • Встроенный физический движок с расчётом соударений;
  • Функции работы с аудио-потоком;
  • Функции для работы с видео;
  • Функции для взаимодействия с контроллерами: клавиатурой, мышью, гейм-падами и т.д.
  • Сетевой стек для написания многопользовательских игр;
  • Поддержка алгоритмов искусственного интеллекта для реализации игр с компьютерным соперником.

Кроме официального пакета, к библиотеке при необходимости к библиотеке подключаются расширения от сторонних разработчиков. Например, демонстрация плагина VisUI для проектирования оконного интерфейса:

-3

Создать проект очень просто, подробная инструкция размещена на официальном сайте. Там же располагается англоязычная вики-система.

К сожалению, документация (особенно русскоязычная) представлена скудно и разрозненно. Например, найти полноценный «бумажный» учебник на русском языке так и не удалось. Посему хочу выделить несколько ресурсов, которые помогут в изучении:

В завершении хочу отметить новый неожиданный для себя инструмент освоения программирования (и не только) — ChatGTP. Да-да, тот самый нашумевший за последние годы. Почему неожиданный? Поразила лёгкость, с которой нейросеть даёт тебе ответ. Просто задаёшь вопрос «А расскажи мне о…» , «А как я могу сделать…» , «А для чего нужно…» и т.д. И через минуту получаешь развёрнутый ответ с примерами. Остаётся лишь осмыслить написанное и интегрировать в свой проект. Больше не нужно тратить время на утомительный поиск в Интернете, продираться по пучинам форума, отсеивать мусор и пытаться уловить крупицы полезной информации среди бесполезного шума. Как-будто общаешься с живым умным неутомимым наставником. При должной сноровке, ChatGTP даже способен найти ошибку в коде, но всё же, здесь придётся попотеть — отладка остаётся одной из самых сложных частей в ходе разработки. Невероятно мощный ресурс для изучения практически любой темы.

А генеративные свёрточные нейросети (такие как Midjourney, Kandinsky, Dall-E) помогут с получением графической составляющей игры. Хотя бы на первое время. Вот, к примеру, персонажи для игры в Мафию, созданные Kandinsky. Всего я сгенерировал более 40 портретов для игроков за каких-то  1.5 часа — и совершенно бесплатно. Страшно представить, как долго эту работу выполнял бы «живой» художник, как сложно было бы его найти, как дорого бы он попросил за свой труд.