手游开发如何选择后端服务

【 玩转 LeanCloud 】开发者经验分享:
作者:赵天泽

作为一个通过 LeanCloud 入门后端开发的小白,一年多的开发历程让我收获满满。多个项目也在 LeanCloud 可靠的服务支撑下取得了不错的发展,其中用户量最大的项目的云引擎每分钟请求量在1.2W 次左右,每日调用存储服务 API 在 300W+ 次。在此过程中,我不仅得到了 LeanCloud 各路技术大侠的指点,得以提高数据可靠性并优化了逻辑执行效率,而且 LeanCloud 的高可用性和对突发异常处理的高效也让我对运维工作和服务稳定性没有丝毫的顾虑;再加上简洁好用、响应及时的工单系统,可以这么说,我的工作由此变得美好惬意。

海外节点和高效的技术支持是 LeanCloud 最大的优势

其实使用 LeanCloud 之前,我一直在做 iOS 应用和手游客户端开发,没有半点后端开发的经验,也未曾碰过 JavaScript,直到后来参与过几款网游的开发,才对游戏后端大概的架构和接口设计有所了解。接着我们的项目需要为单机游戏增加网络存档和每日任务分发功能,可我们一位后端程序员也没有,而且也不具备从头搭建和部署一套可靠的后台服务的能力,所以可行的方案就是找到一套现成的第三方服务。当时国内国外也有不少的后端服务提供商,最终敲定 LeanCloud 主要是考虑到:

  1. 成熟稳定的海外节点和配套服务。我们的游戏主要是在海外推广,虽然海外有不少专门针对游戏的后端云服务,但是实际使用下来发现它们的开发自由度并不高,达不到我们的标准。

  2. 与技术支持人员的沟通效率。大多的海外服务商只能通过邮件或者论坛沟通,效率十分低下,真要是遇到了问题迟迟不能解决就会非常麻烦。而 LeanCloud 技术支持的响应非常之快,即使最初大家只在 QQ 群里沟通还没有使用工单系统,所有回复都不拖沓,使用者当然高兴啦。

  3. 清晰详实的技术文档。LeanCloud 提供的文档相比其他服务商也更加详实,分类比较清晰,非常适合入门学习。

另外,我们还特地调研了 LeanCloud 的云引擎服务,因为其提供完整简便的后台部署途径和工具,实现线上环境的一键部署,又能让我们基于 express 任性地开发后台逻辑,所以我们确信 LeanCloud 是最最棒的选择。

REST API + 云函数是万金油

为实现用户游戏数据存储和每日任务分发,我们最先用了存储服务和云引擎。不过我们并没有用 LeanCloud 提供的 SDK 来直接调用存储服务,而是选择用 LeanCloud REST API 调用云引擎里面的云函数,然后通过云函数调用存储服务来实现相应的逻辑。这样做的原因是我们的游戏主要是使用 lua + C++ 开发,LeanCloud 的 C++ SDK 没有持续维护,使用起来会有潜在风险;而如果使用 iOS 和 Android SDK,又得把需要使用的接口暴露给脚本层,这就多了一道不必要的程序。基于以往开发网游的经验,我们更倾向于按功能模块向前端提供相关的 API,让前端通过 HTTP 协议将数据 post 给服务器,服务器处理完后返回前端需要更新的那部分数据就好。

实践下来我们发现这样做的确有优势,把数据查询、处理和存储的逻辑放在后端进行,这样业务的调整可以变得非常灵活。比如在用户量起来之后,发现每日任务表会有大量的读写操作,根据 LeanCloud 技术支持的建议,我们将一些热数据放到云引擎的缓存服务 LeanCache 中使用,也就是先去缓存里面查数据,没有的话再去存储服务里面查,这样就有效地降低了查询的时间,提高了业务处理的效率,而前端代码啥都不用变。

云缓存速度快得没商量

要单独说一下云缓存 LeanCache。它实质上就是 Redis,对于改善和提升我们项目性能功不可没。当初我们需要做一个全区排行榜,正好 LeanCache 的官方 Demo 中提供了排行榜的示例代码(帮我补上了什么是原子性这一课,必须膜拜),于是我们在此基础上实现了自己的排行榜功能,并把它放在 npm 上方便大家取用「leaderboard-promise」。接着我们还陆续在云缓存中实现了热数据缓存、订单系统、token 验证系统等等功能,充分去利用 Redis 的优势来解决业务中可能引起性能瓶颈的情况。

跨时区定时推送通知

我们的用户来自全球各地,有不同的时区,我们需要让所有用户在当地时间的下午 7 点收到一条通知。通过云引擎和消息推送服务,我们只需要在每个 installation 对象下新增一个用户的时区数据,然后在云引擎中设置一个每个整点触发的定时任务,当任务触发时在推送条件里面设置对应的时区信息,这样就达到了我们的目的。另外通过云引擎实现向特定用户群推送也非常方便。

实时对战玩法 500 行代码搞定

最近我们的新项目希望能够尽快实现可靠的房间制实时对战玩法,以便能够快速投放到市场去验证玩法是否受到玩家欢迎。如果在用户认可之前就耗时耗力去开发一套实时对战框架显然不太明智。于是我们向 LeanCloud 求助,竟然很快地得到了一套基于实时通信模块的开发建议,这样通过云引擎搭配实时通信模块,用了不到 500 行代码就把一套房间匹配制的实时对战框架搭建完毕,后续只需要集合项目中游戏的实际玩法就可以很快部署上线了。原以为要洪荒之力,却只费了吹灰之力,幸福感那是瞬间爆棚。

技术课程直播大长见识

我们要特别赞美一下 LeanCloud 一直坚持在做的直播课程系列。所有课程不仅涉及到了 LeanCloud 各个功能的基本使用介绍,还讲解了后端开发中常常需要去面对的问题,像如何对压力评估和优化、如何设计业务流程来保证数据的一致性、如何通过权限控制保障数据的安全。这些内容对于即使不使用 LeanCloud 服务的后端开发人员都是十分有用的。

最后,我想把 LeanCloud 推荐给两类人:

  • 想学习后端开发,但是却被复杂的云服务器采购、架设和配置吓住的同学。 LeanCloud 有非常高效的开发配套工具,可以快速在本地和云端实现需要的业务逻辑。看着自己的项目上线运转起来的成就感一定会激励你继续深入的学习,以 LeanCloud 为起点,慢慢的完善的后端开发知识体系。

  • 另外一种就是虽然有足够的后端开发经验、但目前着手于初创项目并没有完善的运维团队支持的同学。众所周知,要建立起一套完善的运维保障体系是一件需要投入不少资源的事情,初创项目应该把更多的精力投入到实际的业务逻辑开发上面,运维这样的麻烦事儿就完全可以交给 LeanCloud 吧。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,222评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,455评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,720评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,568评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,696评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,879评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,028评论 3 409
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,773评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,220评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,550评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,697评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,360评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,002评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,782评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,010评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,433评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,587评论 2 350

推荐阅读更多精彩内容