一場(chǎng)難忘的輪回——聽(tīng)2048作者揭秘游戲火爆背后的故事

3 評(píng)論 5522 瀏覽 6 收藏 17 分鐘

[核心提示] 風(fēng)靡全球的 2048 讓無(wú)數(shù)玩家為止癡迷,那么在這款充滿(mǎn)數(shù)理邏輯的游戲背后,作者經(jīng)歷了怎樣的曲折開(kāi)發(fā)歷程呢?

編者注:本文轉(zhuǎn)自伯樂(lè)在線,由菜鳥(niǎo)浮出水翻譯自?Gabriele Cirulli?的個(gè)人博客。

Gabriele Cirulli 今年 20 歲,目前居住在意大利,自學(xué)了 UI 設(shè)計(jì)和網(wǎng)頁(yè)開(kāi)發(fā)。他最先將 2048 的開(kāi)源版本放到 Github 上,由此引發(fā)了風(fēng)靡全球的狂潮,各種衍生版本層出不窮。更多信息可以訪問(wèn)他的個(gè)人博客、Github?和?Twitter。


前幾周對(duì)我來(lái)說(shuō)是一個(gè)漫長(zhǎng)而瘋狂的時(shí)間。三月份,我因?yàn)楹猛?,制作了一款?2048 的游戲,然后以開(kāi)源的形式發(fā)布在 Github 上了。在接下來(lái)的幾周時(shí)間里,它意外成為了世界范圍內(nèi)的熱門(mén)話(huà)題,而且超過(guò)了兩千三百萬(wàn)的人玩過(guò)了。

這段時(shí)間是我生命中最激動(dòng)人心的一段時(shí)間,同時(shí)也是壓力最大的一段時(shí)間。知道你所創(chuàng)造的東西被數(shù)百萬(wàn)人玩到并且喜歡,這是一種非常棒的感覺(jué)。對(duì)于大多數(shù)人而言(包括我自己),這會(huì)帶來(lái)繼續(xù)創(chuàng)作新東西的動(dòng)力。與此同時(shí),當(dāng)你創(chuàng)作的東西世界聞名的時(shí)候,你必須要面對(duì)一堆新的挑戰(zhàn)。如果你從來(lái)沒(méi)有面對(duì)過(guò)這樣的壓力,來(lái)自別人的關(guān)注和別人對(duì)你的期望會(huì)把你壓垮。

在這篇文章中,我會(huì)和你們分享我所經(jīng)歷的一切,以及我是如何處理它們的,既站在個(gè)人的角度也從專(zhuān)業(yè)的角度進(jìn)行闡述。我也會(huì)解釋到底是什么樣的心路歷程讓我改變了我的想法而去制作這個(gè)游戲的手機(jī)版本。

這是一篇很長(zhǎng)的文章,但是我希望這篇文章能夠帶來(lái)一些有意義的想法,并且能夠幫助那些可能要面對(duì)類(lèi)似問(wèn)題的人。

一切是怎么開(kāi)始的

我利用周末的時(shí)間寫(xiě)了 2048 這個(gè)游戲,僅僅只是好玩而已。我以前被兩個(gè)游戲所吸引,它們分別是?1024!?和?2048。這兩個(gè)游戲我都喜歡玩,我想用一種不同的視覺(jué)展現(xiàn)效果和更快速的動(dòng)畫(huà)來(lái)創(chuàng)造我自己的版本,只是試試看自己行不行。在那個(gè)時(shí)候,我還不知道有款叫 Threes 的游戲,它是所有這類(lèi)游戲的原型(包括 2048)。

Asher Vollmer?和?Greg Wohlwend?作為 Threes 的開(kāi)發(fā)者,已經(jīng)證明了他們?cè)陂_(kāi)發(fā)這款游戲的時(shí)候投入了大量的時(shí)間和精力。就 Threes 的模仿者都大紅大紫的現(xiàn)狀,他們最近表達(dá)了他們的不平。我理解他們的感受,我也對(duì)他們?cè)趧?chuàng)造 Threes 中付出的努力和心血表示由衷的敬佩。2048 確實(shí)欠他們的。

在制作 2048 的過(guò)程中,我決定把項(xiàng)目托管到 Github 上去,并且通過(guò) Github 完成項(xiàng)目。由于這是一個(gè)大部分都基于別人工作的項(xiàng)目,所以我不想把它設(shè)為私有的項(xiàng)目。

