先前,我撰写了一篇文章向各位介绍了 Rune 这款颇具气质的音乐播放器。而经历了整整一个月的全职开发后,我们真的实现了当初对「现代聆听体验」的想象。趁着整个项目从「技术预览」阶段跳跃到「Alpha 测试阶段」,遂执笔撰写一篇文章记录一下这个月发生的各种幕后故事,我们的思考,和对符石聆音未来的规划。

赛博石头汤

说道最大的变化,我觉得 Rune 这个项目本身性质的变化——它从一个自嗨玩具变成了一个社区驱动的开源项目。有七名社区成员加入了开发团队,带来了三十多个 Pull Request,解决了很多我自己处理不了的问题。

原本的 Rune 只支持 Windows 和 NixOS,但是现在也能运行在 macOS 和一般 Linux 发行版上,甚至在 Steam Desk 上也没问题。尽管仍不能支撑日常使用,但 Android 版本已能通过 CI 自动编译,并且渲染出基本界面。

Rune 在 Steam Deck 上执行,123Duo3 拍摄
Rune 在 Steam Deck 上执行,123Duo3 拍摄

除此以外,我们搞定了 ARM 版本的编译工作,这意味着 Rune 已经具备在一些开发板上运行的能力。虽然在一些水果派系列开发板上仍不能做到流畅运行,但能跑得起来就是个好兆头。目前也有工程师正在着手尝试设计一款基于 Rune 的随身听,「在物理意义上复兴 Zune」似乎不再是一场白日梦。

相信同龄人一定都从各种「心灵鸡汤」读物中看过「石头汤」的故事。发生在 Rune 上的故事与之有非常多相似之处,但在信息消费手段无比丰腴的当代社会,故事本身也需要产生一些变化。

把视角聚焦到当下的社会形态,或许我们可以想象主角生活在一个这样的「赛博星球」上。在这里,人人都尊崇料理包这种饮食方式,亲自下厨烹饪被视作毫无必要的行为。料理包方便又快速,料理包有很多种口味,人人都可以找到适合自己口味的料理包。故事的主人公心血来潮,在自家后院支了口大锅,准备煮点咖喱消遣一下周末。

各种香料交织在一起,诱人的气味飘进了邻居的鼻子里。邻居想着「加点苹果一定会更好吃」,于是就往锅子里丢了一些苹果。街边遛弯的老奶奶想起了自己年轻的时候跟老爷爷一起做菜的画面,就把家里珍藏多年的火腿丢了进去。

东西越丢越多,咖喱的味道变得越来越香,最后大家都饱餐了一顿。这顿饭后,人们变得喜欢自己烹饪了吗?并没有,因为在这样的一个社会中,主流价值观并不将「烹饪」和「美味」当成最重要的价值,能快速填饱肚子,快点去做工才更重要。

但我并不会因此抨击料理包,哪怕吃外卖吃到料理包也不会抱怨,因为它的确提供了足够多的营养,我的快乐与否也并不取决于一道菜有没有「锅气」。

在音乐消费的话语体系下,我认为串流影音平台就是这种「音乐聆听体验料理包」。大家都在对着 Spotify 的界面设计抄作业,它们的「口味」都绝对安全适合每一个人,但你很难从中看到产品策划者和设计师的个性,和为用户考虑的痕迹——它们的眼里只有对犯错的恐惧,还有对金钱、用户心智贪婪的渴望。

但我们依然在用着串流媒体平台,因为它廉价、便捷。不瞒各位,开发 Rune 的时候,我也一直挂着 Spotify 听歌。毕竟 debug 状态的程序得一直开开关关,打断音乐播放很恼人,而且我也需要一个平台帮我发现新的艺人和作品。

那么,Rune 这类离线播放器的作用还剩什么呢?我认为它可能是一个「避难所」,当你因各种弹窗广告、社交化设计、推荐算法和毫无品味的设计而感到精疲力尽时,这里总有一个安静且尊重你的播放器,静静地站在角落等着你。

