Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

Цель [ править ]

Во многих случаях игровые движки предоставляют набор средств визуальной разработки в дополнение к многократно используемым программным компонентам. Эти инструменты обычно предоставляются в интегрированной среде разработки, чтобы упростить и ускорить разработку игр на основе данных . Разработчики игрового движка пытаются «заранее изобрести колесо», разрабатывая надежные программные комплексы, которые включают множество элементов, которые могут понадобиться разработчику игры для создания игры. Большинство пакетов игровых движков предоставляют средства, упрощающие разработку, такие как графика, звук, физика и функции искусственного интеллекта (AI). Эти игровые движки иногда называют промежуточным ПО, потому что, как и в случае с бизнесом,В понимании этого термина они предоставляют гибкую программную платформу с возможностью многократного использования, которая обеспечивает сразу же после установки все основные функции, необходимые для разработки игрового приложения, при этом сокращая затраты, сложности и время вывода на рынок - все это критические факторы в высококонкурентная индустрия видеоигр . [2] По состоянию на 2001 год , Gamebryo , JMonkeyEngine и RenderWare были широко используемыми промежуточными программами этого типа. [3]

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

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

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

Компоненты [ править ]

Такая структура состоит из множества очень разных компонентов.

Основная игровая программа [ править ]

Фактическая игровая логика должна быть реализована с помощью некоторых алгоритмов . Он отличается от любого рендеринга.

Механизм рендеринга [ править ]

Механизм рендеринга генерирует анимированную 2D или 3D графику любым из ряда методов ( растеризация , трассировка лучей и т. Д.).

Вместо того , чтобы быть запрограммирована и компилируется должны быть выполнены на процессоре или GPU напрямую, чаще всего рендеринга двигатели построены на одном или нескольких рендеринга интерфейсов прикладного программирования (API), таких как Direct3D , OpenGL или Vulkan , которые обеспечивают программное обеспечение абстракции из графики процессор (GPU). Низкоуровневые библиотеки, такие как DirectX , Simple DirectMedia Layer (SDL) и GLFW , также широко используются в играх, поскольку они обеспечивают независимый от платформы доступ к оконной системе.и позволяет приложению выделять поверхность на экране компьютера, где будет отображаться графика, это обычно называется созданием графического контекста . Эти библиотеки обычно также предоставляют доступ к другому компьютерному оборудованию, такому как устройства ввода (мышь, клавиатура и джойстик), сетевые карты и звуковые карты. До появления трехмерной графики с аппаратным ускорением использовались программные средства визуализации. Программный рендеринг по-прежнему используется в некоторых инструментах моделирования или для неподвижных изображений, когда визуальная точность оценивается по сравнению с производительностью в реальном времени (кадры в секунду) или когда компьютерное оборудование не удовлетворяет таким потребностям, как поддержка шейдеров .

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

Игровые движки могут быть написаны на любом языке программирования, таком как C ++ , C или Java , хотя каждый язык структурно отличается и может обеспечивать разные уровни доступа к определенным функциям. Часто язык сценариев, такой как Javascript / ECMAScript, добавляется в качестве второго уровня для ускорения разработки.

Аудио движок [ править ]

Аудиодвижок - это компонент, который состоит из алгоритмов, связанных с загрузкой, изменением и выводом звука через акустическую систему клиента. Как минимум, он должен иметь возможность загружать, распаковывать и воспроизводить звуковые файлы. Более продвинутые звуковые движки могут вычислять и производить такие вещи, как эффекты Доплера , эхо, регулировка высоты тона / амплитуды, колебания и т. Д. Он может выполнять вычисления на ЦП или на выделенной ASIC. Доступны API абстракции, такие как OpenAL, SDL audio, XAudio 2, Web Audio и т. Д.

Физический движок [ править ]

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

Искусственный интеллект [ править ]

