[Перевод] Собственные игровые движки: небольшое исследование
Пару недель назад я играл в A Plague Tale студии Asobo Studio (и прошёл её). Меня очень захватила эта игра, благодаря не только красивой графике, но и сюжету с локациями. Я решил немного изучить технологии, использовавшиеся при её разработке, и был удивлён, обнаружив, что игра создавалась на собственном движке относительно небольшой студии. Я знаю, что некоторые компании используют собственные движки, но очень сложно найти подробное маркетинговое исследование с подобной информацией. Поэтому я написал эту статью.
Сегодня многие компании выбирают для разработки игр такие движки, как Unreal или Unity (или, по крайней мере, так думают многие люди), потому что для разработки собственного движка AAA-уровня требуется множество ресурсов. Поэтому я решил составить список некоторых из самых популярных самописных движков с указанием размеров студий и значимых игр, выпущенных на этих движках.
Большинство представленных здесь движков разрабатывалось на протяжении многих лет, множества итераций и для множества видеоигр, эти движки имели несколько версий или даже полностью (частично) переписывались с нуля с последующей сменой названия. Кроме того, важно заметить, что большинство этих движков для реализации определённой функциональности (совместимость с платформами, физика, сеть, растительность, UI, рендеринг, звук…) использует всевозможное промежуточное ПО.
*Примечание: я стремился к максимальной точности при указании количества сотрудников (сверялся с веб-сайтами компании, Википедией или LinkedIn компании), но не стоит относиться к этим показателям с особым доверием (некоторые значения могут уже быть неактуальными).
КРУПНЫЕ компании
Слева направо: Assassin’s Creed Odyssey, Final Fantasy XV, Red Dead Redemption 2
Ниже представлен список очень больших корпораций, иногда имеющих сложные корпоративные структуры с несколькими отделами (которые занимаются не только видеоиграми) и разными студиями/подрядчиками, создающими игры. Некоторые из них работают с несколькими движками, не только с собственными, но и с лицензированными.
Обычно такие компании вкладываются в собственные движки, чтобы иметь полный контроль над технологиями, а также избежать затрат на отчисления, требуемые лицензируемыми движками. Несмотря на это, есть некоторые большие компании, которые в последние годы выбрали для разработки Unreal Engine. Самые примечательные из них:
- Capcom использует Unreal для новых игр Street Fighter IV/V.
- В последних крупных хитах Bandai Namco используется Unreal: Jump Force, Dragon Ball Fighter Z, Dragon Ball Z: Kakarot, Tales of Arise.
- Square Enix при разработке нескольких новых игр тоже перешла на Unreal: Dragon Quest XI, Kingdom Hearts III, Final Fantasy VII Remake
Любопытно заметить, что все три компании из Японии, возможно, это какой-то региональная рыночная тенденция. Также стоит сказать, что китайский холдинг Tencent владеет 40% Epic Games; наверняка он обладает определённым влиянием на азиатский рынок.
Студии среднего размера
Слева направо: Rise of the Tomb Raider, Uncharted 4, A Plague Tale
Здесь мы рассмотрим средние компании, решившие создавать для своих игр собственные движки.
Количество сотрудников — хороший параметр, который нужно учитывать, ведь собственные движки обычно разрабатываются силами компании (то есть не отдаются на аутсорс), но стоит заметить, что некоторые из этих компаний могут иметь большой штат из-за собственных художественных/звуковых отделов, в то время как другие компании отдают эту работу на аутсорс.
Было бы очень интересно знать, сколько инженеров работает в отделе разработки движков каждой компании; я уверен, что нас бы ждал сюрприз: вероятно, над движком и инструментами трудится совсем небольшой коллектив инженеров!
Также интересно было бы узнать больше об инструментарии в составе этих движков, получить доступ к подобной информации очень сложно. Инструментарий движков обычно хранится в секрете (исключение составляют только презентации на GDC и короткие видео с демонстрацией возможностей движка).
Слева направо: Horizon Zero Dawn, God of War, Death Stranding
Выводы, которые можно сделать из списка:
- Судя по информации в титрах игры Rise of the Tomb Raider, над Foundation engine работает всего 10 программистов, это число можно использовать для понимания того, сколько людей обычно работает над ядром движка.
- В Death Stranding Kojima Productions использует Decima engine, разработанный Guerrilla Games; ранее она использовала Fox Engine в Metal Gear Solid V.
- Похоже, что последнюю игру/движок Media Molecule (Dreams) разрабатывали всего около 15 кодеров, потрясающе!
- Компании, выполняющие разработку под одну платформу, обычно имеют меньше ограничений и могут максимально использовать возможности этой платформы. К сожалению, большинство компаний не может позволить себе такую роскошь.
- Компания Asobo Studio, благодаря которой началось это маркетинговое исследование, кажется не особо маленькой… но, как и другие компании, она параллельно работает над несколькими играми.
- Очень здорово, что в Википедии есть подробности о некоторых движках со списком выпущенных игр, это должно стать обязательной практикой.
Небольшие студии (инди-студии)
Слева направо: The Witness, No Man’s Sky, X-Morph Defense
Здесь мы рассмотрим очень маленькие студии, тоже решившие создать для своих игр собственные движки. Стоит заметить, что для отдельных частей игры в таких движках применяются другие библиотеки/фреймворки. Чаще всего среди них встречаются SDL (кроссплатформенная библиотека графики и ввода), OGRE (движок рендеринга), MonoGame (кроссплатформенный игровой фреймворк, в котором также используются SDL, SharpDX, OpenTK, OpenAL-Soft…).
Многих людей может заинтересовать такой вопрос: какие же части движка на самом деле пишутся разработчиками? Бывает по-разному, но чаще сего кодеры занимаются менеджером экрана, менеджером сущностей и менеджером контента, а также обёртками/интерфейсами для внешних библиотек.
Второй вопрос: в каких частях движка обычно используются внешние библиотеки/промежуточное ПО? Это тоже зависит от ресурсов компании, но обычно это звуковая система, физика, рендеринг, работа с сетью, система UI, система рельефа, система растительности и некоторые другие элементы.
Слева направо: Factorio, Thimbleweed Park, Owlboy
В представленном ниже списке (и в следующем за ним тоже) я добавил дату издания (только от 2012 года и далее), а также ссылку на страницы всех игр в Steam… Не так много игр с собственными движками от небольших студий, и я считаю, что они заслуживают известности и поддержки.
Интересные факты об этом списке:
- Сооснователь Shiro Games Николя Каннасс является разработчиком языка программирования Haxe и движка Heaps, использованного Motion Twin для создания Dead Cells (2017 год).
- Hello Games — очень маленькая студия, учитывая масштаб No Man’s Sky и использование собственного движка. Очень впечатляет!
- Runic Games была распущена в ноябре 2017 года, её основатели создали Double Damage, а теперь работают в Echtra Games над Torchlight III.
- Генеральный директор Chucklefish Родриго Браз Монтейро отвечает за разработку движка Halley, который является open-source!
- В большинстве этих студий за создание движка отвечают всего 1–3 человека!
- Более шести лет Lo-fi Games была командой из одного человека (Криса Ханта)!
- На разработку некоторых игр в списке было потрачено пять с лишним лет!
- Игр не так много… всего по паре хитов в год…
Движки, написанные одним человеком
Слева направо: Stardew Valley, ScourgeBringer, Eagle Island
В конце мы приведём список героев.
Игры, разработанные одним-двумя людьми на собственных движках, причём эти движки в основном писались одним человеком!
Создание движка и игры с нуля до этапа издания — огромное достижение, немногие в мире к этому готовы. Почти все из них — 2D-игры, обычно с очень низкими бюджетами, которые разрабатывались в течение нескольких лет. Разработчиков можно поздравить!
Слева направо: Axiom Verge, Ghost 1.0, Remnants of Naezith
Примечания по поводу этого списка:
- Некоторые из этих команд были сформированы одним-двумя людьми, но на определённом этапе или выросли, или отдали часть разработки на аутсорс (графику, звук…). Обычно с ресурсами также помогает издатель (локализация, маркетинг…).
- Омар Корнут из Lizardcube является основным программистом движка Wonder Boy: The Dragon’s Trap, а также разработчиком Dear ImGui — бесплатной библиотеки GUI режима immediate-mode с открытыми исходниками, которая используется во многих самописных AAA-движках.
- Бен Фике из Lizardcube также является главным художником Streets of Rage 4, собственный движок для которой написал Сирилл Лагариг из Guard Crush Games.
- Марк Флури программировал игровой движок Thumper, отказавшись от парадигмы ООП в пользу процедурного программирования.
- Кристиан Уайтхед — создатель Star Engine, использованного в игре Sonic Mania, но в разработке игры также участвовали Headcannon (Саймон Томли) и PagodaWest Games (Джаред Касл и Том Фрай).
- Для разработки некоторых игр из этого списка потребовалось пять с лишним лет!
- Не так много игр… по паре хитов в год…
Вот ещё несколько примечательных игр, в которых используются собственные движки: Minecraft (2011 год), Braid (2009 год), Super Meat Boy (2010 год), Terraria (2011 год), Dustforce (2012 год), Sword and Sorcery EP (2012 год), FEZ (2013 год), Dust: An Elysian Tail (2013 год), Rogue Legacy (2013 год), Dyad (2012 год), SpaceChem (2013 год), Darkest Dungeon (2016 год), Scrap Mechanic (2016 год), Battle Brothers (2015 год), Renowned Explorers (2015 год), Yuppie Psycho (2019 год), Surviving Mars (2018 год), The End Is Nigh (2017 год), The Binding of Isaac: Afterbirth (2017 год), The Binding of Isaac: Rebirth (2014 год), BattleBlock Theater (2013 год), Full Metal Furies (2017 год), Binding of Isaac (2011 год), Rusted Warfare (2017 год).
Выводы
Начну с того, что я пристрастен, мне очень нравятся технологии создания видоеигр и я обожаю собственные движки и инструменты для создания игр. Я тоже сделал свой вклад в экосистему собственных движков: raylib и несколько инструментов для создания игр. Я предпочитаю лицензируемым движкам самописные, потому что считаю, что дополнительные усилия, вложенные в разработку продукта, обычно оборачиваются созданием особо потрясающей механики или удивительных особенностей.
Несмотря на это, нужно признать, что создание собственного движка — серьёзное предприятие, и к нему готовые немногие люди и компании. Я признаю, что Unity (и в меньшей мере Unreal) демократизировала разработку видеоигр, сегодня многие мелкие и средние компании могут использовать этот движок для быстрой разработки игр, иногда с очень низкими бюджетами… Тем не менее, многие крупные компании предпочитают полагаться на собственные технологии.
С точки зрения преподавателя разработки игр я считаю, что студенты должны как можно подробнее изучать внутреннее устройство игровых движков. Использование движков наподобие Unity/Unreal в учёбе позволяет студентам быстро создать красивый проект, но это ошибочный путь. В конце концов, кто-то же должен писать движок и все инструменты!