从 R3nzskin 项目窥见中国开源生态的现状及未来

引言

R3nzskin 这个项目我关注了小半年,也算是见证了这个开源项目的兴衰。深夜有感,决定写一篇博文来记录一下我的所见所闻,也希望能给其他开源项目和开发者一些启发和经验。

与 R3 的邂逅

我本人是游戏《英雄联盟》(League of Legends) 的狂热玩家,从大学开始就很喜欢玩这个游戏,也从中收获了很多快乐。

然而秉持着 “差生文具多” 的原则,我在腾讯代理的国服和拳头公司的直营服都为英雄买了很多皮肤,但我并没有足够的经济能力去购买所有我想要和喜欢的皮肤,恰好听闻现在有许多 “换肤” 软件可以使用(老玩家的话可能知道以前的多玩盒子),便踏上了使用换肤软件的道路。

最开始我找到的是大名鼎鼎的 LOLskin

坦诚来说,它的使用并不方便,但是有如此海量的皮肤选择对于我而言已经足够了,更何况这个换肤软件本身就是免费的,我的钱包也终于能松一口气。

然而 LOLSkin 有一个问题:每次游戏版本更新它都必须重新从官网去下载,国服玩家还必须在更新后去等官网的 .1 版本,还是比较繁琐的。作为懒人代表,我把目光放到了淘宝,寄希望于消费获取比较稳定不需要每个游戏版本都要重新折腾的换肤软件。

淘宝网上这类换肤盒子软件眼花缭乱,我尝试了两个买量比较多的店铺,使用上还是比较复杂。共性上两款软件都需要通过远程服务器验证后才可以使用,付费模式就是购买体验卡包月、季、年这样,换肤模式仍是游戏开始前提前手动选择好需要的皮肤。 这种模式我也不是很喜欢,所以还是换回了 LOLskin 使用,同时也逛逛相关的帖子看看有什么比较好的换肤软件。

转机在有一天某位吧友提到了 R3nzskin 换肤效果不错,我就去搜索了一下:

居然还是开源项目,作为程序员那必须上手体验一番了。

从使用者到布道者

C++ 大师侯捷在《Effective C++》中曾经提到,许多新技术得以推广应用,除了发明者的辛劳付出,也离不开许多布道者用通俗易懂的方式去教授讲解。

本着开源共享的精神,我找到了 R3nzskin 的贴吧,发了一篇手把手教如何使用 R3nzskin 的教学帖

截止到写这篇博文为止,这个教学贴拥有 21w 阅读量、658 条回帖以及 227 个点赞,可以肯定的是这个帖子帮助了很多和我一样的人,并且让这个开源项目能够被更多人所熟知。

不仅如此,事实上我也花了一个下午去做了详细的使用教学视频投稿到 bilibili,然而不到半个小时审核就把我的视频下架了,理由是破坏计算机安全:

不过吧主制作了类似的视频用以教学,只是我的视频第一次下架的理由是涉及宣传和广告还是令人啼笑皆非,一个开源软件又哪里有广告呢?

更多的信徒

随着许多朋友的共同努力,R3 在换肤已经小有名气,我有时间也会解答许多朋友遇到的常见问题例如缺失 dll、版本不匹配等等。有人在吧里收集皮肤 bug 提 issue,也有开发直接提交 pr 帮助完善这个项目,我自己也抽时间看了一些项目的源码,但逆向这块技术栈确实不太了解而且工作比较忙,所以后面就没再研究了。

项目中也加入了国人开发者 rainzee 支持国服版本,总之似乎一切都在向好的方向去发展。

与此同时淘宝店家自然不能放过这种赚钱的机会,他们把 R3 免费开源的软件套壳成之前那种需要服务器远程验证付费的样子去倒卖给那些无知的人,吧里也出现了一些倒狗。

大洪水

R3 很快被腾讯盯上了,也可以理解,毕竟断人财路如杀人父母,皮肤可以说占这个游戏 95%+ 的收入都不为过,在国服换肤自然不可能放过(使用 LOLSkin 也有一定概率受到处罚)。 很多人开始抱怨不能在国服使用,但也只是埋怨腾讯,而且恰逢当时拳头直营的台服刚开服,所以许多人跑去外服接着用,也没什么大问题。

大洪水源自 R3 项目原作者需要服兵役,可能未来不会频繁更新项目。

许多朋友感到惋惜,这么好用的软件以后没有人维护,我也给作者发了一封邮件去交流这个项目关于技术上的一些问题,看能不能接手下来继续维护,但是作者一直没有回复我,只好作罢。

一部分开发者开始自救,在 R3 的基础上创建仓库开始自己维护这个项目,其中不乏上面的淘宝店家混入其中推广自己套壳的付费换肤。

最后一根稻草

压死骆驼的最后一根稻草是拳头的一次更新(v13.5),这次更新让之前用旧版本的 R3 玩家在角色死亡后换肤失效:

