國慶大瓜:教你如何輕松竊取YGOPro開發(fā)者心血并以此日進(jìn)斗金

【本文大部分證據(jù)來自星光pokeboy的整合】
首先我希望介紹下開源知識。

開源協(xié)議:在開放源代碼的同時,要求使用者必須遵循一定的前提條件來進(jìn)行使用。這些前提條件叫做開源協(xié)議。
GPL協(xié)議:開源協(xié)議的一種。主要特點是其傳染性:使用了這個協(xié)議進(jìn)行開發(fā)的軟件,后人在引用其源代碼時也必須同樣采用GPL協(xié)議進(jìn)行開源。YGOPro使用GPL協(xié)議開源。子子孫孫無窮盡也
AGPL協(xié)議:開源協(xié)議的一種,GPL協(xié)議的延伸。如果使用了GPL協(xié)議,“不分發(fā)軟件,只使用代碼進(jìn)行用戶交互”(通俗易懂地來講,服務(wù)器端程序)是被允許的。AGPL協(xié)議規(guī)定,這種情況也同樣要進(jìn)行開源。SRVPro(YGOPro的服務(wù)器端)使用此協(xié)議開源。

前日,九游上線了一款手機(jī)游戲,也是我們今天文章的主角。
游戲名為【決斗大師(游戲王者之爭)】——

說實話,前兩天看到這玩意時,還以為是決斗之城又換了個皮(因為不是第一次了),所以并沒有給予太多關(guān)注,只是發(fā)了個動態(tài)吐槽了下人間迷惑行為:

結(jié)果今天就看到開發(fā)群里炸了鍋,才發(fā)現(xiàn)事情并沒有這么簡單……也是,決斗之城怎么會去感謝233服和決斗都市
在網(wǎng)戰(zhàn)歷史上,曾經(jīng)有靜水居的的YGOPot,和溪流的決斗城市作為(用YGOPro賺錢的)先導(dǎo)者出現(xiàn)過,無論哪邊都被懟得慘不忍睹。這次,作為換皮手游的決斗大師,身段倒是放得很低,在開發(fā)者說感謝了一大圈。雖然漏了K社,不過似乎還是誠意滿滿……?
如果事情有那么簡單,那該有多好。

……?怎么這個界面感覺有點熟悉?
左邊為什么會有一句Hi, I'm WindBot?
還有,那個【本服務(wù)器使用萌卡代碼搭建】又是什么鬼?

先前已經(jīng)說過,YGOPro的服務(wù)端叫做SRVPro。
而在SRVPro的默認(rèn)設(shè)置文件中,有這么一段代碼:https://github.com/mycard/srvpro/blob/master/data/default_data.json
而在YGOPro的機(jī)器人程序——Windbot的源代碼中,默認(rèn)配置文件則是這樣的:

原地址:https://github.com/mycard/windbot/blob/master/Dialogs/default.json
現(xiàn)在再來看看剛才的……

是不是很熟悉?
到這里,我們對決斗大師的實際身份有了一定程度的猜測:
大概是個YGOPro2的換皮手游——并增加了氪金要素。

看到這里,你可能會覺得
1.也就這樣了吧?不怎么嚴(yán)重?
2.這違反法律了吧?
首先,這并不是什么好事。
開了這個頭,明天會不會有決斗王者、決斗超級大師、游戲王Go一個接一個如雨后春筍般冒出來?
開了這個頭,開發(fā)者們的心情又會如何?十年如一日辛辛苦苦寫下的代碼,被人直接拿去賺錢——換位思考下,會不會有“那我還寫個啥”的感覺?
不過與此同時,有一說一……
由于GPL協(xié)議就這么回事,只要開源就還算在合理使用范圍之內(nèi)。
……所以YGOPro團(tuán)隊就去找決斗大師制作組要求開源了。
(以下聊天記錄已經(jīng)當(dāng)事人同意進(jìn)行公開;聊天ID為化名)

