Русская Википедия:.WAD: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
Нет описания правки
 
Строка 1: Строка 1:
{{Русская Википедия/Панель перехода}}
{{Русская Википедия/Панель перехода}}
{{Файловый формат
{{Файловый формат
Строка 67: Строка 66:
[[Категория:Doom]]
[[Категория:Doom]]
[[Категория:Форматы файлов]]
[[Категория:Форматы файлов]]
{{#set:
Текст статьи={{Файловый формат
|название              = Doom WAD
|icon                  =
|logo                  =
|screenshot            =
|caption                =
|mime                  =
|type code              =
|uniform type          =
|magic                  =
|released              = <!-- {{Start date|YYYY|mm|dd|df=yes}} -->
|latest release version =
|latest release date    =
|genre                  = данные
|container for          =
|contained by          =
|extended from          =
|extended to            =
|standard              =
|free                  =
|url                    =
}}
'''.WAD''' (по утверждению id Software, происходит от {{lang-en|'''W'''here’s '''A'''ll the '''D'''ata}};<ref>слово ''wad'' также имеет самостоятельное значение — «ком», «комок», «пачка», напр. специальная пуля для спортивной стрельбы, аккуратно высекающая из мишени круглый бумажный комочек, называется {{iw|wadcutter||en|wadcutter}}</ref>) — [[архив (информатика)|архивный]] [[формат файлов]], который использовался в [[компьютерная игра|компьютерных играх]], основанных на [[Движок Doom|движке ''Doom'']]: ''[[Doom (игра, 1993)|Doom]]'', ''[[Doom 2]]'', ''[[Final Doom|Final Doom: The Plutonia Experiment]]'', ''[[Final Doom|Final Doom: Evilution]]'', ''[[Heretic]]'', ''[[Hexen]]'' и некоторых других, для хранения игровых ресурсов ([[текстура (трёхмерная графика)|текстур]], музыки, звуков и других). Формат ресурсов, помещаемых в такой файл, может подразумевать сжатие. Сам формат не предоставляет возможности сжатия, хотя по своей структуре допускает возможность создания нескольких ссылок в заголовке на один фактический ресурс, что позволяет избежать дублирования ресурса, целиком сводящегося к полному или частичному повторению другого ресурса. В силу экзотичности такой ситуации случаи практического использования этой возможности неизвестны.
== Описание формата ==
Ресурсы хранятся в именованных блоках ({{lang-en|lump}}), имена, размеры и местоположение в файле которых хранится в '''''каталоге''''' — таблице размещения ресурсов, располагающемся, как правило, в конце файла, хотя каталог может располагаться где угодно.
Каталог состоит из 16-[[байт]]овых записей, либо описывающих блоки данных, либо являющихся маркерами. Каждая запись состоит из трёх полей: 4-байтовое смещение начала блока относительно начала файла, 4-байтовая длина блока (для маркера поле равно нулю) и восьмисимвольное имя (см. [[Стандарт 8.3]]) блока, дополняемое нулями до 8 байт.
<code>.WAD</code>-файл имеет 12-байтовый заголовок, состоящий из трёх 4-байтовых частей: сигнатура, число записей каталога и смещение начала каталога относительно начала файла.
Сигнатура обычно бывает двух типов (для игр, использующих движок ''Doom'' и производные):
* <code>IWAD</code> — основной файл игровых ресурсов ({{lang-en|'''I'''nternal '''WAD'''}} — «внутренний ''WAD''»).
* <code>PWAD</code> — подключаемый файл ({{lang-en|'''P'''atch '''WAD'''}} — «заплаточный ''WAD''»).
Существуют также другие сигнатуры, в частности <code>WAD2</code>, используемый в игре ''[[Quake]]''. Такие файлы, как правило, имеют другой (расширенный) формат каталога.
Маркеры используются для отметки группы блоков, которые игровой движок считает идущими в строго определённой последовательности. К примеру, данные уровня
начинаются маркером <code>ExMy</code> для ''DOOM'' и ''Heretic'', <code>x</code> — номер эпизода, <code>y</code> — номер уровня, либо <code>MAPxx</code> для ''DOOM 2'' и ''Hexen'', <code>xx</code> — номер уровня. Теоретически, имя блока может быть любым, допустимым в [[имя файла|имени файла]] файловой системы ''[[FAT]]''. Затем идут блоки данных уровня в строго определённой последовательности: <code>THINGS</code>, <code>LINEDEFS</code>, <code>SIDEDEFS</code>, <code>VERTEXES</code>, <code>SEGS</code>, <code>SSECTORS</code>, <code>NODES</code>, <code>SECTORS</code>, <code>REJECT</code>, <code>BLOCKMAP</code>. В ''Hexen'' также присутствует блок <code>BEHAVIOR</code>, содержащий [[Action Code Script|скрипты]].
Когда подключаются <code>PWAD</code>-файлы, игровой движок помещает их каталоги в начало списка, так, что при поиске содержащиеся в них блоки будут обнаружены первыми. Таким образом, не меняя основного файла, можно заменить практически любой игровой ресурс ([[игровой уровень|карты]], [[спрайт (компьютерная графика)|спрайты]], текстуры).
== Ограничения оригинального движка ==
В оригинальном движке существует проблема, связанная с использованием маркеров: все спрайты и текстуры полов и потолков должны располагаться между специальными маркерами: <code>S_START</code> и <code>S_END</code> для спрайтов и <code>F_START</code> и <code>F_END</code> для текстур полов и потолков, и-за чего требуется помещение всех блоков вместе с маркерами из <code>IWAD</code>-файла в <code>PWAD</code>-файл, что сказывается не только на удобстве использования, но и на проблемах при распространении (оригинальная игровая графика, как правило, защищена [[Авторское право|авторскими правами]]). Для устранения этой проблемы существуют специальные программы, создающие нужные <code>PWAD</code>-файлы уже у конечного пользователя, обладающего необходимым <code>IWAD</code>-файлом. В современных портах эти ограничения устранены.
== Дальнейшее развитие ==
В более поздних играх от ''id Software'', начиная с ''Quake'', была разработана другая технология хранения игровых ресурсов, основанная на совместном использовании [[Файловая система|файловой системы]] операционной системы и полноценных архивных файлов, содержащих срез файловой системы. При поиске ресурса файл сначала ищется в файловой системе в определённых [[каталог (файловая система)|каталогах]]; если он не находится, то начинается просмотр списка архивов. Таким образом, модификация игрового ресурса становится максимально простой: нужно просто положить нужный файл в нужное место на диске. А архивы позволяют не засорять папки файловой системы множеством мелких файлов. ''Quake'' также использует и <code>.WAD</code>-файлы: текстуры хранятся в файле <code>gfx.wad</code>, который, в свою очередь, упакован в архив <code>pak0.pak</code>.
Данная технология используется и поныне во многих современных играх, не только от ''id Software''.
== Литература ==
* {{Книга|ссылка=|автор=Fabien Sanglard|заглавие=Game engine black book Doom|год=[2018?]|издание=V1.1|место=|страниц=427|isbn=978-1-0998-1977-3}}
== Примечания ==
{{примечания}}
== Ссылки ==
* [http://doomwiki.org/wiki/WAD ''WAD — The Doom Wiki at doomwiki.org'']{{неавторитетный источник}}
* [http://www.gamers.org/dhs/helpdocs/dmsp1666.html ''http://www.gamers.org/dhs/helpdocs/dmsp1666.html''] — Описание формата(англ.)
{{Серия Doom}}
{{rq|sources|refless|topic=IT}}
[[Категория:Doom]]
[[Категория:Форматы файлов]]
}}
{{Навигационная таблица/Портал/Русская Википедия}}
{{Навигационная таблица/Портал/Русская Википедия}}
[[Категория:Русская Википедия]]
[[Категория:Русская Википедия]]

Текущая версия от 23:15, 10 июля 2023

Шаблон:Файловый формат

.WAD (по утверждению id Software, происходит от Шаблон:Lang-en;[1]) — архивный формат файлов, который использовался в компьютерных играх, основанных на движке Doom: Doom, Doom 2, Final Doom: The Plutonia Experiment, Final Doom: Evilution, Heretic, Hexen и некоторых других, для хранения игровых ресурсов (текстур, музыки, звуков и других). Формат ресурсов, помещаемых в такой файл, может подразумевать сжатие. Сам формат не предоставляет возможности сжатия, хотя по своей структуре допускает возможность создания нескольких ссылок в заголовке на один фактический ресурс, что позволяет избежать дублирования ресурса, целиком сводящегося к полному или частичному повторению другого ресурса. В силу экзотичности такой ситуации случаи практического использования этой возможности неизвестны.

Описание формата

Ресурсы хранятся в именованных блоках (Шаблон:Lang-en), имена, размеры и местоположение в файле которых хранится в каталоге — таблице размещения ресурсов, располагающемся, как правило, в конце файла, хотя каталог может располагаться где угодно.

Каталог состоит из 16-байтовых записей, либо описывающих блоки данных, либо являющихся маркерами. Каждая запись состоит из трёх полей: 4-байтовое смещение начала блока относительно начала файла, 4-байтовая длина блока (для маркера поле равно нулю) и восьмисимвольное имя (см. Стандарт 8.3) блока, дополняемое нулями до 8 байт.

.WAD-файл имеет 12-байтовый заголовок, состоящий из трёх 4-байтовых частей: сигнатура, число записей каталога и смещение начала каталога относительно начала файла.

Сигнатура обычно бывает двух типов (для игр, использующих движок Doom и производные):

  • IWAD — основной файл игровых ресурсов (Шаблон:Lang-en — «внутренний WAD»).
  • PWAD — подключаемый файл (Шаблон:Lang-en — «заплаточный WAD»).

Существуют также другие сигнатуры, в частности WAD2, используемый в игре Quake. Такие файлы, как правило, имеют другой (расширенный) формат каталога.

Маркеры используются для отметки группы блоков, которые игровой движок считает идущими в строго определённой последовательности. К примеру, данные уровня начинаются маркером ExMy для DOOM и Heretic, x — номер эпизода, y — номер уровня, либо MAPxx для DOOM 2 и Hexen, xx — номер уровня. Теоретически, имя блока может быть любым, допустимым в имени файла файловой системы FAT. Затем идут блоки данных уровня в строго определённой последовательности: THINGS, LINEDEFS, SIDEDEFS, VERTEXES, SEGS, SSECTORS, NODES, SECTORS, REJECT, BLOCKMAP. В Hexen также присутствует блок BEHAVIOR, содержащий скрипты.

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

Ограничения оригинального движка

В оригинальном движке существует проблема, связанная с использованием маркеров: все спрайты и текстуры полов и потолков должны располагаться между специальными маркерами: S_START и S_END для спрайтов и F_START и F_END для текстур полов и потолков, и-за чего требуется помещение всех блоков вместе с маркерами из IWAD-файла в PWAD-файл, что сказывается не только на удобстве использования, но и на проблемах при распространении (оригинальная игровая графика, как правило, защищена авторскими правами). Для устранения этой проблемы существуют специальные программы, создающие нужные PWAD-файлы уже у конечного пользователя, обладающего необходимым IWAD-файлом. В современных портах эти ограничения устранены.

Дальнейшее развитие

В более поздних играх от id Software, начиная с Quake, была разработана другая технология хранения игровых ресурсов, основанная на совместном использовании файловой системы операционной системы и полноценных архивных файлов, содержащих срез файловой системы. При поиске ресурса файл сначала ищется в файловой системе в определённых каталогах; если он не находится, то начинается просмотр списка архивов. Таким образом, модификация игрового ресурса становится максимально простой: нужно просто положить нужный файл в нужное место на диске. А архивы позволяют не засорять папки файловой системы множеством мелких файлов. Quake также использует и .WAD-файлы: текстуры хранятся в файле gfx.wad, который, в свою очередь, упакован в архив pak0.pak.

Данная технология используется и поныне во многих современных играх, не только от id Software.

Литература

Примечания

Шаблон:Примечания

Ссылки

Шаблон:Серия Doom

Шаблон:Rq

  1. слово wad также имеет самостоятельное значение — «ком», «комок», «пачка», напр. специальная пуля для спортивной стрельбы, аккуратно высекающая из мишени круглый бумажный комочек, называется Шаблон:Iw