先生,请问你知道「尊重」两个字怎么写吗

前些日子去索尼的线下店朝圣。逛到 MP3 那片区域时,我们把每一个设备都拿起来试了试。 不得不说每台机器的质感都很好,小巧、克制,充满秩序的美感。但是随机器安装的串流音频平台却让人感觉「它不配出现在这部硬件上」。

轻按软件图标,出现的第一个界面是全屏广告,关闭按钮被设计在对「大拇指有十五厘米长」的用户很友好的位置上,如果你的手指没那么长,那就多等五秒。接下来,我们看到的是软件的主界面,上下两层导航栏里有百分之九十的内容都和音乐无关。各个角落都悬浮、闪烁着的广告,处处透露出对数据增长和营收的焦虑。满屏的社区化、社交、弹窗通知,让人不禁怀疑这究竟是一款交友软件还是音乐播放器。

我还在基本操作的时候,某一任产品经理曾经跟我讲过:「因为社区化能增强用户黏性,只要用户每天奔着社交意图打开应用,你就能省掉很多宣发的费用」。坐我旁边的设计师跳槽去了一个专门做交友软件的公司,我俩一边嚼着溜肥肠,一边聊它们公司产品策划那些更夸张的行为。他抱怨道,一切设计都是奔着数据增长去,为了让用户触发某个功能,一定要把它们设计的足够显眼,哪怕是被误触也没关系,总之一定要触发。

呕——这可比肥肠臭多了!

让我们推心置腹地谈谈这件事。相信任何一个产品策划都明白,用户打开一个音乐软件,他的目的一定是聆听音乐。在这个操作路径上的每一个阻碍,都是对用户意图的不尊重。我们不应该用各种设计方法论来攻击用户的心智,将它们的注意资源变成「好看的数据」和「广告的利润」——我们都知道这不道德。

但我们还是这么做了,因为人们都知道,想让一个产品的盈利规模有所突破,融资是最直接有效的途径。而谈生意的时候通常「不应该谈感情」,和投资人之间的有效对话只有「当下的盈利能力和未来的成长空间」。数据是对这些话题最有力的佐证材料,「爱和承诺」只能起到装饰作用。

当整个产品开发的链条全都「为钱负责」时,「没有道德的增长骇客行为」就变得正当。「〇〇可能会倒闭,但永远不会变质」也就成了脍炙人口的「佳话」。收集超量的隐私信息来描绘用户肖像「可以被接受」;通过设备漏洞提权篡改系统、干扰竞品运行的行为也就变得「可以被原谅」。

所以我们要怎么做?

正确的做法一定不是一边用一边骂,因为「黑粉也是粉,有粉就有钱」,在注意力变现的大框架下,只要你打开一个软件,它就能赚到钱。因此,最有效也是最简单的做法是「用脚投票」,卸载它们,安装你认为遵循道德底线的选择。

产品伦理的丧失并非一蹴而就,而是软件厂商不断试探用户下限的结果。只有通过不断「用脚投票」,我们才有机会逆转这个过程,重新拿回我们应当享有的尊重。

而我做了什么?我做了一款给自己用的播放器,名叫 Rune(笑)。

没有广告、没有多余的弹窗,没有任何与用户意图相冲突的 UI 元素。没有求捐款、求 Star、求商店好评的弹窗和按钮。一个都没有,不光现在不会有,以后也不会有。我知道用户打开这个软件就是为了听音乐,所以我不会做任何与这一意图相违背的设计。

看起来很缺心眼,非常不符合商业逻辑,是吧?但我坚持认为,这个世界需要一些缺心眼的东西。

说「尊重人性」有些太过镜花水月,说「尊重意图」更符合我这个理科男的表达调性。因此我在这里可以骄傲地讲出我做到的第一件事: Rune 尊重你,尊重你的使用意图。

多元包容的另一种诠释