YGOPro方的訴求其實也挺簡單的:雖然你偷了代碼來用,但是既然拿完被抓住了,希望服務(wù)器端和客戶端同時按照開源協(xié)議進(jìn)行開源。
“開源會有的,什么都會有的?!?br/>“你上次也這么說的?!保∟年前的Pot事件中,靜水居的表示會開源的以后就咕了)
“我們還沒做完,還是半成品,要慢慢來?!?br/>“對,這也是你上次說的?!?/p>

接下來就是熟悉的甩鍋環(huán)節(jié)??偨Y(jié)起來的話:
“服務(wù)器端是原創(chuàng)代碼”
“這個客戶端只做測試用,將來會重寫”
Windbot和萌卡提示你們好歹做個修改再上線?當(dāng)所有人都瞎子?
到了這里,事情已經(jīng)開始往不妙的方向發(fā)展了。

套路千千萬?然而這邊都已經(jīng)身經(jīng)百戰(zhàn)了,什么套路沒見過。
決斗大師方表示拉個程序員進(jìn)來問問話,到這里事情好像又緩和了一些。

“這是客戶端顯示的消息,所以抄了代碼的不是服務(wù)器端,是客戶端!”
這邏輯也真是沒誰了。照你這么說我們以后打牌就不需要服務(wù)器啦,反正都是客戶端顯示,顯示出來的都是客戶端做的事情嘛。
正確答案:提示是由服務(wù)器端發(fā)送到客戶端,再由客戶端進(jìn)行顯示的(雖然這顯然是廢話)。
你自己寫一個服務(wù)器端這沒問題,但你寫客戶端的時候為什么要把萌卡默認(rèn)提示一起寫進(jìn)去?砸自己牌子嗎?

“你們能拿出服務(wù)器端的數(shù)據(jù)嗎?”
你指望我們?nèi)司觳藕诳吞倌居巫靼。?br/>更何況入侵服務(wù)器,這真犯法啊兄弟。



“這一條解釋完了,如果你們拿不出實質(zhì)的證據(jù)就別BB了”
算了,聊不來的,溜了溜了。

怎么說呢……
看到這里,你或許會覺得不對勁。
“你們確實沒實質(zhì)證據(jù)啊?”
萬一人家真的是自己設(shè)計的皮膚自己敲的代碼呢?
那就……

先來解釋下ygopro2-data這個文件夾?

再來解釋下這個默認(rèn)卡組ChainBurn(YGOPro2 iOS端默認(rèn)卡組)?

再解釋下這個默認(rèn)頭像?

還有這個名字?
幾千上萬張卡,十多年的勞動,就這么被拿走使用了。
既然和制作方該談的也都談過了,該談崩的也都談崩了……
最后以星光的后記來結(jié)尾吧:
令我們難受的是,我們也知道一旦發(fā)出來,會增加這款軟件的知名度與流量。然后就會有人去嘗試下載這個軟件,玩著玩著就開始氪金了起來。發(fā)出了這個曝光,反而對這些強(qiáng)盜是一件好事情。我們懇求各位不要對著強(qiáng)盜軟件氪金。
我們希望可以獲得大家的支持與轉(zhuǎn)發(fā)。希望大家可以站出來抵制不遵守開源協(xié)議,借情懷騙氪的換皮YGOPro。這次若再不站出來,不知還會有多少個強(qiáng)盜出現(xiàn)猖狂肆虐。貢獻(xiàn)者們已經(jīng)在流失,也不多了。希望貢獻(xiàn)者們的時間可以花在開發(fā)與建設(shè)上,而不是在處理這些事情上。
YGOPro的代碼都在Github上隨時可以閱覽,代碼量巨大。在大家看不見的地方,數(shù)的過來的人支撐著百萬玩家的游戲環(huán)境。有時從凌晨更新可以看出,開發(fā)者們?yōu)榱四軌蚋熳尨蠹殷w驗到新卡,熬夜抽時間開發(fā),付出巨大。甚至承擔(dān)各服務(wù)器費用的MyCard也在提供免費全卡對戰(zhàn)的服務(wù),遵守開源協(xié)議公開了代碼用于YGOPro社區(qū)建設(shè)。那么強(qiáng)盜們有什么理由用同樣的代碼氪金收費,不遵守開源協(xié)議呢?
說不出話.jpg
你們吃瓜吧。