为什么做#
我和朋友玩 Minecraft 基岩版已经好几年了,最近把之前的存档迁移到了自己的服务器上,同时给它建了这个档案站。因为一直以来都有同一个问题:世界一直在变,但没有什么东西在记录它。今天盖的房子半年后可能已经拆了重建,上周探索的新区域下周就被新建筑覆盖。截图散落在各个设备里,哪天建了什么、谁参与了,全靠记忆。
这个站就是给这个世界建一份活档案。不是一个静态展示页,而是一个能跟着世界一起生长的系统。
服务器状态#
首页实时显示服务器是否在线、当前版本和在线人数。数据来自后端每 15 秒一次的 RakNet 探测,页面轮询拿最新结果。服务器关了就是关了,不猜、不缓存上一次的状态。
编年史#
编年史是这个世界的时间轴。每一条记录一件事:一栋建筑落成、一片新区域被探索、一次冒险、一个值得留下的瞬间。条目沿纵轴排列,配照片和文字,照片支持九宫格布局和灯箱浏览。
每条记录还带着它发生的坐标。这些坐标不只是元数据,它们会变成地图上的标记,点击可以跳转到对应位置。
世界地图#
/map 是一张可缩放、可拖动的交互地图,体验和地图软件一样。最细到每格一个像素,能看清单独一栋建筑的轮廓。主世界和下界各一张,维度之间可以切换。
地图不是一张大图,而是一套 256×256 的瓦片金字塔,由 uNmINeD 从世界存档渲染而来。没探索过的区域是透明的,不会请求不存在的瓦片。
地图底部有一条时间轴。每天自动备份世界之后,渲染器会产出一份新的瓦片快照。瓦片按内容哈希寻址存入对象库,内容相同的瓦片只存一份,拖动滑块在不同日期之间切换时,浏览器从缓存里直接取不变的瓦片,所以切换是即时的。
玩家#
玩家名录列出这个世界的成员,头像、加入日期和个人标签。点进去能看到每个人的游戏风格和在这个世界里留下的痕迹。