轻松窃取YGOPro开发者劳动成果完全指南:案例实践教学

我是MyCard管理员星光pokeboy。今天我们要揭露的是YGOPro开发者们在不为人知的战场奋战的故事。

每位YGOPro开发者也都是决斗者,但他们的决斗对手不仅是决斗者、还包括更加棘手的存在——寄生并毁灭YGOPro开发的强盗。

关于开源的小背景知识

先分享一个背景知识。YGOPro有关项目代码是全部公开的,以 GPL 协议进行开源。简单的来说就是如果你使用YGOPro代码发布软件的话,你也需要同样以GPL协议进行发布,并公开代码。YGOPro不会为一己之私使用。开源协议是线上游戏王YGOPro能够发展至今的根基。正因为开源,所以YGOPro才能免费提供全卡环境供爱好者们测试、自由对战、同时有大量开发贡献者参与开发。

毕竟YGOPro没有商用权,所以各YGOPro项目规矩的不设定任何游戏对战有关的收费服务。但毕竟玩家基数多,每一段时间都会有人经不住诱惑做出以YGOPro代码为基础的收费软件。

本文的主角


(中国游戏王的未来会因这款软件而更美好吗?)

这次又出现了新的静水居的继任者。

继之前静水的YGOPot,和溪流的决斗城市以来,在九月底,圈内在流传有一款叫做【决斗大师】的游戏王对战软件开始了预约。

虽然使用YGOPro代码、违背开源协议来骗氪的软件不少,但是【决斗大师】却使人倍感亲切,是一股清流。这款软件的开发者留言部分感谢了包括233、决都等线上线下游戏王有关团队,也感谢了高桥和希(虽然不知道为啥没有Konami)。虽然是迷惑性行为,但是让人倍感亲切、神清气爽。毕竟很少有人感谢靠爱发电的各线上团队。

可是无论如何包装,都无法掩盖 YGOPro贡献者们的劳动成果再次被窃取的事实。

虽然难过,但是开发组本来打算一笑而过,毕竟这种事情也不是第一次了。

可是这次事情有那么一点不一样——

开发组看到了下面这张【决斗大师】游戏过程截图,很明显可以看出,游戏界面除了把3D改成平面界面以外,其他细节与YGOPro2高度相似。但是,请注意看红圈处。

红圈内写着“Tip: 本服务器使用萌卡代码搭建”。

这条系统消息只存在于Srvpro,既YGOPro服务端代码,的默认系统信息里。打码的地方是违禁词语,由于不和谐,就涂掉了,好奇的话可以进链接内查看。

由此可见,“本服务器使用萌卡代码搭建” 为SRVPro项目中的默认Tips文本。详见 https://github.com/mycard/srvpro/blob/master/data/default_data.json#L13

Srvpro是agpl协议,意思是只要在网络上与用户交互,都需要公开源代码。

此外,下方的“小沙包”的聊天记录,很明显是WindBot项目中默认的WindBot台词。详见 https://github.com/mycard/windbot/blob/master/Dialogs/default.json#L3
https://i.ibb.co/M207Pr7/image.png

嗯,决斗大师制作组甚至都懒得改写服务端的逻辑与代码。直接复制粘贴了Srvpro与Windbot的代码,连默认的系统消息都没有修改就上线游戏了。

不仅如此,【决斗大师】从服务端到客户端都是盗取YGOPro项目的代码,安装包里的文件名都懒得修改。YGOPro开发者们耗费数年写的几千张卡片代码, 超过百万行代码 全部被盗取。精心设计的图片素材等也都被照搬。这些证据都在本文聊天记录部分的后方。

看到这里,你可能没有意识到这个事情的严重性。

但你想一想,这件事情是否代表任何强盗都可以直接拿公开的YGOPro代码去进行收费?这对一个靠爱发电的社区是一个多么大的打击。贡献者们有无数次机会可以这么做,但是还是遵守了开源协议。正因为如此,才有贡献者们愿意花出上百小时写卡以及完善程序,因为他们知道他们的努力是在为玩家团体服务,也不会成为强盗的嫁妆。这就跟偷井盖差不多。

若人人可以随意进行复制粘贴,使代码为一己之私牟利;谁愿意去做徒劳的贡献?

