- Authors

- Name
- Cassian Florin
- @ynyng90660098
一句话结论
判断陪伴类功能做不做,只问它会不会让人有一丝愧疚或欠债感,会就不做。连续打卡、喂养养成、解锁进度条和系统通知因此都砍了。朋友不在时也能留言,但没有未读数和角标。积累只记发生过的事,不写还差多少。两个人同时坐在电脑前的时间很少,不要求同时在线的玩法排在前面。
🐾 做一只不催你的桌面宠物
给 Mac 桌面宠物 Roam 定的一条规矩,和它砍掉、改掉、加上的东西
我本来打算给桌面宠物做一套解锁。宠物认识的朋友越多,能戴的配饰就越多,挺常见的设计,做起来也不难。
这只宠物叫 Roam,是我这阵子在做的 Mac 小软件。屏幕上是一只程序画出来的史莱姆,没用美术素材,平时在桌面上走来走去,困了就睡,能拖也能点。加了朋友以后,它可以跑到对方桌面上串个门,待一会儿再回来。

动图用 Roam 自己的渲染代码离屏画出来,动作按脚本排好,没有录屏。
解锁最后没做。9 月 8 号那天我给 Roam 定了一条规矩,拿它一量,解锁就过不去了。
宠物的状态反映环境和已经发生的事,不反映你做得好不好,也不要求你做任何事。
具体到某个功能,我只问一句,它会不会让人有一丝愧疚,或者觉得欠了它点什么。会就不做。
✂️ 拿规矩一量
解锁卡在这里。“认识了 4 个朋友”是一句记录,换成“再认识 1 个就能解锁配饰”,就成了任务,数字还是那个数字,后一句多出一个等人去填的空。积累我留下了,解锁、进度条和“还差几个”全拿掉。
同一天砍掉的还有几样。番茄钟和专注监督没怎么犹豫,桌面宠物开始管人,谁都烦。电子鸡式的喂养也不行,宠物饿了等你喂,方向就反了,成了它在向你讨东西。出差一周回来发现宠物快饿死了,那不叫陪伴。
连续打卡我想得最久。每天打开电脑,宠物记着你来了几天,这件事本身挺温和。断掉一天,屏幕上就会冒出一句“你已经 7 天没让宠物出去玩了”,开机时心里平白多了件没办的事。几样里我觉得它最阴,因为它长得最像陪伴。
🔁 通知和串门时长的返工
系统通知是后来返工删的。最早的权限里有一档叫 notify,允许弹系统通知,想解决的事很实际,我不在电脑前时朋友来过,我得知道。可通知就是在找你要注意力。这一档我整个删了,换成宠物下次见到你时身上带着那件事。你看见了就知道谁来过,没看见,角落里也没有小红点等你。
串门时长也改过一次。原先由来访的一方请求 30 秒,到点自动走。现在默认还是 30 秒,但主人可以在客人身上右键点“再待会儿”,一次加 30 秒,最多 5 分钟,也能点“请走”。时间一直在主人手里,防骚扰一点没松,可“客人能被留下”和“客人到点必须走”,用起来差得很远。
🌱 照着规矩加的东西
光砍不行,一只桌面宠物总得有点让人留着它的理由。9 月 8 号晚上,我照着同一条规矩又加了几样。
👆 被摸的回响
以前串门是单向的,我的宠物去你桌面上溜一圈,你只能看着。现在你点一下来做客的宠物,我这边也会看到它有反应。
这里我选了更绕的做法。你点下去,本地只给一个很轻的“碰到了”,真正的反应由我电脑上的引擎算出来,再随着姿态同步传回你的屏幕。本地直接演一遍更省事,画面也差不多,可那样你看到的反应是你自己电脑编的。
🌿 不在也能去
朋友不在电脑前,宠物照样可以过去一趟,留一件小东西,能带一句话。他回来以后,自己的宠物身上挂着这件东西,点一下,宠物告诉他谁来过。
这东西稍不留神就会做成收件箱,所以我给它加了几条限制。
每位朋友只留最近一条没看的,新的顶掉旧的。没有未读数和角标,也不弹提醒, 永远不看也不会怎样。
免打扰顺手跟着改了。以前对方开着免打扰,宠物会被直接挡回来。现在对方开着免打扰或者正在全屏,宠物就留下东西再走,不白跑。冷却时间没到,或者对方压根没给权限,就什么都不留。前者只是对方眼下不方便,后者是本来就不该去。
留言走的是 CloudKit,用的是联机信令那一套记录。我在正式签名下用 A、B 两个实例完整走过一遍。
A 留下一片 🌿
B 此时不在
B 收到
东西落到本地
B 重启
宠物身上还带着它
点一下宠物
它说出是谁来过
清掉
看过就没了,不留记录
🧮 只记发生过的事
这一块就是开头那套解锁拆剩下的部分。宠物记着自己出访、接待、被摸和摸别人各几次,这些数只动两处很轻的外观,走动频率略微变一点,被摸过就长出一根呆毛。“关于这只宠物”那一页只写发生过什么。
🌙 平时跟着电脑的状态走
夜里它睡得早,电量掉到 20% 以下动作会变慢,偶尔有一成概率出去溜一大圈。代码里描述环境的结构体叫 PetEnvironment,里面没有一项跟你的表现有关,专注时长、活跃度和使用统计都不收。哪天它开始看你干得怎么样,就又回到说教那头去了。
🎮 双人小游戏先放着
追逐、抛接、拔河我都想过。P2P 直连走 UDP,延迟够用,做起来也不难。
没做,是因为它要同时占用两个人的在线时间和注意力。桌面宠物大多是余光里瞥一眼的东西,很少有人会为它坐下来玩。我估计玩两次就腻,维护却一直得花。
熟人小圈子里,两个人同时坐在电脑前的时间,一天也就几十分钟。
凡是要求同时在线的玩法都顶在这个上限上,做得越重越亏。所以“不在也能去”排在所有同步玩法前面。
🧭 取舍速查
| 功能 | 结果 | 为什么 |
|---|---|---|
| 连续打卡 | 砍掉 | 断一天就成了一件欠着没办的事 |
| 喂养养成 | 砍掉 | 宠物反过来向你讨东西 |
| 番茄钟、专注监督 | 砍掉 | 开始管人就讨人嫌 |
| 解锁式积累 | 拆掉解锁,留下积累 | 记录可以留,任务不行 |
系统通知 notify | 删掉这一档 | 改成宠物见到你时带着那件事 |
| 串门时长 | 改由主人给 | 客人能被留下 |
| 免打扰 | 从挡回去改成留东西 | 忙只是眼下不方便 |
| 被摸的回响 | 加上 | 反应来自对方电脑上的引擎 |
| 不在也能去 | 加上 | 不要求两个人同时在线 |
| 双人小游戏 | 先不做 | 同时占两个人的在线时间和注意力 |
📦 想试试的话
Roam 0.1.0 已经发了,签过 Developer ID,也过了公证,下载 zip 解压后拖进“应用程序”就能开。源码在私有仓库,下载在 CassianFlorin/Roam-app。
联机得两边都装。在菜单栏的爪印图标里复制自己的配对串发给对方,对方点“添加好友”粘进去就行。现在已经能互相串门,你来我这儿的时候我也能去你那儿,两边屏幕上各有两只。一次只能去一家,接待倒是可以好几只。
分类知识地图
探索与本文相关的标签和文章。
分类知识地图
1 个大类 · 1 篇文章 · 5 个标签