Обновлено:

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

Источники и метод исследования OpenCiv3

Дата обращения: 26.10.2026. Репозиторий C7-Game/OpenCiv3, ветка Development, коммит c1370e2f63a6042a3c4206f0043543d7da0d5cc5. Дата коммита: 25.10.2026, 19:52:21 UTC.

Охват и способ получения

Через подключённый GitHub получены метаданные репозитория, коммита, полное нетранкированное дерево из 642 записей, список публичных релизов, ответ releases/latest и две страницы открытых issues. API issues включает pull requests; в машинном срезе они отмечены отдельно.

Получены 302 текстовых файла основного репозитория: C7Engine, QueryCiv3, ConvertCiv3Media, EngineTests, doc, Lua и выбранные части UI/рендеринга/сборки. Для каждого файла рассчитаны Git blob SHA и SHA-256. Git blob SHA совпал с закреплённым деревом во всех 302 случаях. Это проверяет происхождение корпуса, но не истинность комментариев и не отсутствие ошибок в программе.

Файлы читались по задачам: небольшие документы целиком, крупные исходники — выборочными участками, именами методов, поиском вызовов и связанного кода. Часть полученного корпуса не использовалась в выводах. Получение файла, чтение дерева и просмотр сигнатур не объявляются полным прочтением исходника. Реестр source-files.json показывает, какие файлы непосредственно процитированы в статьях.

Временная копия исходников находится вне research, в /tmp/openciv3-research/source; исходные изображения, звуки и desktop-сборки не скачивались. В публикуемый раздел входят собственные конспекты и метаданные, а не копия исходного репозитория.

Основные проверки по исходникам

НаправлениеОпорные источникиЧто проверялось
Версии и стекC7.csproj, dev_environmentGodot SDK, target framework, рекомендации сборки
АрхитектураEngineStorage, MessageToEngineОчереди, состояние, уведомления, ожидание анимаций
ХодTurnHandlingРеальная последовательность вызовов
КартаGameMap, MapGeneratorИндексы, чётность, соседи, стадии генерации
Состав правилruleset.json, standaloneМашинный подсчёт таблиц и фильтра юнитов
Города и доходыCity, Tile_YieldРост, производство, коммерция, настроение, культура
Наука и бюджетPlayer, GameDataПрогнозы, стоимость, содержание и дефицит
БойMapUnit_Actions, MapUnit_BombardРаунды, HP, отступление, цели обстрела
МаршрутыAlgorithmChooser, TilePathНулевые рёбра, стоимость, проверка входа
ТорговляTradeOffer, TradeNetworkСостав обмена и связность дорог
AIPlayerAI, ChooseProducibleПорядок решений, эвристики, ограничения ролей
LuaGameMode, BehaviorEngineСлои дополнений и вызов правил
ИмпортImportCiv3, SavСлои разбора и преобразования, пропуски
СохраненияSaveManager, SaveGameJSON/ZIP, ссылки, seed, восстановление модели
ПобедыScoreVictory и подключение в SaveGameРеальные обработчики, ограничения
ГрафикаMapView, TextureLoader, ReadPcxСлои, кэш, форматы, палитра
UI и справкаCityScreen, CivilopediaButton, CodexНаличие логики экрана, отключённая кнопка, парсер
ПроверкиSaveTest, Civ3TestData, workflowАтрибуты, пропуски, зависимости от ресурсов
ЛицензииLICENSE, NOTICE, gitmodulesРазделение кода, зависимостей и медиа

Ссылки на остальные использованные файлы расположены непосредственно в тематических статьях. Корпус EngineTests анализировался статически; число 186 — счётчик атрибутов, без заявления об их прохождении.

Wiki и публичные страницы

СтраницаХарактер чтенияРоль
Репозиторий и READMEКарточка проекта и описаниеЦели, pre-alpha, структура
Wiki HomeВведение и навигацияВыбор страниц
ContributingВведение, репозитории, scopingПриоритет паритета с Civ3
Developer GuideРазделы среды и сборкиСверка с csproj и doc
Game AssetsStandard/standalone и субмодульНазначение заменяющей графики
Notes on AIОбзор и стратегические приоритетыИстория замысла; отмечена давность текста
Notes on game featuresСписок feature inspirationИдеи, не готовые функции
Technical notesSave File StructureИсторические проблемы сериализации
Releases APIМетаданные и описания релизовДаты, latest, границы старой версии
Официальный сайтНе получен: веб-инструмент вернул ошибку доступаНе используется как подтверждение

Wiki прочитана через веб-инструмент и не закреплена отдельной ревизией. Дата страницы не означает актуальности каждого абзаца. Основные технические утверждения привязаны к закреплённым исходникам.

Issues, PR и связанные репозитории

Тела выбранных задач использованы для уточнения ограничений: #1055, #864, #934, #927, #1011, #655, #943. Для #1066 и #1040 проверено наличие открытых PR и их названия; их патчи не объявляются изученными или слитыми. В случае #927 реализация обстрела отдельно найдена в коде: открытая задача не трактуется как отсутствие механики.

В Assets получено только дерево ревизии 9af005c42bd3c0c60e0e10e1a7446015ade81056. Оно содержит 633 записи и отдельные авторские README. Содержимое медиа и полный набор лицензий Assets не анализировались. Pedia упомянута в документации команды, но отдельно не исследовалась. Ссылки из источников не считаются автоматически посещёнными.

Воспроизводимость и пределы

Скрипт scripts/analyze-openciv3.py в корне проекта принимает уже полученный срез и не обращается к сети. Для повторения нужно получить перечисленные в source-files исходники по закреплённым URL и метаданные GitHub, затем выполнить:

python3 scripts/analyze-openciv3.py --snapshot /tmp/openciv3-research
python3 scripts/build-research.py

Скрипт проверяет хеши и формирует собственные JSON-сводки. Временная копия может исчезнуть при очистке /tmp; долговременные URL, SHA и параметры находятся в research.

Наш dist/app.js и существующие исследования оригинальной поставки прочитаны как контекст для плана адаптации. Рекомендации отделены от фактов о внешнем проекте. Исследование не включает запуск OpenCiv3, реальные тесты его совместимости, перенос его кода или оценку производительности.