Что применить из OpenCiv3 в нашей браузерной игре
Исходная точка
По локальным README.md и dist/app.js наша игра уже имеет изометрическую карту, редактор местности и типов юнитов, движение, бой, захват городов, производство, простой AI, localStorage и JSON-экспорт. Карта хранится полным прямоугольным массивом; интерфейс и правила находятся в одном JS-модуле. Полноценная экономика Civ3 пока из этого не следует.
Вывод исследования: OpenCiv3 полезнее всего как источник архитектурных решений и проверочных примеров. Переход на Godot и подмена нашего баланса чужим ruleset не требуются для использования этих идей.
Последовательность внедрения
| Приоритет | Конкретный результат | Зависимости | Критерий готовности |
|---|---|---|---|
| 1 | Выделенные модель и команды | Текущее состояние и редакторы | Человек и AI вызывают одну проверку движения, боя и производства |
| 2 | Версии схемы и профиля, PRNG | Явная модель | После сохранения и загрузки партия продолжается без повторного хода и иной последовательности бросков |
| 3 | Структурированный профиль правил | Наши таблицы | Все ID и ссылки проверены; неподдерживаемые флаги перечислены |
| 4 | Еда, население, рост и один заказ города | Профиль и цикл хода | Прогноз совпадает с фактом, население не становится нулевым |
| 5 | Слои клеток и рабочие | Доходы, задания юнитов | Дорога совместима с ресурсом и местностью, прогресс работ переживает загрузку |
| 6 | Наука, казна, содержание | Производство и доходы | Суммы и округления объяснимы, дефицит предсказуем |
| 7 | Ресурсы и торговая сеть | Дороги, технологии, владение | Разрыв сети сразу меняет доступность производства |
| 8 | Роли AI и многотуровые цели | Общий API команд | AI заканчивает ход и выбирает достижимые цели |
| 9 | Культура, настроение, дипломатия | Экономика и владельцы | Последствия видно до подтверждения команды, договоры сохраняются |
| 10 | Расширение до полного профиля Atlants | Проверенный ограниченный цикл | По каждому сценарию опубликована матрица совместимости |
Это наш план внедрения, не roadmap OpenCiv3 и не уже выполненная переработка игры.
Что взять как образец
- Отделение прототипа от экземпляра: модель данных.
- Явный порядок межходовых расчётов: цикл хода.
- Отдельные определения улучшений и работ: рабочие и доходность.
- Независимые DTO сохранений и восстановление ссылок: сохранения.
- Графика по логическим ключам, lazy loading и кэш: отрисовка.
- Небольшие сценарии для сложных границ: проверка.
Что нужно изменить при адаптации
Наши координаты не совпадают со смещённой сеткой Civ3. Импорт должен преобразовывать соседство и размеры отдельно от экранной проекции.
Наше поведение захвата городов следует сохранить или заменить явным правилом: изученный путь OpenCiv3 уничтожает город. Привязки AI к именам юнитов нужно заменить способностями. Точность A* при нулевой цене, состояние RNG, спорные формулы обстрела и возраст культуры требуют собственного решения.
Состав standalone нельзя использовать как полный игровой профиль: он обусловлен наличием графики. Для Atlants нужны все фактические таблицы и отчёт о неподдерживаемых возможностях.
Минимальный завершённый срез
Практический следующий этап: одна небольшая карта, поселенец, рабочий, три боевых типа, два ресурса, несколько технологий, рост города, один заказ производства, содержание и победа по завоеванию. Это предлагаемое ограничение объёма, а не установленный пользователем окончательный состав.
Результат можно считать готовым, когда полный путь от основания города до победы проходит вручную и после промежуточной загрузки, а редакторы не нарушают целостность данных. Далее расширять содержимое по существующему плану переноса.