讨论过后,YGOPro团队决定维护社区的劳动成果。其中两人联系了【决斗大师】制作组,希望他们能够遵守开源协议,并注明使用的代码出处。

与【决斗大师】制作组,令人震惊的对话

秉着对事不对人的原则,参与聊天的四人的身份不会被公开,打了码。聊天ID为化名。

YGOPro方两人先与【决斗大师】一名非技术人员联系上,简称【决斗大师】A君。A君态度良好,使YGOPro方燃起了希望。YGOPro方提出了遵守开源协议的事情,需要【决斗大师】公开代码。【决斗大师】方先表示公布代码需要等等,但是一定会公布。不过由于有静水居的等各种人以相同理由拖延然后鸽掉的前车之鉴,YGOPro方希望【决斗大师】可以先在【开发者说明】里先注明代码出处。毕竟编辑【开发者说明】是一件非常快捷的事情,不会耽误任何事情。

那之后【决斗大师】A君开始解释他们的情况。这里【决斗大师】方其实已经承认代码不是他们自己写的了。例如【拖拽代码打的包】、【来源做起来不太好】。但是当【决斗大师】A君说到服务器没用过ygo时,看过游戏截图的大家已经知道这句话不是真的了。看起来【决斗大师】打算先用YGOPro代码把游戏上线发展,争取到写代码的时间。写好原创代码后,再上线原创代码,尽管不知道他们会不会这样做。这是换皮游戏常用的套路,先抄袭,发现抄袭的游戏有足够的潜力与用户群后,再投入成本“正当化”这个游戏。


YGOPro方遇到过很多次这种换皮的套路,同时也见对面已经承认一些事情,觉得这个事情坦白说就好。因此再次提出在【开发者留言】部分注明代码出处。

这时【决斗大师】A君通情达理的表示可以让YGOPro方提出如何修改。YGOPro方开始去整合【决斗大师】用到代码的地方,例如游戏截图里出现的Srvpro与Windbot。看起来这件事情要获得圆满结局了。

可惜的是,未待整合完成发出,【决斗大师】A君将【决斗大师】程序员拉进了讨论组破坏了这一切讨论。

【决斗大师】程序员进来第一句话就是表明他们服务器没有使用Srvpro代码。尽管【决斗大师】对战服务器的系统提示文字与Srvpro一模一样。

【决斗大师】程序员表示,这个系统提示是由【客户端】而不是【服务端】发出的。这里言下之意就是把锅丢给【客户端】,是客户端用了Srvpro代码。不提Srvpro是【服务端】的代码,不知道是如何被弄进【客户端】里的,这里还是开脱不了使用了Srvpro代码的事实。毕竟默认提示都是一样的,这怎么洗得清啊。


回顾下,就是红圈内写的“Tip: 本服务器使用萌卡代码搭建”。

客户端与服务端的互动是相关的。难不成这是客户端有个管不住自己手的AI偷偷发了条无中生有的信息?

【决斗大师】程序员继续在狡辩。并且开始强人所难的问“有服务器的截图吗”。

首先【决斗大师】决斗过程中出现了Srvpro的默认提示,以及各种其他YGOPro有关代码的默认消息与特征,就能代表【决斗大师】使用了YGOPro相关代码。不管是【客户端】还是【服务端】都是【决斗大师】的一部分,再怎么样都无法推脱。

“有服务器的截图吗”意思就是要黑进他们服务器内部截个图,过于明显的强词夺理。如果问他们服务器访问权限,他们愿意给吗?

YGOPro方指出了【决斗大师】程序员狡辩里指“Tip: 本服务器使用萌卡代码搭建”这段话是客户端发出的,意思就是【客户端】使用了Srvpro代码的矛盾。

YGOPro方希望【决斗大师】程序员可以解释为何【决斗大师】游戏中会出现“Tip: 本服务器使用萌卡代码搭建”这句话。

于是【决斗大师】程序员表示可以解释,但只可以“选一条解释”。实际上YGOPro方问的也只是一条。这里可以看出【决斗大师】程序员已经心虚,因为知道每一条都是YGOPro代码生成的,无法解释全部。

讽刺的是,【决斗大师】程序员表示“不要抹杀别人的努力”。嗯,贼喊捉贼?

偷代码的时候有想过有没有抹杀那么多YGOPro代码贡献者的努力?

