专栏名称: OSC开源社区
OSChina 开源中国 官方微信账号
目录
相关文章推荐
程序猿  ·  Linux用Rust受阻?Android工程 ... ·  昨天  
OSC开源社区  ·  Linux内核开发者Serge Semin的告别信 ·  昨天  
OSC开源社区  ·  Linux内核将删除3万多行代码——其开发者 ... ·  3 天前  
码农翻身  ·  离谱,一边在裁员,一边在高薪招人。 ·  4 天前  
51好读  ›  专栏  ›  OSC开源社区

曾风靡全球的“现象级”开源游戏——「2048」问世10周年,原作者刚刚发布了特别纪念版更新

OSC开源社区  · 公众号  · 程序员  · 2024-10-25 16:54

正文

OSCHINA

↑点击蓝字 关注我们

本周六,北京源创会

探索高性能计算在大模型领域的发展
get大模型推理优化新技能

↓欢迎扫码报名↓



小编刚刚在摸鱼间隙看到了一条瞬间让我陷入深深回忆的内容。
曾风靡全球的现象级休闲游戏——「2048」原作者 Gabriele Cirulli 在 Hacker News 上发布动态称,他花了足足一年为「2048」开发了全新的 10 周年纪念版,还特意选择在 10 月 24 日这天上线。
2048 今年已经满 10 岁了,我构建了一个更新版本来庆祝 (play2048.co)。
大家好!我叫加布里埃莱·奇鲁利,我是 2048 的原始创作者。
十年前,有人在 HN 上发布了 2048,突然间,每个人都开始玩这个游戏。
那时,我写了一点关于那几周经历的描述。
即使过了这么多年的时光,那次经历对我来说仍然感觉有些不真实。
我深深地感激所有与游戏产生联系的人,无论是以小规模还是大规模的方式,以及在过程中分享的故事。有些人表达了他们正在经历困难时期,并在游戏中找到了哪怕是很小的安慰。
去年初,随着游戏开始显露出其年代感,我希望能为它注入新的活力。去年十月我辞去了工作,全身心投入到了 2048 的开发中,用了一年的时间构建了这个新版本(原版只用了 5 天!)。
我想要向 2048 的优秀之处致敬,同时对其进行现代化改造和优化体验。
增加增强道具的想法是在 Prime Gaming 和我连接后出现的,以看看我们是否能为他们的成员创建一个特殊的 2048 版本,包含一些独家额外功能。其中一些增强道具被加入到了主游戏中,但仍然有一个“经典模式”,就像原始版本一样,供那些更喜欢硬核体验的人使用。
此外,旧网站也仍然在线。
2048 现在是我的全职工作,我对它不断改进的方式感到兴奋。我想与这一切开始的地方分享这次更新,这既是为了怀旧,也是为了听听你们的想法和反馈!
— 加布里埃尔

10 周年纪念版的「2048」 界面如下所示,可通过浏览器、手机或平板电脑运行,各位有兴趣请访问下方链接体验:
https://play2048.co/
Gabriele 称新版「2048」完全进行了重写,目前尚未开源,不过他介绍了新版「2048」使用的开源项目,相信各位前端工程师对下面这些项目不会感到陌生。



2014 年,一款叫《2048》的游戏火遍全球。这款不断组合数字的休闲游戏,靠单手就能够操作,规则简单又非常容易上瘾,一下子抓住了大众的娱乐需求。
短短几天内这款游戏就收获了 5 百万的用户,总用户更超过 2300 万。就凭这个数据成绩,无论是当时还是现在,它都称得上是一款“现象级”游戏。
但当时许多人并不知道,他们玩到的《2048》其实是山寨版本,而原版的《2048》其实也“抄袭”了其他作品。
当时年仅 19 岁的加布里埃·戚鲁利(Gabriele Cirulli)用一个周末写好了《2048》。
他的主要目的是测试自己能不能独立制作一款游戏,所以没有考虑太多,参照当时自己喜欢玩的一款游戏《1024》,制作了一个免费开源的网页版本。
Gabriele 表示,“在开发《2048》的时候,我决定开源《2048》的源代码,因为《2048》借鉴了太多别人的游戏创意。我曾经考虑过开发移动版的《2048》,但是我对手机游戏开发没有经验,而且利用《2048》获利是对那些构思出游戏创意的人的不尊重。
Gabriele 将源代码托管在 GitHub,采用 MIT 协议开源。在《2048》的官方页面上显示,《2048》基于《1024!》开发,游戏理念来自于《Threes!》。与《1024!》对《Threes!》的基本照搬不同,《2048》对《1024!》的美术风格和游戏玩法进行了一些改良。

