Пишем игры на 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 для проектирования оконного интерфейса:
Создать проект очень просто, подробная инструкция размещена на официальном сайте. Там же располагается англоязычная вики-система.
К сожалению, документация (особенно русскоязычная) представлена скудно и разрозненно. Например, найти полноценный «бумажный» учебник на русском языке так и не удалось. Посему хочу выделить несколько ресурсов, которые помогут в изучении:
- http://www.libgdx.ru/ — русскоязычный сайт со статьями;
- https://www.youtube.com/playlist?list=PLu6IQ3NeYLSyQdQlsDE_maM4n8ZM_4oP3 — плей-лист на YouTube с уроками;
- https://discord.com/invite/6pgDK9F — Discord-сервер сообщества разработчиков.
В завершении хочу отметить новый неожиданный для себя инструмент освоения программирования (и не только) — ChatGTP. Да-да, тот самый нашумевший за последние годы. Почему неожиданный? Поразила лёгкость, с которой нейросеть даёт тебе ответ. Просто задаёшь вопрос «А расскажи мне о…» , «А как я могу сделать…» , «А для чего нужно…» и т.д. И через минуту получаешь развёрнутый ответ с примерами. Остаётся лишь осмыслить написанное и интегрировать в свой проект. Больше не нужно тратить время на утомительный поиск в Интернете, продираться по пучинам форума, отсеивать мусор и пытаться уловить крупицы полезной информации среди бесполезного шума. Как-будто общаешься с живым умным неутомимым наставником. При должной сноровке, ChatGTP даже способен найти ошибку в коде, но всё же, здесь придётся попотеть — отладка остаётся одной из самых сложных частей в ходе разработки. Невероятно мощный ресурс для изучения практически любой темы.
А генеративные свёрточные нейросети (такие как Midjourney, Kandinsky, Dall-E) помогут с получением графической составляющей игры. Хотя бы на первое время. Вот, к примеру, персонажи для игры в Мафию, созданные Kandinsky. Всего я сгенерировал более 40 портретов для игроков за каких-то 1.5 часа — и совершенно бесплатно. Страшно представить, как долго эту работу выполнял бы «живой» художник, как сложно было бы его найти, как дорого бы он попросил за свой труд.
Добавить комментарий