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

редактировать
Среда разработки программного обеспечения, предназначенная для создания видеоигр Создание гоночной игры в Blender Game Engine

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

Содержание
  • 1 Цель
  • 2 Компоненты
    • 2.1 Основная игровая программа
    • 2.2 Механизм рендеринга
    • 2.3 Аудиодвигатель
    • 2.4 Физический движок
    • 2.5 Искусственный интеллект
  • 3 История
  • 4 Игровые движки как отрасль
  • 5 Межплатформенное ПО для игр
  • 6 Движки для шутеров от первого лица
  • 7 См. Также
  • 8 Ссылки
Цель

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

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

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

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

Компоненты

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

Основная игровая программа

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

Механизм рендеринга

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

Вместо того, чтобы программировать и компилировать для непосредственного выполнения на CPU или 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, что может помочь ускорить процесс создания сценариев поведения ИИ.

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

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

В то время как сторонние игровые движки не были обычным явлением до появления 3D компьютерной графики в 1990-х годах, было несколько систем создания 2D игр, выпущенных в 1980-х. для независимой разработки видеоигр. К ним относятся Pinball Construction Set (1983), ASCII 's War Game Construction Kit (1983), Thunder Force Construction (1984), 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 RPG Maker с 1998 года. Klik Play (1994) - еще одно унаследованное предложение, которое все еще доступно.

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

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

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

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

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

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

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

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

Игровые движки как отрасль

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

Unreal Engine 4, один из основных игровых движков, используемый для создания нескольких известных игр, таких как Fortnite, PlayerUnknown's Battlegrounds и Life Is Strange 2 приняли бесплатную структуру с лицензионным платежом за все продажи игр с использованием этого движка. Хотя различия между различными игровыми движками стираются по мере того, как они создаются в процессе создания игры, разные разработчики игр могут либо слишком привыкать к изменению системы, либо быть привлеченными огромными преимуществами таких движков, независимо от границ выплат.

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

промежуточное ПО для игры

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

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

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

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

Движки шутера от первого лица

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

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

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

См. Также
На Викискладе есть материалы, связанные с Игровыми движками.
Ссылки
Последняя правка сделана 2021-05-21 11:11:31
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте