Игровой движок
Игрово́й движо́к — центральный программный компонент компьютерных и видеоигр или других интерактивных приложений с графикой, обрабатываемой в реальном времени. Он обеспечивает основные технологии, упрощает разработку и часто даёт игре возможность запускаться на нескольких платформах, таких как игровые консоли и настольные операционные системы, например, GNU/Linux, Mac OS X и Microsoft Windows.
Основную функциональность обычно обеспечивает игровой движок, включающий движок рендеринга («визуализатор»), физический движок, звук, систему скриптов, анимацию, искусственный интеллект, сетевой код, управление памятью и многопоточность. Часто на процессе разработки можно сэкономить за счёт повторного использования одного игрового движка для создания множества различных игр.
История
В разделе не хватает ссылок на источники (см. рекомендации по поиску). |
На домашних компьютерах 1980-х из-за отсутствия стандартизации и ограничений памяти портирование было ручным и трудоёмким: переносилась только логика работы, а остальные части — вывод графики на экран, вызов прерываний и т. п. — писалось заново. Тем не менее, в те времена появились игровые движки Z-Machine и SCI от компаний Infocom и Sierra соответственно. В 1980-е компания Incentive Software начала разработку Freescape — переносимого 3D-ядра.
Сам же термин «игровой движок» появился в середине 1990-х годов — в это время окончательно установилось доминирование IBM-совместимых компьютеров, а быстрые процессоры и «хитрое» программирование дали 30 и более кадров в секунду в трёхмерных играх. Игры Doom и Quake от id Software оказались настолько популярными, что другие разработчики вместо того, чтобы работать с чистого листа, лицензировали основные части программного обеспечения и создавали свою собственную графику, персонажей, оружие и уровни — «игровой контент» или «игровые ресурсы». Движок Quake был использован в более чем десяти проектах и дал серьёзный толчок развитию middleware-индустрии.
Более поздние игры, такие как Unreal 1998 года (движок Unreal Engine) и Quake III Arena (на движке id Tech 3) 1999 года, были спроектированы с применением данного подхода, с отдельно разработанными движком и наполнением. Практика лицензирования такой технологии оказалась полезным вспомогательным доходом для некоторых разработчиков игр. Так, стоимость одной лицензии на коммерческий игровой движок класса high-end может варьироваться от 10 тыс. до 3,75 млн $ (в случае Warcraft III)[источник не указан 5033 дня], а число лицензиатов может достигать несколько десятков компаний (как для Unreal Engine). По крайней мере, многократно используемые движки ускоряют и упрощают разработку игры, что является ценным преимуществом в конкурирующей индустрии компьютерных игр.
Дальнейшее усовершенствование игровых движков привело к сильному разделению между рендерингом, скриптингом, художественным дизайном и дизайном уровней. Сейчас для типичной команды разработчиков игр является вполне обычным иметь в составе столько же художников, сколько и программистов.
Шутеры от первого лица остаются преобладающими пользователями сторонних игровых движков, но сейчас такие движки также используются в других жанрах. Например, RPG Morrowind и MMORPG Dark Age of Camelot основаны на движке NetImmerse, в то время, как Oblivion и Fallout 3 используют новую версию данной технологии — Gamebryo. Известная MMORPG Lineage II построена на движке Unreal Engine 2 (несмотря на то, что данный движок изначально предназначался для использования в шутерах).
Игровые движки также используются в играх, первоначально разработанных для игровых консолей; например, движок RenderWare используется во франчайзах Grand Theft Auto и Burnout.
Современные игровые движки — одни из самых сложных в написании приложений, зачастую состоящие из десятков различных компонентов, каждый из которых можно настраивать по отдельности под нужды игры. Сложность разработки такого рода систем наглядно показывает один из комментариев к теме на сайте Slashdot.org, описывающий набор типовых навыков, необходимых разработчику.
Обзор
В дополнение к многократно используемым программным компонентам, игровые движки предоставляют набор визуальных инструментов для разработки. Эти инструменты обычно составляют интегрированную среду разработки для упрощённой, быстрой разработки игр на манер поточного производства. Эти игровые движки иногда называют «игровым подпрограммным обеспечением» (сокр. ППО; англ. middleware), так как, с точки зрения бизнеса, они предоставляют гибкую и многократно используемую программную платформу со всей необходимой функциональностью для разработки игрового приложения, сокращая затраты, сложность и время разработки — все критические факторы в сильноконкурирующей индустрии видеоигр.
Как и другие ППО решения, игровые движки обычно платформо-независимы и позволяют некоторой игре запускаться на различных платформах, включая игровые консоли и персональные компьютеры, с некоторыми внесёнными в исходный код изменениями (или вообще без них). Часто игровое ППО имеет компонентную архитектуру, позволяющую заменять или расширять некоторые системы движка более специализированными (и часто более дорогими) ППО компонентами, например, Havok — для физики, FMOD — для звука или SpeedTree — для рендеринга. Некоторые игровые движки, такие как RenderWare, проектируются как набор слабосвязанных ППО компонентов, которые могут выборочно комбинироваться для создания собственного движка, вместо более традиционного подхода расширения или настройки гибкого интегрируемого решения. Тем не менее расширяемость достигнута и остаётся высокоприоритетной в игровых движках из-за широких возможностей их применения. Несмотря на специфичность названия, игровые движки часто используются в других типах интерактивных приложений, требующих графику в реальном времени, таких как рекламные демо-ролики, архитектурные визуализации, обучающие симуляторы и среды моделирования.
Некоторые игровые движки предоставляют только возможности 3D рендеринга в реальном времени вместо всей функциональности, необходимой играм. Эти движки доверяют разработчику игры реализацию остальной функциональности или её сбор на основе других игровых ППО компонентов. Такие типы движков обычно относят к «графическим движкам», «движкам рендеринга» или «3D движкам» вместо более содержательного термина «игровой движок». Однако эта терминология используется противоречиво: так, многие полнофункциональные игровые 3D движки упомянуты просто как «3D движки». Некоторые примеры графических движков: RealmForge, Ogre 3D, Power Render, Crystal Space и Genesis3D. Современные игровые или графические движки обычно предоставляют граф сцены — объектно-ориентированное представление 3D мира игры, которое часто упрощает игровой дизайн и может использоваться для более эффективного рендеринга огромных виртуальных миров.
Аппаратная абстракция
Чаще всего 3D движки или системы рендеринга в игровых движках построены на графическом API, таком как Direct3D или OpenGL, который обеспечивает программную абстракцию GPU или видеокарты. Низкоуровневые библиотеки, например, DirectX, SDL и OpenAL, также используются в играх, так как обеспечивают аппаратно-независимый доступ к другому аппаратному обеспечению компьютера, такому как устройства ввода (мышь, клавиатура и джойстик), сетевые и звуковые карты. До появления аппаратно-ускоряемой 3D графики использовались программные визуализаторы. Программный рендеринг всё ещё используется в некоторых инструментах моделирования для рендеринга изображений, для которых визуальная достоверность важнее производительности (количество кадров в секунду) или когда аппаратное обеспечение компьютера не удовлетворяет требованиям, например, не поддерживает шейдеры.
См. также
- Список игровых движков
- Графический движок — главный компонент игрового движка
- Физический движок — компонент игрового движка
- Звуковой движок — компонент игрового движка
- Игровой искусственный интеллект — компонент игрового движка
Ссылки
- Справочный сайт, содержащий большую базу коммерческих middleware-решений
- Большая база данных по игровым движкам на сайте DevMaster.net
- Terrain in Games — детальный обзор технологий для рендеринга ландшафтов в движках 1997—2000 года
- Статья «Анатомия игровых движков» на сайте 3DNews
- Richard Fine. Enginuity (англ.). GameDev.net. — Учебник по созданию игрового движка. Дата обращения: 11 июля 2009. Архивировано 5 мая 2011 года.
- База игровых технологий
Для улучшения этой статьи желательно:
|