一份值得收藏的游戏出海技术架构与实战经验
前言
对于中国游戏产业来说,2017年以来的经历可谓是“跌宕起伏”。在平台化及全球服的大趋势下,游戏玩家们的付费意识有了明显提升,受益于此,国内涌现出一批独立游戏开发者和工作室。但在网易、腾讯等国内游戏巨头的笼罩之下,这些游戏厂商纷纷将目光转向海外市场。
无论是传统端游、页游平台,还是已成为主流的手游平台,在内容和玩法之外,都越来越重视游戏体验本身。7月21日,由UCloud举办的“UCan下午茶”沙龙成都站,UCloud架构总监周浩城等五位嘉宾作为游戏全球化先行者代表,从游戏的云端部署、技术架构、玩法设计、市场观察等角度,分享了在游戏全球化过程中的实践与思考。
全球化背景下,出海业务的云端实践
海外情况错综复杂,产品全球化对于底层IT架构提出了新的严峻挑战。UCloud于2012年成立,凭借其覆盖众多国家和地区的海外节点与骨干网络,以及稳定可靠的底层技术架构,帮助数百企业成功出海。
在这个过程中,UCloud研发团队也遇到了很多挑战。来自UCloud互动娱乐事业部的架构总监周浩城结合自身经验,分享了在为用户提供出海服务时,遇到的常见挑战和解决方案。
◆ 挑战一
海外运营商及运营情况复杂,会出现突然被上联运营商限带宽,却没有收到任何反馈的情况,当遇到流量洪峰时,网络将严重拥堵。
解决方案:
采用模拟实际攻击的方式,来测试从各个国家、地区的各个线路到数据中心整条链路是否顺畅。通过测试,可以知道海外的上联线路是否被限了,整个机房的安全检测、封堵、清洗流程是否正常工作等,然后针对具体问题定制解决方案;
增加运营商合作渠道,当某一运营商出现问题时,切换数据中心的网络服务,在这个迁移过程中,需要做到用户无感知。
◆ 挑战二
封堵攻击流量,凌晨联系不到运营商。对于一些海外运营商尤其是基建比较弱的地方,其服务并非24小时在线,当凌晨时分网络出现问题时,基本上无法及时联系到工作人员对接处理。
解决方案:
让运营商提供自动封堵的接口,一旦出现攻击,UCloud可以自动调度骨干网上封堵接口,在骨干网上拦截攻击流量。
◆ 挑战三
大网路由选路会出现次优路径,如特殊情况下,台湾到香港公网延迟突然从20ms飙升到80ms。
解决方案:
业务覆盖,根据用户业务建立数据中心的覆盖范围,通过天眼监控系统监控该范围内的网络访问、丢包情况等,如高雄某个时刻出现了丢包问题,系统会自动抓监控点到数据中心MTR的图,用户可以通过MTR查看丢包节点。
◆ 挑战四
部分国际运营商区分国内路由和国际流量,如韩国、泰国、印尼的国际带宽和国内带宽是分开算的。
解决方案:
针对这种情况,UCloud研发了一个具有深度包检测功能的工具ShockWave,它可以根据选取的IP地址,按照协议,分析出流量/包量的趋势,并按照运营商、地域对流量进行统计并支持排序,获取每个国家、每个运营商的数据后,可为今后的流量采购建立数据基础。
◆ 挑战五
海外回国需要单独引入回国线路。
解决方案:
扩建数据中心,并将全球的数据中心全部联网。下图为UCloud全球骨干网示意图,绿色代表已接入的骨干网,红色代表计划建设的可用区,通过供应商提供的多条海缆,建立自主可控的网络,保证数据中心的连接不会出现丢包等情况。
除了上述策略,UCloud基于出海需求,还研发出了高速通道UDPN、全球动态加速PathX、SSH加速服务GlobalSSH等多种解决方案。
聊聊小游戏这个“风口”
微信小游戏、QQ轻游戏和Facebook Instant Game 已经成为游戏行业的新“风口”。“海盗来了”在微信小游戏上已实现了月流水过亿。武汉镜像科技技术总监曾嵘分享了镜像团队在立项、开发、上线过程中的实战经验。
目前,市面上常见的小游戏类型大概分为四种:微信小游戏、Facebook Instant Game、QQ玩一玩以及Google Play Instant。国产主流HTML5引擎对微信小游戏、 QQ玩一玩以及Facebook Instant Game这三种类型都具有较好的支持,并且支持IDE 、JavaScript/TypeScript及跨平台开发。
与其它技术采用HTML5技术不同的是,Google依然使用APK作为发行包,采用 JAVA/Kotlin作为开发语言,它提供更高的APK大小限制(10MB)。Google Play Instant还支持可执行代码和游戏资产的渐进式下载,并允许开发人员使用NDK 和游戏引擎与现有工具链结合使用。
在性能上,微信小游戏使用修改过的渲染引擎和JS引擎,JavaScript引擎执行性能低于原生HTML5浏览器,性能较差;QQ玩一玩是经过渲染的引擎,QQ轻游戏的整个质量比微信好很多,但稳定性较差;Facebook Instant Game基于HTML5开发,它需要在网页上呈现,性能非常好,基本上没有卡顿;Google Play Instant使用的是APK机制,性能也非常好。大家可以根据自身的游戏定位和性能需求,来选择合适的游戏类型。
目前,小游戏市场已经过了野蛮的增长阶段,市面上有大量低质量与同质化严重的小游戏,同时由于微信大力打压诱导分享机制,因此诱导分享如今也无法对游戏运营起到太大作用。所以,在游戏立项上,曾嵘基于自身开发经验给出了一些实用、有效的建议:
微信封锁了好友链,游戏需要建立自己的好友链。微信虽然能够看到好友榜的信息,但那是一个黑盒子,只能放东西,不能存东西;
需要用户主动自发分享,不要使用诱导分享,可以通过分享获取小游戏资源的方式代替原来的分享复活等机制。
谨慎做对战类游戏。小游戏是一种轻量级游戏,而对战游戏通常会给玩家带来非常强的挫败感,尤其在移动端,强烈的挫败感会导致大量用户流失。
放置类玩法比较受欢迎。
在设置小游戏玩法时,一定要基于微信的规则去做。
出海游戏全球服架构及解决方案解析
一款成功的全球游戏离不开后端技术和运维,但全球各地网络质量参差不齐,国与国之间的网络拥堵,导致国际网络访问经常出现延迟、丢包等问题,给后端支持与运维人员带来了庞大工作量,亦严重影响终端用户的使用体验。
UCloud互动娱乐事业部架构师沈皓为大家阐释了游戏全球化的三种主流架构:纯网络转发的集中部署、分布式业务部署、分布式部署+网络优化转发综合部署,及其业务逻辑,结合UCloud游戏出海成功案例,讲述不同架构的使用场景并做了优劣势分析。
目前,市场上比较热门的游戏依然是对战类游戏。区别于传统PVE游戏,对战类游戏着重展现人与人之间的竞争,每一次战斗都是智力、运气、策略的挑战。通过天梯激发人们的好胜心,并通过组队、地图场景、游戏道具(卡牌)及其它社交类元素来增加游戏自身的趣味性、黏着性。
基于对战类游戏的玩法和策略,这类游戏有四大特性:UDP和帧同步,数据包交互量巨大;玩家快照和帧数据保存需要高性能大容量的内存存储;网络稳定要求高;架构主要以模块化为主,有的甚至可以两地三中心容灾。
云平台的产品可以为用户解决上述问题。下图为UCloud数据中心网络设计图,有几个叫可用区的方框,这就是传统意义上的机房,公有云在此基础上开发出了可用区架构,将机房池化,网络出口独立通过不同物理路径走到不同出口POP点,这个POP点是UCloud自建BGP和运营商建立连接的地方。
这种方式可将所有的机房资源池化并通过专线打通内网,为用户免费提供相同地区的不同机房网络互通,可以方便用户实现跨机房高可用的容灾架构,同时多POP点也能够保证网络出口的持续高可用,无论是物理路径问题还是运营商本地城域网故障(比如北京本地),都可以进行规避。
对战类游戏的框架设计浅析及快速上线
游戏开发除了需要好的设计、创意外,如何快速上线也是游戏厂商关心的问题,特别是出海游戏,进度缓慢很可能导致目标市场被占领。LeanCloud游戏事业部首席工程师于振宇以对战类游戏为切入点,详细讲解了开发中遇到的痛点,深入探讨如何加快游戏开发部署上线。
对战类游戏可分为弱联网、回合制、MMORPG、MOBA四类:
弱联网游戏的实现方式与单机游戏没有太大区别,首先发起战斗,服务端把战斗过程回馈给客户端,客户端进行战斗重演;
回合制对实时性要求不高,只要在回合操作内,完成对服务端的共性就可以了;
MMORPG对游戏实时性要求比较高,一般采用状态同步去做开发;
MOBA与前三者相比,对实时性要求最高,一般采用帧同步的方式。
那么,如何实现这些游戏的框架设计?下图是一个简化的对战类游戏设计框架示意图,客户端会先向路由服务器请求一个大厅的地址,然后系统会根据用户选择的战斗连接到具体的游戏服务器,这背后就是数据服务器的支撑。
具体连接时序为:客户端首先向服务器请求大厅地址,然后返回大厅地址,客户端向大厅服务器发出请求连接大厅,根据玩家的需要选择创建房间,再返回房间地址,断开大厅服务器连接,最后是客户端连接房间。
开发者如何进行快速开发和上线?第一步是连接,需要一些接口传递gameVersion的版本号,可以根据游戏版本号路由到不同版本的服务器;第二步是匹配,包括创建房间和加入房间;第三步数据同步,主要是Object 类型和CAS 检测;第四步是自定义事件,这个相对简单,就是一个消息的ID和消息的Date。
最后,于振宇介绍,LeanCloud发布了一个新的服务——Play,提供可扩展的后端云服务,能够灵活匹配玩家接口、支持Unity引擎,并实现了多人实时通信功能。
如何从一无所有到最终完成互动电影制作
从2015年火爆,到2016年平静,经历了2017年低谷,再到2018年唱衰,VR行业一直都存在着诸多问题。来自飓风地带的CTO夏思源带着这些问题,以从一无所有到最终完成互动电影的制作流程为例,进行了翔实而有趣的分享。
夏思源介绍,互动电影制作的全部流程主要包括剧本构建、世界观设定、概念设定、剧情内容丰满、玩法设计、实现与测试、场景搭建与角色制作、动画制作以及最后的优化与完成八大步骤。下面对其中几个关键点进行展开:
剧本构建。剧本的主要目的是确定要做一个什么样的游戏,它的价值观、主题、表现形式是什么,以及它的世界观和应该带给玩家一个什么样的体验和心情,所以剧本大纲构建需要放在第一步,而且十分重要。
世界观设定。选定了剧本大纲之后,接下来要确定剧本大纲所展现的蓝图、设计并内容细化,从而去奠定世界观,让制作人、工作人员、观众以及用户知道要做的是一个什么样的东西。
玩法设计、实现与测试。玩法制作上,可以做一个比较简单的编辑方式,让策划来进行整个关卡的设计和安放。在完成整个游戏之后,需要内部人员对游戏关卡进行体验。这里也可以邀请海内外玩家或者非玩家体验,对目标人群进行画像。
场景搭建与角色制作。可以直接按照商业游戏的标准进行搭建,制作场景时,可以出一张很简单的图,把整个场景的分布和格局做出来。角色制作跟场景搭建基本是一样的,只是留存会略有区别。整个制作过程为概念设计到细化,再到整体调优。
动画制作。第一步还是传统的绑定角色,接下来在整个动作阶段全部使用演员,用Vicon(运动捕捉系统)进行捕捉,利用Dynamixyz(面部捕捉系统)进行面部捕捉,然后用MotionBuilder对动作进行修正,在UE4中进行配制,最后调整优化,这也是一个拍戏的流程。
当前,全球人均游戏时间仍然呈现上升趋势,伴随技术革新和人文领域不断挖掘,出海游戏的内涵和应用必将愈加丰富,游戏也正在突破传统休闲娱乐领域,跨界到更多的应用场景,相信与游戏互融共生的电竞、直播、VR等产业生态也将更加完善。
—End—
现场PPT下载
《出海游戏全球服架构及解决方案解析》
https://static.ucloud.cn/4c9bfc8abb1044c497ae4f600b5d6d00.pdf
《对战类游戏 框架设计浅析及快速上线》
https://static.ucloud.cn/cbd9e978b21b4ea483d1b2ca16170487.pdf
《聊聊小游戏这个“风口”》
https://static.ucloud.cn/77e42da9fee04daa97061a87f4409d7c.pdf
《全球化背景下,出海业务的云端实践》
https://static.ucloud.cn/decd55f579a0477c9fc69eddc7c8acfb.pdf
关注公众号:拾黑(shiheibook)了解更多
[广告]赞助链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

随时掌握互联网精彩
- 1 一张见证中俄友谊的报纸 7903942
- 2 陈奕迅确诊新冠 演唱会延期 7807964
- 3 新任国防部新闻发言人蒋斌正式亮相 7713709
- 4 美采购商说要补回耽误的时间 7615795
- 5 中央军委决定调整组建3所军队院校 7522742
- 6 废品回收站发现几百个机密文件 7424662
- 7 这些习惯正在泄露你的个人信息 7328355
- 8 中国对巴西等5国实行免签政策 7234917
- 9 天津美院院长:现在的广告字体太丑了 7135733
- 10 伊朗总统回应特朗普:不会向恶霸低头 7039889