Средства разработки игр

Обновлено: 21.11.2024

Я уже давно хочу писать о разработке игр, и вот этот день наконец настал! В серии постов неизвестно сколько я кратко расскажу о некоторых основных концепциях разработки игр и игровых движков.

Игровой движок? Я слышал

Это похоже на «двигатель» автомобиля. Это «ядро» игры, в котором есть все необходимое для запуска игры, например рендеринг, звук, пользовательский ввод, анимация, физика…

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

По сути, игровые движки используются для разработки новых игр, упрощения повторного использования кода и упрощения развертывания на других платформах.

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

Двигатели, библиотеки и фреймворки

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

Единство

Многоплатформенный собственный игровой движок. Может использоваться для создания 2D, 3D, VR, AR, моделирования... Используется в других областях, таких как строительство и кино (см. «Король Лев»).

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

Некоторые игры, сделанные в Unity: Among Us, Cuphead.

Нереальный движок

Многоплатформенный коммерческий игровой движок, который можно использовать для создания 2D, 3D, VR, AR и симуляций. Он используется и в других областях, например в киноиндустрии (примеры включают «Мандалорец» и «Мир Дикого запада»).

Редактор Unreal Engine

Движок написан на C++, и это язык программирования, который вы будете использовать для разработки своих игр. Имеет модель ежемесячной подписки (с 5% гонорара от валового дохода от любой выпущенной игры), по которой разработчики могут получить доступ к полной версии движка, включая исходный код.

Помимо C++, вы можете создавать игры с помощью Blueprints, визуального языка сценариев. Вы можете покупать и продавать активы на Unreal Engine Marketplace.

я впервые пытаюсь использовать Blueprints

Годо

Кроссплатформенная библиотека для разработки программного обеспечения, написанная на C++ с привязками для множества языков (C, Go, Python, Rust и т. д.). Предоставляет простой интерфейс для различных компонентов и состоит из пяти модулей: системный, оконный, графический, аудио и сетевой.

ShipShift, игра для Ludum Dare 35

Некоторые игры, созданные в SFML, можно найти здесь и здесь.

Мечта каждого независимого разработчика: создать собственный игровой движок на базе SDL.

Кроссплатформенная библиотека для разработки программного обеспечения, написанная на C, изначально работает с C++ и имеет привязки для многих языков (Go, Lua, Python, Rust и т. д.).

Создавать игры — это весело

Работает, обеспечивая низкоуровневый доступ к аудио, клавиатуре, мыши, джойстику и графическому оборудованию. Также предоставляет некоторые дополнительные функции через несколько отдельных официальных библиотек, таких как SDL_image, SDL_ttf и SDL_mixer…).

Он используется программным обеспечением для воспроизведения видео, эмуляторами и играми, в том числе некоторыми из Valve и Humble Bundle.

пигейм

Кроссплатформенная библиотека для разработки программного обеспечения, написанная на Python, созданная на основе SDL, абстрагирующая наиболее распространенные функции и позволяющая использовать Python для структурирования игры.

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

другое

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

Итак… все?

Теперь вы знаете кое-что об игровых движках и о том, что используется для создания игр. В следующих статьях я покажу вам некоторые основные понятия игры, в том числе немного кода в pygame (возможно, что-то и в SDL). Вот список того, о чем я планирую поговорить:

  • цикл игры и ввод данных пользователем
  • сцены, слои и параллакс
  • спрайты
  • физика
  • звук
  • что-то еще?

Если у вас есть комментарий, исправление или предложение по поводу этой статьи, не стесняйтесь оставить слово ;)

Хотите создать мобильную игру, но не знаете, с чего начать? Это проще, чем вы думаете — просто используйте игровой фреймворк!

Хороший фреймворк требует много усилий от разработки. Новички могут использовать фреймворки для создания игры практически без программирования. А опытные разработчики могут использовать их для значительного ускорения написания кода.

Зачем использовать фреймворк?

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

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

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

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

Конструкция 2 (начинающий)

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

Игры Construct 2 построены на HTML5 (хотя вам не нужно писать код). Это отлично подходит для публикации ваших игр в Интернете. Игры Construct 2 также работают на разных платформах.

Единственным очевидным недостатком Construct 2 является то, что вы не можете кодировать свою игру, поэтому вы полностью зависите от того, что предоставил Scirra. Хотя вы можете добавить дополнительные функции с помощью подключаемых модулей, это не идеально, если у вас есть опыт программирования и вы хотите что-то изменить вручную.

GameMaker (от начинающего до среднего)

GameMaker – невероятно мощный инструмент для создания 2D-игр. Многие известные и успешные инди-игры, в том числе Spelunky и Hotline Miami, были созданы в GameMaker.

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

Unity (от среднего до продвинутого)

