C4 Engine — это фирменный игровой движок, разработанный компанией Terathon Software, который используется для создания 3D-игр и других типов интерактивных виртуальных симуляций для PlayStation 5 , PlayStation 4 , [1] PlayStation 3 , Windows ( XP и более поздние версии), Mac OS X (версии 10.9 и более поздние версии), [2] Linux и iOS .
Разработкой C4 Engine руководит автор компьютерной графики Эрик Лендьел , который также является основателем Terathon Software. Хотя движок находился в разработке спорадически в течение нескольких лет до этого, он был впервые представлен по коммерческой лицензии в мае 2005 года. Из-за меняющихся рыночных условий C4 Engine был снят с производства в 2015 году, но было сделано объявление о его возвращении в 2021 году. [3] Версия C4 Engine 7.0 выпущена 22 марта 2023 года.
Архитектура C4 Engine представляет собой многоуровневую коллекцию программных компонентов, [4] в которой самые нижние слои взаимодействуют с компьютерным оборудованием и операционной системой, а более высокие слои предоставляют независимые от платформы сервисы игровому коду. Хотя значительная часть движка посвящена 3D-графике, есть также большие компоненты, посвященные функциональности, относящейся к аудио, сетевому взаимодействию, физике, устройствам ввода и скриптам. Документация по движку доступна онлайн через набор веб-страниц API и вики. [5]
Движок C4 основан на библиотеке OpenGL [6] на платформах Windows, Mac, Linux и iOS и использует модель прямого рендеринга с одним проходом на свет. Движок способен выполнять рендеринг с несколькими различными типами источников света и методами затенения. [7] Основным методом рендеринга динамических теней является теневое отображение , а вариант каскадного теневого отображения используется для очень больших наружных сцен.
Шейдеры создаются в C4 с использованием одного из двух доступных методов, оба из которых изолируют пользователя от кода шейдера, требуемого базовой графической библиотекой. Простые шейдеры могут быть созданы путем указания набора атрибутов материала, таких как цвет диффузного отражения , цвет зеркального отражения и группа текстурных карт . Движок внутренне генерирует необходимый код шейдера для каждой комбинации материала и типа света, с которой он сталкивается при рендеринге сцены. Атрибуты материала могут использоваться для создания таких эффектов, как нормальное отображение , отображение параллакса , отображение горизонта и неровные отражения или преломления. [8]
C4 также включает графический редактор шейдеров, который позволяет создавать сложные пользовательские материалы с использованием большого набора предопределенных операций. [9] Этот метод проектирования материалов обеспечивает большую творческую свободу и функциональность для опытных пользователей, но требует несколько больше работы от пользователя. Материалы, созданные с использованием стандартных атрибутов материалов, можно преобразовать в пользовательские шейдеры, чтобы использовать их в качестве отправной точки в редакторе шейдеров.
Возможности ландшафта C4 Engine основаны на воксельной технологии [10] , что позволяет полностью 3D-скульптировать для создания таких элементов, как выступы, арки и действительно вертикальные скалы, которые были бы невозможны при традиционной системе рельефа на основе высоты. Треугольные сетки генерируются из воксельных данных с использованием алгоритма Marching cubes , а бесшовный уровень детализации с несколькими разрешениями становится возможным благодаря использованию алгоритма Transvoxel для сшивания областей с разным разрешением.
Движок способен визуализировать большое количество разнообразных спецэффектов, включая системы частиц , процедурный огонь, электрические эффекты, объемный туман и погодные явления. [11] На этапе постобработки движок также может применять полноэкранное кинематографическое размытие движения к конечному изображению, используя технику, основанную на буфере скорости, [12] а также эффекты свечения и искажения. Движок не предоставляет возможности разрабатывать пользовательские эффекты постобработки.
C4 Engine может воспроизводить звуки, сохраненные в формате WAV, используя 16-битную моно или стерео выборку, а аудиоданные могут воспроизводиться из памяти или передаваться потоком с диска. Движок воспроизводит звуки, используя настраиваемый микшер, который обеспечивает такие возможности, как смещение частоты, эффект Доплера , реверберация и атмосферное поглощение.
Многопользовательский игровой процесс в C4 поддерживается двухуровневой системой обмена сообщениями, которая использует протокол пользовательских датаграмм для связи между различными компьютерами, подключенными к игре.
Движок C4 имеет собственный физический движок, который можно использовать или вместо него реализовать стороннее решение.
C4 Engine поставляется с базовыми инструментами разработки игр, необходимыми для создания современной игры. Каждый инструмент упакован как подключаемый модуль, существующий отдельно от самого движка. Многие инструменты используют комплексную систему графического пользовательского интерфейса , предоставляемую движком, так что пользователю предоставляется согласованный интерфейс на нескольких платформах.
Инструмент World Editor — это приложение для создания 3D-контента, которое обычно используется для создания игровых сред для использования с C4 Engine. Он предоставляет большой набор возможностей рисования и манипуляции, которые используются для построения геометрии мира, а также множество игровых потребностей, таких как свет, звуки, триггеры и специальные эффекты. [13] [14]
World Editor может импортировать информацию о сцене через форматы OpenGEX [15] и COLLADA . [16] Это позволяет использовать контент из большого количества программ для создания цифрового контента, таких как Autodesk Maya или 3D Studio Max .
Инструмент World Editor включает в себя графический редактор сценариев, разработанный для того, чтобы быть доступным для художников и дизайнеров уровней , а также программистов. Редактор сценариев позволяет пользователю размещать различные «методы» в направленном графе, соединенном «волокнами», представляющими зависимости действий и порядок выполнения. [17] Скрипты поддерживают циклы посредством создания циклов в структуре графа, а условное выполнение поддерживается путем маркировки волокон, которые должны следовать или не следовать, на основе выходного значения результата методами, с которых они начинаются.
Движок поставляется с несколькими стандартными методами скрипта, которые выполняют простые действия, такие как включение или выключение узла сцены (например, включение или выключение света), и более сложные действия, такие как оценка произвольного математического выражения. Новые методы скрипта могут быть определены кодом игры, и они появляются в редакторе скриптов как пользовательские действия, которые может использовать дизайнер уровней.
Инструмент World Editor включает в себя подредактор, называемый «редактором панелей», который позволяет создавать панели 2D-интерфейса, которые можно размещать внутри 3D-мира. Редактор панелей позволяет пользователю размещать различные типы виджетов, такие как текст и изображения, в узле эффекта панели, который визуализируется как часть сцены. [18] Панели также могут включать в себя специальный виджет камеры, который отображает сцену, видимую для камеры, размещенной в любом другом месте того же мира.
Интерфейсные панели являются как динамическими, так и интерактивными. Движок предоставляет расширяемый набор «мутаторов», которые могут применяться к отдельным элементам панели для вызова различных форм анимации, таких как прокрутка, вращение или изменение цвета. Персонаж в игре может взаимодействовать с панелью, приближаясь к ней и щелкая мышью внутри интерактивных элементов. К таким элементам можно прикрепить скрипт, вызывая последовательность действий, когда игрок активирует их.
Лицензия на двигатель C4 стоит 100 долларов США на человека, и в нее включены все будущие обновления без дополнительных затрат.
C4 Engine был лицензирован многими университетами в связи с играми, ориентированными на учебные программы по программной инженерии или для специальных исследовательских проектов. К этим университетам относятся MIT , Georgia Tech , Worcester Polytechnic Institute (WPI), McMaster University и University of Kempten . [19] Студенты некоторых из этих программ должны создавать свои собственные игры в рамках курса с использованием C4 Engine, и многие из этих проектов были представлены на студенческом конкурсе Independent Games Festival . [20]
Один из конкретных университетских научно-исследовательских проектов включал технологию TactaVest, разработанную в WPI, [21] а их использование двигателя C4 было показано в телевизионном шоу Daily Planet на канале Discovery Channel Canada, вышедшем в эфир 26 мая 2006 года. [22]
Игры, использующие движок C4 Engine: