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统计到网站有成千上万的用户。我几乎不敢相信当时发生的一切。

image

虽然它看起来像是在兴趣上的突然飙高,很快就会散去,我还是花了一整天看统计数据。看到总数持续上升,让我激动不已,同时有一些担忧。

我对我在评论里得到的大量积极反馈感到惊奇。每个人都在讨论他们玩这款游戏时根本停不下来,甚至以牺牲他们工作效率为代价。

接下来的几天

我认为对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,你会开发一个移动网站的。

image

Phonegap的问题是如果你想开发一个原生应用,你将面临一条漫长的、困难重重的道路。幸运的是,我在试着开发一款游戏,这意味着我不必严格遵循每个操作系统的视觉样式。

我想给应用加个菜单,是因为当启动应用时把玩家丢给一个游戏,不是一个好的体验。这个菜单也可以让我介绍新的游戏模式,给游戏增值。

我想让游戏逻辑足够通用,通过产生”hook“进核心游戏、修改必需的行为来产生新对象的方式,以包含新的游戏模式。

我没有从头写大量应用程序的代码。和2048的开源版本唯一相同的地方是移动格子的逻辑,以保持相同的原始体验。现在由于app是闭源的(但是我可能在将来公开),如果使用其他人贡献的代码就会不公平。

代码库差不多是web版的3倍,大部分代码是新的。

在开发app时,我找到很多提高代码和接口效率的方法。我真的希望把这些回馈给开源社区,回馈给2048的开源版本。我也想最终重构它的代码,让它成为开源社区更好的东东。

如果你对我最终做的东西感兴趣,你可以下载iOS和Android应用。希望你能喜欢。

image

结论

真的希望,随着2048的流行,本文能够提供一种分享我的经历的、新的、有意义的视角,即使我处理这些情况的方式可能不是最好的。

大多数我在每一步做出的决定都是基于我的感受,都是为了阻止个人问题,而不是从项目本身获取什么。

我希望本文能够稍微解释我是如何、以及为什么做出每个决定的,帮助可能面临同样问题的其他人更好地理解他们或许要面临的东西。

感谢阅读!

文章转载自 开源中国社区[http://www.oschina.net]

相关文章
|
4月前
|
小程序 开发者
关于微信小游戏的备案,你需要的事
关于微信小游戏的备案,你需要的事
90 0
|
Java
如何用Java实现位图转矢量图?
通过前面几篇图片转字符、灰度图的文章介绍之后,接下来我们再来看一个有意思的东西,基于前文的基础,实现位图转矢量图的功能
1234 0
如何用Java实现位图转矢量图?
|
10月前
|
数据可视化 数据库 Python
scRNA分析 | 解决可能的报错,从0开始教你完成细胞通讯分析-cellphoneDB
scRNA分析 | 解决可能的报错,从0开始教你完成细胞通讯分析-cellphoneDB
395 0
|
10月前
|
存储 弹性计算 安全
阿里云沙特合资公司启用两座数据中心
阿里云沙特合资公司启用两座数据中心
261 0
|
11月前
|
人工智能 机器人
AI绘图网站 MJ(Midjourney) 基础讲解+注册教程
AI绘图网站 MJ(Midjourney) 基础讲解+注册教程
2653 0
|
安全 Ubuntu 关系型数据库
Ubuntu下MySQL无法启动和访问的问题解决与修复(一)
Ubuntu下MySQL无法启动和访问的问题解决与修复
464 0
Ubuntu下MySQL无法启动和访问的问题解决与修复(一)
|
存储 负载均衡 Java
基于springboot+vue实现外卖点餐系统
基于springboot+vue实现外卖点餐系统
376 0
基于springboot+vue实现外卖点餐系统
|
边缘计算 开发工具 UED
互联网新半场的流量生态——阿里云定向免流方案
当你正在游戏中肆意厮杀时,在你跟美女主播互动畅聊时,突然收到这样一条短信,你会不会心头一紧呢?80%的调查反馈显示,是的(个别土豪除外)。毕竟5块钱30M流量就能用一个月的时代已经过去了,我们玩的游戏也从XX玛丽、贪吃X等单机弱联网游戏过渡到了吃量狂魔的MMO、MOBA等大型网游之中。
8051 0
|
消息中间件 缓存 NoSQL
如何看待 Dapr、Layotto 这种多运行时架构?
2019 年,微软开源了 Dapr 项目。2021 年,蚂蚁参照 Dapr 思想开源了 Layotto 项目。如今,蚂蚁已落地 Layotto,服务了很多应用。从理想落地到现实的过程中,我们遇到了不少问题,也对项目做了很多改变。回过头再看,如何看待 Dapr、Layotto 这种多运行时架构?我们能从中学到什么?
如何看待 Dapr、Layotto 这种多运行时架构?
|
移动开发 定位技术 API
iOS测试技巧:通过GPX文件修改经纬度信息(模拟iOS设备的位置)
iOS测试技巧:通过GPX文件修改经纬度信息(模拟iOS设备的位置)
647 0
iOS测试技巧:通过GPX文件修改经纬度信息(模拟iOS设备的位置)