Я собираюсь сделать игру. Я заметил, что существует множество игровых движков, библиотек и фреймворков, и у меня возникли небольшие проблемы с выбором, какой из них использовать.
Я уже довольно хорошо разбираюсь в некоторых языках программирования, но есть и другие, которых я совсем не знаю. Я не против изучения новых языков программирования, если это поможет, но моя настоящая цель - просто сделать мою игру.
Какие критерии мне следует использовать для сравнения движков, библиотек и фреймворков друг с другом, чтобы я мог решить, какой из них позволит мне быть наиболее продуктивным в завершении моей игры?
software-engineering
Тревор Пауэлл
источник
источник
Ответы:
Это похоже на выбор машины или компьютера. Или почти все, что имеет разные функции, некоторые из которых вас очень волнуют, другие не возражают, а некоторые вы даже не хотите включать.
Я думаю, что многое из этого сводится к тому, чтобы действительно знать, чего вы хотите. Это означает, что вам нужно иметь довольно хорошее представление об игре, которую вы делаете. Что, вероятно, означает, что вам понадобится довольно подробный план того, как реализовать свою игру, и что она будет включать. В качестве бонуса, наличие всей этой подробной информации на самом деле поможет вам завершить игру. Гораздо проще следовать плану и проверять вещи в списке, чем просто придумать идею для игры и просто начать писать код.
источник
Сначала вы должны иметь хотя бы приблизительное представление о том, какой будет ваша игра и для чего она понадобится. Есть обычные вопросы, например, нужна ли вашей игре физика. Тогда есть взаимосвязанные вопросы, которые в основном касаются среды, в которой будет разрабатываться и запускаться ваша игра, и того, насколько коммерческая ваша игра или нет.
Если вы собираетесь использовать только Windows, то библиотеки на основе DirectX и C # являются сильными кандидатами. Если вы хотите быть мультиплатформенным, то вам следует обратиться к библиотекам на основе OpenGL и C / C ++ или Flash, если ваша игра 2D и вы можете позволить себе инструменты Adobe. Как и ваша платформа, ваш язык программирования будет влиять на ваши доступные библиотеки. Программе, написанной на C ++, будет трудно вызывать библиотеку Java.
Если ваша игра коммерческая, вы можете купить такой движок, как Unity. Если ваша игра бесплатна или имеет открытый исходный код, вам следует сосредоточиться на библиотеках, которые также являются открытыми или, по крайней мере, бесплатными для некоммерческих проектов. Разумеется, библиотеки с открытым исходным кодом полезны и для коммерческих проектов. При просмотре библиотек с открытым исходным кодом обязательно проверьте их лицензию. Некоторые лицензии требуют, чтобы вы делали части своего программного обеспечения с открытым исходным кодом в зависимости от того, как вы используете библиотеку. Ограничение себя библиотеками с открытым исходным кодом, очевидно, накладывает еще одно ограничение на то, какие библиотеки вы можете использовать.
Глядя на библиотеку, обязательно проверьте, насколько активна ее разработка и сообщество. Я бы доверял общеизвестной и активно поддерживаемой библиотеке, которая размещена на чьей-то университетской веб-странице, которая не обновлялась с 1999 года.
Один последний вопрос, особенно если это не ваш первый игровой проект, независимо от того , есть или нет аспектов вашей игре нужна будет , что вы знаете , вы будете бороться с тем, если вы попытаетесь сделать это самостоятельно. Потому что именно эти аспекты являются кандидатами для поиска библиотеки. Если вашей игре требуется обнаружение столкновений, и вы знаете, что не можете самостоятельно реализовать обнаружение столкновений (как я не могу), рассмотрите возможность использования физического движка и использования в нем функций обнаружения столкновений.
источник
источник
В дополнение к игровым функциям, которые прокомментировали люди, вы должны также рассмотреть некоторые общие вопросы.
источник
Короткая шпаргалка для оценки библиотек, фреймворков, движков и 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 достаточно производительности для моей игры? Может быть, вы никогда не узнаете. Даже в крупных производствах фаза оптимизации и полировки занимает много времени и является огромным средством для достижения этой цели. Начните заботиться о производительности, когда столкнетесь с проблемами производительности. Вы не знаете, как будет работать инструмент, если не достигли его пределов. Все на веб-сайте разработчика инструментов является лишь приблизительным предположением. После многих лет оценки инструментов я перестал верить чему-либо с сайта разработчиков.
Ответ на такие вопросы приводит вас к требованиям. Оценка находит список инструментов и ТЕСТИРОВАНИЕ (не только чтение домашней страницы), что инструмент может предоставить или не может предоставить.
Требования не вырезаны в камне, но являются динамическими. Они будут приходить и уходить во время разработки. Если игре нужна физика или нет, например, зависит от дизайна. Если дизайн меняется, требования тоже могут измениться.
Возьмите требования, которые у вас есть, и начните. Изменение требований - это ежедневный хлеб страдающих, ах, счастливых разработчиков, независимо от размера проекта и уровня опыта.
источник
Иди сюда .
Несмотря на количество игровых движков, у вас на самом деле не так много вариантов.
источник