stringtranslate.com

Игровой движок

Игровой движок — это программная структура, в первую очередь предназначенная для разработки видеоигр и обычно включающая соответствующие библиотеки и вспомогательные программы, такие как редактор уровней. [1] Терминология «движок» схожа с термином « программный движок », который более широко используется в индустрии программного обеспечения .

Игровой движок может также относиться к программному обеспечению для разработки, поддерживающему эту структуру, обычно это набор инструментов и функций для разработки игр. [2] [3]

Разработчики могут использовать игровые движки для создания игр для игровых консолей и других типов компьютеров . Основная функциональность, обычно предоставляемая игровым движком, может включать в себя движок рендеринга («рендерер») для 2D- или 3D- графики , физический движок или обнаружение столкновений (и реакция на столкновения), звук , скриптинг , анимацию , искусственный интеллект , сетевые технологии , потоковую передачу, управление памятью , потоки , поддержку локализации , граф сцены и поддержку видео для кинематографии . Разработчики игровых движков часто экономят на процессе разработки игр , повторно используя/адаптируя, в значительной степени, один и тот же игровой движок для создания разных игр [4] или для помощи в портировании игр на несколько платформ.

Цель

Создание платформера в Godot

Во многих случаях игровые движки предоставляют набор визуальных инструментов разработки в дополнение к повторно используемым программным компонентам. Эти инструменты, как правило, предоставляются в интегрированной среде разработки для упрощения и ускорения разработки игр на основе данных . Разработчики игровых движков часто пытаются предвосхитить потребности разработчиков, разрабатывая надежные программные пакеты, включающие множество элементов, которые могут понадобиться разработчику игры для создания игры. Большинство игровых движков предоставляют средства, облегчающие разработку, такие как графика, звук, физика и функции искусственного интеллекта (ИИ). Эти игровые движки иногда называют « промежуточным программным обеспечением », поскольку, как и в деловом смысле этого термина, они предоставляют гибкую и повторно используемую программную платформу, которая обеспечивает все основные функции, необходимые прямо из коробки , для разработки игрового приложения, одновременно снижая затраты, сложность и время выхода на рынок — все критические факторы в высококонкурентной индустрии видеоигр . [5]

Как и другие типы промежуточного программного обеспечения, игровые движки обычно предоставляют абстракцию платформы , позволяя одной и той же игре работать на различных платформах (включая игровые консоли и персональные компьютеры) с небольшими, если таковые имеются, изменениями, внесенными в исходный код игры . Часто программисты проектируют игровые движки с компонентной архитектурой , которая позволяет заменять или расширять определенные системы в движке более специализированными (и часто более дорогими) компонентами игрового промежуточного программного обеспечения. Некоторые игровые движки включают в себя ряд слабо связанных компонентов игрового промежуточного программного обеспечения, которые можно выборочно комбинировать для создания пользовательского движка, вместо более распространенного подхода расширения или настройки гибкого интегрированного продукта. Однако достигнутая расширяемость остается высоким приоритетом для игровых движков из-за широкого спектра применений, для которых они применяются. Несмотря на специфику названия «игровой движок», конечные пользователи часто повторно используют игровые движки для других видов интерактивных приложений с графическими требованиями в реальном времени , таких как маркетинговые демонстрации , архитектурные визуализации , обучающие симуляции и среды моделирования . [6]

Некоторые игровые движки предоставляют только возможности 3D-рендеринга в реальном времени вместо широкого спектра функций, необходимых играм. Эти движки полагаются на разработчика игры для реализации остальной части этой функциональности или для сборки ее из других компонентов игрового промежуточного программного обеспечения. Эти типы движков обычно называются «графическим движком», «движком рендеринга» или «3D-движком» вместо более всеобъемлющего термина «игровой движок». Эта терминология используется непоследовательно, так как многие полнофункциональные 3D-игровые движки называются просто «3D-движками». Примерами графических движков являются: Crystal Space , Genesis3D , Irrlicht , OGRE , RealmForge, Truevision3D и Vision Engine . Современные игровые или графические движки обычно предоставляют граф сцены — объектно-ориентированное представление 3D-игрового мира, которое часто упрощает дизайн игры и может использоваться для более эффективного рендеринга огромных виртуальных миров. [ необходима цитата ] Большинство игровых движков или графических движков используют графический API , который позволяет легко взаимодействовать с графическим процессором . Но старые игры не имели аппаратного ускорения или графических процессоров и должны были создавать свой собственный программный рендерер.

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

