游戏卡顿白皮书 › 只有部分人遇到的问题
多开限制 Multi-client restriction policy
原因 ID pt-multiclient · 主责 研发团队·客户端开发 · 配合 研发团队·服务器开发
在含图示和实验的完整版中打开此卡片 →
安全模块或服务器策略限制一台电脑上开多个客户端时,第二个客户端会无法启动或连接,或者先开的那个掉线。有些游戏只禁用额外客户端的部分功能。
起因 安全模块检测到重复运行,或服务器限制同一设备的额外连接 → 结果 拒绝第二次启动或连接,或断开其中一个。少数情况下只屏蔽额外客户端的部分功能 → 画面表现 连不上,或其中一个掉线。只屏蔽功能的游戏中,只有一边看不到 NPC、商店
- 症状
- 连不上/无限加载, 隐身/幽灵实体, 掉线
- 因素
- 丢包
- 谁会遇到
- 双开时只有一个客户端
- 何时出现
- 刚登录/维护结束后
- 负责方
- 主责 研发团队·客户端开发 · 配合 研发团队·服务器开发
- 研发团队要做的事
- 客户端:要限制就给出明确的提示信息,为 QA 在安全模块中设置例外。服务器:同一设备连接限制也要为 QA 设置例外。
- 监控图上
- 仅部分偏高 · 按原因统计的连接拒绝、断开次数(重复登录)
- 查看位置
- 查看启动第二个客户端时弹出的消息,以及先开那个客户端的断开消息。确认服务器的连接拒绝、强制断开日志中是否有重复登录、同一设备之类的原因代码
- 确认依据
- 第二次启动或连接的那一刻弹出拒绝消息,或先开的一方以重复登录为由被断开;只开一个客户端就没有问题
- 排除依据
- 没有拒绝、断开原因,两边都连上了,却只有一边看不到 NPC,看“固定 UDP 端口冲突”“按 IP/设备区分会话的 bug”或加载、显示方面的原因
- 确认手段
- 需在玩家侧环境确认
出处
- CreateMutexW function (synchapi.h) Microsoft
命名互斥量已存在时返回 ERROR_ALREADY_EXISTS,可用于检测重复运行、限制只能运行一个实例
相关原因
同一层:只有部分人遇到的问题
其他层中同样导致“连不上/无限加载”的原因
查看含图示和实验的原卡片