暮色太阳花の宝藏之地
首页项目归档照片墙灵境关于
封面

2V2「对抗期」跑通了——开源复刻《卫戍协议:盟约》的「合作与竞争」进度记录

写作时间:2026-10-16 10:09:42
# 卫戍协议
# 明日方舟
# 游戏开发
# 开源
# 二次开发

2V2「对抗期」跑通了——开源复刻《卫戍协议:盟约》的「合作与竞争」进度记录

本作已更名为「卫戍协议:狩猎模拟」:对抗期 → 悬赏期,玩法改为「给对面派猎物、击杀得赏金」,猎物漏过不再扣血。详见最新一篇。

这是这个 2V2 衍生版的第二篇记录。上一篇聊的是「打算做成什么样」,这一篇聊「做出来没有」——结论:核心玩法已经能完整玩一局了。

快速回顾

《卫戍协议:盟约》是《明日方舟》的限时玩法,自走棋 + 塔防:休整期招募干员、摆阵、配装,作战期自动战斗,漏过去的敌人扣目标生命值。社区有一个非常棒的开源复刻 sganggs/Stronghold-Protocol——本地部署后浏览器直接可玩,支持 1–4 人联机合作,GPL-3.0-or-later、非商业。

我在它基础上做了一个 2V2 衍生版:把「大家一起合作」拆成两支双人小队,一边各自发育,一边互相下绊子。

这次真正落地的三件事

① 对抗期:不只存在于设计稿里了

从第 4 / 5 / 6 回合中用种子随机抽一个作为「竞争起点」。从那一回合起,每回合休整结束后,双方都会进入对抗期:

  • 把对手这一回合原本的怪,按比例替换成你指定的敌人类型和出怪门;
  • 比例从 10% 起步,每回合 +10%,上限 50%。

界面上是一个覆盖层:6 组候选怪(每组显示名称、价值区间、数量,并配怪物图标),选一组后进入放置面板——点怪加入、选「上路 / 中路 / 下路 / 空路」、上下调整出怪顺序、随时移除,最后提交。

一个我觉得挺关键的设计细节:分组不是按「怪的名字」随便切的。我给每个敌人算了一个「威胁值」(生命 + 攻击 + 防御 × 2 + 抗性 × 15 + 领袖加成 + 阻挡数 × 60),把整个阵营的敌人按威胁值切成 6 个等量分组。这样无论你抽到哪一组,强度都大致相当,不会出现「抽到一组全是精英」的运气碾压。

② 房间有了「红蓝两队」

以前进房间是一排四个座位,光看界面你分不清谁和谁一队。现在直接分成两个色块:队伍 1(蓝框)在左,队伍 2(红框)在右。

更实用的是:房主可以直接拖动头像换队——把 P1 的头像拖到 P3 上,两个人的位置(以及所属队伍)就交换了,开赛前随时能调整。

③ 一个反直觉的 bug:限制生效了,但玩家「看不见」

这条挺有意思,值得单独说一下。

2V2 里每队只有 3 个可用核心盟约(8 个核心 − 5 个禁用),而且每队各有一份独立的禁用名单。

结果测试的时候发现:游戏里的「本局禁用盟约」列表是空的,一眼看过去像是「什么限制都没生效」。

排查之后发现——服务端的卡池限制一直是对的,问题出在下发给客户端的视图上:2V2 把顶层的那几个字段置空了,而客户端只认顶层字段。

原因其实也很合理:合作模式里「全队一份禁用名单」,一个字段就够了;改成「两队各一份」之后,同一个响应要发给两队、内容还必须不一样(对手的名单在揭露前要遮住)。修法是在按队拆分视图时,用「观看者的队伍」重新填充这几个字段——而这个「按队改写视图」的机制,本来就是为了信息隔离才必须存在的。

技术上最重的部分

真正的工作量不在界面,而在把对局引擎从「一支队伍」改成「按队隔离」:

  • 座位 → 队伍映射(0,1 队 1 / 2,3 队 2),并允许开赛前交换;
  • 队友类效果、联防帮手、Boss 配对,全部限定在本队内,绝不跨队帮忙;
  • 最终攻势的 Boss 血池、合并生命值、结束判定,每队各一份,结束条件改成「两队都结束才结算」;
  • 胜负先比对 Boss 的伤害占比,再比「剩余时间 + 剩余目标生命 × 2 秒」;如果一方在最终攻势前就把另一方「送走」,则双方都判负(双败)。

而原版的单人 / 合作玩法必须逐位不变——靠上游自带的近 800 项对局测试 + 黄金结果(golden)当回归护栏,改动全程零回归。

当前状态

  • ✅ 服务端玩法闭环:房间 → 队伍 → 按队联防 → 队内 Boss 配对 → 独立血池 → 按队结束 → 胜负判定 + 双败
  • ✅ 对抗期完整界面:选怪 / 放置 / 选门 / 排序
  • ✅ 房间红蓝队框 + 拖拽换队
  • ⏳ 还在做:结算界面的「按队」展示、双 Boss 血条的界面呈现

代码在项目仓库,本地部署可自行取用(GPL-3.0-or-later,仓库内不含任何游戏素材):

  • 衍生版仓库:https://github.com/T1113047/Stronghold-Protocol-Cooperation-and-Competition

再次致谢

🙏 感谢原作者 @sganggs 和上游所有贡献者。这个 2V2 只是站在巨人肩膀上的一个小实验——想玩原版请直接使用原仓库:

⭐ https://github.com/sganggs/Stronghold-Protocol

声明:本作是非官方、非商业的同人作品,与上海鹰角网络、Yostar 及其关联方没有任何关系,仅供学习交流。

avatar

涂涂小弟

暮色太阳花的开发日志与日常分享 —— 涂涂小弟(t_yh) 的个人站,记录代码、生活与那些发光的小事。

RECOMMENDED

从播放器到音频终端:音乐页这一轮返工记录

2026-10-27 02:55:00

《卫戍协议:狩猎模拟》V0.0.4 发布——事件期加了一格 boss,狩猎轮改成 7 类抽 4 类

2026-10-21 23:54:54

《卫戍协议:狩猎模拟》V0.0.3 发布——2V2 机变改成「双方 4 选 2」,还有一批手机端体验修复

2026-10-18 19:00:00

Table of Contents

© 2026 暮色太阳花的开发日志与日常分享 · 涂涂小弟

蜀ICP备2026066824号

联系·版权与免责·隐私政策