AI , как правило , на стороне от основной игровой программы в специальный модуль должен быть разработан и написан инженерами программного обеспечения , обладающим специальными знаниями. В большинстве игр будут реализованы очень разные системы ИИ, и поэтому считается, что ИИ специфичен для конкретной игры, для которой он создан. Многие современные игровые движки поставляются с алгоритмами поиска, такими как A-star, и подпрограммами для запекания геометрии уровней в сетку Navmesh, которая может помочь ускорить процесс написания сценариев поведения ИИ.

История [ править ]

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

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

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

Термин «игровой движок» возник в середине 1990-х годов, особенно в связи с трехмерными играми, такими как шутеры от первого лица (FPS). ( Смотри также: шутер от первого лица двигатель .) Такова была популярность Id Software «s Рока и Quake игры , которые, вместо того чтобы работать с нуля, другие разработчики лицензированные основные части программного обеспечения и разработали свои собственные графики, персонажи, оружие и уровни - «игровой контент» или «игровые активы». Отделение правил и данных для конкретных игр от основных концепций, таких как обнаружение столкновений и сущность игры, означало, что команды могли расти и специализироваться.

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

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

Шутеры от первого лица остаются преобладающими пользователями сторонних игровых движков, но теперь они также используются в других жанрах . Например, ролевая видеоигра 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 в Adventure Game Interpreter (AGI) и ТСМ системы, LucasArts' SCUMM системы и стимулирование программного обеспечения «s Движок Freescape (1986 год [9] ). В отличие от большинства современных игровых движков, эти игровые движки никогда не использовались в каких-либо сторонних продуктах (за исключением системы SCUMM, которая была лицензирована и использовалась Humongous Entertainment ).

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

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

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

Производители игровых движков решают, как они позволяют пользователям использовать свои продукты. Как игры - это индустрия , так и движки, на которых они построены. Основные игровые движки продаются по разным ценам, будь то плата за подписку или лицензионные платежи. [15]

Unreal Engine 4 , один из основных игровых движков и использовать для создания несколько примечательных игр , таких как Fortnite , Сражения PlayerUnknown в и жизни Странно 2 , принял структуру свободных в использование с роялти по всем продажам игр , используя этот двигатель. [16] Хотя различия между различными игровыми движками стираются по мере того, как они создаются в процессе создания игры, разные разработчики игр могут либо слишком привыкать к изменению системы, либо быть привлечены огромными преимуществами таких движков, независимо от оплаты труда. стены.

Другой игровой движок, приносящий сейчас заметный доход, - движок Unity , использующий модель монетизации, аналогичную Unreal Engine. [17] Этот движок стоит за такими играми, как Rust , Subnautica и Life Is Strange: Before the Storm .

Некоторые игровые движки используют визуальные сценарии, среди них такие инструменты, как GameMaker: Studio , Construct 3 , GDevelop и Pixel Game Maker MV .

Промежуточное ПО игры [ править ]

В более широком смысле этого слова сами игровые движки можно охарактеризовать как промежуточное ПО. Однако в контексте видеоигр термин «промежуточное программное обеспечение» часто используется для обозначения функциональных подсистем внутри игрового движка. Некоторое промежуточное ПО для игр делает только одно, но делает это более убедительно или более эффективно, чем промежуточное ПО общего назначения. Например, SpeedTree использовался для рендеринга реалистичных деревьев и растительности в ролевой видеоигре The Elder Scrolls IV: Oblivion [18], а Fork Particle использовался для моделирования и рендеринга визуальных эффектов системы частиц в реальном времени или эффектов частиц в Sid Meier's. Civilization V . [19]

Четыре наиболее широко используемых пакета промежуточного программного обеспечения [20], которые предоставляют подсистемы функциональности, включают Bink, Firelight FMOD , Havok и Scaleform GFx от RAD Game Tools . RAD Game Tools разрабатывает Bink для базового рендеринга видео, звука Майлза и рендеринга Granny 3D . Firelight FMOD - это надежная недорогая звуковая библиотека и набор инструментов. Havok предоставляет надежную систему моделирования физики, а также набор приложений для анимации и поведения. Scaleform предоставляет GFx для высокопроизводительного пользовательского интерфейса Flash и высококачественного воспроизведения видео, а также надстройку редактора метода ввода (IME) для поддержки азиатского чата в игре.

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

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

Двигатели для шутеров от первого лица [ править ]

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

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

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

См. Также [ править ]

  • Физика игры
  • Список игровых движков
  • Список движков шутера от первого лица
  • 3D компьютерная графика
  • Список промежуточного программного обеспечения игры
  • Авторская система
  • Виртуальная студия

Ссылки [ править ]

  1. ^ "Что такое игровой движок?" . GameCareerGuide.com . Проверено 24 ноября 2013 .
  2. О'Нил, Джон (15 января 2008 г.). «Моя очередь: реальная стоимость промежуточного программного обеспечения» . Gamedaily.com. Архивировано из оригинального 30 августа 2009 года . Проверено 24 ноября 2013 .
  3. ^ «Возвышение промежуточного программного обеспечения 2.0» . Develop-online.net. 2007-07-06. Архивировано из оригинала на 15 мая 2012 года . Проверено 17 января 2011 .
  4. ^ Отчет об использовании промежуточного программного обеспечения в играх, заархивированный 17 октября 2013 г., на Wayback Machine
  5. ^ "Строительный комплект военной игры" . Ой! FM . Архивировано из оригинального 28 июля 2013 года . Проверено 3 сентября 2012 года . Альтернативный URL
  6. ^ «Строительство силы грома» . Ой! FM . Архивировано из оригинального 28 июля 2013 года . Проверено 1 сентября 2012 года . Альтернативный URL
  7. Перейти ↑ Bramwell, Tom (2007-08-09). «id Tech 5 Интервью • Страница 1 • Интервью •» . Eurogamer.net . Проверено 24 ноября 2013 .
  8. ^ «Исследование состава команды разработчиков игры - изменения с течением времени» . Проверено 17 января 2011 .
  9. ^ "Freescape Engine" . Универсальный список видеоигр . Проверено 16 мая 2020 .
  10. ^ «Видеоигры становятся серьезными» . Gazette.net. 31 августа 2007 г. Архивировано из оригинала на 2008-12-03 . Проверено 17 января 2011 .
  11. ^ «Игры: тенденции в мобильной и беспроводной связи на 2008 год» . M-trends.org. Архивировано из оригинала на 2011-01-08 . Проверено 17 января 2011 .
  12. ^ Цербст, Стефан; Дювель, Оливер (2004). Программирование на движке 3D-игр (книга) . ISBN 9781592003518. Проверено 17 января 2011 .
  13. ^ "xboxlivecommunitygames.org" . xboxlivecommunitygames.org . Проверено 24 ноября 2013 .
  14. ^ "Microsoft для включения созданных пользователями игр XBox 360" . Проверено 5 мая 2017 .
  15. ^ «10 лучших движков видеоигр | Версия 2018» . Максимальный ресурс для дизайна видеоигр . 2017-03-11 . Проверено 15 мая 2019 .
  16. ^ Сэвидж, Фил (2015-03-02). «Unreal Engine 4 теперь бесплатен» . PC Gamer . Проверено 15 мая 2019 .
  17. ^ «Два двигателя, движущие вперед игровой индустрии с оборотом $ 120 млрд» . CB Insights Research . 2018-09-20 . Проверено 15 мая 2019 .
  18. ^ "Обзор продукта Gamusutra верхнего промежуточного программного обеспечения для растительности" . Gamasutra.com. 2003-10-01 . Проверено 17 января 2011 .
  19. ^ "Firaxis, использующий набор инструментов Fork Particle для визуальных эффектов Civ V" . Гамасутра. 2010-10-06 . Проверено 24 ноября 2013 .
  20. ^ "Gamasutra Engine and Middleware Technology Survey" . Gamasutra.com. 2009-05-08 . Проверено 17 января 2011 .
  21. ^ Hauteville, Седрик (2011-04-02). «Технический дизайн игры: системы прицеливания в шутерах от первого лица» . Технический игровой дизайн . Проверено 13 марта 2019 .