<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>https://playzone.in.ua/wiki/mc//index.php?action=history&amp;feed=atom&amp;title=Alpha_%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82_%D0%BA%D0%B0%D1%80%D1%82</id>
		<title>Alpha формат карт - История изменений</title>
		<link rel="self" type="application/atom+xml" href="https://playzone.in.ua/wiki/mc//index.php?action=history&amp;feed=atom&amp;title=Alpha_%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82_%D0%BA%D0%B0%D1%80%D1%82"/>
		<link rel="alternate" type="text/html" href="https://playzone.in.ua/wiki/mc//index.php?title=Alpha_%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82_%D0%BA%D0%B0%D1%80%D1%82&amp;action=history"/>
		<updated>2026-05-17T21:30:23Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.28.3</generator>

	<entry>
		<id>https://playzone.in.ua/wiki/mc//index.php?title=Alpha_%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82_%D0%BA%D0%B0%D1%80%D1%82&amp;diff=2832&amp;oldid=prev</id>
		<title>Softer: 1 версия</title>
		<link rel="alternate" type="text/html" href="https://playzone.in.ua/wiki/mc//index.php?title=Alpha_%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82_%D0%BA%D0%B0%D1%80%D1%82&amp;diff=2832&amp;oldid=prev"/>
				<updated>2013-02-01T01:49:27Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style='vertical-align: top;' lang='ru'&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 01:49, 1 февраля 2013&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan='2' style='text-align: center;' lang='ru'&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Softer</name></author>	</entry>

	<entry>
		<id>https://playzone.in.ua/wiki/mc//index.php?title=Alpha_%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82_%D0%BA%D0%B0%D1%80%D1%82&amp;diff=2831&amp;oldid=prev</id>
		<title>Scarab: Робот: Автоматизированная замена текста  (-([Тт])ик +\1акт)</title>
		<link rel="alternate" type="text/html" href="https://playzone.in.ua/wiki/mc//index.php?title=Alpha_%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82_%D0%BA%D0%B0%D1%80%D1%82&amp;diff=2831&amp;oldid=prev"/>
				<updated>2012-12-06T19:14:49Z</updated>
		
		<summary type="html">&lt;p&gt;Робот: Автоматизированная замена текста  (-([Тт])ик +\1акт)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;'''Alpha формат карт''' — формат хранения файлов игрового мира, который развил и усовершенствовал новую технологию, введённую во время работы над версией [[Infdev]].&lt;br /&gt;