2024 年出现的一大人间奇景:基于人本主义发展起来的概念「DEI」被彻底玩坏,其核心价值从「尊重每一个人」变成了「杀死每一个我不喜欢的人」。在这股浪潮下,原本就思想狭隘的人犹如捡到枪一般,将自己的一切攻击行为全都合理化。而原本「精神内核不稳定」的人本主义者则进入一种「理智断线、狂丢大便」的状态。

一旦遇到自己不喜欢的话题,人们就会退回幼态,开始以「你是猪」、「你才是猪」、「你们全家都是猪」的模式互相攻击,进而摧毁本就脆弱的讨论空间。

所以,究竟哪里出了问题?谈到这件事大家都会把矛头指向 Sweet Baby 这家公司。作为始作俑者,她们狡猾地以「多元共荣」为明目,以肮脏的道德和情绪勒索,掠夺了游戏行业对内容发展导向的话语权。

抢夺话语权这个行为本身没有任何问题,因为一切以人为出发点的行为,其终点都是产生影响力,而这一目的的实现方式一定是对某一特定领域的话语权。

真正出问题的是争夺者自身的价值体系和实现价值的方式。从 Sweet Baby 的公开发言,我们可以很清晰地看出,他们无心让游戏变得更好,只想让自己看不惯的东西消失。这也就是文章开头我所讲的:从「尊重每一个人」腐化成「杀死每一个我不喜欢的人」。前者是赋予社区更大的包容力,而后者则是排他的,这会杀死人本原本喜爱的事物。

社会的发展有其惯性,人们钟爱世俗意义上的美好不会因为某个「强大的外力」戛然而止。或者说,大多数具备惯性的文化现象都不会因为某个人的意志而消亡。

在文化上做减法会招致仇恨。同样的事也发生在 Twitter 上,但这就是另外一个故事了。

「削掉人格当中的某一部分一定会产生伤口,因此若有可能尽量多做加法」是我一贯对自己提出的行为要求。

而且,最重要的,简单地将 DEI 与 LGBTQ+ 和「不迎合世俗美感的外貌」划等号是一种对人本主义的错误解读。一个富有包容力的社会不应排除任何无害之事物。在审视整个社区时,我们也不应仅将视野局限在男性、女性、性多数、性少数这些简单的标签上。生活形态各异的人、身体机能缺失的人,都值得花费时间和精力去考量。

以牺牲现有成员既有权利的方式换区某种形式上的正确,这一行为在本质上就是错误的。它不仅浅薄,也不能为社群带来任何除了「优越感」之外的好处。

为什么你讨厌政治正确?或许你讨厌的正是这种被剥夺感和虚无感。如果这段描述与你的感受相符,那么我鼓励你以后通过类似的方式与他人沟通这些观念,引导更多人用脚投票,走向我们共同认为正确的道路。

那么,作为一名软件工程师,有什么方式能够以有意义的方式践行「广义上的多元共荣」?做好可访问性(Accessibility)、做好响应式适配都是我们可以做的事情。

大多数的产品策划者都会忽视可访问性设计,因为「身障人事」看起来并不多。抛开「健全主义」的疑虑不谈,事实上很多情况下身体机能完备者也可能体验到短暂的「Disability」。比如骨折了需要打石膏的人、喂小孩时腾不出手的人、鼠标坏掉了没办法控制设备的人、因为眼科手术暂时变成「咸蛋超人」的人。

一个具备包容力的产品设计者与执行团队一定不希望用户因为这些情况而感到沮丧,并尽可能减少给用户带来不便。细微但贴心的体验加在一起才构成了温柔而伟大的产品,而那些花里胡哨的概念宣传视频和空泛的标语口号则不是。

所以 Rune 做了什么?

我们为 Rune 构建了一个非常复杂的响应式系统。由横纵两条轴线合计切分出了三十五个响应式网格,从十像素的长条屏幕到标准的电脑屏幕尺寸,我们都尽可能做了支持,确保界面排版不变形。这一设计看似极端,也不够讨巧和酷炫,但我希望尽可能尊重用户多元的使用方式:我希望你在任何一块屏幕上都能自信地打开 Rune ,看到优雅的界面设计; 我希望你能以让自己感到舒适的方式,自由地改变窗口的大小来适应不同的工作场景。这是 一种多元。

