Введение
C4 Engine - это собственный движок компьютерных игр, разработанный Terathon Software, который используется для создания 3D-игр и других типов интерактивных виртуальных симуляций для PlayStation 5, PlayStation 4, PlayStation 3, Windows (XP и более поздние), Mac OS X (версии 10.9 и более поздние), Linux и iOS.
The C4 Engine is a proprietary computer game engine developed by Terathon Software that is used to create 3D games and other types of interactive virtual simulations for PlayStation 5, PlayStation 4, PlayStation 3, Windows (XP and later), Mac OS X (versions 10.9 and later), Linux, and iOS.
История развития
Разработка C4 Engine ведется автором компьютерной графики Эриком Ленгелем, который также является основателем Terathon Software. Хотя двигатель разрабатывался спорадически в течение нескольких лет, он был впервые выпущен под коммерческой лицензией в мае 2005 года. Из-за меняющихся рыночных условий двигатель C4 был выведен из эксплуатации в 2015 году, но было объявлено, что он вернется в 2021 году. Версия 7.0 двигателя C4 выйдет 22 марта 2023 года.
Возможности и особенности
Архитектура C4 Engine представляет собой многоуровневую коллекцию программных компонентов, в которой самые низкие слои взаимодействуют с компьютерным оборудованием и операционной системой, а более высокие слои предоставляют платформенные независимые услуги для игрового кода. Хотя значительная часть движка посвящена 3D-графике, есть также большие компоненты, предназначенные для функциональности, относящейся к аудио, сети, физике, устройствам ввода и сценарию. Документация для движка доступна в Интернете через набор веб-страниц API и вики.
Графика
C4 Engine основан на библиотеке OpenGL на платформах Windows, Mac, Linux и iOS, и он использует модель рендеринга с одним прохождением на световой переход. Двигатель способен создавать изображения с несколькими различными типами источников света и методами затенения. Основным методом для рендеринга динамических теней является отображение теней, а вариант каскадного отображения теней используется для очень больших наружных сцен. Шейдеры создаются в C4 с использованием одного из двух доступных методов, оба из которых изолируют пользователя от шейдерного кода, требуемого базовой графической библиотекой. Простые теневые элементы могут быть созданы путем указания набора атрибутов материала, таких как цвет диффузного отражения, цвет зеркального отражения и группа текстильных карт. Двигатель внутренне генерирует необходимый шейдерный код для каждой комбинации материала и типа света, с которыми он сталкивается при рендеринге сцены. Материальные атрибуты могут использоваться для получения эффектов, таких как нормальное отображение, отображение параллакса, отображение горизонта и неровные отражения или преломления. C4 также включает в себя графический редактор Shader, который позволяет создавать сложные пользовательские материалы с использованием большого набора предопределенных операций. Этот метод проектирования материалов позволяет большую творческую свободу и функциональность для опытных пользователей, но требует немного больше работы со стороны пользователя. Материалы, созданные с использованием стандартных атрибутов материала, могут быть преобразованы в пользовательские шейдеры, чтобы служить отправной точкой в редакторе шейдера. Территориальные возможности двигателя C4 основаны на технологии вокселей, позволяющей создавать полноценные 3D-скульптуры для создания таких элементов, как перебои, арки и действительно вертикальные скалы, которые не были бы возможны при обычной системе терранов на основе высоты. Треугольные сетки генерируются из воксельных данных с использованием алгоритма Marching cubes, а бесшовный уровень детализации с несколькими разрешениями возможен с помощью алгоритма Transvoxel для сшивания областей с разными разрешениями. Двигатель способен создавать большое разнообразие спецэффектов, включая системы частиц, процедурный огонь, электрические эффекты, объемный туман и погодные явления. На этапе после обработки двигатель может также применять полноценное кинематографическое размытие движения к окончательному изображению, используя технику, основанную на буфере скорости, а также эффекты свечения и искажения. Двигатель не обеспечивает возможности проектирования пользовательских эффектов после обработки.
Аудио
C4 Engine может воспроизводить звуки, сохраненные в формате WAV, используя 16-битную моно- или стерео-отборку, а аудиоданные могут воспроизводиться из памяти или потоковой передачей с диска. Двигатель воспроизводит звуки с помощью специального миксера, который обеспечивает такие возможности, как смещение частоты, эффект Доплера, реверберация и поглощение атмосферы.
Сетевые связи
Многопользовательский геймплей в C4 поддерживается двухуровневой системой обмена сообщениями, которая использует протокол пользовательской датграммы для связи между различными компьютерами, подключенными к игре.
Физика
C4 Engine имеет собственный физический двигатель, который может быть использован или позволяет реализовать решение третьей стороны.
Инструменты
C4 Engine поставляется с основными инструментами разработки игр, необходимыми для создания современной игры. Каждый инструмент упакован в виде модуля плагина, который существует отдельно от самого двигателя. Многие инструменты используют комплексную графическую систему пользовательского интерфейса, предоставляемую движком, чтобы пользователю был представлен последовательный интерфейс на нескольких платформах.
Мировой редактор
Инструмент World Editor - это приложение для создания 3D-контента, которое обычно используется для создания игровой среды для использования с C4 Engine. Он предоставляет большой набор возможностей рисования и манипулирования, которые используются для построения геометрии мира, а также многих игровых потребностей, таких как огни, звуки, триггеры и специальные эффекты. World Editor может импортировать информацию о сцене через форматы OpenGEX и COLLADA. Это позволяет использовать контент из большого количества программ для создания цифрового контента, таких как Autodesk Maya или 3D Studio Max.
Редактор сценариев
Инструмент World Editor включает в себя графический редактор сценариев, предназначенный для доступности художникам и дизайнерам уровней, а также программистам. Редактор сценариев позволяет пользователю размещать различные "методы" в направленном графике, соединенном "волокнами", представляющими зависимости действий и порядок выполнения. Скрипты поддерживают циклы через создание циклов в структуре графа, а условное выполнение поддерживается маркировкой волокон, которые должны быть выполнены или не выполнены на основе вывода значения результата методами, с которых они начинаются. Двигатель поставляется с несколькими стандартными методами сценария, которые выполняют простые действия, такие как включение или отключение узла сцены (например, включение или выключение света), и более сложные действия, такие как оценка произвольного математического выражения. Новые методы сценария могут быть определены кодом игры, и они появляются в редакторе сценария как пользовательские действия, которые могут использоваться дизайнером уровней.
Редактор панели
Инструмент World Editor включает в себя подредактора, называемого "редактором панели", обеспечивающий создание панелей 2D-интерфейса, которые могут быть помещены внутри 3D-мира. Панельный редактор позволяет пользователю размещать различные виджеты, такие как текст и изображения, в узле эффекта панели, который отображается как часть сцены. Панели могут также включать специальный виджет камеры, который отображает сцену, видимую для камеры, размещенной в любом другом месте в том же мире. Панели интерфейса являются динамическими и интерактивными. Двигатель обеспечивает расширяемый набор "мутаторов", которые могут быть применены к отдельным элементам панели для вызывания различных форм анимации, таких как прокрутка, вращение или изменение цвета. Персонаж в игре может взаимодействовать с панелью, приближаясь к ней и нажимая мышью внутри интерактивных элементов. Скрипт может быть прикреплен к таким предметам, вызывая последовательность действий, когда игрок активирует их.
Лицензирование
C4 Engine лицензируется за 100 долларов на человека, и это включает в себя все будущие обновления без дополнительных затрат.
Академики
C4 Engine был лицензирован многими университетами в связи с игровыми ориентированными программными инженерами учебных программ или для специальных исследовательских проектов. Эти университеты включают MIT, Georgia Tech, Worcester Polytechnic Institute (WPI), Университет Макмастера и Университет Кемптена. Студенты некоторых из этих программ должны создавать свои собственные игры в рамках курса с использованием движка C4, и многие из этих проектов были включены в студенческий конкурс Independent Games Festival. Один из конкретных университетских исследовательских проектов включал технологию TactaVest, разработанную в WPI, и их использование двигателя C4 было показано в телешоу Discovery Channel Canada Daily Planet, вышедшем в эфир 26 мая 2006 года.