https://github.com/gabrielecirulli/2048

作为《2048》的制作者,Gabriele 当时被媒体贴上“19岁就创作红遍网络的游戏”的标签,成为了小有名气的网红人物。
名气、流量都有了,接下来财富也应该不远了。他的邮箱很快被商业合作的请求塞满了,还有人希望能获得授权开发游戏的移动版。
但聚光灯之下,年轻的 Gabriele 中二病突发,对着媒体大义凛然的说:“我不会用《2048》盈利,也不会移植手机平台。
这可能是他这辈子最想收回的话。
Gabriele 不想放弃自己的主业而去追逐热度,但随后市面上出现的山寨《2048》,很快让他改变了想法。
因为《2048》是一款开源软件,并且采用了最宽松、对商业使用非常友好的 MIT 协议,不少人直接照搬了他的游戏,然后上架到各大手机商店里。结果每个都有不错的下载量。之后各种抄袭、山寨版本类似玩法的游戏越来越多,几乎霸占了App Store。 
于此同时,公认的正牌作者 Gabriele 却只能呆在家里,看着其他人拿着本应该是自己的钱,取得着本应该是自己的成功。
对了,Gabriele 此时写了一篇长文《2048, success and me》,在这篇文章里,Gabriele 讲述了他开发《2048》的完整过程。


全文如下:

过去的几周对我而言是一次狂野之旅。在 3 月份,我为了娱乐开发了一款名叫 2048 的游戏,在 GitHub 上作为开源软件发布了。

在接下来几周里,它出乎意料地成为世界级的成功,它已经被 2 千 3 百万用户玩过了。

这段时间已经成为我生活当中最令人激动的一部分,也是压力最大的。知道数百万人在玩,且享受你开发的东西是一种非常棒的感受。

对于很多人(包括我)来说,它给了你继续创造新发明的动力。同时,当你在世界出名时,你不得不面对一整套新的挑战。你得到的关注和人们开始期待的东西会变得巨大,如果你从来不必处理它们的话。

本文,我将分享这种体验的情况,以及在个人和专业层次上,我是如何处理的。我也要解释引导我改变去开发这个游戏移动版的历程。

真的很长,不过我希望本文能提供一些有意义的观点,希望对可能面对相似问题的人有所帮助。

如何开始的

我在一个周末开发 2048,纯为娱乐。我痴迷于两款其它游戏,教 1024! 和 2048。我都爱玩,我想创造我自己的版本,有不同的视觉样式和更快速的动画,只是为了看看我能否做到。当时,我不知道 Threes,所有其它游戏(包括 2048)都起源于它。

Asher Vollmer 和 Greg Wohlwend,它的发明者,已经在里面倾注了大量时间和努力。他们最近就他们游戏体验克隆版的流行程度表达了他们的沮丧。我理解他们的感受,我对他们投入到开发 Threes 中的大量工作和热爱表示巨大的感激。2048 感激它的存在。

在开发 2048 时,我决定,我应当只是放在 GitHub 上搞定。我不想保持私密,既然它与其他人的作品有着高度相似。

一旦我完成这款游戏,我就发布在了 GitHub Pages 上,并发布到了 Designer News,仅仅对获取视觉上的反馈有兴趣。

爆炸

第二天,我收到了朋友发来的消息,他告诉我去看看 Hacker News 首页。有人在那里发布了 2048,它排到了第一名。Google Analytics 统计到网站有成千上万的用户。我几乎不敢相信当时发生的一切。

