「在线联机原型全集」扩展篇之四:自定义房间与模组(Custom Rooms & Mods)

扩展篇之四:自定义房间与模组。设计了私房配置、房主权限、规则集热加载、Mod 沙箱与内容审核管线,帮助联机游戏把「默认玩法」扩展为「玩家自定义的玩法生态」,提升社交与长尾内容。

自定义房间把「开发者定的规则」变成「玩家自定的玩法」,是联机游戏社交化和长尾内容的核心开关。本 PRD 是《在线联机原型全集》的扩展篇之四,聚焦私房配置、房主权限、规则热加载与 Mod 沙箱。


1. 目标与验证点

编号验证能力说明
C1私房配置房主自定义模式/地图/参数,可加密
C2房主权限踢人、换图、调参数、解散房间
C3规则热加载规则集不重启即时生效
C4Mod 沙箱玩家脚本/资源安全加载,不危害服务器
C5审核管线Mod 发布前审核,违规可下架

一句话目标:把「房间」从固定模板变成「玩家可以捏的玩法容器」,同时守住安全与可控的底线。


2. 系统架构

flowchart TD
A["Custom Room Config"] -->|save| B["Room Registry"]
B --> C["Room Instance"]
C --> D["Rule Runtime"]
D -->|load| E["Mod Sandbox"]
E -->|validate| F["Mod Review Pipeline"]
C --> G["Player Clients"]
B -->|templates| H["Room Template Store"]

说明:

  • Room Registry:房间模板、自定义配置、口令的存储与检索
  • Rule Runtime:解释规则集(如血量倍率、资源刷新、胜负条件)
  • Mod Sandbox:独立进程/容器运行玩家脚本,资源受限
  • Review Pipeline:Mod 上传 → 静态检查 → 人工抽查 → 发布

3. 自定义房间配置

3.1 房间模板

配置维度例子默认/自定义
模式对战/合作/自由模板定
规则参数血量倍率、时间限制、胜负条件房主可改
地图官方图 / 玩家图房主可选
准入公开/好友/口令房主设定
能力开关是否允许技能、道具房主开关

3.2 配置结构

room:
  id: "room_abc"
  template: "arena_2v2"
  rules:
    hp_multiplier: 1.5
    time_limit_sec: 600
    win_condition: "most_kills"
  access:
    mode: "password"
    password_hash: "..."
  mods:
    - "mod_speed_boost"
    - "mod_hud_custom"

关键约束:自定义参数必须经过规则白名单校验,防注入、防数值越界(如负血量导致崩溃)。


4. 房主权限与生命周期

权限说明
改配置开局前可调,进行中锁定(或房主可改需全员确认)
踢人踢出对局成员,记录日志
换图/换模式开局前/间歇期切换
邀请生成邀请链接 / 二维码
解散结束房间并归档回放
房间生命周期:
创建(模板)→ 配置 → 组局 → 对局 → 结束/复用 → 归档
进行中配置变更 → 需全员投票或房主强制 + 日志

体验原则:房主是「组织者」不是「统治者」——关键变更最好带确认,避免房主滥用权限逼走玩家。


5. 规则热加载

5.1 热加载目标

无需重启房间实例:
- 新增/修改规则参数即时生效
- 规则错误自动回滚到上一版本
- 版本留痕,可审计

5.2 实现要点

规则集存 Redis/配置中心,房间进程监听变更事件
对局中规则变更:下一局生效(当前局不变,避免混乱)
规则版本号:房间加载时绑定 version,防新旧混用

反例教训:对局中途改规则会造成「同局不同规则」,严重损害公平性与可复盘性——规则变更必须切到「下一局生效」。


6. Mod 沙箱与安全

6.1 三层隔离

层机制防护
进程隔离独立进程/容器内存、崩溃隔离
资源限制CPU/Mem/时间配额防死循环、资源耗尽
API 白名单只暴露受限接口防越权访问

6.2 Mod 能力范围

✅ 允许:表现层(HUD、皮肤、UI)、简单规则调整(数值)
❌ 禁止:读其他玩家数据、发起网络请求、访问宿主 API
✅ 鼓励:纯客户端/纯表现 Mod 先跑通,再逐步开放服务端能力

6.3 审核管线

上传 → 静态扫描(危险 API、超限资源)→ 沙箱试运行 → 人工抽查 → 发布/拒绝
违规 Mod → 下架 + 移除已缓存内容 + 告警

安全底线:Mod 是「受控的扩展」,不是「开放的插件系统」。宁可初期限制严,不可泄露服务器能力。


7. 接口与数据模型

模块接口描述
RoomRegistryPOST /room/template创建房间模板
RoomRegistryPOST /room/{id}/config更新自定义配置
RuleRuntimePOST /rule/reload热加载规则集
ModPOST /mod/upload上传 Mod 进审核
ModGET /mod/{id}/state查询 Mod 发布状态
AdminDELETE /mod/{id}下架违规 Mod
表字段
room_templateid、mode、rules_default、maps、is_official
room_configroom_id、rules、access、mods、version
modid、author、category、status、sandbox_profile、version

8. 里程碑与验收

M1 私房配置(1 周)
  ✅ 模板 + 自定义参数 + 口令准入
M2 房主权限(1 周)
  ✅ 踢人/换图/改参/解散全流程 + 日志
M3 规则热加载(1 周)
  ✅ 下一局生效、错误回滚、版本留痕
M4 Mod 沙箱 + 审核(2 周)
  ✅ 表现层 Mod 可发布,恶意 Mod 被拦截

验收指标:配置校验拦截率 100%(无越界配置进入对局);热加载失败自动回滚 < 1s;Mod 沙箱崩溃不影响房间进程。


9. 相关原型衔接

扩展篇定位:自定义房间是「玩法的再生产」。它把对局的编排权交给玩家,配合观战回放让自定义玩法也能被传播——玩家生态由此生长。

延伸阅读

下一扩展篇:赛季与段位系统。自定义房间扩展「玩法」,赛季段位让「玩法有长期目标」。

继续阅读

探索更多技术文章

浏览归档,发现更多关于系统设计、工具链和工程实践的内容。

全部文章 返回首页

「products」更多文章

  1. 「在线联机原型全集」扩展篇之十二:赛季通行证与商业化(Battle Pass & Monetization)
  2. 「在线联机原型全集」扩展篇之十一:本地化与多语言(Localization & i18n)
  3. 「在线联机原型全集」扩展篇之十:经济风控与反作弊(Economy Risk & Anti-Fraud)