當(dāng)我完成了這個(gè)游戲之后,我就通過(guò) Github Pages 發(fā)布了它,并把它發(fā)表在 Designer News 上,僅僅只是為了看看大家反饋的效果而已。

爆發(fā)

接下來(lái)的一天,我從朋友那里收到了一條消息,讓我看看 Hacker News 的首頁(yè)。有人把 2048 發(fā)布在那里了,而且現(xiàn)在被頂?shù)搅说谝坏奈恢?。通過(guò) Google Analytics 的報(bào)告可以知道,現(xiàn)在有上千人在 Hacker News 的網(wǎng)站上。我完全無(wú)法相信發(fā)生的這一切。

盡管這就像互聯(lián)網(wǎng)常見(jiàn)的爆炸新聞一樣,來(lái)的快去的也快,我還是花了一整天的時(shí)間查看這條帖子的狀態(tài)。看到關(guān)注數(shù)目持續(xù)上升使我非常興奮,同時(shí)還有一點(diǎn)害怕。

我完全被那些積極回應(yīng)的評(píng)論震驚了。每個(gè)人都在談?wù)撍麄兪侨绱说南矚g這款游戲,簡(jiǎn)直就停不下來(lái),甚至在上班時(shí)間也在玩。

接下來(lái)的幾天

我以為大家對(duì) 2048 的興趣很快便會(huì)過(guò)去,但是接下來(lái)的幾天,大家的熱情始終如一。事實(shí)上,大家更加關(guān)注這個(gè)游戲了。從某種意義上來(lái)說(shuō),2048 不僅僅成為了 Hacker News 讀者中的一個(gè)熱門(mén)話(huà)題(它成為了 Hacker News 歷史上被點(diǎn)贊次數(shù)排名第三的話(huà)題),它還在 Twitter,F(xiàn)acebook 甚至是在線下被廣泛談?wù)?。看到它漸漸成為一個(gè)全球范圍的話(huà)題讓我感到一點(diǎn)小小的不適。

與此同時(shí),我的收件箱開(kāi)始被那些喜歡這個(gè)游戲的玩家的來(lái)信占滿(mǎn),也有一些開(kāi)發(fā)者希望能夠得到我的授權(quán)來(lái)開(kāi)發(fā)手機(jī)應(yīng)用賺錢(qián)。

我面臨的第一個(gè)問(wèn)題就是我到底應(yīng)該拿 2048 這個(gè)游戲怎么辦,以及我該如何回復(fù)這些郵件。盡管 2048 對(duì)于我而言只是一個(gè)小項(xiàng)目,而且我也沒(méi)有對(duì)它寄予什么希望,我周?chē)娜硕冀ㄗh我應(yīng)該趁這個(gè)機(jī)會(huì)拿它好好賺一筆。

就我個(gè)人來(lái)說(shuō),我不太喜歡要拿 2048 這款游戲來(lái)賺錢(qián)的想法,因?yàn)樗吘故腔趧e人的游戲而來(lái)的。

另外一個(gè)讓我無(wú)比苦惱的是,為了專(zhuān)注于 2048 這款游戲,我必須要放棄我的其他項(xiàng)目。那時(shí),我正在做一個(gè) freelance 的項(xiàng)目,而專(zhuān)注于 2048 意味著我必須要停止那個(gè)項(xiàng)目或者是結(jié)束它。

把 2048 做成手機(jī)游戲,那是我不熟悉的一個(gè)領(lǐng)域,即使如此,我也必須要足夠快,這樣才能成為第一款 2048 的手游。這個(gè)想法嚇到我了,因?yàn)檫@會(huì)讓我跳出安逸的生活狀態(tài),而我對(duì)將要面對(duì)的問(wèn)題一無(wú)所知。

這兩個(gè)原因在那幾天里一直折磨著我。我覺(jué)得沒(méi)有任何可以擺脫這種痛苦的途徑,任何我做的決定都會(huì)讓我陷入麻煩。

一方面,我可以抓住這個(gè)機(jī)會(huì)(而且這個(gè)機(jī)會(huì)看起來(lái)會(huì)是一生中唯一的一次)并且獲得回報(bào),代價(jià)是誤導(dǎo)玩家,讓他們分不清到底哪個(gè)游戲才是最初的創(chuàng)意。

另一方面,我可以什么都不做繼續(xù)我的生活。而我知道,事后當(dāng)別人告訴我,我錯(cuò)過(guò)了這個(gè)機(jī)會(huì)的時(shí)候,我一定會(huì)后悔。