&lt;br /&gt;
Во время разработки Minecraft Infdev был введён новый метод хранения данных: максимальный объём данных [[игровой мир|игрового мира]] составлял почти 235 петабайт (или 240 640 терабайт), что в несколько раз больше площади поверхности Земли. Поэтому чтобы уменьшить объём данных игрового мира и выделение оперативной памяти, [[Нотч]] разделил весь мира на т. н. [[чанки]], размер которых составлял 16 x 128 x 16 блоков. Из них те, которые [[игрок]] не видит, хранятся на жестком диске, а не в оперативной памяти. В дополнение к этому, генерация игрового мира происходит только в определенном радиусе от игрока, что значительно уменьшает объём сохранений игры, поскольку игроки не могут быстро исследовать карту. Более поздние версии игры, такие как [[Alpha]], [[Beta]] и [[Релиз|Minecraft 1.0]], до сих пор используют методику разбиения игрового мира на части из-за её эффективности.&lt;br /&gt;
&lt;br /&gt;
== Структура папок игрового мира ==&lt;br /&gt;
Файлы игрового мира в версии Alpha хранятся в одной директории, которая содержит по крайней мере один файл под названием ''level.dat''. Там также хранится файл формата [[#формат session.lock|session.lock]], который контролирует, чтобы только одно приложение Minecraft использовало данный игровой мир.&lt;br /&gt;
&lt;br /&gt;
Директория игрового мира может вмещать до 64 поддиректорий, в каждой из которых может быть ещё 64 папки. Эти папки идентифицируются [[Координаты|координатами]] расположения (по осям X и Z) хранящегося в них чанка. Внутри папки хранится файл, определяющий структуру чанка и его наполнение [[Сущности|сущностями]]. Каждый файл чанка также идентифицируется его координатами. Различие частей имени файла чанка получается представлением координат X и Z чанка в системе [[wikipedia:Base_36|Base 36]]. Имена папок, в которых хранится файл чанка, создаются путём получения остатка от деления координат X и Z на 64 (или операцией побитового логического умножения с 63), а затем число переводится в base36. Отрицательные координаты должны быть инвертированы в положительные числа следующим путём: отрицательное число с помощью [[ruwiki:Дополнительный_код_(представление_числа)|дополнительного кода]] конвертируется в двоичное, а затем опять в десятичное. Например, -13 переходит в 243 (если его размер типа byte).&lt;br /&gt;
&lt;br /&gt;
К примеру, чтобы найти чанк с координатами (-13, 44):&lt;br /&gt;
* Название первой папки в base36(-13 % 64). Это base36(243 % 64 = 51) что представляется как &amp;quot;1f&amp;quot;.&lt;br /&gt;
* Название второй вложенной папки — base36(44 % 64). Это base36(44) что представляется как &amp;quot;18&amp;quot;.&lt;br /&gt;
* Название файла чанка &amp;quot;c.&amp;quot; + base36(-13) + &amp;quot;.&amp;quot; + base36(44) + &amp;quot;.dat&amp;quot;. Результат: &amp;quot;c.-d.18.dat&amp;quot;&lt;br /&gt;
* Таким образом, чанк (-13, 44) хранится в ''&amp;quot;1f/18/c.-d.18.dat&amp;quot;''&lt;br /&gt;
Каждый чанк хранит собственную позицию вне зависимости от названия папки или его файла.&lt;br /&gt;
&lt;br /&gt;
''Заметка:'' для упрощения можно использовать конвертер из base10 в base36: [http://www.unitconversion.org/numbers/base-10-to-base-36-conversion.html Base-10 to Base-36 Conversion Calculator]. Для конвертации десятичных чисел в дополнительные можно использовать [http://easycalculation.com/twos-complement.php 2's Complement of Binary Number Calculator]. Для конвертации двоичного числа в десятичное будет полезен [http://acc6.its.brooklyn.cuny.edu/~gurwitz/core5/nav2tool.html Decimal/Binary Conversion Tool].&lt;br /&gt;
&lt;br /&gt;
В версии [[Beta]] 1.3 введён формат [[MCRegion]], где чанки хранятся группами по 32x32 в region-файле.&lt;br /&gt;
&lt;br /&gt;
=== Измерения ===&lt;br /&gt;
Файлы измерений хранятся так же, как и [[обычный мир]], однако вместо их скопления внутри папки мира, они выносятся в дополнительную подпапку со своими собственными данными о чанках и регионах. Их название начинается &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;, а заканчивается идентификационным номером измерения.&lt;br /&gt;
&lt;br /&gt;
Такие идентификационные номера измерений использовались в Alpha:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! ID !! Папка !! Измерение&lt;br /&gt;
|-&lt;br /&gt;
| 0 || &amp;lt;code&amp;gt;saves/[Мир]/&amp;lt;/code&amp;gt; || [[Обычный мир]] всегда хранился в общей папке без приставки &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| -1 || &amp;lt;code&amp;gt;saves/[Мир]/DIM-1/&amp;lt;/code&amp;gt; || [[Нижний мир]], добавленный в [[Halloween Update]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Формат session.lock ===&lt;br /&gt;
Файл session.lock содержит метку последнего использования файлов игрового мира. Объём файла составляет 8 байтов и содержит одно 64-битное целое число со знаком (''signed integer'') в [[ruwiki:Порядок байтов|порядке байтов]] ''big-endian''. Значение этого числа — временная метка, которая являет собой количество миллисекунд, прошедших с 1 января 1970 года, 00:00:00 UTC.&lt;br /&gt;
&lt;br /&gt;
В отличие от стандартных lock-файлов, session.lock гарантирует то, что последняя программа, использовавшая игровой мир, есть та, которой он принадлежит. Весь процесс выглядит примерно так:&lt;br /&gt;
&lt;br /&gt;
# Программа обращается к session.lock&lt;br /&gt;
# Программа записывает временную метку в session.lock&lt;br /&gt;
# Программа отслеживает изменения session.lock&lt;br /&gt;
# Если содержание файла session.lock меняется, программа делает возврат к последней точке сохранения и блокирует файлы игрового мира.&lt;br /&gt;
&lt;br /&gt;
=== Формат level.dat ===&lt;br /&gt;
Файл '''level.dat''' представляет собой [[Формат файлов Minecraft (NBT)|NBT-структуру]], помещенную в архив GZip. В нём хранятся глобальные параметры игрового мира, например время суток, здоровье игрока, наполнение инвентаря, скорость и позиция и т.д. Важнее то, что в нём хранится случайное [[зерно]], которое используется генератором уровня при наполнения мира блоками.&lt;br /&gt;
&lt;br /&gt;
Этот файл имеет следующую древовидную структуру:&lt;br /&gt;
* TAG_Compound('''&amp;quot;&amp;quot;'''): корневой тег.&lt;br /&gt;
** TAG_Compound('''&amp;quot;Data&amp;quot;'''): глобальные данные уровня.&lt;br /&gt;
*** TAG_Long('''&amp;quot;LastPlayed&amp;quot;'''): хранит дату и время последнего сохранения мира в формате [[ruwiki:UNIX-время|времени UNIX]].&lt;br /&gt;
*** TAG_Long('''&amp;quot;SizeOnDisk&amp;quot;'''): расчетный объем всего игрового мира в байтах.&lt;br /&gt;
*** TAG_Long('''&amp;quot;RandomSeed&amp;quot;'''): случайное число, выступающее в качестве зерна для механизма генерации мира.&lt;br /&gt;
*** TAG_Int('''&amp;quot;SpawnX&amp;quot;'''): координата точки [[спаун]]а по оси X.&lt;br /&gt;
*** TAG_Int('''&amp;quot;SpawnY&amp;quot;'''): координата точки спауна по оси Y.&lt;br /&gt;
*** TAG_Int('''&amp;quot;SpawnZ&amp;quot;'''): координата точки спауна по оси Z.&lt;br /&gt;
*** TAG_Long('''&amp;quot;Time&amp;quot;'''): хранит текущее [[Цикл день/ночь|время игровых суток]] в [[такт]]ах. В одной реальной секунде 20 тактов, и 240 00 тактов в одной игровых сутках, что делает её длиной 20 реальных минут. 0 — это начало цикла день/ночь, 12 000 — начало захода солнца, 138 00 — начало ночного времени, 22 200 — начало восхода солнца, 240 000 — начало дневного времени (конец цикла). Значение, которое хранится в level.dat, всегда только увеличивается и может быть большим чем 24 000, но &amp;quot;время суток&amp;quot; в поле &amp;quot;Time&amp;quot; всегда в пределе 24 000.&lt;br /&gt;
*** TAG_Compound('''&amp;quot;Player&amp;quot;'''): игрок в однопользовательской игре.&lt;br /&gt;
**** TAG_Int('''&amp;quot;Dimension&amp;quot;'''): измерение, в котором находится игрок. 0 — [[обычный мир]], а -1 соответствует [[Нижний мир|Нижнему миру]].&lt;br /&gt;
**** TAG_List('''&amp;quot;Pos&amp;quot;'''): список 3-х TAG_Doubles для осей X, Y, и Z для определения положения игрока в пространстве.&lt;br /&gt;
**** TAG_List('''&amp;quot;Rotation&amp;quot;'''): список 2-х TAG_Floats для осей наклона и рыскания — определение места, в которое смотрит игрок, то есть расположения головы.&lt;br /&gt;
**** TAG_List('''&amp;quot;Motion&amp;quot;'''): список 3-х TAG_Doubles для осей X, Y, и Z. Значения определяют скорость движения игрока по осям (блоков за такт).&lt;br /&gt;
**** TAG_Byte('''&amp;quot;OnGround&amp;quot;'''): 1 или 0 (true/false) - true если игрок на поверхности.&lt;br /&gt;
**** TAG_Float('''&amp;quot;FallDistance&amp;quot;'''): количество блоков, которые игрок пролетел.&lt;br /&gt;
**** TAG_Short('''&amp;quot;Health&amp;quot;'''): количество очков здоровья. 20 это 10 сердец.&lt;br /&gt;
**** TAG_Short('''&amp;quot;AttackTime&amp;quot;'''): количество тактов, когда игрок невосприимчив до повреждений.&lt;br /&gt;
**** TAG_Short('''&amp;quot;HurtTime&amp;quot;'''): количество тактов, когда игрок красный после получения урона.&lt;br /&gt;
**** TAG_Short('''&amp;quot;DeathTime&amp;quot;'''): количество тактов, которые игрок был мертв - используется для контроля анимации смерти.&lt;br /&gt;
**** TAG_Short('''&amp;quot;Air&amp;quot;'''): количество тактов до того, как игрок начал тонуть. Начинается с 300.&lt;br /&gt;
**** TAG_Short('''&amp;quot;Fire&amp;quot;'''): когда значение отрицательное, количество тактов с момента возгорания игрока. Если число положительное - количество тактов до тушения игрока.&lt;br /&gt;
**** TAG_Int('''&amp;quot;Score&amp;quot;'''): счет игрока. Счет так и не был реализован технически, ни в Alpha, ни в Beta, поэтому это значение нерелевантное.&lt;br /&gt;
**** TAG_List('''&amp;quot;Inventory&amp;quot;'''): список TAG_Compounds, которые определяют наполнения [[Инвентарь|инвентаря]] игрока.&lt;br /&gt;
***** TAG_Compound(): Объект в ячейке инвентаря.&lt;br /&gt;
****** TAG_Byte('''&amp;quot;Slot&amp;quot;'''): конкретный слот в инвентаре.&lt;br /&gt;
****** TAG_Short('''&amp;quot;id&amp;quot;'''): идентификационный [[Нумерация данных|номер]] объекта.&lt;br /&gt;
****** TAG_Short('''&amp;quot;Damage&amp;quot;'''): данные про объект или значение повреждения для [[Инструменты|инструментов]].&lt;br /&gt;
****** TAG_Short('''&amp;quot;Count&amp;quot;'''): количество этих объектов в одной ячейке (слоте), то есть размер стопки (стака). Значение в границах от -128 до 127. Значения, меньшие 2, не отображаются в игре.&lt;br /&gt;
&lt;br /&gt;
=== Формат чанков ===&lt;br /&gt;
Формат файла чанка имеет такую же структуру, как и level.dat (архивированные файлы NBT). Структура:&lt;br /&gt;
* TAG_Compound('''&amp;quot;&amp;quot;'''): корневой тег.&lt;br /&gt;
** TAG_Compound('''&amp;quot;Level&amp;quot;'''): глобальные данные для этого чанка.&lt;br /&gt;
*** TAG_Int('''&amp;quot;xPos&amp;quot;'''): координата чанка по оси X.&lt;br /&gt;
*** TAG_Int('''&amp;quot;zPos&amp;quot;'''): координата чанка по оси Z.&lt;br /&gt;
*** TAG_Byte('''&amp;quot;TerrainPopulated&amp;quot;'''): 1 или 0 (true/false) - true, если генератор Minecraft Alpha сгенерировал специальные натуральные структуры, такие как [[сокровищница]] или [[пещера]].&lt;br /&gt;
*** TAG_Long('''&amp;quot;LastUpdate&amp;quot;'''): количество тактов с последнего обновления этого чанка.&lt;br /&gt;
*** TAG_Byte_Array('''&amp;quot;Blocks&amp;quot;'''): 32768 байты номеров блоков — 8 бит на один блок.&lt;br /&gt;
*** TAG_Byte_Array('''&amp;quot;Data&amp;quot;'''): 16384 байты данных про блоки — 4 бита на один блок.&lt;br /&gt;
*** TAG_Byte_Array('''&amp;quot;BlockLight&amp;quot;'''): 16384 байты на [[Свет|освещение]] блоков — 4 бита на блок.&lt;br /&gt;
*** TAG_Byte_Array('''&amp;quot;SkyLight&amp;quot;'''): 16384 байты на солнечный свет — 4 бита на блок.&lt;br /&gt;
*** TAG_Byte_Array('''&amp;quot;HeightMap&amp;quot;'''): 256 байты про карту высот, 8 битов на колону XZ. Используется для расчёта распространения дневного/ночного света.&lt;br /&gt;
*** TAG_List('''&amp;quot;Entities&amp;quot;'''): список TAG_Compounds для описания сущностей на чанке.&lt;br /&gt;
**** TAG_Compound(): Сущность.&lt;br /&gt;
*** TAG_List('''&amp;quot;TileEntities&amp;quot;'''): список TAG_Compounds для описания дополнительной информации про сущность (''tile entity'') в чанке.&lt;br /&gt;
**** TAG_Compound(): дополнительная информация о сущности.&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[Для разработчиков]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[Категория:Разработка]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория:Техническое]]&lt;/div&gt;</summary>
		<author><name>Scarab</name></author>	</entry>

	</feed>