我们花了很多时间把程序的快捷键绑定完备、确保 Tab 导航可以正确工作、程序能够正确响应鼠标上的各个按键。

Rune 没有在界面上以突兀的方式插什么旗帜,但我们为用户提供了丰富且不易出错的色彩调整选项,你也可以用你喜欢的方式调整功能区各个按钮的顺序与去留。在软件的设计过程中,我们尽量进行「去品牌化」,为「你」的参与留下足够多的空间,让你充分地展现个性。在不影响架构稳健性的前提下,只要精力允许,我们都希望赋予用户自由调整的能力。我们并不想「驯化用户」,而是希望将它打造成你用着顺手的播放器。

产品理念上,我们并不抵触在软件里面塞个彩虹旗的主题,但并不会单独为了这种主张刻意做一个突兀的东西上去。或许春节有一个红金特别色、圣诞节有一个红绿特别色、骄傲月有个彩虹旗特别色。我们坚持认为应将这些理念和其他文化平等地放在一起,不给予任何一个文化符号特权,才是对它们最好的尊重。

Rune 的多彩主题
Rune 的多彩主题

最后,我们为「粤语」、「闽南语」提供了第一方语言支持。作为具有教材和标准语言等级考试的两种语言语言,鲜有国际化团队为其提供支持,在我看来这是一件非常可惜的事。若是有人能因为这个小点感到亲切,那我们会觉得相当荣幸。值得注意的是,对这两种语言的支持尚处于测试状态,内容非常不完备,我们邀请说这些语言的人参与进来,构建更好的使用体验。

你可能会在内心中隐隐地对我竖起中指,因为这些看起来都没什么。但我们在做一款播放器,首先它得是一款播放器。就像你在做一款游戏,它的首要任务是好玩,能够有效地刺激用户的多巴胺和肾上腺素分泌,因为这才是一款「游戏」的天职。

若是想要追求一些「政确」的理念,更好的做法是走出家门、站上肥皂箱,把你的想法说给身边的人听,做给身边的人看,而不是花几十小时闷在家玩一款并不好玩的游戏,来展现某种「意志力」,或者做出一款不好玩的游戏按着别人的头来玩。

况且,想要做到这些并不容易。从非开发者的直觉来看,响应式就只是一个听起来很「上流」 的概念,无非就是多几个 ifelse;主题系统看起来很花哨,但就是写两个函数改改颜色;多语言也不过就是一个字典把所有字符串放在一起。但你要明白,它是一场对设计、工程和维护成本的巨大挑战。

Rune 的响应式系统
Rune 的响应式系统

整个软件现在一共有十三种布局模式,意味着我们每设计一个新页面,都要审视在这十三个模式下究竟是否能够正常渲染,评估哪些页面在特定模式下应当被舍弃。添加一个复杂的主题系统意味着决定界面色彩的信息会有很多来源,各个来源之间的覆盖关系得小心处理。提供完整的键盘支持,意味着开发团队得跟 Flutter 那充满 Bug 的键盘绑定实现、互相打架的焦点管理实现搏斗。因为这些琐事熬的那几个大夜真的是一点也没有成就感。最后,全面的国际化支持则意味着,你每在程序中写一个字符串,都对应有十几种语言的翻译要整理。

我们日常使用的产品,常常会在这些设计细节上「节省人力资源」,一句「其他公司也是这么做的」变成了万用的借口。但让我们把视角拉高,每个维度上完成度的高低都是一个正态分布,而在所有维度上都用这种借口推脱,最后做出来的产品就是最末流的。

我们平时在用的那些基于「互联网思维」理念生产出来的「速食包产品」正是这种毫无品味可言的「末流之辈」。

