OpenFrontIO 开源许可全解:从 MIT 到 AGPL v3 的授权演进与代码/资源双重许可体系
OpenFrontIO 开源许可全解:从 MIT 到 AGPL v3 的授权演进与代码/资源双重许可体系
本文以仓库根目录 LICENSING.md 为主线,系统梳理 OpenFrontIO(一款浏览器端在线 RTS 游戏)自 2024 年至今的许可证演进时间线、当前生效的 AGPL v3 + CC BY-SA 4.0 双轨许可结构、新增的 AGPL 第 7 条附加条款,以及 /proprietary 专有资源目录的边界与合规要求。读者读完后将能准确判断:仓库内哪些代码可以自由使用、哪些资源可以复用、哪些内容严格保留版权,以及自己在 fork、修改、部署网络服务与贡献代码时的具体法律义务。
一、核心结论一览:当前生效的许可结构
OpenFrontIO 当前(自 2025 年 9 月起)采用代码与资源分离的双轨许可:
| 对象 | 许可证 | 适用范围 |
|---|---|---|
| 全部代码 | AGPL v3.0(GNU Affero General Public License v3.0) | 整个代码库(src/、scripts/、map-generator/ 等所有源码) |
| 开放资源 | CC BY-SA 4.0(知识共享 署名-相同方式共享 4.0) | 仓库 resources/ 目录下的全部非代码资产 |
| 专有资源 | All Rights Reserved(保留所有权利) | 仓库 proprietary/ 目录,以及仓库之外 CDN/数据库/API 提供的所有资产 |
三个许可证分别落在仓库根目录的三个文件中:LICENSE(AGPL v3 全文及附加条款)、LICENSE-ASSETS(资源双轨许可说明)、proprietary/LICENSE(专有资源许可)。本文档 LICENSING.md 则是总纲,记录了历史沿革与整体边界。
二、授权演进时间线:五个阶段完整回顾
LICENSING.md 记录该项目经历了五阶段许可调整,从宽松的 MIT 一路收紧为强网络 copyleft 的 AGPL v3,并对资源单独建立开放/专有双轨:
Phase 1:纯 MIT(2024 – 2025-03-25)
- 时间范围:初始提交至提交
25d5cc370207fd39e0c3bcaa69873b8fc6c60e68之前(2024 年至 2025 年 3 月 25 日) - 许可证:整个项目仅使用 MIT
- 版权方:WarFront.io Team、OpenFront Inc.(及贡献者)
- 背景:OpenFrontIO 是 WarFront.io 的 fork/重写(见 README.md 第 11 行),此阶段对几乎全部原始代码做了大规模修改或替换
Phase 2:混合 MIT/GPL(2025-03-25 起)
- 起始提交:
25d5cc370207fd39e0c3bcaa69873b8fc6c60e68 - 分目录双许可:
src/client目录采用 GPL v3.0,其余目录保持 MIT - 动机:对客户端代码启用 copyleft,形成目录级拆分许可结构
Phase 3:AGPL + Creative Commons(2025-09-04 起)
- 起始提交:
9d5c108b83937a30ab42de6b1dca5a64e577aaac之后 - 代码:整个代码库统一改为 AGPL v3.0
- 资源:所有非代码资产采用 CC BY-SA 4.0
- 关键变化:
- 取消目录级拆分,统一授权方式
- 从 GPL v3 升级为 AGPL v3,强化网络 copyleft——即使以 SaaS 方式部署修改版,也必须向用户开放对应源码
- 此后所有新代码贡献一律以 AGPL v3 授权
Phase 4:混合资源许可(2025-09-28 起)
- 起始提交:
c2cf2ce65f74ac91859f68a84aec89aeda5722ee之后 - 代码:AGPL v3.0 不变
- 开放资源(
/resources):CC BY-SA 4.0 不变 - 专有资源(
/proprietary):All Rights Reserved - 关键变化:
- 新增
proprietary/目录存放受版权保护的资产 - 建立开放/专有双轨资产结构;构建流程中专有资源可覆盖开放资源
- 贡献者保留自身版权,同时授予 OpenFront Inc. 使用权利
- 新增
Phase 5:AGPL 附加署名条款(2025-12-16 起)
- 起始提交:
9edf0349cb54db84d81f229091870242fabadce3之后 - 在 AGPL v3.0 中通过**第 7 条(Additional Terms)**追加两项强制义务(详见第四节)。
三、代码许可细则:AGPL v3 与历史授权边界
3.1 当前状态
- 2025-09-04 之前的所有代码,仍可按历史提交中各自适用的原始许可(MIT 或 GPL)使用
- 2025-09-04 起的新代码贡献一律为 AGPL v3 only
- fork 与衍生作品必须遵守 AGPL v3 全部条款
3.2 为什么选择 AGPL 而非 GPL:网络 copyleft
LICENSING.md 明确指出:AGPL 的网络 copyleft 条款比 GPL v3 更强。GPL v3 允许修改版以 SaaS 形式运行而无需公开源码;AGPL v3 则通过其**第 13 条(Remote Network Interaction)**堵住这一缺口——LICENSE 第 540-559 行规定:
如果你修改了本程序,且修改版支持通过网络远程交互,则必须通过标准方式、在免费网络服务器上向所有远程交互用户提供修改版的 Corresponding Source。
这意味着即使你不分发代码、只把 OpenFrontIO 的修改版部署为在线游戏服务,只要用户能通过网络玩到,你就必须公开运行中的修改版源码。对一个浏览器端 RTS 在线游戏(客户端逻辑本身就是下发的 JS/TS,服务端另有独立实现)而言,这一条款确保社区始终能拿到服务端改动。
3.3 混合代码时的许可适用规则
文档给出的合规指引:组合代码时,最严格的兼容许可适用于组合后的整体作品。因此,将 AGPL 代码与 MIT/GPL 代码混用时,应评估各自许可的兼容性并遵守其中最严格的义务;具体问题建议咨询法律顾问。
3.4 历史 MIT 许可全文
LICENSING.md 保留了早期 MIT 许可原文,供历史版本合规参考:
Portions Copyright (c) 2024 WarFront.io Team Portions Copyright (c) 2024-2025 OpenFront Inc. (and contributors)
允许任何人免费获得本软件及相关文档文件("软件")的副本,不受限制地处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利……上述版权声明和本许可声明应包含在本软件的所有副本或实质性部分中。
本软件按"现状"提供,不附带任何明示或默示的担保……
需要注意的是:MIT 许可只适用于从历史提交中取得的代码副本,不代表当前仓库整体仍为 MIT——当前代码以 AGPL v3 为准。
四、AGPL v3 第 7 条附加条款:署名保留与禁止误导
2025-12-16 起,项目在 LICENSE 末尾(第 663-678 行)追加了 AGPL v3 Section 7 附加条款,共两条强制义务:
1. 版权声明保留义务(Section 7(b))
- OpenFront 在页脚和加载画面展示版权声明
- 修改版必须在合理可见位置保留
© OpenFront and Contributors版权声明,例如页脚、加载画面、启动画面或主菜单
2. 禁止歪曲来源(Section 7(c))
- 修改版不得歪曲自身与 OpenFront 项目的来源关系
- 修改版不得以 "OpenFront" 作为主标题,未经许可不得暗示官方背书
这与 README.md 第 23-28 行的说明一致(当前版权声明出现在页脚与加载画面,修改版必须保留)。任何 fork 或自部署项目都应在可见 UI 中保留上述署名,且避免直接沿用原品牌名作为主标题。
五、资源许可:开放资源、专有资源与外部资产的三级边界
5.1 开放资源(resources/):CC BY-SA 4.0
LICENSE-ASSETS 规定:/resources 目录下所有资产以 Creative Commons Attribution-ShareAlike 4.0 授权,包括但不限于:
- 图形、精灵与图片(
*.png、*.jpg、*.svg等) - 3D 模型与纹理(
*.obj、*.fbx、*.blend等) - 音频文件(
*.mp3、*.ogg、*.wav等) - 动画文件
- 字体文件
- 关卡/地图数据文件
该目录在仓库中实际存在并包含 2100+ 文件,覆盖 resources/images、resources/maps、resources/sounds、resources/fonts、resources/sprites、resources/atlases、resources/icons、resources/flags、resources/lang 等子目录;resources/LICENSE 即为该目录的 CC BY-SA 4.0 声明文件。
CC BY-SA 4.0 的核心义务是署名(Attribution)与相同方式共享(ShareAlike):复用这些资产须署名 "OpenFront" 或 "OpenFront Inc.";若基于它们创作衍生资产,衍生作品须以相同许可发布。
5.2 专有资源(proprietary/):All Rights Reserved
/proprietary 目录中的资产不在任何开源许可覆盖范围内,属于:
- Copyright © 2024-2026 OpenFront Inc. and Contributors
- All Rights Reserved
- 未经授权不得使用、修改或再分发
- 只能在官方 OpenFront.io 服务之外不得提取、复制或使用
仓库中该目录实际包含字体、图片与音频:proprietary/fonts/OpenFront.ttf、proprietary/images/ 下的品牌图(OpenFront.png、OF.png、OF.webp、Favicon.svg 及 Logo 矢量/位图)、proprietary/sounds/ 下的 game-start-alert.mp3、gameplay.mp3、menu-theme.mp3。proprietary/LICENSE 进一步细化:
允许的使用场景:
- 为 OpenFront 进行开发、测试与贡献
- 作为完整 OpenFront 软件包的一部分使用
- 个人学习用途的查看与研究
- 运行、编译和测试包含这些资产的软件
明确禁止的行为:
- 提取、复制或在其他项目/作品中使用
- 修改、创作衍生作品并再分发
- 脱离 OpenFront 单独再分发、再许可、出售或转让
- 在运行 OpenFront 之外的任何商业用途
- 移除或篡改版权声明与本许可
贡献条款:向此目录贡献资产时,贡献者保留原创作品的版权,同时授予 OpenFront Inc. 永久的、全球范围的、非独占的、免版税的许可,以将贡献作为 OpenFront 的一部分使用、修改和分发;贡献者需保证有权授予这些权限。署名方面,各资产版权归各自创作者所有,详见 CONTRIBUTORS.md。
5.3 外部/专有资产(不在仓库内):完全保留版权
以下资产不在仓库中、不被任何开源许可覆盖:
- CDN/服务器上托管的资产
- 数据库中存储的资产
- 通过 API 访问的高级皮肤、模型与纹理
- 通过 API 访问的音效与音乐
- 任何未明确包含在仓库中的资产
未经 OpenFront Inc. 明确书面许可,访问、下载、提取或使用服务器/数据库中的专有资产是被禁止的,可能违反版权法。
5.4 三级边界的实践判断
| 资产来源 | 许可 | 能否自由复用 |
|---|---|---|
| 代码(整个仓库源码) | AGPL v3.0 | 可,但须遵守 AGPL(含网络 copyleft 与附加条款) |
resources/ 内资产 |
CC BY-SA 4.0 | 可,但须署名且衍生作品相同方式共享 |
proprietary/ 内资产 |
All Rights Reserved | 不可(仅限 OpenFront 开发/完整包使用) |
| 仓库外 CDN/数据库/API 资产 | All Rights Reserved | 不可(需书面许可) |
LICENSE-ASSETS 强调:AGPL 仅覆盖代码,CC BY-SA 仅覆盖仓库内资源,其余资产一律专有。
六、与构建流程的关联:专有资源覆盖机制与资产哈希
LICENSING.md 提到"proprietary assets override open assets during build process"(构建过程中专有资源覆盖开放资源)。从仓库配置可以印证这一双轨设计:
- vite.config.ts 属于搜索命中 AGPL/资源关键词的构建配置文件,仓库通过构建配置将
resources/(开放)与proprietary/(专有)两条资产路径纳入产物 - scripts/buildAssetHashes.ts 展示了资产在产物侧的管理方式:它为
static/下所有可服务资产(assets/与_assets/两个 allowlist 根目录)计算 SHA-256 哈希并写入asset-hashes.json(第 53-67 行),同时对src/core源码树做长度前缀编码后整体哈希写入core-version.txt(第 72-88 行)
从源码结构可以推断:构建时优先采用 proprietary/ 版本的同名资源,使线上运营使用专有品牌资产,而社区 fork 只获得 resources/ 下的开放版本——这正是"专有覆盖开放"在产物层面的体现。
七、贡献者的许可义务:AGPL + CC BY-SA 双承诺
CONTRIBUTING.md 第 178 行明确规定:
通过贡献,你同意你的贡献将依据 GNU Affero General Public License v3.0 (AGPL v3.0) 授权。
结合 LICENSING.md 的"Contributing"一节(所有代码贡献以 AGPL v3 授权、资产以 CC BY-SA 4.0 授权),贡献者实际上做出双承诺:
- 代码贡献 → AGPL v3.0(含 Section 7 附加条款)
- 资源贡献到
resources/→ CC BY-SA 4.0 - 资源贡献到
proprietary/→ 按 proprietary/LICENSE 的专有条款(保留版权 + 授予 OpenFront Inc. 永久使用许可)
贡献前应确认自己有权授予这些权利,避免引入无法兼容 AGPL 的第三方代码。
八、合规速查清单与实践建议
基于 LICENSING.md、LICENSE、LICENSE-ASSETS 与 proprietary/LICENSE,以下是面向使用者与贡献者的合规清单:
使用代码(fork / 自部署):
- 确认从 2025-09-04 之后的提交取得的代码遵循 AGPL v3(网络部署时须提供对应源码)
- 若引用 2025-09-04 之前的代码,确认其原始许可(MIT 或 GPL)并遵循之
- 在修改版的可见位置保留
© OpenFront and Contributors版权声明(页脚、加载画面、启动画面或主菜单) - 修改版不得以 "OpenFront" 为主标题,不得暗示官方背书
- 混合多种许可代码时,按最严格兼容许可处理组合作品
使用资源:
resources/内资产按 CC BY-SA 4.0 使用,署名 "OpenFront" 或 "OpenFront Inc."proprietary/内资产仅限 OpenFront 开发、测试、贡献与完整包内使用,禁止提取/再分发/商用- 仓库外 CDN、数据库、API 提供的资产一律专有,未经书面许可不得访问与提取
参与贡献:
- 代码贡献默认以 AGPL v3.0 授权(并遵守 Section 7 附加条款)
- 向
resources/贡献资产默认以 CC BY-SA 4.0 授权 - 向
proprietary/贡献资产须同意专有许可条款,并确保拥有相应权利
法律边界提醒:本文档不构成法律意见。AGPL 与 CC 许可存在版本细节差异(如 CC BY-SA 4.0 的 ShareAlike 兼容性、AGPL 第 7 条附加条款的效力),涉及商业使用或复杂组合场景时,LICENSING.md 与 proprietary/LICENSE(联系邮箱 legal@openfront.io)均建议咨询法律顾问。
九、参考文件索引
- LICENSING.md —— 本文档主体,许可历史与总纲
- LICENSE —— AGPL v3.0 全文 + Section 7 附加条款
- LICENSE-ASSETS —— 开放/专有资源双轨许可
- proprietary/LICENSE —— 专有资源许可与贡献条款
- resources/LICENSE ——
resources/目录 CC BY-SA 4.0 声明 - README.md —— 项目概述与许可速览(第 19-33 行)
- CONTRIBUTING.md —— 贡献流程与许可承诺(第 176-178 行)
- scripts/buildAssetHashes.ts —— 构建产物资产哈希与核心版本指纹