Короткая шпаргалка для оценки библиотек, фреймворков, движков и 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 достаточно производительности для моей игры? Может быть, вы никогда не узнаете. Даже в крупных производствах фаза оптимизации и полировки занимает много времени и является огромным средством для достижения этой цели. Начните заботиться о производительности, когда столкнетесь с проблемами производительности. Вы не знаете, как будет работать инструмент, если не достигли его пределов. Все на веб-сайте разработчика инструментов является лишь приблизительным предположением. После многих лет оценки инструментов я перестал верить чему-либо с сайта разработчиков.
Ответ на такие вопросы приводит вас к требованиям. Оценка находит список инструментов и ТЕСТИРОВАНИЕ (не только чтение домашней страницы), что инструмент может предоставить или не может предоставить.
Требования не вырезаны в камне, но являются динамическими. Они будут приходить и уходить во время разработки. Если игре нужна физика или нет, например, зависит от дизайна. Если дизайн меняется, требования тоже могут измениться.
Возьмите требования, которые у вас есть, и начните. Изменение требований - это ежедневный хлеб страдающих, ах, счастливых разработчиков, независимо от размера проекта и уровня опыта.