作者的自述 2048為什麼會火

  Gabriele Cirulli今年20歲,目前居住在意大利,自學瞭UI設計和網頁開發。他最先將2048的開源版本放到Github上,由此引發瞭風靡全球的狂潮,各種衍生版本層出不窮。

  前幾周對我來說是一個漫長而瘋狂的時間。三月份,我因為好玩,制作瞭一款叫2048的遊戲,然後以開源的形式發佈在Github上瞭。在接下來的幾周時間裡,它意外成為瞭世界范圍內的熱門話題,而且超過瞭兩千三百萬的人玩過瞭。

  這段時間是我生命中最激動人心的一段時間,同時也是壓力最大的一段時間。知道你所創造的東西被數百萬人玩到並且喜歡,這是一種非常棒的感覺。對於大多數人而言(包括我自己),這會帶來繼續創作新東西的動力。與此同時,當你創作的東西世界聞名的時候,你必須要面對一堆新的挑戰。如果你從來沒有面對過這樣的壓力,來自別人的關註和別人對你的期望會把你壓垮。

  在這篇文章中,我會和你們分享我所經歷的一切,以及我是如何處理它們的,既站在個人的角度也從專業的角度進行闡述。我也會解釋到底是什麼樣的心路歷程讓我改變瞭我的想法而去制作這個遊戲的手機版本。

  這是一篇很長的文章,但是我希望這篇文章能夠帶來一些有意義的想法,並且能夠幫助那些可能要面對類似問題的人。

  一切是怎麼開始的

  我利用周末的時間寫瞭2048這個遊戲,僅僅隻是好玩而已。我以前被兩個遊戲所吸引,它們分別是1024!和2048。這兩個遊戲我都喜歡玩,我想用一種不同的視覺展現效果和更快速的動畫來創造我自己的版本,隻是試試看自己行不行。在那個時候,我還不知道有款叫Threes的遊戲,它是所有這類遊戲的原型(包括2048)。

  Asher Vollmer和Greg Wohlwend作為Threes的開發者,已經證明瞭他們在開發這款遊戲的時候投入瞭大量的時間和精力。就Threes的模仿者都大紅大紫的現狀,他們最近表達瞭他們的不平。我理解他們的感受,我也對他們在創造Threes中付出的努力和心血表示由衷的敬佩。2048確實欠他們的。

  在制作 2048 的過程中,我決定把項目托管到Github上去,並且通過Github完成項目。由於這是一個大部分都基於別人工作的項目,所以我不想把它設為私有的項目。

  當我完成瞭這個遊戲之後,我就通過Github Pages發佈瞭它,並把它發表在Designer News上,僅僅隻是為瞭看看大傢反饋的效果而已。

  爆發

  接下來的一天,我從朋友那裡收到瞭一條消息,讓我看看Hacker News的首頁。有人把2048發佈在那裡瞭,而且現在被頂到瞭第一的位置。通過Google Analytics的報告可以知道,現在有上千人在Hacker News的網站上。我完全無法相信發生的這一切。

  盡管這就像互聯網常見的爆炸新聞一樣,來的快去的也快,我還是花瞭一整天的時間查看這條帖子的狀態。看到關註數目持續上升使我非常興奮,同時還有一點害怕。

  我完全被那些積極回應的評論震驚瞭。每個人都在談論他們是如此的喜歡這款遊戲,簡直就停不下來,甚至在上班時間也在玩。

  接下來的幾天

  我以為大傢對2048的興趣很快便會過去,但是接下來的幾天,大傢的熱情始終如一。事實上,大傢更加關註這個遊戲瞭。從某種意義上來說,2048不僅僅成為瞭Hacker News讀者中的一個熱門話題,它還在 Twitter,Facebook 甚至是在線下被廣泛談論。看到它漸漸成為一個全球范圍的話題讓我感到一點小小的不適。

  與此同時,我的收件箱開始被那些喜歡這個遊戲的玩傢的來信占滿,也有一些開發者希望能夠得到我的授權來開發手機應用賺錢。

  我面臨的第一個問題就是我到底應該拿2048這個遊戲怎麼辦,以及我該如何回復這些郵件。盡管 2048 對於我而言隻是個小項目,而且我也沒有對它寄予什麼希望,我周圍的人都建議我應該趁這個機會拿它好好賺一筆。

  就我個人來說,我不太喜歡要拿 2048 這款遊戲來賺錢的想法,因為它畢竟是基於別人的遊戲而來的。

  另外一個讓我無比苦惱的是,為瞭專註於 2048 這款遊戲,我必須要放棄我的其他項目。那時,我正在做一個freelance的項目,而專註於2048意味著我必須要停止那個項目或者是結束它。

  把2048做成手機遊戲,那是我不熟悉的一個領域,即使如此,我也必須要足夠快,這樣才能成為第一款2048的手遊。這個想法嚇到我瞭,因為這會讓我跳出安逸的生活狀態,而我對將要面對的問題一無所知。

  這兩個原因在那幾天裡一直折磨著我。我覺得沒有任何可以擺脫這種痛苦的途徑,任何我做的決定都會讓我陷入麻煩。

  一方面,我可以抓住這個機會(而且這個機會看起來會是一生中唯一的一次)並且獲得回報,代價是誤導玩傢,讓他們分不清到底哪個遊戲才是最初的創意。

  另一方面,我可以什麼都不做繼續我的生活。而我知道,事後當別人告訴我,我錯過瞭這個機會的時候,我一定會後悔。

  最終,我說服瞭自己,我決定什麼都不做,因為我認為這是結束我所面臨的壓力的唯一辦法。我決定讓遊戲繼續開源,而且我不會做手機版。

  在做瞭那個決定之後,我立馬就感覺舒服多瞭。這使我覺得我做瞭一個正確的決定,我不會後悔瞭。

  回到原點

  在接下來的幾天裡,我依然覺得輕松。

  那段時間,遊戲的手機版本已經出來瞭。這些手機版中很多甚至都沒有經過我的同意,或者其他參考的遊戲的開發者的同意,當然其中的一些也指出瞭是模仿我的遊戲。在看瞭 Threes 開發者們對此的反應後,我覺得不是由我導致的這一切,真好,當初那個決定果然是正確的。

  我周圍的很多人並不這麼認為。我的朋友和傢人認為我的決定糟糕透頂,但是同時我認為我隻是丟掉瞭一個我不會想擁有第二次的機會罷瞭。

  最初,他們的意見不會煩到我。我知道,我選擇的這種方式擺脫瞭之前遇到的壓力,而且在我的考慮中,這比金錢或者名聲要重要的多。

  但是這種感覺沒有持續太長時間。幾天之後,那些我認為我已經成功擺脫掉的問題都卷土重來瞭,甚至比以前還要嚴重。我開始後悔浪費掉瞭這個機會,而且我感覺的到,我的行為讓我周圍的人失望瞭。更讓我感到糟糕的是,被別人制作的2048遊戲登上瞭AppStore的榜首。

  一線希望

  我已經被我的狀況搞到發狂瞭,但我還是有理由快樂起來。

  即使有的人不在乎拿別人的勞動成果去賺錢,在開源社區依然有很多有創造力的人在乎遊戲從何而來。他們隻想讓遊戲變得更好,甚至是把它帶到一個全新的高度。

  看到數不清的各種版本的2048遊戲的出現讓我感到開心多瞭。我非常愉快的玩各種各樣的版本,開心的看著他們能夠創造出什麼奇特的遊戲。

  人們充滿激情的翻版這個遊戲,把它做成各種完全不同的版本。發現別的人在努力的把你創造的東西發揚光大是一件幸福的事情,特別是你的作品能帶給人們快樂,而你又享受這種感覺。

  改變主意

  感謝我的傢人和朋友做出的努力,我意識到,唯一的辦法,讓我不覺得我失去瞭一個機會就是去接受它,去創造一個手機應用。我不會為瞭錢而做這件事情。事實上,錢也對我並不重要。真正重要的是我沒有浪費一個機會,無論最後的結果是成功或是失敗。

  人們會這麼想我呢?在每一次采訪中,我都說,因為道德的原因,我不會從遊戲中賺取一分錢。我認為,如果我改變瞭我的主意,我會被認為是偽君子,而我確實不想成為那種人。

  最難受的是,這個決定會讓那些對我寄予期望的人感到背叛。畢竟,我改變瞭我的主意,並做瞭一件我已經說過絕對不做的事情。這讓我難受瞭好幾天,但是最後讓我接受這一切的是我知道,我不是為瞭錢而改變自己的想法。我選擇去做是為瞭不讓我在接下來的日子裡感到錯過瞭一個機會。

 

  由於我的決定,那些把我以前說的話放在心上,並且欽佩我所做出的決定的人們很可能會感到被騙瞭。這也是我寫這篇文章的理由之一:我想給我如此矛盾的選擇做一個解釋,這個選擇是在什麼樣特殊的情況下做出的。

  但願我做這個決定的前因後果可以解釋我的行為。如果不行,我希望至少能夠幫助別人瞭解到這一切是怎麼來的。

  開發應用

  我仍然認為保持遊戲的原樣僅僅隻是把它打包成一個應用是不好的。2048本來就不是我的遊戲。相反,它是屬於那些相信它的無數的貢獻者們,我沒有權利把它拿來己用。如果我想要這個決定看起來合理,那麼我必須認真考慮如何創造這個應用。

  最後,它花瞭我一個整個月的時間來開發,從最初的一點點開始到最後的細心打磨,精益求精。

  作為一個web開發者,而且沒有任何的手機開發經驗,我無法一開始就做一個各方面都正規的iOS或者Android應用。所以,我決定使用Phonegap。Phonegap允許你使用HTML,CSS和JavaScript像web開發一樣來構建一個手機應用。

  使用Phonegap的問題是,如果你想要構建一個看起來像樣的應用,你就要花很大的功夫。幸運的是,我想制作的是一個遊戲,這意味著我不需要非常仔細的考慮不同操作系統上的界面效果。

  我想要這個應用擁有一個菜單,因為在應用啟動的時候直接把玩傢放進遊戲裡不是一個非常好的體驗。一個菜單同樣也可以讓我介紹新的遊戲模式,這會給遊戲添彩的。

  我想要遊戲邏輯是通用的,這樣能夠在創建一個新的遊戲模式時,隻需要定義一個對象,然後用類似「hook」的方式插入到遊戲核心裡去,並且可以非常容易的修改表現行為。

  我最終從頭開始一點點的構建這個應用的核心。我從開源的2048版本裡保留的唯一的代碼是移動圖塊的代碼,這能夠給玩傢帶來原汁原味的體驗。由於這個應用的代碼目前是閉源的(但是我也許會在未來把它開源瞭),所以如果我使用瞭別人貢獻的代碼就不公平瞭。

  代碼庫最後發現比web版本的要大3倍,大部分的代碼都是全新的。

  在構建這個應用的過程中,我發現瞭很多提高和精簡代碼和接口的方式。我非常想要把這些優化提進開源的2048版本裡。我也想要重構開源2048的代碼,使它成為開源社區的一筆財富。

  如果你對我最後實現的遊戲感興趣的話,你可以下載iOS和 Android版本進行體驗。我希望你會喜歡它。

  總結

  但願這篇文章能夠給你們帶來關於2048火爆背後的一些有意義的新觀點,即使我處理這種狀況的方式也許不是最佳的方式。

  我所做出的大部分選擇是基於我自己的感受來的,並且目的是為瞭解決自己的問題,而非是從項目中獲得什麼。

  我希望這篇文章能夠合理的解釋我是如何又是為什麼做出每一個決定的,並希望能夠幫助任何遇到這些問題的人,讓他們能夠明白所要面對的到底是什麼。

Leave a Reply

Your email address will not be published. Required fields are marked *