История

Некоторые игровые движки со временем эволюционируют и создают свое генеалогическое древо, как, например, движок Quake от id , который привел к появлению семейства id Tech .

До появления игровых движков игры обычно писались как отдельные сущности: например, игра для Atari 2600 должна была быть разработана снизу вверх, чтобы оптимально использовать аппаратное обеспечение дисплея — эту основную процедуру отображения сегодня называют ядром разработчики игр для старых систем. Другие платформы имели больше свободы действий, но даже когда дисплей не был проблемой, ограничения памяти обычно саботировали попытки создать дизайн с большим объемом данных, который нужен движку. Даже на более подходящих платформах очень мало можно было повторно использовать между играми. Быстрое развитие аркадного оборудования — которое было передовым краем рынка в то время — означало, что большую часть кода в любом случае пришлось бы впоследствии выбросить, поскольку последующие поколения игр использовали бы совершенно другие игровые конструкции, которые использовали дополнительные ресурсы. Таким образом, большинство игровых конструкций в 1980-х годах были разработаны с помощью жестко закодированного набора правил с небольшим количеством уровней и графических данных. Со времен золотого века аркадных видеоигр для компаний, выпускающих видеоигры , стало обычным делом разрабатывать собственные игровые движки для использования с программным обеспечением собственной разработки.

Ярким примером внутреннего игрового движка на домашних консолях в середине 1980-х годов был плавный сайд-скроллинговый движок, разработанный командой Сигеру Миямото в Nintendo для Nintendo Entertainment System (NES). Движок, который они разработали для сайд-скроллинговой гоночной игры Excitebike (1984), позже был использован для скроллингового платформера Super Mario Bros. (1985). Это позволило Марио плавно ускоряться от шага до бега, а не двигаться с постоянной скоростью, как в более ранних платформерах. [7]

Хотя сторонние игровые движки не были распространены до появления 3D-графики в 1990-х годах, в 1980-х годах было выпущено несколько систем создания 2D-игр для независимой разработки видеоигр . К ним относятся Pinball Construction Set (1983), ASCII 's War Game Construction Kit (1983), [8] Thunder Force Construction (1984), [9] Adventure Construction Set (1984), Garry Kitchen's GameMaker (1985), Wargame Construction Set (1986), Shoot-'Em-Up Construction Kit (1987), Arcade Game Construction Kit (1988) и наиболее популярный движок ASCII's RPG Maker с 1998 года. Klik & Play (1994) — еще одно наследие, которое все еще доступно. [10]

Термин «игровой движок» возник в середине 1990-х годов, особенно в связи с 3D-играми, такими как шутеры от первого лица с движком шутера от первого лица . Epic games, основанная разработчиком Тимом Суини, дебютировала с Unreal Engine в 1998 году. [11]

Популярность игр Doom и Quake от Id Software была такова , что вместо того, чтобы работать с нуля, другие разработчики лицензировали основные части программного обеспечения и разрабатывали собственную графику, персонажей, оружие и уровни — «игровой контент» или «игровые активы». Отделение игровых правил и данных от базовых концепций, таких как обнаружение столкновений и игровая сущность, означало, что команды могли расти и специализироваться. [10]

Более поздние игры, такие как Quake III Arena от id Software и Unreal от Epic Games 1998 года, были разработаны с учетом этого подхода, при этом движок и контент разрабатывались отдельно. Практика лицензирования такой технологии оказалась полезным вспомогательным источником дохода для некоторых разработчиков игр, поскольку одна лицензия на высококлассный коммерческий игровой движок может стоить от 10 000 долларов США до миллионов долларов, а количество лицензиатов может достигать нескольких десятков компаний, как это было с Unreal Engine . По крайней мере, повторно используемые движки ускоряют и упрощают разработку сиквелов игр, что является ценным преимуществом в конкурентной индустрии видеоигр . Хотя между Epic и id существовало сильное соперничество около 2000 года, с тех пор Unreal Engine от Epic стал гораздо популярнее, чем id Tech 4 и его преемник id Tech 5. [ 12]

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

Шутеры от первого лица остаются основными пользователями сторонних игровых движков, но теперь они также используются и в других жанрах . Например, ролевая видеоигра The Elder Scrolls III: Morrowind и MMORPG Dark Age of Camelot основаны на движке Gamebryo , а MMORPG Lineage II основана на Unreal Engine. Игровые движки используются и для игр, изначально разработанных для домашних консолей; например, движок RenderWare используется в франшизах Grand Theft Auto и Burnout .