无数质疑涌向了 R3,倒狗们宣传着 “自己开发 稳定维护” 的套壳 R3,许多人转而投向这些倒狗的怀抱,同时控诉着 R3 不作为。

农夫与蛇

R3 后续还是更新了,但是存在使用时严重掉帧的问题,不能像之前一样正常使用。

R3 的国服开发者 rainzee 加入了 R3 贴吧,决定把自己改过的不掉帧稳定的修改版本分享给大家,但出于对套壳奸商的警惕决定也采用服务器发放许可的方式,虽然许可获取是免费的,但这恰恰成为了许多人攻击的源头。

他们认为 rainzee 就是没赚到钱所以不维护 R3 项目的后续,将开源分享的精神理念和和心怀感恩体谅的情感抛之脑后,对参与 R3 项目的开发者当作倒狗肆意谩骂,更有甚者对着那些主动无偿维护、自愿汉化的贡献者谩骂侮辱,这可能是我自参与开源社区以来见到的最荒谬的事情了。

理想主义之死

他们赢了,他们也输了。

rainzee 发了声明,选择离开了这里,又一位理想主义者离我们而去,也让我想起之前看到的 开源人宣言

开源人宣言 - Open Source Fans Manifesto

我们是一群开源的爱好者与信仰者,我们相信:开源代表着一种向善的力量!作为一场席卷全球的世界性运动,20 多年来的历史证明,开源不仅仅能够孕育最新的技术、创造更好的软件,更能够帮助这个世界变得更好。

开源精神

剖析开源的内涵,理解开源的精神,能够让我们理解,为何开源能够让世界变得更好。在我们看来,开源的精神体现在以下一些方面:

分享(Sharing)

当一个软件工程师写出一个不错的软件,他不会敝帚自珍,不会故步自封。他乐于分享,是因为他相信:这个软件可能会对别人也有帮助,更会有人帮助他,一起做出更好的软件。西谚有云:赠人玫瑰,手留余香。我们都相信:乐于分享是一切善举的开端。

开放(openness)

在很多方面,开放都非常重要。不仅仅是开放源代码,更包括公开透明的社区。这样的社区能够吸引更多的朋友加入。也能够帮助新来者,理解并认同社区规则。还能够促进监督以提升社区运行的程序正义。开放还包括欢迎一切的可能性,开源是世界的,也欢迎来自世界任何一个角落的使用者、参与者和贡献者。中国谚语有云:海纳百川,有容乃大。我们都相信:公开透明是一切良好协作的基石。

平等(Equality)

我们欢迎任何人的任何贡献,我们以统一的标准平等地评审每一次代码或文档提交,我们评审的仅仅是代码或文档本身的质量与价值,而不是以贡献者的学历、年龄、种族、性别或职位等标准来判断。人皆生而平等,所以我们都相信:对于平等的追求是社区健康的保障。

协作(Collaboration)

开源社区的协作,正是从接纳点滴贡献开始的,一个开放的社区,崇尚开放式的协作。这样的协作,不会在整个群体达成所有共识之后再开始,而是欢迎来自每一个人的一点一滴的改进。中国古语有云:不积小流,无以成江海。我们都相信:开放式协作,逐步凝聚共识是社区繁荣的秘诀。

创造美好世界(Build a better world)

每一位投身开源的朋友,都或多或少是理想主义者。我们都相信:这个并不完美的世界,理应变得更好。我们都相信:通过自己掌握的技术,借助开源的方法,能够把这个世界变得更好。我们更加相信:开源的精神内涵,应该被推广到更多的领域。因为:创造更加美好的世界,是开源的终极追求。

行动倡议

开源社区的朋友都相信从我做起的力量,因此,我们发出如下行动倡议:

推而广之(Advocate widely)

我们应该更加努力的向大众传播开源的理念与精神,让更多的人接受开源的理念,成为开源的同道中人。我们还应该在开源软件、开源硬件之外的领域,推广开源的实践,不仅仅是开放源代码,还应该开放数据、开放知识、开放一切可以帮助这个世界变得更好的知识与经验,让更多的行业、更多的群体,都接纳开源,成为开放式协作的受益者。

互帮互助(Help each other)

我们应该帮助更多的开源项目,不断发展成长。帮助各个开源社区,把社区的力量团结起来,共同协作。我们还应该防止开源的含义被滥用或曲解。我们要阻止割裂,反对人为设置的障碍,反对任何附加歧视条款的“伪开源”,确保开源始终是一项惠及全球的事业。

立即行动(Just do it)

每一个人都可以参与开源,而不是只有大咖才能做到。我们可以从翻译或撰写文档,纠正拼写做起,为代码除错,审核代码,提交代码,志愿支持开源活动,我们还可以布道演讲,吸引更多的朋友加入。

我不知道这样的环境之后还会有多少开源项目会因此毁掉,我只知道拥抱开源共享的理念和心怀感恩体谅的情感目前还为时尚早。