最終,我說(shuō)服了自己,我決定什么都不做,因?yàn)槲艺J(rèn)為這是結(jié)束我所面臨的壓力的唯一辦法。我決定讓游戲繼續(xù)開(kāi)源,而且我不會(huì)做手機(jī)版。

在做了那個(gè)決定之后,我立馬就感覺(jué)舒服多了。這使我覺(jué)得我做了一個(gè)正確的決定,我不會(huì)后悔了。

回到原點(diǎn)

在接下來(lái)的幾天里,我依然覺(jué)得輕松。

那段時(shí)間,游戲的手機(jī)版本已經(jīng)出來(lái)了。這些手機(jī)版中很多甚至都沒(méi)有經(jīng)過(guò)我的同意,或者其他參考的游戲的開(kāi)發(fā)者的同意,當(dāng)然其中的一些也指出了是模仿我的游戲。在看了 Threes 開(kāi)發(fā)者們對(duì)此的反應(yīng)后,我覺(jué)得不是由我導(dǎo)致的這一切,真好,當(dāng)初那個(gè)決定果然是正確的。

我周?chē)暮芏嗳瞬⒉贿@么認(rèn)為。我的朋友和家人認(rèn)為我的決定糟糕透頂,但是同時(shí)我認(rèn)為我只是丟掉了一個(gè)我不會(huì)想擁有第二次的機(jī)會(huì)罷了。

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

但是這種感覺(jué)沒(méi)有持續(xù)太長(zhǎng)時(shí)間。幾天之后,那些我認(rèn)為我已經(jīng)成功擺脫掉的問(wèn)題都卷土重來(lái)了,甚至比以前還要嚴(yán)重。我開(kāi)始后悔浪費(fèi)掉了這個(gè)機(jī)會(huì),而且我感覺(jué)的到,我的行為讓我周?chē)娜耸?。更讓我感到糟糕的是,被別人制作的 2048 游戲登上了 AppStore 的榜首。

一線希望

我已經(jīng)被我的狀況搞到發(fā)狂了,但我還是有理由快樂(lè)起來(lái)。

即使有的人不在乎拿別人的勞動(dòng)成果去賺錢(qián),在開(kāi)源社區(qū)依然有很多有創(chuàng)造力的人在乎游戲從何而來(lái)。他們只想讓游戲變得更好,甚至是把它帶到一個(gè)全新的高度。

看到數(shù)不清的各種版本的 2048 游戲的出現(xiàn)讓我感到開(kāi)心多了。我非常愉快的玩各種各樣的版本,開(kāi)心的看著他們能夠創(chuàng)造出什么奇特的游戲。

人們充滿(mǎn)激情的翻版這個(gè)游戲,把它做成各種完全不同的版本。發(fā)現(xiàn)別的人在努力的把你創(chuàng)造的東西發(fā)揚(yáng)光大是一件幸福的事情,特別是你的作品能帶給人們快樂(lè),而你又享受這種感覺(jué)。

改變主意

感謝我的家人和朋友做出的努力,我意識(shí)到,唯一的辦法,讓我不覺(jué)得我失去了一個(gè)機(jī)會(huì)就是去接受它,去創(chuàng)造一個(gè)手機(jī)應(yīng)用。我不會(huì)為了錢(qián)而做這件事情。事實(shí)上,錢(qián)也對(duì)我并不重要。真正重要的是我沒(méi)有浪費(fèi)一個(gè)機(jī)會(huì),無(wú)論最后的結(jié)果是成功或是失敗。

人們會(huì)這么想我呢?在每一次采訪中,我都說(shuō),因?yàn)榈赖碌脑?,我不?huì)從游戲中賺取一分錢(qián)。我認(rèn)為,如果我改變了我的主意,我會(huì)被認(rèn)為是偽君子,而我確實(shí)不想成為那種人。

最難受的是,這個(gè)決定會(huì)讓那些對(duì)我寄予期望的人感到背叛。畢竟,我改變了我的主意,并做了一件我已經(jīng)說(shuō)過(guò)絕對(duì)不做的事情。這讓我難受了好幾天,但是最后讓我接受這一切的是我知道,我不是為了錢(qián)而改變自己的想法。我選擇去做是為了不讓我在接下來(lái)的日子里感到錯(cuò)過(guò)了一個(gè)機(jī)會(huì)。

由于我的決定,那些把我以前說(shuō)的話(huà)放在心上,并且欽佩我所做出的決定的人們很可能會(huì)感到被騙了。這也是我寫(xiě)這篇文章的理由之一:我想給我如此矛盾的選擇做一個(gè)解釋?zhuān)@個(gè)選擇是在什么樣特殊的情況下做出的。

