Sith (движок)

Sith engine — игровой движок, разработанный LucasArts. Игра Jedi Knight: Dark Forces II базируется на этом движке, а её дополнение, Star Wars Jedi Knight: Mysteries of the Sith, использует слегка обновлённую версию этого движка.

Он был импортирован в Grim Fandango, как часть движка GrimE, и использован в Star Wars Droidworks.

Принцип работы править

Графический движок изначально поддерживал как полностью программный рендеринг в 256 цветов, так и аппаратное ускорение через API DirectX 5.0 Direct3D в 16-битном цвете. Для дополнения Star Wars Jedi Knight: Mysteries of the Sith было реализовано цветное освещение.

В отличие от движков серии Quake того времени, для определения порядка рендеринга уровня и удаления его невидимой геометрии используются не BSP-деревья, а система порталов, являющаяся трехмерным развитием системы, использованной в движке Jedi игры Dark Forces. Геометрия уровня описывается как набор замкнутых выпуклых многогранников (sectors), соединенных между собой порталами (adjoins). Система не требует построения дополнительных ускоряющих структур в offline и удаление невидимых поверхностей происходит полностью во время выполнения.[1][2]

В качестве языка сценариев используется собственный язык COG, синтаксис которого частично основан на языке C с использованием библиотеки функций, предоставляемых движком. Скрипты на языке COG компилируются во время загрузки в опкоды стековой машины, причем для каждого скрипта используется отдельный экземпляр стековой машины, что позволяет избежать краха всей системы при ошибке одного скрипта. Обмен COG скриптов информацией между собой и движком построен на основе событий.[3]

Для редактирования уровней использовался внутренний редактор LEIA[3].

Большинство форматов данных движка являются текстовыми, что привело к появлению неофициальных спецификаций форматов[4] и разработок на их основе, таких как редакторы JED[5] и JkEdit[6][7].

Движок Sith был подвергнут обратной разработке и воспроизведен в проекте OpenJKDF2[8].

3do-файлы — это трёхмерные модели, используемые движком Sith в качестве основы для построения изображения. Каждая содержит определения текстур, называемые MAT-файлами, и текст, в котором детально описаны имена сеток, вершины, поверхности, то, как они затенены, и тому подобное. MAT-файлы — это конвертированные 256-цветные точечные рисунки). Поскольку объединение всех текстур в одном файле очень долго было недостижимым (до тех пор, пока более совершенные методы включения текстур не были обнаружены в 3do-моделях, сделанных фанатами), каждая отдельная часть тела имела отдельную текстуру. В некоторых случаях текстуры использовались многократно.

Анимация 3do-моделей содержится в файлах, называемых KEY-файлами. KEY-файлы — это анимационные определения, такие, как каждый кадр анимационной последовательности модели игрока и противника, также в этих файлах иногда могут быть определены даже траектории полёта кораблей. Масштабными изменениями KEY-файлов можно создать новые движения персонажей, хотя в некоторых случаях KEY-файлы противника и KEY-файлы игрока неизменяемы[9].

Примечания править

  1. Software:Sith (game engine) - HandWiki (англ.). handwiki.org. Дата обращения: 1 сентября 2023.
  2. JediKnight Unofficial Specs. www.massassi.net. Дата обращения: 1 сентября 2023. Архивировано 1 сентября 2023 года.
  3. 1 2 HuebnerBloggerOctober 03, Robert; 1997 Adding Languages to Game Engines (англ.). Game Developer (3 октября 1997). Дата обращения: 1 сентября 2023. Архивировано 1 сентября 2023 года.
  4. JK Specs - The Massassi Temple. www.massassi.net. Дата обращения: 1 сентября 2023.
  5. Editing Programs - The Massassi Temple. www.massassi.net. Дата обращения: 1 сентября 2023. Архивировано 1 сентября 2023 года.
  6. JkEdit (англ.). Jedi Knight: Dark Forces 2 Wiki. Дата обращения: 1 сентября 2023. Архивировано 1 сентября 2023 года.
  7. JKedit official tutorials - Star Wars Jedi Knight: Dark Forces II (англ.). Mod DB (3 октября 1997). Дата обращения: 1 сентября 2023. Архивировано 1 сентября 2023 года.
  8. Max Thomas. OpenJKDF2. — 2023-08-29. Архивировано 4 сентября 2023 года.
  9. Sith Engine (англ.). Wookieepedia. Дата обращения: 1 сентября 2023. Архивировано 1 сентября 2023 года.