Создание Java-игры: с чего начать

  • 16 августа, 14:37
  • 3769
  • 0

Все, ну почти все, любят видеоигры. Поэтому, даже если вы не собираетесь быть профессиональным разработчиком игр или просто не знаете наверняка, выучить язык программирования на практике и создать свой собственный проект видеоигры - отличная идея. Кроме того, это может быть хорошей мотивацией для вашего обучения. 

Создание Java-игры: с чего начать

Эта статья адресована всем, кто думает о создании собственного проекта Java-игры и не знает, с чего начать...

Java плоха для GameDev? .. Мифы и реальность

Если вы прочитаете некоторые форумы и статьи о разработке игр, у вас может сложиться впечатление, что Java не является хорошим выбором для разработки игр. Однако это мнение несколько устарело и неточно. Мир видеоигр очень разнообразен. Условно вы можете разделить игры на следующие категории: 

  1. «Большие» игры. Такие как 3D-шутеры, масштабные экшн-приключения/action RPG. В эту категорию также входят проекты уровня AAA. Обычно это высокобюджетные игры, предназначенные для массовой аудитории, такие как Red Dead Redemption 2, Assassin Creed Origins и так далее. Игры такого типа обычно написаны на C ++ и сопровождаются игровыми движками. Java является редким гостем в разработке игр такого типа из-за особенностей JVM. Точнее, его можно использовать, например, для создания внутренних деталей. 
  2. Инди-игры. Один геймер относится к инди-проектам с презрением, а другой любит их со страстью. Инди-игра означает независимую игру, созданную небольшой командой или даже одним разработчиком. 

Среди инди много любительских проектов, некоторые из них не приносят денег своим создателям. Инди больше о оригинальной идее и игровом процессе, хороших сценариях и субъективном видении, а не о производительности и высококачественной графике. 

Тем не менее, такие инди-проекты прорываются на рынок и становятся мегапопулярными. Хорошим примером такой игры является Minecraft, изначально созданный одним человеком, Маркусом Перссоном. По состоянию на май 2019 года было продано более 176 миллионов копий Minecraft. Это делает ее одной из самых продаваемых видеоигр всех времен. В 2014 году Microsoft купила Minecraft и Mojang за 2,5 миллиарда долларов США. Кстати, Маркус Перссон является Java-разработчиком, поэтому он написал свое выдающееся детище на этом языке. Так что, да, Java действительно хорош для инди-проектов.

  1. Мобильные игры. Этот огромный рынок продолжает расти вместе с количеством и производительностью смартфонов. Почти каждый играл в игру на своем мобильном устройстве. Хороша ли Java для разработки мобильных игр? Ответ твердое «да». Доля рынка Android-смартфонов сейчас составляет 80%, и на Java написано очень много мобильных игр. 

Выводы: Java хорош для разработки мобильных игр и инди-проектов (эти рынки несколько пересекаются) и для разработки серверной части высоконагруженных онлайн-игр. 

Более того, Java является универсальным языком. Он используется при разработке на стороне сервера, в больших данных, мобильных и веб-приложениях, торговых приложениях, встроенном пространстве и т.д. Java Developer может свободно менять свою роль в программировании. Следовательно, Java дает вам свободу выбора, может быть, даже больше, чем любой другой язык программирования. 

Может ли новичок-программист создать свою собственную игру? Как это сделать?

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

Обсудим три варианта создания игр на Java для начинающых.

Вариант 1. С нуля, используя пошаговые инструкции. CodeGym, Games section  

Эта функция подходит для начинающих. Вы можете создать свою версию 6 классических игр с основами знаний Java. Раздел игр на CodeGym не входит в основной курс и доступен бесплатно для всех пользователей. 

Создание Java-игры: с чего начать

Раздел CodeGym Games позволяет вам создавать свои собственные версии легендарных видеоигр, таких как Minesweeper, 2048 или Snake (Space Invaders, Moon Lander и Racer находятся в разработке).  

Каждая игра представляет собой задание с двумя десятками подзадач и пошаговыми инструкциями. Студент получает подзадачу и советы, пишет код, а затем проверяет с помощью автоматической системы CodeGym. Если код работает правильно, студент переходит к следующему шагу. Весь код пишется непосредственно на сайте CodeGym или в IntelliJ IDEA через специальный плагин, который вы можете получить на CodeGym.

Завершив последний шаг, у вас есть готовая к использованию игра, вы можете опубликовать ее на сайте, настроить ее в соответствии со своим виденьем и поделиться с друзьями.

Что вы должны знать для кодирования этих игр? Это уровень первых программ на Java: начальные знания о классах и объектах, базовые примитивные типы данных, String, циклы и ветки, а также массивы и начальные знания о структуре ArrayList. Авторы CodeGym рекомендуют пройти первые 5 уровней курса, чтобы получить такие знания. 

Вариант 2. Для не совсем новичка в Java, который любит Minecraft 

Если вам нравится Minecraft, то стоит попробовать сделать некоторые модификации с Java. Большинство модов добавляют некоторый контент в игру, чтобы изменить игровой процесс или дать игроку больше возможностей в том, как они взаимодействуют с миром Minecraft. Например, вы можете закодировать новый, более точный лук или что-то в этом роде. Некоторые люди создают мини-игры прямо в Minecraft. 

Создание Java-игры: с чего начать

Даже если вы не большой поклонник этой игры, каждому новичку было бы полезно работать с декомпилированным кодом, пытаясь понять его и изменить его для себя. Позже вы можете играть в Minecraft с вашими собственными режимами. 

Чтобы начать с моддинга, у вас должны быть установлены IDE и JDK, а также инструмент для моддинга. Forge - один из самых популярных инструментов для моддинга Java. Есть множество учебных пособий и курсов по моддингу Java Minecraft.   

Вот некоторые из них: 

Что нужно знать для моддинга Minecraft с Java?

Это зависит от сложности режима, который вы хотите сделать. Вы должны знать хотя бы Java-классы и объекты, основы структур данных, однако было бы гораздо полезнее, если у вас есть более или менее солидные навыки использования ООП, ознакомления с потоками и коллекциями Java.   

Случай 3. Я хорошо знаю Java Core, я готов к собственному игровому проекту.

У вас есть идея для независимого кроссплатформенного или мобильного проекта? Может быть, вы знаете, как создать свою собственную версию популярной игры? Что делать, если вы знаете Java Core и больше ничего не знаете о разработке игр? Написание игры на сыром Java - довольно сложная перспектива, но есть действительно интересные и полезные фреймворки и библиотеки, которые помогут вам воплотить вашу идею в жизнь.     

Из чего состоит игра?

  • Графика
  • Физика (способ взаимодействия объектов в игре)
  • ИИ (он представлен не в каждой игре, но довольно часто) 
  • Графический интерфейс пользователя
  • Звук

OpenGL - это кроссплатформенный интерфейс прикладного программирования (API) для рендеринга 2D и 3D векторной графики. В Java вы можете использовать функции OpenGL с некоторыми библиотеками - Java3D , JOGL (Java OpenGL) и LWJGL (облегченная библиотека игр Java). Все они кроссплатформенные, бесплатные и с открытым исходным кодом. 

Создание Java-игры: с чего начать

Самый популярный - последний, LWJGL. LWJGL предоставляет вам доступ к графической библиотеке OpenGL и содержит все необходимое для создания 2D и 3D игр. LWJGL также поддерживает мощный кроссплатформенный API для создания музыкальных и звуковых эффектов OpenAL и поддерживает OpenCL, стандарт для кроссплатформенного параллельного программирования.

libGDX - это фреймворк LWJGL для кроссплатформенных игр. Он содержит полезный движок Box 2D, который позволяет создавать игровую физику, множество графических классов, инструменты для работы со звуком. 

libGDX состоит из нескольких модулей, поэтому вы можете использовать его для создания персонажей на основе AI, управления светом, звуком и физикой. 

С помощью libGDX и box2d вы можете разрабатывать игры для разных платформ, таких как Android, iOS, Windows, Linux, MacOS и Web. Вам не нужно заново создавать код для каждого из них, написать его один раз, и он будет работать на любой системе из-за кроссплатформенности. 

Поэтому неплохо бы изучить libGDX для начинающего разработчика Java-игр. 

Что-то еще? 

Разработка игр - это не только программирование. Если вы планируете работать со своим проектом самостоятельно, вам также следует: 

  1. Сделайте некоторые пиксельные рисунки, текстуры, спрайты персонажей. Вам нужен редактор изображений для этого. Например, Pinta или  Paint.Net 
  2. Левел-дизайн. Чтобы создать карту, вам нужен набор плиток. Вы можете создать его в графическом редакторе. Для создания карты из плиток вы можете использовать редактор карт Tiled. 
  3. Создайте текстурные атласы. Текстурный атлас - это одно большое изображение, которое содержит все  спрайты. Атлас определенно ускоряет процесс разработки. Вы можете использовать бесплатный сервис Sprite для этой задачи. 
  4. Создать графический интерфейс. Используйте, например, Overlap2D

Выводы

Даже если вы абсолютный новичок, вы можете попробовать создать видеоигру, используя некоторые веб-учебники и инструменты, такие как CodeGym Game Section. 

Вы также можете попытаться создать несколько режимов для существующих игр, и Minecraft (версия для Java) вместе с Forge.

Если вы достаточно хорошо знаете Java Core, то libGDX Framework - хороший выбор для изучения и использования в вашем первом игровом проекте.  


0 комментариев
Сортировка:
Добавить комментарий

IT Новости

Смотреть все