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

10

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

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

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

Тревор Пауэлл
источник
11
Для чего он стоит, я использую двухэтапный подход: (1) выбрать один произвольно; (2) сожалеть о решении позже. Преимущество в том, что вы быстро пройдете первый шаг.
Кэмерон Фредман
2
Разве это не вопрос сообщества Wiki?
Мартон
Я рад, что это стало вопросом сообщества Wiki, но у меня нет возможности сделать это. Я полагаю, что CW по вопросам в наши дни предназначена только для модераторов.
Тревор Пауэлл
@ Мартон, почему вы думаете, что это должен быть CW?
MichaelHouse
1
@ Byte56 Потому что этот вопрос возникает всегда, когда кто-то хочет начать разработку игры. Уже есть много фреймворков / движков, и такая общая запись "что учитывать" была бы действительно полезной. Я думаю, что это ответило бы на многие вопросы «какой движок мне следует использовать», которые будут появляться на этом сайте. Последнее выражение фактически сделало бы такие вопросы «неконструктивными».
Мартон

Ответы:

14

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

  1. Составьте список интересующих вас функций. Например, поддержка 2D / 3D, освещение, физика, использование языка, который вы хорошо знаете, и т. Д.
  2. Оцените их в зависимости от важности для вас, на основе вашего текущего проекта.
  3. Изучите свои варианты и для каждого варианта постарайтесь ранжировать их функции поддержки в зависимости от того, насколько они соответствуют целям вашего проекта.
  4. Используйте тот, который лучше всего соответствует вашим целям. В качестве альтернативы вы можете выбрать несколько лучших и дать им тест-драйв. Реализуйте простую функцию в своей игре и посмотрите, какая из них вам больше нравится.

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

MichaelHouse
источник
3

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

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

Если вы собираетесь использовать только Windows, то библиотеки на основе DirectX и C # являются сильными кандидатами. Если вы хотите быть мультиплатформенным, то вам следует обратиться к библиотекам на основе OpenGL и C / C ++ или Flash, если ваша игра 2D и вы можете позволить себе инструменты Adobe. Как и ваша платформа, ваш язык программирования будет влиять на ваши доступные библиотеки. Программе, написанной на C ++, будет трудно вызывать библиотеку Java.

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

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

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

Аарон
источник
1
  • Библиотека делает то, что вам нужно?
  • Это специализировано, чтобы делать то, что вам нужно? Сколько беспорядка прикреплено к нему?
  • Как это устроено? Вы хотите рвать, когда видите это? Если да, то это, вероятно, не лучший выбор для вашего здоровья и здравомыслия.
  • Это достаточно гибко для ваших нужд? Не стоит замечать, что библиотека не работает после того, как вы уже написали с ней половину своего кода.
  • Насколько будущее в библиотеке? Добавляет ли разработчик функции с течением времени? Он чинит вещи? Он улучшает вещи? Это может иметь большое значение, если вероятно, что разработка вашей игры займет несколько лет. Не так важно для небольших проектов, которые у вас будут через месяц.
  • Подходит ли размер? Для небольших проектов может иметь большое значение, должен ли игрок загружать 20 МБ или 200 МБ. Большие проекты, вероятно, достаточно велики, так что размер промежуточного программного обеспечения мало что меняет.
API-Beast
источник
1

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

  1. структура поддержки - даже если игровой движок совершенен, поддержка может быть слишком дорогой или отсутствует.
  2. насколько легко учиться - вы можете не хотеть чего-то слишком большого, так как время учиться может быть непомерным.
  3. Охватывает ли это ваши планы на будущее - вы можете не захотеть тратить время на изучение идеального на данный момент движка, а только переучивать новый движок с нуля для следующего проекта. Или, может быть, вы этого хотите.
  4. лицензия - если вы создаете игру с закрытым исходным кодом, убедитесь, что лицензия движка не делает ее открытой.
Alex
источник
0

Короткая шпаргалка для оценки библиотек, фреймворков, движков и SDK и выбора лучших

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

Поэтому, прежде чем вы даже начнете оценивать, вам необходимо уточнить, в каком сценарии вы находитесь и какие требования вы имеете / хотите иметь, потому что это вопросы, на которые должна дать ответ оценка.