Сейчас Unity — популярный игровой фреймворк. Подобно GameMaker, он имеет собственную интегрированную среду разработки (IDE), и вы можете перетаскивать варианты поведения. Для начала работы с Unity требуются некоторые базовые навыки программирования.

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

Для тех из вас, кто хочет использовать Unity для создания 2D-игр, Unity только что выпустила новый рабочий процесс спрайтов, облегчающий эту задачу.

HTML5 (от среднего до продвинутого)

Не кажется ли странным, что HTML5 — это инструмент для разработки игр?

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

Существует множество отличных фреймворков HTML5. Двумя наиболее популярными являются Impact (лицензия за 100 долларов) и Phaser (бесплатно).Следует помнить, что вам придется управлять совместимостью браузеров на настольных и мобильных устройствах, и что распространение собственных приложений по-прежнему остается проблемой. Во многих случаях вам придется привнести в процесс разработки свои собственные инструменты.

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

Для получения дополнительной информации, вот несколько сообщений в блогах, посвященных Phaser и Unity:

Годо (дополнительно)

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

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

Какой фреймворк вам подходит?

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

Продолжайте учиться

Подробнее о состоянии качества с помощью руководства TechBeacon. А также: загрузите бесплатный Отчет о качестве в мире за 2021–2022 годы.

Эти 10 наиболее эффективных методов повышения производительности помогут реализовать на практике проектирование производительности.

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

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

Здесь мы обсудили 7 лучших платформ, которые помогают разработчикам в процедурах разработки игр.

1. Единство

Unity охватывает почти половину игровой индустрии. От разработки потрясающих 3D-игр до предоставления платформы реального времени — Unity занимает лидирующие позиции. Благодаря простому пользовательскому интерфейсу он помогает новичкам с помощью простых и понятных руководств и руководств. Использование этой платформы для студенческого или личного использования не будет взимать с вас никакой платы. Однако цены различаются в разных версиях, а именно в версиях plus, pro и enterprise. Кроме того, он обеспечивает удивительные фотографические эффекты. Это помогает сделать игру более интересной. Некоторые другие творческие функции этого инструмента включают рендеринг графики, совместную работу, среду выполнения следующего поколения. Он предлагает невероятные и уникальные возможности создателям игр и разработчикам игровой индустрии. Кроме того, он охватывает все необходимые платформы, такие как:

  • Android
  • Операционная система Tizen
  • Окна
  • Пожарная ОС

2. AppGameKit

  • Классическое приложение стоит 49,99 долл. США.
  • Приложение без ограничений стоит 66,98 доллара США.

Вы можете искать другие сборы в соответствии с вашими потребностями. Некоторыми примерами игр, разработанных с помощью AppGameKit, являются Rust of Adventures, Na4, LordZyc и т. д.,

3. CryEngine

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

4. Нереальный движок

Unreal Engine не требует особых навыков программирования. Таким образом, это своего рода простой инструмент для легкой и плавной разработки ваших игр. Используя эту платформу, можно легко вносить изменения в свои игры, не прибегая к запутанному кодированию. Действительно, это набор унифицированных инструментов, который позволяет сделать визуальные эффекты и симуляции вашей игры более мощными. Более того, Unreal Engine предоставляет удобный и точный дизайн, предлагающий создавать 3D-графику. Некоторые поддерживаемые платформы: Xbox One, iOS, Linux, Android, HTML5 и т. д. Кроме того, эта платформа предлагает бесплатное лицензирование для публикации и создания. Однако за использование специальной лицензии взимается дополнительная плата.

5. Лесной склад Амазонки

  • PS4
  • ПК
  • iOS
  • Xbox One
  • Android

6. Cocos2d-x

  • Помощь сообщества
  • Редактирование сцены
  • Управление ресурсами
  • Предварительный просмотр игры
  • Документация
  • Отладка

Cocos2d помогает публиковать схемы на разных платформах. Это бесплатная платформа, поддерживающая платформы iOS, HTML5, Android, Mac и Windows.

7. Титан

  • Гибрид
  • Android
  • HTML5
  • iOS

Кроме того, эта платформа бесплатна до инди-версии. Однако при выборе версии Pro с вас будет взиматься плата в размере 199 долларов США в месяц.

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

В основном я веб-разработчик. В последнее время много использую React/Redux (javascript). Но я пришел из разработки Android, поэтому у меня есть некоторый опыт работы с Java. Я думал о том, чтобы попробовать себя в разработке игр, что бы вы порекомендовали мне узнать.

Каковы плюсы и минусы использования чего-то вроде Unity по сравнению с чистой программной библиотекой, такой как libgdx

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

Я предпочитаю идти этим путем, потому что поначалу это может быть медленнее, но зато гораздо полезнее.

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

