Генератор мира, родная сетка и оригинальные растры
Работа по пункту 4.6 плана. Текущая модель генерации — atlants-native-world-v2, геометрия — civ3-staggered-v1, собственные сохранения — схема 20. Генератор воспроизводим внутри нашего движка; совпадение алгоритма и карты по зерну с Windows Civilization III не установлено.
Создание партии
На основном экране «Новая партия» позволяет выбрать создание мира или прежнюю небольшую фиксированную карту. В генераторе доступны архипелаг, материки, Пангея и случайный вариант; вода 60/70/80%; климат, температура и возраст 3/4/5 млрд лет; зерно, замыкание по горизонтали и вертикали, 2–31 цивилизация. Россия остаётся стороной человека. Рекомендуемое число цивилизаций берётся из WSIZ при смене размера.
| Размер из Atlants WSIZ | Координаты | Реальные клетки | Цивилизации по умолчанию |
|---|---|---|---|
| 0 | 60 × 60 | 1 800 | 4 |
| 1 | 80 × 80 | 3 200 | 6 |
| 2 | 100 × 100 | 5 000 | 8 |
| 3 | 130 × 130 | 8 450 | 12 |
| 4 | 160 × 160 | 12 800 | 16 |
В оригинальной смещённой сетке существуют только координаты с чётной суммой 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 сценариев · Браузерная проверка генератора
Начало новой партии · Местность и национальные цвета. Второе изображение — подготовленный проверочный случай: карта раскрыта, иностранные юниты перемещены рядом для проверки палитр; это не снимок обычной разведки.
Источники и происхождение данных · Ход разработки · Управление юнитами