Обновлено:

На этой странице

Генератор мира, родная сетка и оригинальные растры

Работа по пункту 4.6 плана. Текущая модель генерации — atlants-native-world-v2, геометрия — civ3-staggered-v1, собственные сохранения — схема 20. Генератор воспроизводим внутри нашего движка; совпадение алгоритма и карты по зерну с Windows Civilization III не установлено.

Создание партии

На основном экране «Новая партия» позволяет выбрать создание мира или прежнюю небольшую фиксированную карту. В генераторе доступны архипелаг, материки, Пангея и случайный вариант; вода 60/70/80%; климат, температура и возраст 3/4/5 млрд лет; зерно, замыкание по горизонтали и вертикали, 2–31 цивилизация. Россия остаётся стороной человека. Рекомендуемое число цивилизаций берётся из WSIZ при смене размера.

Размер из Atlants WSIZКоординатыРеальные клеткиЦивилизации по умолчанию
060 × 601 8004
180 × 803 2006
2100 × 1005 0008
3130 × 1308 45012
4160 × 16012 80016

В оригинальной смещённой сетке существуют только координаты с чётной суммой x+y, поэтому число клеток вдвое меньше произведения размеров. Движение по восьми направлениям, расстояния, видимость, культура, городские радиусы, рабочие задания, дороги и ИИ используют общие преобразования. Старые сохранения сохраняют прежнюю геометрию без перестановки клеток.

Суша вырастает из отдельных центров; Пангея связна, материки и архипелаг разделены водой. Вода классифицируется как побережье, море и океан. Климат, температура и возраст меняют базовую местность и наложения леса, джунглей, болот, холмов, гор и вулканов. Реки проходят по общим сторонам клеток с согласованными встречными флагами; пойма появляется у пустынной реки. Бонусный луг даёт дополнительный щит, когда не закрыт растительностью.

Ресурсы размещаются только на разрешённой эффективной местности из TERR/GOOD. Начальная технология ограничивает их видимость обычными правилами. Плотность стратегических и роскошных ресурсов учитывает appearance_ratio и число цивилизаций; бонусные ресурсы используют отдельную плотность. Это собственная интерпретация размещения, а не восстановленная формула Firaxis.

Старты выбираются на пригодной ровной местности достаточно большого участка суши, с доступной едой. Проверяется минимальное расстояние из WSIZ. Если на данной карте оно не достигается, алгоритм постепенно уменьшает расстояние, сохраняет фактическое значение и предупреждение START_SPACING_REDUCED. Это не обещание равной силы всех стартов.

Воспроизводимость и сохранения

Отдельные потоки xorshift обслуживают сушу, биомы, реки, ресурсы и старты. Выбор случайных параметров также сохраняется. Генерация не расходует поток боя. Сохранение содержит исходные и разрешённые параметры, зерно, состояния потоков, модель, начальные счётчики и координаты стартов. Загрузка восстанавливает текущий мир, а не генерирует его заново; повреждённые метаданные отвергаются.

Поддержана миграция настоящих опубликованных сохранений схемы 19, включая очередь Wait и начатую дорогу. Предыдущие схемы продолжают проходить свои миграции. Предел входного файла поднят до 128 МиБ для больших разведанных миров. Квота localStorage браузера остаётся отдельным ограничением: при её исчерпании нужно экспортировать партию в файл; полноценное хранилище крупных партий ещё предстоит расширить.

Создание мира выполняется в Worker. Отмена завершает Worker и оставляет текущую партию без изменений. После окончания хода последовательно действуют все живые соперники через обычные команды ядра.

Графика

Оригинальные PCX преобразованы в PNG без перерисовки: базовые переходы TGC/PGC/DGC/DPC/DGP, побережье/море/океан, холмы, горы, вулканы, болота, реки/дельты и бонусный луг. Порядок квадратов и маски рек проверяются по закреплённому исходному коду OpenCiv3. Базовый переход рисуется вокруг северной вершины клетки, речной квадрат — вокруг восточной; это устраняет разрывы, возникавшие при привязке обоих к центру.

Добавлены исходные американские и азиатские города к европейским, средиземноморским и ближневосточным. Названия берутся из 1 032 строк исходной таблицы RACE; первые столицы — Москва, Рим, Фивы, Афины. Цвета миникарты и подписей соответствуют выбранной цивилизации.

Все 32 NTP-палитры извлечены из оригинала. Для палитр помимо двух подготовленных вариантов цветовой индекс восстанавливается по паре RGB из NTP01 и NTP09: все 64 национальных индекса имеют уникальную пару. Затем подставляется исходный цвет целевой NTP. Одинаковые пиксели тела, дыма, тени и прозрачности сохраняются. Восьминаправленные кадры в двух дополнительных палитрах сравнены с независимым декодированием FLC. Реконструкция текстур проверена также в настоящем Chromium.

Для больших миров размер canvas ограничен видимой областью, а положение указателя учитывает прокрутку и масштаб. Прежнее управление — короткий выбор, G, намеренное перетаскивание, удержание, цифровой блок, камера и миникарта — сохраняется. В проверке карты 160 × 160 холст занимает 1 365 × 843 пикселя при указанном размере окна, а не весь мир.

Версия v2 добавляет оценку роста под начальным правительством и нормализацию пищевых бонусов. Старые карты v1 загружаются без регенерации и изменения местности.

Проверки и открытые работы

Автоматически проверяются все пять размеров, повторяемость, независимость потока боя, связность суши, побережья, климат/возраст, допустимость ресурсов, пригодность и расстояния стартов, встречные речные стороны, атласные индексы, секретность представления игрока, загрузка и общий ход четырёх сторон. Браузерный сценарий проверяет интерфейс генератора, клавиатуру/мышь, фактический ход ИИ, экспорт/перезагрузку, новые палитры, огромный мир, отмену и возврат к сохранениям старой геометрии.

Морские юниты и перевозки ещё не подключены: на разделённых водой картах текущая наземная партия может не завершиться завоеванием. Для наземной партии выбирайте Пангею; небольшая фиксированная карта остаётся доступна. Не реализованы все цивилизационные особенности, полноценное заселение ИИ, все возможные столкновения национальных цветов, редактор карты и все природные события. Точное распределение Firaxis, оформление всех переходов, тайминг и поведение исполняемого Windows-оригинала остаются отдельными задачами совместимости.

Текущая проверка генератора v2 и заселения: 460 автоматических проверок, DOM и 19 публичных сценариев Chromium · Первая итерация v1: 445 проверок и 18 сценариев · Браузерная проверка генератора

Начало новой партии · Местность и национальные цвета. Второе изображение — подготовленный проверочный случай: карта раскрыта, иностранные юниты перемещены рядом для проверки палитр; это не снимок обычной разведки.

Источники и происхождение данных · Ход разработки · Управление юнитами