我常常对着那些鼠标滚轮都没绑定的音量按钮、电脑上显示着硕大移动端界面网站、甚至直接叫你下载手机应用的网站叹气:他们到底找了多少次借口,节省了多少「人力资源」,这些「被省下的人力资源」又换来了什么?对这些问题,我思考了好久也没想明白,最后只得以「没有担当」四个字做节。

最后,一些对于设计的追求

让我们把话题反转,讲讲我不会为了「多元价值」牺牲的那些东西——表现力和趣味性。

我个人在审美取向上喜欢「有趣的设计」,喜欢敢于表达、充满生命力的作品。因此 Rune 选择遵从 Metro Design 设计语言,选择复活 Zune,选择从 Material Design 和 Fluent Design 中撷取最有趣味性的部分,以充满秩序感的方式整合在一起。

不以谄媚的方式迎合大众口味,这是我个人的设计底线。

在 Rune 中,你会看到大量充满我个人品味的表达,例如各式各样的动效:充满仪式感的开场动画、犹如涓流般展开的列表入场动画、非常细微的场景切换动画、导航栏的文字缩放动画。

还在做基本操作的时候,我就很喜欢在交互程序里面塞各式各样的动效,你应该能在 Rune 当中找到「卷积神经网络」那集动效系统的影子。这套处理动效的手法也是差不多那个时候成型的。

再比如,一些很学究派的小细节:对于阴影效果的使用,我们明确地区分了三种设计意图:光照投射下来的阴影、物体背面发光、用于区隔信息的装饰性设计。对于投影,我们对 Material Design 规范当中的阴影参数做了一个线性回归模型,实现了无级调节的 Z 轴投影。

对于列表载入动画,你会发现根据页面宽度的不同,会呈现出两种样子。窄屏界面下,动效与Windows 10 Mobile 类似,乐曲条目会以三维立体的方式从屏幕侧面滚进来;宽屏界面下,则是从左上角为圆心,缓缓展开。这里更有 Material Design 的味道。虽然灵感来自不同的设计系统,但是我们以 Rune 对动效的理解为核心,做了一些调和,最终呈现出来了一致且愉悦的使用感受。这些动效设计的背后也有工程方面的考量,通过将元素显示的次序错开,我们可以避免并发载入过多图像,产生视觉上的「卡顿感」。

初次打开软件,选择好媒体目录后,你会看见一个非常熟悉的「扫描界面」,颇有 Windows 开关机更新界面的韵味,这也是一个玩了一些动效技巧的界面。等待扫描是非常缓慢的,尤其 Rune 的扫描会额外取出乐曲的封面图片,计算渲染结果的哈希值和主题色。为了让这个过程看起来不那么漫长,我刻意以一种不做作的方式塞了一些花里胡哨的动态背景和数字跳动的动画,希望能让你回想起小时候盯着屏幕上四处弹跳的「VCD」图标和永远也走不完的迷宫屏保。

接下来出现的就是帧率颇低又非常隆重的欢迎动画。这部分设计致敬了 Windows Media Center,但一不小心做出了点索尼味。虽然是个乌龙但好在最后呈现出来的效果极佳,给人一种极强的仪式感。曾有不少人提出过「我就听个歌有必要这么大阵仗么」,但有点仪式感没什么不好,你若不喜欢可以去主题设置选项里面把它关掉,至少这个选项是有的。

以及一些或许你会需要的备用素材, 我们为 Windows, macOS, Android 平台,以及 Linux 上主流的桌面环境 KDE、Gnome 以及 Papirus 都专门绘制了符合其设计系统规范的图标。针对 SteamOS 我们也做了一整套给游戏库用的贴图。我们希望它能够融入你的系统当中,作为一个不扎眼的角色,安静的待在角落等待他的用户。

Rune 为各个平台适配的图标
Rune 为各个平台适配的图标

当然,也有纯粹为了好玩而做的设计,像是社区贡献的文言文本地化。激活文言文模式时,我身上的每一个毛孔都回想起了当年被《出师表》和《桃花源记》支配的恐惧。

