ZKIZ Archives


2048作者自述:我的遊戲為什麼會火!

http://www.iheima.com/thread-4954-1-1.html
Gabriele Cirulli 今年 20 歲,目前居住在意大利,自學了 UI 設計和網頁開發。他最先將 2048 的開源版本放到 Github 上,由此引發了風靡全球的狂潮,各種衍生版本層出不窮。更多信息可以訪問他的個人博客、Github 和 Twitter。



前幾週對我來說是一個漫長而瘋狂的時間。三月份,我因為好玩,製作了一款叫 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 讀者中的一個熱門話題(它成為了 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 火爆背後的一些有意義的新觀點,即使我處理這種狀況的方式也許不是最佳的方式。

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

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

(本文轉自伯樂在線,由菜鳥浮出水翻譯自Gabriele Cirulli的個人博客。)
2048 作者 自述 我的 遊戲 為什麼 會火
PermaLink: https://articles.zkiz.com/?id=99446


ZKIZ Archives @ 2019