Сценарий определяет, откуда берутся требования (кто решает, что является требованием, а что нет).


Типичные сценарии:

Самый хобби-сценарий проекта

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

Неявные требования будут заключаться в том, что вы, возможно, захотите изучить что-то конкретное (язык, конкретный фреймворк / движок)

Студенческий сценарий

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

Более злое (реальное) требование: все должно быть написано с нуля (но использование библиотек разрешено). Так что никакой редактор не допускается (например, Unity3D). Таким образом, вы ищете не движки / SDK, а библиотеки.

Инди-сценарий игры

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

Позволяет ли это Java-игры, HTML5-игры, ....)

Требует ли от вас включения определенных библиотек (если да, на каких языках доступны эти библиотеки)

Google Playstore потребует от вас написать свою игру как игру для Android, Apple AppStore потребует от вас написать свою игру как приложение для iOS. Или вам нужно выбрать мультиплатформенный движок.

Профессиональный сценарий

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

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


Как мне решить, каковы мои требования, когда я хобби или инди, и никто больше не говорит мне?

Задайте себе вопросы о своих целях и игре?

  • Какой должна быть моя игра? mobile, pc, web (html / Js), какие контроллеры я буду использовать (сенсорный экран, гироскоп, игровая панель)

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

  • Каков размер моего проекта: злые птицы или скайрим? Angry Birds можно использовать практически в любом инструменте, а Skyrim будет ограничен высокопроизводительными инструментами с (предполагаемыми) годами дополнительной настройки (высокопроизводительные двигатели местности не просты)

  • Моя единственная цель - закончить игру? да? идеально, вы можете использовать некоторые очень продвинутые вещи, такие как Unity, Unreal, ... иметь удобный редактор и большое сообщество, которое предоставляет вам учебные пособия и отвечает на ваши вопросы. Это снимает бремя обработки низкоуровневых задач, таких как загрузка сетки, реализация ваших собственных математических функций, ....

  • Моя цель научиться чему-то конкретному? да? что ты хочешь узнать?

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

  • Будет ли у инструмента X достаточно производительности для моей игры? Может быть, вы никогда не узнаете. Даже в крупных производствах фаза оптимизации и полировки занимает много времени и является огромным средством для достижения этой цели. Начните заботиться о производительности, когда столкнетесь с проблемами производительности. Вы не знаете, как будет работать инструмент, если не достигли его пределов. Все на веб-сайте разработчика инструментов является лишь приблизительным предположением. После многих лет оценки инструментов я перестал верить чему-либо с сайта разработчиков.


Ответ на такие вопросы приводит вас к требованиям. Оценка находит список инструментов и ТЕСТИРОВАНИЕ (не только чтение домашней страницы), что инструмент может предоставить или не может предоставить.


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

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

Монти
источник
0

Иди сюда .

Несмотря на количество игровых движков, у вас на самом деле не так много вариантов.

  1. лицензионные ограничения. Некоторые движки будут препятствовать вашей способности выпускать ваш продукт без предварительной оплаты больших лицензионных сборов, например, Unity , используемая для взимания дополнительной платы, например , за компиляцию в iOS (это изменилось в 2016 году )
  2. платформ. Вы заботитесь о таргетинге на несколько платформ? Какие?
  3. 2D или 3D? Некоторые двигатели обслуживают 2D.
  4. Требуется физика? Некоторые двигатели обеспечивают физику
  5. Фпс, ртс? Может быть целесообразно использовать движок, который специализируется для создаваемого вами типа игры.
  6. Очевидно, вы хотели бы работать на вашем любимом языке. Не нравится С? Тогда не используйте Аллегро!
  7. У тебя огромный дизайн шаблонов, ООП фанат? Хорошо известные паттерны "чрезмерного использования" OGRE
  8. Активное развитие? Вам следует подумать о компромиссе между доступностью новейших функций (DX11 / OGL 4) и стабильностью двигателя, чье развитие прекратилось пару лет назад.
  9. База пользователей? Большая база пользователей обычно означает лучшие форумы, поэтому легче отвечать на ваши вопросы
bobobobo
источник