虽然它看起来像是在兴趣上的突然飙高,很快就会散去,我还是花了一整天看统计数据。看到总数持续上升,让我激动不已,同时有一些担忧。
我对我在评论里得到的大量积极反馈感到惊奇。每个人都在讨论他们玩这款游戏时根本停不下来,甚至以牺牲他们工作效率为代价。

接下来的几天

我认为对 2048 的兴趣很快要消退了,不过几天后它仍然没有停下来。事实上,它恰恰变得更大了。从某种程度上看,2048 已经从 Hacker News 读者之间的热门话题演变成了在 Twitter、Facebook,甚至线下的讨论。
看到它变成了一个世界范围内的现象,我感到了一点点不安。
同时,随着对游戏感兴趣的人们发来的邮件,我的收件箱开始膨胀,还有开发者索要把 app 放到手机并从中获利的授权。
我面对的首要问题是考虑清楚我应当围绕 2048 做什么,以及我应该如何答复那些邮件。虽然 2048 对我来说,只是一个小的业余项目,我没有特别的期望,我周围的人建议我应当抓住用它赚钱的机会。
就个人讲,既然 2048 差不多是建立在其它游戏上的,我对于从这个概念获利的想法不太感冒。
还给我带来巨大压力的原因是,知道那以后,为了集中精力在 2048 上,我不得不放弃我的所有其它承诺。那时候,我正忙于一个自由职业者项目,集中在 2048 意味着我不得不暂停该项目或者完全终止。
我不得不把游戏移植到移动端,一个我没有经验的领域,足够快地完成是第一位的。做移动的前景让我心有余悸,因为那是从我的习惯状态迈出了一大步,而不知道前面是什么。
在那段日子,这两种因素给了我很多压力。我感到好像没有出路了,我可以做出的每一个决定只会带来更多麻烦。
一方面,我能够拥抱机会(这像是 “一生只有一次‘的交易),获取回报,代价是对原创概念背后的人们的不公正。
另一方面,我什么也不做,继续我的生活。我知道,当将来有人说我错失了我的机会,我会遗憾。
最终,我说服我自己,我应当什么也不做,因为我认为那是结束我遭受压力的唯一方法。我决定这款游戏保持开源,我不会把它移植到移动端。
在做出决定后,我瞬间开始感觉好多了。这让我觉得,我在做着正确的事情,我不会对此遗憾。

回到原地

在接下来的几天里,我感觉好多了。
当时,该游戏的第一个移动版本开始出现了。它们当中的一些版本甚至没有归功于我或他们依据的其它游戏,一些游戏完全模仿我的。在看了 Threes 背后的人们反应之后,我认为不要让这纠缠着我一直是正确的选择。
然而,我身边的很多人不这样认为。我朋友和父母认为,我的选择是值得尊重的,但同时我很可能放弃了我不会有第二次的机会。
最初,他们的意见没有影响到我。我知道选择这条路,可以把我从以前感受到的压力中解救出来,我认为这比金钱和名气重要得多。
然而,这种感受没有持续多长时间。几天以后,我认为我已经克服的所有这些问题比以前更加猛烈地砸到了我身上。
我开始遗憾“浪费”了这次机会,我感觉周围的人们对我的行动非常失望。让我感觉更糟的是看到了其他人开发的一款 2048 app 在 APP Store 的排行榜排到了第一名。

一线曙光

由于我的处境,我快发狂了,但是我也有理由开心。
即使有人不在意拿走别人的成果并从中获利,在开源社区还是有很多创新精神的人们去关心优化不足的地方。他们只是想拿走并使之变得更好,或者甚至把它完全带到新的水平。
看到已经出现的、不计其数的 2048 衍生版让我极为开心。我带着极大的乐趣把玩它们当中的每一款,看到其它版本的推出,感觉是非常棒的。
人们在调整游戏上投入了大量创新,完全将其塑造成了新的事物。知道其他人把时间花在你已经开发的东西上面,是非常得意的,尤其是最激励你的地方在于只是让人们因你的作品而开心。

改变我的主意

感谢我父母和朋友的帮助,我意识到,排除一切、不再感觉我错失了一次机会的唯一方法就是拥抱它、并推出一个 app。虽然我不是为了盈利才做的。事实上,那不是让我在意的东东。所有在意的地方就是搞清楚我没有浪费一次机会,不管我将来成功还是失败。
那么,人们会如何看待我呢?在每一次采访中,我说过,出于道德上的原因,我不会试着从中获利。我想如果我改变了主意,我将被看做一个伪君子,我真的不想成为那种人。
这个决定最困难的地方是,我觉得这是对其他人对我期望的背叛。毕竟,我将改变主意并去做我公开反对过的事情。这花了我几天时间,但是最终导致我接受的原因是,改变的初衷不是受到贪婪驱使的。我选择这样做是为了在余生里,把我从错失良机的遗憾中拯救出来。
由于我的选择,那些把问题放在心里并感激我之前的立场的人们,很可能认为被欺骗了。这是我为什么选择写下这篇文章的原因之一:我想就这项有争议的决定给出我的视角,一种在极端情况下强制执行的决定。
希望做出这个决定的上下文能够足以解释我的行为。如果不能,我希望至少以某种方式帮助人们理解事情的来龙去脉。

开发程序

我一直认为只是保持游戏原来的样子、打包成一个应用会是一件糟糕的事情。2048 不再是真正意义上的、属于我的游戏。它属于坚信它的不计其数的贡献者,我没有权利用它谋私。如果我想让我的决定感到合理,我将不得不投入相当多的努力到创造这个应用上。
最终我花了整整一个月从零开始开发这款应用,将其带入一种全新状态,以激励其存在。
做为一名 web 开发者,没有移动开发技能,我还不能开始为 iOS 和 Android 开发应用,也不能期待创造出得体的东西。鉴于此,我决定使用 Phonegap。
Phonegap 让你用同样的方式来使用 HTML、CSS 和 JavaScript,你会开发一个移动网站的。
Phonegap 的问题是如果你想开发一个原生应用,你将面临一条漫长的、困难重重的道路。幸运的是,我在试着开发一款游戏,这意味着我不必严格遵循每个操作系统的视觉样式。
我想给应用加个菜单,是因为当启动应用时把玩家丢给一个游戏,不是一个好的体验。这个菜单也可以让我介绍新的游戏模式,给游戏增值。
我想让游戏逻辑足够通用,通过产生”hook“进核心游戏、修改必需的行为来产生新对象的方式,以包含新的游戏模式。
我没有从头写大量应用程序的代码。和 2048 的开源版本唯一相同的地方是移动格子的逻辑,以保持相同的原始体验。现在由于 app 是闭源的(但是我可能在将来公开),如果使用其他人贡献的代码就会不公平。
代码库差不多是 web 版的 3 倍,大部分代码是新的。
在开发 app 时,我找到很多提高代码和接口效率的方法。我真的希望把这些回馈给开源社区,回馈给 2048 的开源版本。我也想最终重构它的代码,让它成为开源社区更好的东东。
如果你对我最终做的东西感兴趣,你可以下载 iOS 和 Android 应用。希望你能喜欢。

结论

真的希望,随着 2048 的流行,本文能够提供一种分享我的经历的、新的、有意义的视角,即使我处理这些情况的方式可能不是最好的。
大多数我在每一步做出的决定都是基于我的感受,都是为了阻止个人问题,而不是从项目本身获取什么。
我希望本文能够稍微解释我是如何、以及为什么做出每个决定的,帮助可能面临同样问题的其他人更好地理解他们或许要面临的东西。
感谢阅读!
原文地址:
http://gabrielecirulli.com/articles/2048-success-and-me


相关来源

https://news.ycombinator.com/item?id=41934746

https://play2048.co/about

END


热门文章

影视飓风那个视频全网下架!还得看看开发者来讲讲视频平台整体技术
神级开源“无头”组件库:已收获7万多star、在国外爆火,前端开发者一定要试试
Electron与Tauri:你选择哪款跨平台框架?
近2万star的开源实时系统监控工具btop:高颜值、支持Linux和Mac,用了就再也回不去了!
微信工程师:原生鸿蒙是一套新的技术框架,编程语言是独特的ArkTS语言





分享在看点赞~Orz