Потоки приобретают все большее значение из-за современных многоядерных систем (например, Cell ) и возросших требований к реализму. Типичные потоки включают рендеринг, потоковую передачу, аудио и физику. Гоночные игры, как правило, были на переднем крае поточности, когда физический движок работал в отдельном потоке задолго до того, как были перемещены другие основные подсистемы, отчасти потому, что рендеринг и связанные с ним задачи требуют обновления всего на 30–60 Гц. Например, на PlayStation 3 физика работала в Need For Speed ​​на 100 Гц, а в Forza Motorsport 2 на 360 Гц.

Хотя этот термин впервые был использован в 1990-х годах, есть несколько более ранних систем в 1980-х годах, которые также считаются игровыми движками, такие как Sierra's Adventure Game Interpreter (AGI) и SCI-системы, LucasArts' SCUMM- система и Incentive Software 's Freescape-движок (в 1986 году [14] ). В отличие от большинства современных игровых движков, эти игровые движки никогда не использовались в каких-либо сторонних продуктах (за исключением системы SCUMM, которая была лицензирована и использовалась Humongous Entertainment ).

По мере того, как технология игровых движков становится более зрелой и удобной для пользователя, сфера применения игровых движков расширяется. Теперь они используются для серьезных игр : визуализация, обучение, медицинские и военные приложения для моделирования, одним из примеров является CryEngine . [15] Чтобы облегчить эту доступность, игровые движки теперь ориентируются на новые аппаратные платформы, включая мобильные телефоны (например, телефоны Android , iPhone ) и веб-браузеры (например , WebGL , Shockwave , Flash , Trinigy 's WebVision, Silverlight , Unity Web Player , O3D и чистый DHTML ). [16]

Кроме того, все больше игровых движков создаются на языках более высокого уровня , таких как Java и C# / .NET (например, TorqueX и Visual3D.NET ), Python ( Panda3D ) или Lua Script (Leadwerks). Поскольку большинство 3D-игр в настоящее время в основном ограничены GPU (т. е. ограничены мощностью видеокарты), потенциальное замедление из-за накладных расходов на перевод языков более высокого уровня становится незначительным, в то время как прирост производительности, предлагаемый этими языками, работает на пользу разработчикам игровых движков. [17] Эти последние тенденции продвигаются такими компаниями, как Microsoft, для поддержки разработки инди- игр. Microsoft разработала XNA в качестве SDK по выбору для всех видеоигр, выпущенных на Xbox и связанных с ними продуктов. Это включает в себя канал Xbox Live Indie Games [18], разработанный специально для небольших разработчиков, у которых нет обширных ресурсов, необходимых для упаковки игр для продажи на розничных полках. Становится проще и дешевле, чем когда-либо, разрабатывать игровые движки для платформ, поддерживающих управляемые фреймворки. [19]

Игровые движки как индустрия

Производители игровых движков решают, как они позволяют пользователям использовать свои продукты. Так же, как игры являются индустрией , так и движки, на которых они построены. Основные игровые движки продаются по разным ценам, будь то в виде абонентской платы или лицензионных платежей. [20] Unity и Unreal Engine в настоящее время являются двумя наиболее популярными вариантами для разработчиков игр. [21] Хотя различия между различными игровыми движками стираются, поскольку они создают свои собственные инструменты поверх них, разные разработчики игр могут быть слишком привыкшими к системе, чтобы что-то менять, или привлеченными огромными преимуществами таких движков независимо от платного доступа.

Игровое промежуточное ПО

В более широком смысле этого термина игровые движки сами по себе можно описать как промежуточное программное обеспечение. Однако в контексте видеоигр термин «промежуточное программное обеспечение» часто используется для обозначения подсистем функциональности внутри игрового движка. Некоторое игровое промежуточное программное обеспечение делает только одну вещь, но делает это более убедительно или более эффективно, чем промежуточное программное обеспечение общего назначения.

Четыре наиболее широко используемых пакета промежуточного программного обеспечения [22] , которые предоставляют подсистемы функциональности, включают RAD Game Tools ' Bink, Firelight FMOD , Havok и Scaleform GFx. RAD Game Tools разрабатывает Bink для базового рендеринга видео, а также Miles audio и Granny 3D rendering. Firelight FMOD — это недорогая надежная аудиобиблиотека и набор инструментов. Havok предоставляет надежную систему моделирования физики вместе с набором приложений для анимации и поведения. Scaleform предоставляет GFx для высокопроизводительного Flash UI и высококачественного воспроизведения видео, а также дополнение Input Method Editor (IME) для поддержки азиатского чата в игре.

Другое промежуточное программное обеспечение используется для оптимизации производительности — например, Simplygon помогает оптимизировать и генерировать сетки с разным уровнем детализации , а Umbra добавляет оптимизацию отсечения окклюзии в 3D-графику.

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

Смотрите также

Ссылки

  1. ^ Валенсия-Гарсия, Рафаэль и др. (2016). Технологии и инновации: Вторая международная конференция, CITI 2016, Гуаякиль, Эквадор, 23-25 ​​ноября 2016 г., Труды. Springer. ISBN 9783319480244. Получено 2021-07-22 .
  2. ^ "Общие термины и определения разработки игр | Словарь игрового дизайна | Unity". Unity. Архивировано (PDF) из оригинала 2017-08-06 . Получено 2021-07-14 .
  3. ^ Тан, Джеймс. "Введение - Unreal Engine (слайды Canterbury Software Summit 2013)" (PDF) . Unreal Engine . Получено 2021-07-14 .
  4. ^ "Что такое игровой движок?". GameCareerGuide.com . Получено 24.11.2013 .
  5. О'Нил, Джон (15 января 2008 г.). «Моя очередь: реальная стоимость промежуточного программного обеспечения». Gamedaily.com. Архивировано из оригинала 30 августа 2009 г. Получено 24 ноября 2013 г.
  6. Отчет об использовании промежуточного программного обеспечения в играх, архив 17 октября 2013 г., Wayback Machine
  7. ^ Уильямс, Эндрю (16 марта 2017 г.). История цифровых игр: развитие искусства, дизайна и взаимодействия . CRC Press . стр. 152–4. ISBN 978-1-317-50381-1.
  8. ^ "War Game Construction Kit". Oh!FM . Архивировано из оригинала 28 июля 2013 года . Получено 3 сентября 2012 года .Альтернативный URL-адрес
  9. ^ "Thunder Force Construction". Oh!FM . Архивировано из оригинала 28 июля 2013 года . Получено 1 сентября 2012 года .Альтернативный URL-адрес
  10. ^ ab Fiadotau, Михаил (2019). «Dezaemon, RPG Maker, NScripter: исследование и классификация игрового 'produsage' в Японии 1990-х годов». Журнал игр и виртуальных миров . 11 (3): 215–230. doi :10.1386/jgvw.11.3.215_1. S2CID  213694676.
  11. ^ Вайнбергер, Мэтт. «Генеральный директор Fortnite говорит, что игра «выходит за рамки игры», и объясняет амбициозное видение компании». Business Insider . Получено 17 февраля 2022 г.
  12. ^ Брамвелл, Том (2007-08-09). "id Tech 5 Interview • Страница 1 • Интервью •". Eurogamer.net . Получено 2013-11-24 .
  13. ^ "Исследование состава команды разработчиков игр - Изменения с течением времени" . Получено 2011-01-17 .
  14. ^ "Freescape Engine". Универсальный список видеоигр . Получено 2020-05-16 .
  15. ^ "Видеоигры начинают становиться серьезными". Gazette.net. 2007-08-31. Архивировано из оригинала 2008-12-03 . Получено 2011-01-17 .
  16. ^ "Gaming: Mobile and Wireless Trends for 2008". M-trends.org. Архивировано из оригинала 2011-01-08 . Получено 2011-01-17 .
  17. ^ Цербст, Стефан; Дювель, Оливер (2004). Программирование 3D-игрового движка (книга). Премьер Пресс. ISBN 9781592003518. Получено 17.01.2011 .
  18. ^ "xboxlivecommunitygames.org". xboxlivecommunitygames.org . Получено 2013-11-24 .
  19. ^ "Microsoft разрешит создание пользовательских игр для Xbox 360" . Получено 05.05.2017 .
  20. ^ "10 лучших игровых движков | Издание 2018 года". Лучший ресурс по разработке видеоигр . 2017-03-11 . Получено 2019-05-15 .
  21. ^ «Два двигателя, движущих игровую индустрию стоимостью 120 млрд долларов». Исследование CB Insights . 2018-09-20 . Получено 15 мая 2019 г.
  22. ^ "Обзор технологий Gamasutra Engine and Middleware". Gamasutra.com. 2009-05-08 . Получено 2011-01-17 .

Внешние ссылки