TOS 开发周记 06:看见同一张地图上的其他玩家

本文根据 2025-11-10 至 2025-11-16 的 Git 提交整理,是一篇待审核的历史开发周记。

多人同步的第一轮闭环

这一周只有六个提交,主题却很集中:把房间连接真正落实到玩家位置同步。

后端先调整 MapRoom、MatchMakerRoom 和认证流程,开始同步玩家坐标;客户端随即根据房间状态创建并更新其他玩家。到这里,上一周搭好的登录、房间和角色场景第一次在同一条流程中相遇:本地玩家发送位置,房间维护状态,其他客户端再把这个状态还原成地图上的角色。

新加入的人也要看到旧玩家

实时同步不只处理“之后发生的移动”。当一名玩家晚些进入房间时,还需要得到已经在线玩家的位置。后端在周末增加向新连接推送现有用户位置的处理,客户端则修复重复创建其他玩家的问题。

这两个提交放在一起看很有代表性:补齐初始状态后,客户端如果没有区分“已有对象”和“新对象”,同一名玩家就可能被生成两次。历史里没有运行指标或完整测试结论,因此这里只能确认协议与对象管理都针对这一场景做了修改。

把 Player 逻辑从主场景拿出来

随着本地玩家和远端玩家共享越来越多行为,角色逻辑被正式移到 player.gd。后续整理又把一部分处理从 main.gd 转移过去。主场景负责组织世界和玩家集合,Player 脚本负责单个角色,这个边界比把移动、同步和显示全部堆在主脚本里更清楚。

本周没有扩展地图内容,也没有新增大块界面;六个提交都服务于同一个目标:让不同连接中的玩家可以在同一张地图上彼此出现。

提交记录

日期 仓库 提交 原始说明
2025-11-11 后端 9a0766a feat: sync playes location
2025-11-11 客户端 9a52972 feat: multi player
2025-11-16 后端 a151364 feat: push existing user location
2025-11-16 客户端 2af329d feat: split off player.gd from main.gd
2025-11-16 客户端 a203ab8 tidy
2025-11-16 客户端 af2ebd2 fix: dup other players

TOS 开发周记 06:看见同一张地图上的其他玩家

https://blog.util.online/2025/11/16/tos-weekly-history/2025-11-10-tos-weekly-06/

作者

amano

发布于

2025-11-16

更新于

2026-08-04

许可协议

评论