(Я разработчик игр-любителей, начал с GMS и выпустил игру в Steam, созданную с помощью libgdx. Пробовал Unity несколько дней. Я закончил университет по специальности CSE, но у меня нет профессионального опыта работы.) Многие люди рекомендуют Unity, но Unity может быть немного избыточным и излишним для простой 2D-игры. (Его 2D-функции кажутся запоздалыми) Libgdx легкий и имеет хороший 2D-API, но это болезненно для создания пользовательского интерфейса. GMS прост, но его язык сценариев довольно странный и неудобный. Игровой движок с полноценным редактором заставляет разработчиков следовать их правилам. Я рекомендую вам попробовать оба движка: libdx/monogame и unity/godot.

Я использовал Libgdx в течение последних 4 лет, очень сложно получить какую-либо поддержку, потому что сейчас он практически мертв. Тем не менее, есть еще много вопросов/ответов. Если вы планируете что-то делать с 3D, вам следует использовать Unity. Поддержка 3D в Libgdx чрезвычайно ограничена, и вам придется вручную много писать код для базовых вещей, которые уже делает Unity, таких как обнаружение столкновений, отсечение усеченной пирамиды и окклюзии, а также фильтрация текстур. Также вы должны использовать собственный формат модели Libgdx (G3DB), который имеет ограничения на вершины и каркасы. Проблема, с которой я столкнулся с Libgdx, заключается в том, что я трачу много времени на кодирование и создание инструментов для создания игрового мира. Если вы делаете 2D-игру, Libgdx легко начать, но становится сложно, когда вы пытаетесь спроектировать свои уровни и мир, потому что у него нет инструментов для этого, а делать это в коде сложно и требует много времени. тогда как Unity предоставляет для этого WYSIWYG-редактор.

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

PhaserJS для JS или Godot Engine для движка.

У меня также есть опыт работы в веб-разработке, и я недавно играл в Phaser (один из фреймворков JS), и мне кажется, что это вполне естественно. Доступен начальный шаблон Webpack, поэтому вы можете относительно безболезненно писать на ES6

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

Удобно/готово ли вам программировать инструменты дизайна вместе с игрой?

Да, наверное, это не звучит скучно. Вероятно, начну с чего-то вроде Unity, по крайней мере, для первых двух игр

Я ориентируюсь на браузер, это то, что я использую

рендеринг: pixi.js с webGL

пользовательский интерфейс: полимерные/веб-компоненты

сервер: моя собственная структура, основанная на Vert.x

Hazelcast для кластеризации

CQEngine (SQLite/Lucene) для сохраняемости.

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

Зависит от того, что именно вы хотите разработать. Доступно множество фреймворков js, от старых добрых Three и Playcanvas для 3D до Phaser и Melon для 2D.

Хотя у вас есть полный контроль при использовании libgdx или просто программировании всего самостоятельно, использование таких инструментов, как Unreal, Unity, GameMaker Studio и т. д., имеет ряд реальных преимуществ.

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

Кроме того, вам гораздо проще настроить таргетинг на несколько платформ – ПК, консоли, мобильные устройства и т. д. без существенного переписывания игры.

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

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

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

клиенты не восхищаются вашим мастерством программирования.

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

И вам гораздо проще настроить таргетинг на несколько платформ

Это возможно с помощью фреймворков. Monogame/FNA/SDL2 поддерживают большинство интересующих вас платформ.

Что вы делаете? Это будет важный вопрос, на который вы захотите ответить, прежде чем погрузиться во что-либо «по-настоящему».

Unity предоставляет вам всю игровую среду, которую вам не нужно писать. И хотя каждый программист говорит: «Я сделаю это с нуля», мы больше о них ничего не слышим. libgdx, похоже, не дает вам всей помощи, которую есть у Unity и Unreal.

Но давайте поговорим о Unity и Libgdx. Честно говоря, я никогда не использовал libgdx, вы можете подумать, какие крупные проекты используют его, и... вот идея, спросите людей, которые его используют? Я не пытаюсь быть ослом, но это то, что многие люди не делают. Напишите электронное письмо некоторым из этих компаний и вежливо спросите: «Каковы ваши впечатления от работы с движком».

Когда я смотрю на их демо-видео, оно выглядит довольно плохо, и для меня это красный флаг, но это также зависит от того, какую игру вы пытаетесь сделать. Кажется, они говорят: «Мы можем все», но люди используют их для создания игр для Android, и это здорово, если вы делаете это.

Unity (и нереальная) полнофункциональна, если вы хотите сделать игру для ПК, LibGDX выглядит не очень хорошо, и, честно говоря, похоже, что она может вас сдерживать. С другой стороны, Unity и Unreal ОЧЕНЬ тяжеловесны и созданы для больших продуктов, но Unity и Unreal поставлялись много раз, для довольно больших игр, и под этим я подразумеваю названия ААА, такие как Hearthstone и Cities Skylines для Unity, и в значительной степени все для Unreal.

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

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

Читайте также: