Рубрики
Без рубрики

Создайте Java-игру с (почти) нулевыми навыками программирования

Эта статья адресована всем будущим и начинающим студентам Java, а также всем, кто думает о создании собственного игрового проекта Java и не знает, с чего начать и как лучше всего изучать этот язык. Помечено как начинающие, java, кодирование, обучение.

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

Эта статья адресована всем будущим и начинающим студентам Java, а также всем, кто думает о создании собственного игрового проекта Java и не знает, с чего начать и как лучше всего изучать этот язык.

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

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

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

Java – редкий гость в такого рода разработке игр из-за особенностей JVM. Точнее, его можно использовать, например, для создания внутренних деталей.

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

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

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

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

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

Если вы уверены в своем решении стать крупным разработчиком игр, то C++ и некоторые игровые движки, такие как Unity и Unreal, – ваш выбор для обучения.

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

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

Случай 1. С нуля, используя пошаговые инструкции. Кодовый тренажерный зал, Секция игр

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

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

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

Выполнив последний шаг, у вас есть готовая к использованию игра, которую вы можете опубликовать на сайте, настроить ее в соответствии с вашим творчеством и поделиться с друзьями. В играх используется игровой движок simple Code Gym, структуру которого вы можете узнать из этой статьи .

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

Оплата: Код Gym Games можно использовать бесплатно.

Случай 2. Для новичка и студента Java среднего уровня, который любит Minecraft

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

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

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

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

Что вы должны знать для моддинга Minecraft с помощью Java?

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

Оплата: обычно вы должны купить свою собственную версию Minecraft. Если вы не хотите изучать моддинг самостоятельно, легко найти несколько платных курсов в Интернете.

Случай 3. У меня есть солидные знания Java Core, я готов к своему собственному игровому проекту

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

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

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

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

OpenGL – это кроссплатформенный интерфейс прикладного программирования (API) для рендеринга 2D и 3D векторной графики. В Java вы можете использовать функции OpenGL с некоторыми библиотеками — Java3D , БЕГ ТРУСЦОЙ (Java OpenGL) и LWJGL (Облегченная библиотека Java-игр). Все они являются кроссплатформенными, бесплатными и с открытым исходным кодом.

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

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

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

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

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

Что еще?

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

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

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

Создавайте атласы текстур. Атлас текстур – это одно большое изображение, содержащее все наши спрайты. Atlas определенно ускоряет процесс разработки. Вы можете использовать бесплатный Упаковщик листов спрайтов для этой задачи.

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

Выводы

Независимо от того, станете ли вы разработчиком игр или позже предпочтете другую отрасль программирования, создание собственной игры определенно отлично подходит для изучения Java. Создавая игру, вы участвуете во всех процессах типичного проекта по разработке программного обеспечения от начала до выпуска. Вы видите результаты своей работы и можете продемонстрировать их своим друзьям или даже опубликовать где-нибудь (например, в Google Play).

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

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

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

Удачи вам в ваших играх!

Статья была первоначально опубликована на Хакерский полдень .

Оригинал: “https://dev.to/selawsky/code-a-java-game-with-almost-zero-coding-skills-1fmh”