但愿我做這個(gè)決定的前因后果可以解釋我的行為。如果不行,我希望至少能夠幫助別人了解到這一切是怎么來(lái)的。

開(kāi)發(fā)應(yīng)用

我仍然認(rèn)為保持游戲的原樣僅僅只是把它打包成一個(gè)應(yīng)用是不好的。2048 本來(lái)就不是我的游戲。相反,它是屬于那些相信它的無(wú)數(shù)的貢獻(xiàn)者們,我沒(méi)有權(quán)利把它拿來(lái)己用。如果我想要這個(gè)決定看起來(lái)合理,那么我必須認(rèn)真考慮如何創(chuàng)造這個(gè)應(yīng)用。

最后,它花了我一個(gè)整個(gè)月的時(shí)間來(lái)開(kāi)發(fā),從最初的一點(diǎn)點(diǎn)開(kāi)始到最后的細(xì)心打磨,精益求精。

作為一個(gè) web 開(kāi)發(fā)者,而且沒(méi)有任何的手機(jī)開(kāi)發(fā)經(jīng)驗(yàn),我無(wú)法一開(kāi)始就做一個(gè)各方面都正規(guī)的 iOS 或者 Android 應(yīng)用。所以,我決定使用 Phonegap。Phonegap 允許你使用 HTML,CSS 和 JavaScript 像 web 開(kāi)發(fā)一樣來(lái)構(gòu)建一個(gè)手機(jī)應(yīng)用。

使用 Phonegap 的問(wèn)題是,如果你想要構(gòu)建一個(gè)看起來(lái)像樣的應(yīng)用,你就要花很大的功夫。幸運(yùn)的是,我想制作的是一個(gè)游戲,這意味著我不需要非常仔細(xì)的考慮不同操作系統(tǒng)上的界面效果。

我想要這個(gè)應(yīng)用擁有一個(gè)菜單,因?yàn)樵趹?yīng)用啟動(dòng)的時(shí)候直接把玩家放進(jìn)游戲里不是一個(gè)非常好的體驗(yàn)。一個(gè)菜單同樣也可以讓我介紹新的游戲模式,這會(huì)給游戲添彩的。

我想要游戲邏輯是通用的,這樣能夠在創(chuàng)建一個(gè)新的游戲模式時(shí),只需要定義一個(gè)對(duì)象,然后用類(lèi)似「hook」的方式插入到游戲核心里去,并且可以非常容易的修改表現(xiàn)行為。

我最終從頭開(kāi)始一點(diǎn)點(diǎn)的構(gòu)建這個(gè)應(yīng)用的核心。我從開(kāi)源的 2048 版本里保留的唯一的代碼是移動(dòng)圖塊的代碼,這能夠給玩家?guī)?lái)原汁原味的體驗(yàn)。由于這個(gè)應(yīng)用的代碼目前是閉源的(但是我也許會(huì)在未來(lái)把它開(kāi)源了),所以如果我使用了別人貢獻(xiàn)的代碼就不公平了。

代碼庫(kù)最后發(fā)現(xiàn)比 web 版本的要大 3 倍,大部分的代碼都是全新的。

在構(gòu)建這個(gè)應(yīng)用的過(guò)程中,我發(fā)現(xiàn)了很多提高和精簡(jiǎn)代碼和接口的方式。我非常想要把這些優(yōu)化提進(jìn)開(kāi)源的 2048 版本里。我也想要重構(gòu)開(kāi)源 2048 的代碼,使它成為開(kāi)源社區(qū)的一筆財(cái)富。

如果你對(duì)我最后實(shí)現(xiàn)的游戲感興趣的話(huà),你可以下載 iOS 和 Android. 版本進(jìn)行體驗(yàn)。我希望你會(huì)喜歡它。

總結(jié)

但愿這篇文章能夠給你們帶來(lái)關(guān)于 2048 火爆背后的一些有意義的新觀點(diǎn),即使我處理這種狀況的方式也許不是最佳的方式。

我所做出的大部分選擇是基于我自己的感受來(lái)的,并且目的是為了解決自己的問(wèn)題,而非是從項(xiàng)目中獲得什么。

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

轉(zhuǎn)自:極客公園

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 中國(guó)最偉大

    來(lái)自河北 回復(fù)
  2. 這句話(huà)得這么說(shuō)

    來(lái)自河北 回復(fù)
  3. 您好有些問(wèn)題需要了解一下

    來(lái)自河北 回復(fù)