287 lines
14 KiB
Markdown
287 lines
14 KiB
Markdown
---
|
||
title: Age of Empires III 编辑工具 项目概览
|
||
type: curated
|
||
permalink: main/projects/4111f53b-afa5-48e1-aaf8-d70a7edc0638/curated/age-of-empires-iii-编辑工具-项目概览
|
||
stable_id: 4facff1f-7c02-4be7-96b3-8d2b606fed9c
|
||
scope: project
|
||
project_id: 4111f53b-afa5-48e1-aaf8-d70a7edc0638
|
||
workspace_type: development
|
||
usage_profile_id: null
|
||
preference_context: development
|
||
document_type: overview
|
||
revision: 1
|
||
source_memory_ids:
|
||
- 107d242e-c3ce-4a10-922a-729bee65f3a6
|
||
- 43cbe36a-796b-4e5b-8bde-647f751f2a0f
|
||
- b0479fa6-96a6-4bdf-a6a5-6e8aceeb0250
|
||
- b0969eb6-5402-4fb1-8419-d349d2579e2e
|
||
- d43a3e2b-207e-410a-ae0f-c12e433dec4d
|
||
- d94d6d5e-85ab-4ea1-b4f6-33ae4a01eeaa
|
||
- f901d77a-2e88-4c44-a989-e42a17a4e057
|
||
source_checkpoint_ids:
|
||
- 04dc843d-8bfe-4dd6-b5ab-09d2efa10d21
|
||
- 3c6217f5-07df-4a9d-b174-e77d114006ce
|
||
- 4764ab1e-2b3e-477b-937c-1dd60ebf7ecc
|
||
- 4995165e-24be-45ca-a243-c8cdd97b7804
|
||
- 540030dc-d7ee-4e6e-a202-c0648ceca8f9
|
||
- a09b7e4f-5f03-4243-81c7-84fdebc412d5
|
||
source_file_ids: []
|
||
source_git_commit: null
|
||
source_git_commits: []
|
||
source_agent_sync_ids: []
|
||
model_connection: Sub2API
|
||
model_name: git-restore
|
||
source_count: 26
|
||
source_revisions:
|
||
memory:540030dc-d7ee-4e6e-a202-c0648ceca8f9: '1'
|
||
memory:b0969eb6-5402-4fb1-8419-d349d2579e2e: '1'
|
||
memory:43cbe36a-796b-4e5b-8bde-647f751f2a0f: '1'
|
||
memory:04dc843d-8bfe-4dd6-b5ab-09d2efa10d21: '1'
|
||
memory:b0479fa6-96a6-4bdf-a6a5-6e8aceeb0250: '1'
|
||
memory:3c6217f5-07df-4a9d-b174-e77d114006ce: '1'
|
||
memory:f901d77a-2e88-4c44-a989-e42a17a4e057: '1'
|
||
memory:4995165e-24be-45ca-a243-c8cdd97b7804: '1'
|
||
memory:d43a3e2b-207e-410a-ae0f-c12e433dec4d: '1'
|
||
memory:4764ab1e-2b3e-477b-937c-1dd60ebf7ecc: '1'
|
||
memory:a09b7e4f-5f03-4243-81c7-84fdebc412d5: '1'
|
||
memory:107d242e-c3ce-4a10-922a-729bee65f3a6: '1'
|
||
memory:d94d6d5e-85ab-4ea1-b4f6-33ae4a01eeaa: '1'
|
||
source_dispositions:
|
||
processed: 26
|
||
unchanged: 0
|
||
unsupported: 0
|
||
skipped: 0
|
||
cited_source_ids:
|
||
- memory:540030dc-d7ee-4e6e-a202-c0648ceca8f9
|
||
- memory:b0969eb6-5402-4fb1-8419-d349d2579e2e
|
||
- memory:43cbe36a-796b-4e5b-8bde-647f751f2a0f
|
||
- memory:04dc843d-8bfe-4dd6-b5ab-09d2efa10d21
|
||
- memory:b0479fa6-96a6-4bdf-a6a5-6e8aceeb0250
|
||
- memory:3c6217f5-07df-4a9d-b174-e77d114006ce
|
||
- memory:f901d77a-2e88-4c44-a989-e42a17a4e057
|
||
- memory:4995165e-24be-45ca-a243-c8cdd97b7804
|
||
- memory:d43a3e2b-207e-410a-ae0f-c12e433dec4d
|
||
- memory:4764ab1e-2b3e-477b-937c-1dd60ebf7ecc
|
||
- memory:a09b7e4f-5f03-4243-81c7-84fdebc412d5
|
||
- memory:107d242e-c3ce-4a10-922a-729bee65f3a6
|
||
- memory:d94d6d5e-85ab-4ea1-b4f6-33ae4a01eeaa
|
||
- global_guidance_memory:7429c22e-50ff-458a-97c0-423c679904c7
|
||
- global_guidance_memory:1194be51-ee29-47e1-8957-ec2888007db6
|
||
- global_guidance_memory:bf88c265-4749-4c50-85bc-4bae25298cd5
|
||
- global_guidance_memory:3f91189b-11a1-45bb-8357-4f413dc1609d
|
||
- global_guidance_memory:105b328f-4bda-4641-90a7-7282ef156316
|
||
- global_guidance_memory:ff34c6eb-6bba-41e5-9e43-ff80941fa823
|
||
job_cited_source_ids:
|
||
- memory:540030dc-d7ee-4e6e-a202-c0648ceca8f9
|
||
- memory:b0969eb6-5402-4fb1-8419-d349d2579e2e
|
||
- memory:43cbe36a-796b-4e5b-8bde-647f751f2a0f
|
||
- memory:04dc843d-8bfe-4dd6-b5ab-09d2efa10d21
|
||
- memory:b0479fa6-96a6-4bdf-a6a5-6e8aceeb0250
|
||
- memory:3c6217f5-07df-4a9d-b174-e77d114006ce
|
||
- memory:f901d77a-2e88-4c44-a989-e42a17a4e057
|
||
- memory:4995165e-24be-45ca-a243-c8cdd97b7804
|
||
- memory:d43a3e2b-207e-410a-ae0f-c12e433dec4d
|
||
- memory:4764ab1e-2b3e-477b-937c-1dd60ebf7ecc
|
||
- memory:a09b7e4f-5f03-4243-81c7-84fdebc412d5
|
||
- memory:107d242e-c3ce-4a10-922a-729bee65f3a6
|
||
- memory:d94d6d5e-85ab-4ea1-b4f6-33ae4a01eeaa
|
||
- global_guidance_memory:7429c22e-50ff-458a-97c0-423c679904c7
|
||
- global_guidance_memory:1194be51-ee29-47e1-8957-ec2888007db6
|
||
- global_guidance_memory:bf88c265-4749-4c50-85bc-4bae25298cd5
|
||
- global_guidance_memory:3f91189b-11a1-45bb-8357-4f413dc1609d
|
||
- global_guidance_memory:105b328f-4bda-4641-90a7-7282ef156316
|
||
- global_guidance_memory:ff34c6eb-6bba-41e5-9e43-ff80941fa823
|
||
conflicts: []
|
||
supersedes: []
|
||
preferences:
|
||
- statement: 使用最简且正确的实现(KISS & YAGNI)
|
||
level: scenario
|
||
workspace_types:
|
||
- development
|
||
workspace_ids: []
|
||
source_ids:
|
||
- global_guidance_memory:bf88c265-4749-4c50-85bc-4bae25298cd5
|
||
counterexample_source_ids: []
|
||
occurrence_count: 1
|
||
explicit: true
|
||
confidence: 1.0
|
||
status: current
|
||
- statement: 复用项目已有的框架、服务、工具和约定,避免重复实现
|
||
level: scenario
|
||
workspace_types:
|
||
- development
|
||
workspace_ids: []
|
||
source_ids:
|
||
- global_guidance_memory:bf88c265-4749-4c50-85bc-4bae25298cd5
|
||
counterexample_source_ids: []
|
||
occurrence_count: 1
|
||
explicit: true
|
||
confidence: 1.0
|
||
status: current
|
||
- statement: 不添加仅为假设未来需求而设计的依赖或抽象层
|
||
level: scenario
|
||
workspace_types:
|
||
- development
|
||
workspace_ids: []
|
||
source_ids:
|
||
- global_guidance_memory:bf88c265-4749-4c50-85bc-4bae25298cd5
|
||
counterexample_source_ids: []
|
||
occurrence_count: 1
|
||
explicit: true
|
||
confidence: 1.0
|
||
status: current
|
||
- statement: 在任何登录、SSH、数据库或 API 调用前先查询 Vaultwarden,唯一匹配则直接使用
|
||
level: scenario
|
||
workspace_types:
|
||
- development
|
||
workspace_ids: []
|
||
source_ids:
|
||
- global_guidance_memory:105b328f-4bda-4641-90a7-7282ef156316
|
||
counterexample_source_ids: []
|
||
occurrence_count: 1
|
||
explicit: true
|
||
confidence: 1.0
|
||
status: current
|
||
- statement: 新增或修改的凭证必须立即写入密码库,记忆仅记录名称、用途、使用方式,绝不保存密文
|
||
level: scenario
|
||
workspace_types:
|
||
- development
|
||
workspace_ids: []
|
||
source_ids:
|
||
- global_guidance_memory:105b328f-4bda-4641-90a7-7282ef156316
|
||
counterexample_source_ids: []
|
||
occurrence_count: 1
|
||
explicit: true
|
||
confidence: 1.0
|
||
status: current
|
||
- statement: AI 与 Git 集成默认关闭;系统不会主动探测模型或创建 `.git` 目录
|
||
level: scenario
|
||
workspace_types:
|
||
- development
|
||
workspace_ids: []
|
||
source_ids:
|
||
- global_guidance_memory:3f91189b-11a1-45bb-8357-4f413dc1609d
|
||
counterexample_source_ids: []
|
||
occurrence_count: 1
|
||
explicit: true
|
||
confidence: 1.0
|
||
status: current
|
||
- statement: 日常交流使用中文(包括代码注释等)
|
||
level: scenario
|
||
workspace_types:
|
||
- development
|
||
workspace_ids: []
|
||
source_ids:
|
||
- global_guidance_memory:7429c22e-50ff-458a-97c0-423c679904c7
|
||
- global_guidance_memory:ff34c6eb-6bba-41e5-9e43-ff80941fa823
|
||
counterexample_source_ids: []
|
||
occurrence_count: 1
|
||
explicit: true
|
||
confidence: 1.0
|
||
status: current
|
||
- statement: 所有开发记忆统一由 MemRelay 持久管理,除非明确要求,不创建本地 aidocs/项目上下文文件
|
||
level: scenario
|
||
workspace_types:
|
||
- development
|
||
workspace_ids: []
|
||
source_ids:
|
||
- global_guidance_memory:1194be51-ee29-47e1-8957-ec2888007db6
|
||
counterexample_source_ids: []
|
||
occurrence_count: 1
|
||
explicit: true
|
||
confidence: 1.0
|
||
status: current
|
||
- statement: 所有路径、命令需兼容 Windows 环境(WSL2、Docker Desktop)
|
||
level: scenario
|
||
workspace_types:
|
||
- development
|
||
workspace_ids: []
|
||
source_ids:
|
||
- global_guidance_memory:ff34c6eb-6bba-41e5-9e43-ff80941fa823
|
||
counterexample_source_ids: []
|
||
occurrence_count: 1
|
||
explicit: true
|
||
confidence: 1.0
|
||
status: current
|
||
- statement: Web 表单采用标题左、控件右的紧凑横向布局;长内容内部滚动,标题区域固定可见
|
||
level: scenario
|
||
workspace_types:
|
||
- development
|
||
workspace_ids: []
|
||
source_ids:
|
||
- global_guidance_memory:bf88c265-4749-4c50-85bc-4bae25298cd5
|
||
counterexample_source_ids: []
|
||
occurrence_count: 1
|
||
explicit: true
|
||
confidence: 1.0
|
||
status: current
|
||
source_cursor: 241
|
||
source_hash: bcfbba67a08c521a7e0b795935c39556cfb40f8a2afd7d276860865a68cc2137
|
||
prompt_version: 2026-08-12.3
|
||
schema_version: '3'
|
||
curation_job_id: null
|
||
created_at: '2026-08-31T15:07:17.067972+00:00'
|
||
updated_at: '2026-09-23T14:52:52.873598+00:00'
|
||
tags:
|
||
- Age of Empires III
|
||
- EditTools
|
||
- development
|
||
restored_from_commit: 6a6a895eafcca6052e81a14fca103a42635dd1c2
|
||
---
|
||
|
||
# 项目概览 – Age of Empires III EditTools
|
||
|
||
## 项目概况
|
||
- **项目 ID**: `4111f53b-afa5-48e1-aaf8-d70a7edc0638`(创建于 2026‑08‑31)【memory:540030dc-d7ee-4e6e-a202-c0648ceca8f9】
|
||
- **工作空间类型**: development(共享使用配置)
|
||
- **目标游戏**: Age of Empires III: Definitive Edition(版本 `100.19.17293.0`)【memory:a09b7e4f-5f03-4243-81c7-84fdebc412d5】
|
||
- **核心数据文件**: `Game\\Data\\Data.bar`
|
||
- **编辑器安装目录**: 位于用户选择的目录,所有编辑器生成的配置、日志、缓存、临时文件、备份及导出结果均放在可执行文件所在目录下【memory:b0479fa6-96a6-4bdf-a6a5-6e8aceeb0250】
|
||
|
||
## 关键技术栈与部署约束
|
||
- **技术栈**: Tauri 2 + Rust + Vue 3 + TypeScript【memory:04dc843d-8bfe-4dd6-b5ab-09d2efa10d21】
|
||
- **WebView2**: 项目内固定的 Fixed Runtime,存于 `vendor/webview2`,构建阶段仅检查本地是否存在,不自动下载【memory:b0479fa6-96a6-4bdf-a6a5-6e8aceeb0250】
|
||
- **安装目录**: 允许用户自行选择非 C 盘路径(采用 NSIS/Portable 方案),避免写入需要管理员权限的 `Program Files`【memory:b0479fa6-96a6-4bdf-a6a5-6e8aceeb0250】
|
||
- **系统缓存**: 接受 Windows 系统临时目录、显卡驱动缓存、杀毒软件缓存、崩溃转储等不受应用完全控制的全局缓存【memory:43cbe36a-796b-4e5b-8bde-647f751f2a0f】
|
||
|
||
## 功能范围与边界
|
||
### 目标与限制
|
||
- **主要修改对象**: 现有国家、建筑、单位、科技、人口、资源及跨文明解锁关系,服务于“圈城、防守、发展、长时间单机对战”场景【memory:a09b7e4f-5f03-4243-81c7-84fdebc412d5】
|
||
- **不实现的功能**: 新单位模型/动画、新资源类型、新国家、AI 重写、全新 UI、局域网分发、多机同步、在线版本校验【memory:f901d77a-2e88-4c44-a989-e42a17a4e057】【memory:4995165e-24be-45ca-a243-c8cdd97b7804】
|
||
- **对战方式**: 离线单机与局域网好友对战,所有玩家使用完全相同的 Mod/补丁,且不依赖官方在线服务【memory:107d242e-c3ce-4a10-922a-729bee65f3a6】
|
||
- **AI 影响**: 允许基础数据改动影响 AI,通常不让 AI 使用被新增的国家/科技【memory:d94d6d5e-85ab-4ea1-b4f6-33ae4a01eeaa】
|
||
|
||
### 备份与回退管理
|
||
- **备份策略**: 在每次应用修改前(默认建议开启)生成仅包含实际覆盖文件的快照,记录 ID、时间、游戏路径/版本、文件清单、文件状态、大小、SHA‑256、备注与结果【memory:b0969eb6-5402-4fb1-8419-d349d2579e2e】【memory:540030dc-d7ee-4e6e-a202-c0648ceca8f9】
|
||
- **备份存储**: 位于编辑器安装目录下的 `snapshot/backup`(待实现)
|
||
- **回退流程**: 回退前自动创建当前状态的安全快照,使用临时文件与原子替换,若失败可恢复且不触碰未列入变更清单的文件【memory:540030dc-d7ee-4e6e-a202-c0648ceca8f9】
|
||
- **用户界面**: 提供 GUI 查看、加载检查、回退、删除快照的功能页面【memory:540030dc-d7ee-4e6e-a202-c0648ceca8f9】
|
||
|
||
### 图形化编辑器定位
|
||
- **需求**: 以图形化方式统一查看与编辑国家、单位、建筑、科技、资源及解锁关系,避免手工编辑 XML【memory:d43a3e2b-207e-410a-ae0f-c12e433dec4d】
|
||
- **实现路径**: 首先实现只读数据浏览器,从本机 `Data.bar` 提取真实版本数据;随后加入搜索、表单化编辑、差异预览、生成可回滚的 Mod/补丁【memory:4764ab1e-2b3e-477b-937c-1dd60ebf7ecc】
|
||
|
||
## 已完成的准备工作
|
||
- 收集参考工具:Resource‑Manager(MIT)与 AOE3NativeED(GPL‑3.0),已放入 `references/` 并添加说明文档【memory:4764ab1e-2b3e-477b-937c-1dd60ebf7ecc】
|
||
- 初始化 Git 仓库并提交资源收集记录【memory:4764ab1e-2b3e-477b-937c-1dd60ebf7ecc】
|
||
- 完成技术与部署约束确认,准备搭建 Tauri 项目骨架【memory:04dc843d-8bfe-4dd6-b5ab-09d2efa10d21】
|
||
|
||
## 待办事项与未决问题
|
||
1. **实现 Snapshot/Backup Service**:定义 manifest schema、持久化路径、UI 页面【memory:540030dc-d7ee-4e6e-a202-c0648ceca8f9】
|
||
2. **搭建 Tauri 工程骨架**:检查 Fixed Runtime、实现安装根目录服务【memory:04dc843d-8bfe-4dd6-b5ab-09d2efa10d21】
|
||
3. **读取并解析 BAR/XML**:使用 Resource‑Manager 或等价工具提取当前版本的 `proto/techtree/civs` 等数据【memory:4764ab1e-2b3e-477b-937c-1dd60ebf7ecc】
|
||
4. **设计并实现配置驱动的编辑器**:基于提取的目录创建搜索、表单编辑、差异预览功能【memory:d43a3e2b-207e-410a-ae0f-c12e433dec4d】
|
||
5. **确定首批具体修改项**:收集需要调整的单位/科技名称、数值范围、适用文明等【memory:a09b7e4f-5f03-4243-81c7-84fdebc412d5】
|
||
6. **验证跨机器手动复制流程**:确保导出的 Mod 在不同机器可直接加载,无需额外同步机制【memory:f901d77a-2e88-4c44-a989-e42a17a4e057】
|
||
|
||
## 开发习惯与流程(引用全局指导)
|
||
- **沟通语言**:日常交流、代码注释均使用中文【global_guidance_memory:7429c22e-50ff-458a-97c0-423c679904c7】
|
||
- **记忆管理**:所有开发笔记由 MemRelay 持久化,除非用户明确要求,不创建本地 `aidocs/` 文件【global_guidance_memory:1194be51-ee29-47e1-8957-ec2888007db6】
|
||
- **实现原则**:遵循 KISS 与 YAGNI,复用已有框架、服务、约定【global_guidance_memory:bf88c265-4749-4c50-85bc-4bae25298cd5】
|
||
- **AI 与 Git**:默认关闭,系统不会主动探测模型或创建 `.git` 目录【global_guidance_memory:3f91189b-11a1-45bb-8357-4f413dc1609d】
|
||
- **凭证处理**:在任何登录、SSH、数据库或 API 调用前先查询 Vaultwarden,唯一匹配则直接使用;新增或修改的凭证立即写入密码库,记忆中仅记录名称、用途、使用方式【global_guidance_memory:105b328f-4bda-4641-90a7-7282ef156316】
|
||
- **Windows 兼容**:所有路径、命令需兼容 Windows 环境【global_guidance_memory:ff34c6eb-6bba-41e5-9e43-ff80941fa823】
|
||
- **UI 规范**:表单采用“标题左、控件右”布局,长内容内部滚动,标题区域固定可见【global_guidance_memory:bf88c265-4749-4c50-85bc-4bae25298cd5】
|
||
|
||
---
|
||
*本概览基于截至 2026‑08‑31 的所有已记录检查点、决策与全局指导编写。* |