这是我的 Steam + PS 游戏的时长墙:
从头说。
1
平时用 Steam 玩游戏的朋友应该都有一样的感受:买游戏如山倒,玩游戏如抽丝。
打折就上头,几十块上百块往购物车里加,想着总该有天会玩。真正能通关的,一只手...两只手吧,数得过来。更多游戏买回来就成了库存。有时候冲动下单会楞一下,原来这个我有了。
这也不是坏事儿。像喜欢书的朋友喜欢一个大书架一样,变成架子能欣赏,也挺好的。时常摩挲爱抚一下,也是乐趣。
我一直想找个 APP 来做这件事。
而市面上的游戏库 APP 都噪声太大,广告多、功能杂,装一堆社交、打卡、论坛功能。某个甚至不付费就不能添加收藏,你懂的。
今年开始试着用 Claude Code 和 Codex。随口说了需求,给我的第一个版本就有点远超预期。当场一下就想做出来。
当然,产品难度都在后面。所谓搭架子一天,抠细节一月。APP 又更了好几版,总算是能自己日常在用的样子。
我现在每天都摩挲一下的 APP,给他起名叫 Gamepix。
2
主要功能很朴素:把 Steam 或 PlayStation 的游戏库同步到本地,用一种尽可能好看的方式呈现出来。
收藏页是基础。同步完,所有游戏以网格或列表呈现,可以按标题、评分、游玩时长、成就完成度排序,也可以按标签筛选。
点进某款游戏的详情页,封面、Metacritic 评分、游玩时长、成就完成度、截图、标签、开发商、发行商、发售日期、推荐人数、支持语言、平台、最低配置、推荐配置,基础信息都有。听起来是常规的,做起来调起来费劲。详情页的信息层级前后重构过三四轮。施工的时候,每天都改几十遍。
做得比较用心的一个小彩蛋,是成就。我自己略有一些收集癖,最近刚把「宇宙机器人」(AstroBot)的奖杯拿全了,挺开心,就想着在自己的 APP 里也给自己奖励一下。
于是 1.1.1 版本做了这个:如果游戏的全部成就都解锁,详情页会出现一块铝合金质感的金属铭牌。手机倾斜时,铭牌上的光影会跟着陀螺仪动,还会撒出一阵彩带。参考的是 Mac 产品背面那种铝合金刻字的质感,给一点点隆重。
3
整个 APP 里我自己最喜欢、也花了最多时间打磨的,是「游戏墙」(Game Wall)。也是 Gamepix 这个名字的来源。
把所有玩过的游戏拼成一面墙。更适合摩挲和观赏。
重点是「时长」模式,按每款游戏的游玩时长决定封面尺寸,玩得最多的最大。自由排序拼贴,像马赛克像素(pix)。
墙面可以在竖版和横版封面之间切换,密度也可以用滑杆调。还做了三档低调的灯光效果,暖色小灯、明亮大灯。属于给一点小画廊里看藏品的氛围。
墙做好之后可以直接保存到相册。会生成一张高分辨率大图,带签名和日期。
4
目前还有几个问题。
最明显的一个是获取游戏库有点麻烦。
一方面是客观的服务器连接问题,Steam 和 PSN 的接口在国内都不太稳,有时候连不上需要一些「科技手段」。另一方面是登录和认证,Steam 要先去申请一个 API Key 并填 SteamID64,PSN 要走网页登录流程、拦截 OAuth 授权码,步骤都不算简单。比较难解决体验问题。
第二个是数据匹配会有缺失。Steam 一些游戏没有官方竖版封面,游戏墙上只能用横版旋转 90 度兜底;还有些游戏所有图都拉不下来,会留空位。PSN 更复杂一点,游戏列表和奖杯列表在接口上是分开的,要靠英文名桥接,比如我自己 79 个 PSN 游戏里只有 41 个能完整匹配上。
这两条是补 bug 补了最久的地方,到现在也没完全平掉。
修 bug 的过程也是很容易进入心流的过程。想写一本《禅与 Vibe Coding 的 bug 维修》。
5
做的过程挺有趣,也真的挺繁琐。体会到了做开发的痛苦。
游戏墙的「时长模式」布局算法,改了大概二十几轮。最开始是简单按时长正比例映射,结果头部游戏过大、尾部过小,整体视觉不好看。后来改成分位映射,又试过对数压缩、封顶截断、空洞回填,中间还撤回过好几个实验方向。
获得全部成就的金属铭牌的彩带效果,试过 8 种方案,confetti、stars、firework、bubbles、ribbons、iMessage 混合、烟花三段式、shimmer 流光。最后定下来的是纯 SwiftUI Canvas 写的彩带。我让 AI 给我了 30 多个参数配置功能,在真机上反复调。
这个完全是出于自己的审美偏好在折腾。而 AI 是完全不理解怎么算好看的。「好看」是完全无效的输入,「从屏幕左下(x=8, y=260)和右下(x=w-8, y=260)两点,以 -0.9 和 -2.24 弧度(斜向上对称)为主方向、±0.65 弧度随机扩散、260-400 pt/s 初速度喷射,持续 0.5s 内每侧每帧生成 12 个大小 1.2x 的彩色粒子(9 色 × 7 形状随机组合),受 400 pt/s² 重力影响自由落下,边飞边以 ±9 rad/s 随机旋转,透明度从 0.7-1.0 起始按 0.15/s 衰减至消失。」才是有效的输入。(当然了,这段话也是反复根据效果沟通, AI 给出的,并不是我写的。)
这种反复试错在传统开发里是很奢侈的,机会成本太高,一般得反复讨论才能下手。AI 能在几分钟就给一个版本。
6
聊聊做 vibe coding 的体验。
一是,自己的需求和兴趣决定了能做什么。
面对一张白画布,不是随时随刻都会有想法的。这不是我第一次打开 AI coding 的工具。每次也就是当玩具随手玩两下而已。
但当我那天想象到我可以有一个没事儿打开摩挲的游戏墙的时候,动力就来了,具体的框架和画面也有了。
AI 能把想做的事情做出来,但它不知道什么事情值得做。有想法,对自己在用什么、想要什么有感觉,比懂不懂代码重要。
二是,有时候还是得去抠背后的逻辑。
不是想象的那种,一切交给 AI 即可,哪怕它都能实现。
比如游戏墙的拼图算法就是典型,前面说的二十几轮迭代,其中一大半不是代码问题,是算法思路问题。分位怎么切、头部怎么封顶、空洞怎么回填,这些得先想清楚了再告诉它。
懂不懂代码是一回事,懂不懂代码背后的逻辑是另一回事。这些逻辑的拆解,也不比写代码轻松。
三是,这件事真的是有产品冲动的人的一种独特乐趣。
过去想的事情只能通过别人去实现,中间的损耗很大;现在想到就能做出来,不纠结时间,不纠结成本(相较于搭一个团队、雇一个外包或者自学代码,几乎忽略不计),就能直接去做做看了。
不过这种乐趣未必是所有人的乐趣。
跟 AI 生图、AI 生视频工具一样,有人觉得是玩具,有人已经当成了重要生产力。
还是之前我常说的,想法会越来越重要。提出问题会越来越重要。
7
Gamepix 目前只在 iPhone 上能用,免费的,没有订阅,没有内购。
对我来说它首先是做给自己用的小工具,顺便分享给感兴趣的朋友。
如果是 Steam 或 PS 玩家,也想摩挲一下的,可以下载试试看。
用起来觉得哪里别扭、哪里不对,也欢迎反馈到公众号后台,或者 App 里的「联系」按钮,会直接打开默认邮件客户端,邮件会发到 opencup2026@outlook.com。
Gamepix 不是一个多大的产品,也不是个什么创业项目,是花了两周时间的满足创作欲的一个小乐趣。如果能让一两个朋友,在某个周末打开,观察一下自己的收藏,感受一下全成就完成的彩蛋,就足够开心了。
这就是面对 AI 的感受:当你发现跟 AI 的关系的时候,你就会有乐趣。比如这种小玩具,就是我的乐趣,也是我跟 Vibe Coding 的关系。而发现跟 AI 有什么「关系」,其实更重要。
热门跟贴