Rune 的文言翻译
Rune 的文言翻译

这部作品真正扭曲的地方

正如先前我在「产品伦理」一文中讨论的那样,「互联网产品」呈现出的某种样态,一定是大的商业环境在发挥作用,是用户「用脚投票」的结果。

只要在杀毒软件里面加弹窗,就可以让软件本身免费。只要在操作系统里面内置广告,手机的售价就可以被压低,进而用看似廉价的方式掠夺整个生态位。

人们生来对数字敏感,没有什么比「性价比」和「免费」更诱人了。一旦有玩家拿着这种「核弹卡」进入牌桌,其他人就都得被迫进入「价格战争」,想方设法将盈利点「用户的钞票」变成「用户的脑浆」,业界会开始以一种螺旋向下的方式发展。

更遑论「短视频」、「社交媒体算法」这种以底层认知系统为标的,系统性操控用户心智的非道德产品。

狡猾的商人会用「让每个人都享受科技的没好」来包装这件事,但让我们重新用「商业面前没有人性」的「业界通识」来观察整件事,就会发现那只是纯粹的、攻城略地的手段。

这种「包装」是一种虚伪的诡辩,值得被唾弃。

让我来向你提问:你是否在使用「以注意力代替钞票」的产品?你是否从这些产品中感受到了「对用户的尊重」?你是这些产品的用户,还是它们手中的资源?

最后:你能想到哪些设计优秀、富有个性的产品,在这波无情的浪潮中奄奄一息,甚至惨遭淘汰?你的感受是怎样的?

阅读至此,相信你能读出本文的一大主题,冲突。

我们赞颂深入思考、细致设计、尊重意图。但现在大行其道的是赞颂资本、拥抱概念、高速迭代,这在本质上就是冲突的。

我曾见识过心存善念,不愿对用户「下黑手」的团队,也亲眼见证过煽动焦虑,对用户「狠下黑手」的团队。他们都以符合「商业常识」的方式苟延残喘或蓬勃发展。作为一名具备社会认知神经科学背景的开发者,你若让我来下这黑手,我也可以做得很脏。

但在做些「自娱自乐」的小玩意时,我并不愿意这样做,我想尊重那些报以善意,或者至少, 没有恶意的人。

我并无意表达「我们好,它们坏,用我们,别用它们,你用我们你就可以优越,你用它们你就道德败坏」。这是道德勒索,是一种恶劣的行为,道德是用来约束自己的,不是用来约束他人的。

我选择亲自践行自己的价值观,在有限的资源下尽量做到「知行合一」,用一种必定「暴死」 的策略来塑造整个 Rune 的形态:离线音乐播放、开放源代码、没有广告。

一个离线音乐播放器意味着「无穷大的曲库」不复存在,你得自己从各种商店购买音乐,再分门别类地整理好,这本身就是一个非常大的阻力。在软件内部测试时,很多用户惊讶地发现,自己的电脑上已经没有任何一个音频文件了。

开放源代码意味着整个程序被暴露在「套壳上架」的风险,这不仅会破坏 Rune 软件本身的声誉,也会极大地压缩我们的盈利空间。

没有广告意味着你会获得干净的界面,但开发者们没有办法把你的「脑浆」(AKA 注意力) 变成钞票。

这一切都是有代价的。

让我们来谈谈钱

我们认为,与用户健康的互动方式是:让这些代价变成一个公平的价格,让所有支持这些理念的人共同承担这份代价。倘若这些主张不被社区认可,那么大可以选择自然凋亡的结局。

 Rune 的 Free 并不是「免费的啤酒」而是「自由的小鸟」——它是一款有价格的软件,我们在 Steam 平台上贩售软件的许可证,单个大版本一次性付费,无需订阅。

但同时,我们提供了时长为无限的试用期,你可以在 GitHub 上获得最新的编译产物,并一直以「试用者」的身份使用下去,直到你觉得满意,认为可以为它付费。

