TOS 开发周记 09:堡垒升级、地图分层与动态加载
本文根据 2025-12-01 至 2025-12-07 的 Git 提交整理,是一篇待审核的历史开发周记。
堡垒从地图标记变成可操作对象
后端本周先增加堡垒列表接口,客户端随后把堡垒显示到地图上。第二天,两端又分别修正升级接口并接入堡垒升级操作。客户端为此加入 Fortress Manager 和命名对话框,把查询、显示与操作从主场景中抽离出来。
这条链路比此前单纯显示城市更完整:服务端维护堡垒数据和等级变化,客户端负责列出、绘制并发起升级。提交只能证明相关接口与界面逻辑已经接通,不能据此推断数值平衡或实际游玩效果。
地块从单层走向多层
后端扩展 Tile 的 layer 结构,并继续整理基础环境和城市清理逻辑;客户端紧接着加入多层地块素材与绘制支持。花、森林、沙坑、荒漠树等元素由此可以与基础地形分层表达,而不是每个地块只能选择一张最终贴图。
客户端还增加 map loaded 事件。聊天和好友面板可以等地图准备完成后再处理自身状态,模块之间不必都直接盯住主场景的加载细节。这一周建立的 EventBus、Global State 和 autoload 目录,也是同一方向:把跨场景共享的事件、状态、API 与 Colyseus 连接集中管理。
动态地图与房间边界
后端尝试按 chunk 组织 MapRoom,并留下相应设计文档;随后删除旧的 MatchMakerRoom 与匹配路由。客户端则更新房间处理与动态加载,最终改为从服务端数据绘制地块,并移除原先的半径限制。
这里仍是明显的演进阶段:room by chunk 和 dynamic load 都以临时提交出现,不能写成已经稳定完成的架构。不过可以确认,地图加载和多人房间正在从“整张地图、单一房间”的早期实现,转向按空间范围组织的方案。
战斗仍在试验中
后端新增 BattleRoom,并两次调整怪物与战斗相关代码;客户端也更新了怪物 API。由于两笔后端提交都明确标记为 tmp,而本周没有足够证据证明完整战斗流程闭环,因此更准确的说法是:战斗房间与怪物接口进入了原型阶段。
这一周同时推进了堡垒、分层地块、全局状态和房间加载,最后又回到“由服务端地图数据驱动客户端绘制”这条主线上。早期世界原型正在逐步拆成可以独立演进的系统。
提交记录
| 日期 | 仓库 | 提交 | 原始说明 |
|---|---|---|---|
| 2025-12-01 | 后端 | 3d7d7e4 |
feat: add fotress list |
| 2025-12-01 | 客户端 | 753babf |
feat: show fortresses |
| 2025-12-02 | 后端 | 962adc5 |
fix: level up |
| 2025-12-02 | 客户端 | 0ec23e3 |
tidy: remove tile info in debug panel |
| 2025-12-02 | 客户端 | c0ff0e0 |
feat: update monster api |
| 2025-12-02 | 客户端 | cd231f4 |
tidy: clean code, move camera logic into each moda |
| 2025-12-02 | 客户端 | d3ae464 |
tidy: clean useless code |
| 2025-12-02 | 客户端 | dfbb6f3 |
feat: level up fortress |
| 2025-12-03 | 后端 | 0f6583e |
tmp: battle |
| 2025-12-03 | 后端 | 9024e79 |
tmp: battle 2 |
| 2025-12-03 | 客户端 | 2ee95e4 |
feat: auto load, singeton |
| 2025-12-03 | 客户端 | 3b6c2b1 |
feat: add global state |
| 2025-12-03 | 客户端 | c085d6f |
tidy |
| 2025-12-04 | 后端 | 110a240 |
tidy: clean code |
| 2025-12-04 | 后端 | 26353fb |
feat: add layers for Tile |
| 2025-12-04 | 后端 | ffa1b59 |
tmp: room by chunk |
| 2025-12-05 | 后端 | 89ee620 |
tidy: clean code |
| 2025-12-05 | 后端 | d36e8ea |
feat: update city cleanup |
| 2025-12-05 | 客户端 | 1225dad |
feat: add map loaded event |
| 2025-12-05 | 客户端 | 36c26ea |
feat: support multi layers |
| 2025-12-05 | 客户端 | b84afe2 |
autoload colyseus |
| 2025-12-05 | 客户端 | e1d9f30 |
feat: add autoload folder |
| 2025-12-05 | 客户端 | f47b8f2 |
tmp: dynamic load |
| 2025-12-05 | 客户端 | f7e25f2 |
feat: update room |
| 2025-12-07 | 客户端 | 068898d |
feat: drawing tiles from server, remove radius limit |
TOS 开发周记 09:堡垒升级、地图分层与动态加载
https://blog.util.online/2025/12/07/tos-weekly-history/2025-12-01-tos-weekly-09/