YGOPro方还是很尊重的回复“我们没有在抹杀你们的努力”,并且解释只是要求遵守开源协议。遵守开源协议又不是要求删了代码。

【决斗大师】程序员这之后说了一句不利的话,但是没等来得及截图就撤回了,再次狡辩没有使用YGOPro的代码。

无奈之下,YGOPro方还是配合地选出了一条系统消息先让【决斗大师】程序员解释。

选择的消息为

见到YGOPro方再次妥协,尽管已经看到了证据,【决斗大师】程序员再次得寸进尺并且放下狠话“没证据就别BB”。还要求YGOPro方再次妥协,只问这一条。尽管截图里还有其他YGOPro的默认信息,例如 YGOPro的AI衍生项目Windbot。

这之后YGOPro方已经意识到“你永远叫不醒一个装睡的人”,放弃了交谈。

【决斗大师】官方安装包里,隐藏着偷窃的证据

觉得光截图证明不了什么?那就看看【决斗大师】里的官方安装包里都装着什么:

解压了从【决斗大师】官网下载了【决斗大师】的安装包后,能见到明显来自YGOPro2的ygopro2-data.zip这个文件。里面一大堆ygopro的文件,甚至连头像、软件签名、版本号等改都没改,多到懒得帖上来了。

卡片代码、格式都是一样的。YGOPro开发者们耗费数年写的上千张卡片,加起来过百万行代码都被盗窃了。

不仅是YGOPro2,Koishi等YGOPro相关工程全部被抄走了。甚至连头像都是一样的。


甚至游戏的版本号也是一样的。

【决斗大师】果然是东拼西凑,靠到处偷来的代码凑成的补丁。里面甚至还带有YGOPro Koishi项目的签名文件。

直接抄了代码,文件名也不改,还有什么可以狡辩的呢?

其实还有更多证据与爆料,但是篇幅有限,光有这些也已经足够了。大家有兴趣可以在他们改客户端之前先下载下来,自己探索里面有什么东西。

从客户端到服务端都是使用YGOPro项目代码的证据已经很明显了,甚至【决斗大师】的官方安装包里都是满满的证据。

不知道【决斗大师】的程序员还能用什么办法狡辩过去。

YGOPro开发组希望获得各位的支持与转发

令我们难受的是,我们也知道一旦发出来,会增加这款软件的知名度与流量。然后就会有人去尝试下载这个软件,玩着玩着就开始氪金了起来。发出了这个曝光,反而对这些强盗是一件好事情。我们恳求各位不要对着强盗软件氪金。

我们希望可以获得大家的支持又与转发。希望大家可以站出来抵制不遵守开源协议,借情怀骗氪的换皮YGOPro。这次若再不站出来,不知还会有多少个强盗出现猖狂肆虐。贡献者们已经在流失,也不多了。希望贡献者们的时间可以花在开发与建设上,而不是在处理这些事情上。

YGOPro的代码都在Github上随时可以阅览,代码量巨大。在大家看不见的地方,数的过来的人支撑着百万玩家的游戏环境。有时从凌晨更新可以看出,开发者们为了能够更快让大家体验到新卡,熬夜抽时间开发,付出巨大。甚至承担各服务器费用的MyCard也在提供免费全卡对战的服务,遵守开源协议公开了代码用于YGOPro社区建设。那么强盗们有什么理由用同样的代码氪金收费,不遵守开源协议呢?

关于决斗大师:

【决斗大师】目前在一个叫做九游的应用市场里,官网也在九游的域名下。

从截图上看还是跟九游是有合作的。

目前好像没有找到投诉跟举报的入口。唯一有交互的地方只有官网下方的评论区。所以我们大概只能发出来让大家知道这个事情了,他们该继续运营还是继续运营。

官网 http://www.9game.cn/juedoudashi/

还跟Duel Masters撞名了

9赞

强烈鄙视

1赞

鄙视¬_¬`

支持社区,呼吁大家不要去下载盗版,更不要去氪金。不知道有没有法律程序可以维权

妈耶,树不要皮必死无疑

国家还有很多问题不管的

抄作业把名字也抄上去是这个样子的

1赞

image

如果真开服了我就去里边宣传一下ygopro…

1赞

:grinning:

[沪ICP备14034452号-1](http://www.miitebeian.gov.cn/)