这也是一个看起来非常扭曲的决策,但如果我们把「用户意图」作为绝对不可退让的价值,相信你就能理解了:你不希望打开软件就看到催你赶快掏钱的弹窗,你只想听音乐。

而对我来讲,开发一套注册码系统只会压缩其他功能的时间:那些真正有意义的功能。所以我选择后退一步,给彼此都留出一些空间。

「贩售开源软件」看起来是一个非常怪异的行为,因为大多数开源软件都是通过「捐款」来「维持生计」的。但我想跟你维持一个对等的关系:你为一个产品付费,我为你的消费行为负责。心里没谱就试用,用到爽再划卡,明码标价,没有套路,童叟无欺。

付费用户可以得到基于 Steam 平台的「自动更新」和「配置备份」,两个额外的功能,以及在 Steam 社区提出 Feature Proposal 的「特权」。

前者简单明了,多了功能,后者的逻辑也相对清晰: Rune 的 GitHub 不接受任何功能请求。只有提出有意义贡献的开发者和愿意「用脚投票」的付费用户可以决定未来软件的发展方向。

在这个脉络下,我们都在做有意义的事。

如果你觉得不值,那就不掏钱,我不需要为你没掏出来的钱负责,「交个朋友」也挺好。这样我们都不用互相情绪勒索,我不指责你「自私不捐款」,你不指责我「懒惰不作为」。

干干净净,简洁明了。

赛博石头汤

我从 Rune 的开发中学到最重要的知识是:当代项目的开发与执行,已经不在是早些年「有个好点子,兄弟们一起冲」了,因为这个年代最廉价的就是点子,最珍贵的是执行力。启动一个团队最好的方法不是「说破嘴」,而是端上一锅「闻起来很美味的咖喱」,路过的人才会愿意往里面「丢自己喜欢的食材」。

我很高兴看到有很多才华横溢的人们加入了 Rune 的团队,也对那些为这款播放器奠基的研究者充满感激。

这里面包含了 AXIOM DESIGN SYSTEM 的开发者:

  • COPtimer:作为设计研究者,通过准确的测量,为大量基础设计元素提供了准确、易于操作的参数。
  • Jack Works:设计了 AXIOM DESIGN 的基础架构,并完成了大量基建工作。
  • Balthild:参与了 AXIOM DESIGN 的文档撰写工作,并实现了多项底层功能。
  • Simon Chan:修复了非常隐蔽的软件缺陷。

以及 Rune 的社区贡献者:

  • NovaDNG:主要设计审查工作者,为 macOS 平台设计了风格独特的图标,也主导了日语的本地化工作。
  • XMLHexagram:macOS 平台实现的维护者,主导音频分析工具的性能调优,参与了文言本地化工作。
  • abc1763613206:完成了 Windows 及 Linux(包 括 SteamOS)平台的 CI 搭建工作。
  • Rachel Tang:Android 平台的探索先锋,成功完成了 Android 平台的编译工作。
  • 123Duo3:文言翻译的主导者,同时参与了 SteamOS 的 QA 工作。
  • MoTIEdsuNe: Rune 硬件平台工程师,同时完成了简体中文版本的本地化工作。
  • YeungKC:参与了重要的代码质量优化工作。
  • RedL0tus:完成了 Flatpak 平台的封装工作。
  • CC:参与了文言翻译工作。

至此, Rune 的第一阶段开发目标,作为一个用户体验设计的实验项目,他已经交出了令人满意的结果。而接下来,我想探索的话题是:作为一名全职维护者,以如此这般理想主义的方式,究竟能带领这个播放器走向何方,走得多远。

目前 Rune 正处在 Alpha 测试阶段,我们主要聚焦于桌面平台的功能补齐和异常修复。你可以在 GitHub 上获得二进制编译产物,我们计划在核心功能稳定后对外发售整个产品,你可以现在把它加入愿望单,期待诸位的参与和支持。