借助 Flutter 跨平台特性连接 10 亿玩家 | Flutter 开发者故事

由光子工作室及 Krafton 联合研发的 PUBG MOBILE 依然保持着极高的人气,目前全球有 10 亿玩家,日活跃 5,000 万 (不包括中国大陆地区)。从游戏策划伊始,团队就打算为各个平台的玩家们打造功能完善的社区模块。
在 PUBG MOBILE 中,玩家们被空投到一个荒岛上,孤身奋战或与队友合作,努力与对手周旋,幸存到最后赢得胜利。想要在这个游戏里 "吃鸡",玩家的敏捷反应和大局意识都很重要——而对负责开发游戏内社区模块的团队来说,这两点正好也是他们成功的秘诀。
△ PUBG MOBILE 如何连接 10 亿玩家 | Flutter 开发者故事
全平台一盘棋,大局意识很重要
负责 PUBG MOBILE 游戏社区模块的团队规模并不是很大,但服务的玩家群体却十分庞大,这也让团队对任何能提高效率的开发技术都十分敏感。2020 年下半年,当团队着手为社区模块寻找解决方案时,就在着眼寻找合适的 跨平台解决方案: 他们需要让社区模块能很方便地覆盖 Android 和 iOS 平台。
我们测试的很多解决方案都存在这样那样的限制,但这些限制在 Flutter 中则不存在: 即便在引入了复杂的业务逻辑后,Flutter 的性能表现仍然十分优秀。
胡明春,PUBG MOBILE 开发团队高级工程师

△ Flutter 打造的社区模块一直能保持稳定的帧率
团队选择 Flutter 的另一个原因是它能很方便地 和现有的游戏进行整合。这也让社区模块在开发层面不至于和其他模块 "高度耦合",让团队能专注打造社区功能本身。
Flutter 可以很轻松地和现有的游戏进行整合,基本上照着官方文档操作就行,用不了多少时间。
张海鹏,PUBG MOBILE 开发团队高级工程师
大幅降低代码量,敏捷开发很重要
"一次编写,到处运行" 是 Flutter 跨平台特性带来的 "福利" 之一。除去一些平台特定的功能外,团队可以只用一个代码库就覆盖 Android 和 iOS 两个平台。这样做的另一个好处是能确保平台之间功能的一致性,在高强度迭代时这个好处更是非常重要。
自从采用 Flutter 后,我们发现可以将前端所需的开发工作量减少 80%!
程建,PUBG MOBILE 开发团队高级工程师

△ 一次编写,到处运行
如果正在阅读本文的读者还没有体验过 Flutter 带来的这些优势,那也许还会心存顾虑: Flutter 好学吗?
正好我们也能从团队的反馈中找到答案:
我们在 Java、Kotlin 和 Objective-C 方面有着坚实的基础,这让 Dart 语言的学习成本很低。
张海鹏,PUBG MOBILE 开发团队高级工程师
用跨平台连接更多玩家
游戏中的社区模块一直很受用户欢迎。统计数据表明,每月有近千万玩家使用社区模块在游戏中分享屏幕录像等内容。
汪增灏,PUBG MOBILE 开发团队高级产品经理

△ PUBG MOBILE 丰富的社区功能由 Flutter 打造
展示战利品、时装、精彩录屏……玩家们一次次精彩的对抗,也是一段段难忘的时光。社区功能的存在,是让这些时光得以留存,让玩家们彼此相连,让快乐从一个人传递给更多的人。
节省代码、平台统一、性能优秀、易于上手,则是 Flutter 带给开发者们的快乐。跨平台的游戏社区体验,毫无疑问是 PUBG MOBILE 游戏在成功路上的重要一环。
"用上 Flutter,今晚吃鸡!"
借助 Flutter 跨平台特性连接 10 亿玩家 | Flutter 开发者故事的更多相关文章
- 转载:四两拨千斤:借助Spark GraphX将QQ千亿关系链计算提速20倍
四两拨千斤:借助Spark GraphX将QQ千亿关系链计算提速20倍 时间 2016-07-22 16:57:00 炼数成金 相似文章 (5) 原文 http://www.dataguru.cn/ ...
- 转 DataTorrent 1.0每秒处理超过10亿个实时事件
DataTorrent是一个实时的流式处理和分析平台,它每秒可以处理超过10亿个实时事件. 与Twitter平均每秒大约6000条微博相比,最近发布的DataTorrent 1.0似乎已经超出了需求, ...
- 看好腾讯,鄙视百度(腾讯的核心竞争力,不是超过10亿的QQ的注册用户,也不是某一项产品、技术方面优势,而是“耐心”:懂得在合适的时间推出合适的产品。”)
百度,自始至终只是一个低劣的模仿者,且一切向前看,完全违背了一个搜索引擎所应该遵循的基本原则.谁给的钱多就能搜着谁,这跟贩毒有什么区别? 腾讯也在模仿别人,但是,它是模仿然后超越.在中国互联网发展历史 ...
- 【转帖】影响超 10 亿设备,博通和 Cypress 芯片曝惊天漏洞,苹果、华为、三星等中招
影响超 10 亿设备,博通和 Cypress 芯片曝惊天漏洞,苹果.华为.三星等中招 https://www.infoq.cn/article/lpNEQGrxZL22gHDPBE2z 26 ...
- 这么设计,Redis 10亿数据量只需要100MB内存
本文主要和大家分享一下redis的高级特性:bit位操作. 本文redis试验代码基于如下环境: 操作系统:Mac OS 64位 版本:Redis 5.0.7 64 bit 运行模式:standalo ...
- 使用HAProxy、PHP、Redis和MySQL支撑每周10亿请求
在公司的发展中,保证服务器的可扩展性对于扩大企业的市场需要具有重要作用,因此,这对架构师提出了一定的要求.Octivi联合创始人兼软件架构师Antoni Orfin将向你介绍一个非常简单的架构,使用H ...
- 转 使用HAProxy,PHPRedis,和MySQL支撑10亿请求每周架构细节
[编者按]在公司的发展中,保证服务器的可扩展性对于扩大企业的市场需要具有重要作用,因此,这对架构师提出了一定的要求.Octivi联合创始人兼软件架构师Antoni Orfin将向你介绍一个非常简单的架 ...
- “军装照”背后——天天P图如何应对10亿流量的后台承载。
WeTest 导读 天天P图"军装照"活动交出了一份10亿浏览量的答卷,一时间刷屏朋友圈,看到这幕,是不是特别想复制一个如此成功的H5?不过本文不教你如何做一个爆款H5,而是介绍天 ...
- 海量数据处理 - 10亿个数中找出最大的10000个数(top K问题)
前两天面试3面学长问我的这个问题(想说TEG的3个面试学长都是好和蔼,希望能完成最后一面,各方面原因造成我无比想去鹅场的心已经按捺不住了),这个问题还是建立最小堆比较好一些. 先拿10000个数建堆, ...
- 安装win10操作系统的设备将要突破10亿台
导读 该公司最初的目标是在发布后的三年内在 10 亿台设备上运行 Windows 10. 据微软高管梅赫迪 (Yusuf Mehdi) 周四在 Twitter 上透露,目前已经有 8 亿多台设备安装了 ...
随机推荐
- 扫雷(哈希+bfs)
扫雷 题目描述: 小明最近迷上了一款名为<扫雷>的游戏. 其中有一个关卡的任务如下: 在一个二维平面上放置着 n 个炸雷,第 i 个炸雷 (x\(_i\),y\(_i\),r\(_i\)) ...
- onps栈移植说明(3)——添加网卡
4. 添加网卡 移植的最后一步就是编写网卡驱动然后将网卡添加到协议栈.网卡驱动其本质上完成的是数据链路层的工作,在整个通讯链路上处于通讯枢纽位置,通讯报文的发送和接收均由其实际完成.针对网卡部分的移植 ...
- Installing harbor-2.6.2 on openEuler
一.Installing harbor-2.6.2 on openEuler 1 地址 https://goharbor.io https://github.com/goharbor/harbor 2 ...
- jdk线程池ThreadPoolExecutor优雅停止原理解析(自己动手实现线程池)(二)
jdk线程池工作原理解析(二) 本篇博客是jdk线程池ThreadPoolExecutor工作原理解析系列博客的第二篇,在第一篇博客中从源码层面分析了ThreadPoolExecutor在RUNNIN ...
- 关于Go你不得不知道的小技巧
目录 Go 箴言 Go 之禅 代码 使用 go fmt 格式化 多个 if 语句可以折叠成 switch 用 chan struct{} 来传递信号, chan bool 表达的不够清楚 30 * t ...
- AR手势识别交互,让应用更加“得心应手”
现如今, AR技术不断发展,人们不再满足于运用键盘.鼠标等简单器械来实现传统的人机交互模式.随着用户接触机器的多样化,繁琐的操作不但对一些用户有门槛,而且还增加其学习成本:如果能用自然且符合日常生活习 ...
- c++ *和& 指针,取内容,别名,取地址
*前面有类型符时为定义指针 &前面有类型符时为定义引用变量(别名) (int ,float,long,double,char等 ) *p:定义xx类型的指针 int *p 整型指针,char ...
- 关于vlc"编解码器暂不支持: VLC 无法解码格式“MIDI” (MIDI Audio)"解决
解决办法 sudo apt install vlc-plugin-fluidsynth
- Java开发学习(四十五)----MyBatisPlus查询语句之映射匹配兼容性
1.映射匹配兼容性 我们已经能从表中查询出数据,并将数据封装到模型类中,这整个过程涉及到一张表和一个模型类: 之所以数据能够成功的从表中获取并封装到模型对象中,原因是表的字段列名和模型类的属性名一样. ...
- TypeScript 之 Type
Type 描述:全称叫做 '类型别名',为类型字面量提供名称.比 Interface 支持更丰富的类型系统特性. Type 与 Interface 区别 Interface 只能描述对象的形状,Typ ...