游戏开发论坛

 找回密码
 立即注册
搜索
查看: 117824|回复: 9

关于手游客户端网络压力的一些思考

[复制链接]

1万

主题

1万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
32069
发表于 2016-3-16 14:01:00 | 显示全部楼层 |阅读模式
7.jpg

  GameRes游资网授权发布 文/Ron Ngai

  场景背景

  毫无疑问,策划都喜欢多人同屏战斗。什么万人大地图,这肯定是策划的最爱了。可是对于游戏来说,这并不是什么非常好的设计。即使解决了服务端计算的性能压力,客户端显示的性能压力。万万没想到的是我们游戏在客户端网络带宽上面遇到了压力。

  假设1000人同屏,那么要同时同步1000个人的位置,移动方向,速度,释放技能,伤害,血量,buff等信息。这n^2的网络带宽复杂度,对于服务端来说,其实只要申请大些的带宽,买贵点其实就可以解决了。但是对于时常处于不稳定和低网速网络环境(电梯、地铁、偏远山区等环境)下的手机,特别是还处于2g,3g的网络环境下的手机,那么小的带宽承载能力其实根本无法应付这么大的网络消息同步的。造成后果,游戏会有明显的收包卡顿,有些会出现好几秒,出现非常不好的游戏体验。

  另外,即使手机可以承受,在当下手机网络流量并没有那么廉价的情况下,如此耗费网络流量,很难的得到玩家的承受。

  以上,对于实时同步信息的模式,在大规模多人对战手游中,并不是一种非常合适的方案。

  解决预想

  问题在于客户端的网络带宽,如果减少客户端接收的网络带宽才是重点。不去同步那么多的信息,那么就需要客户端和服务端尽量约定规则。使用客户端先行,服务端演练计算的方式来实现。貌似业界已经有这种方案了,传闻lol、dota2就是这么实现的(这方便并没进行查阅,只是有个印象)。

  到战斗开始的时候,先同步必要的信息,譬如场景内的怪物、位置、AI、血量、技能等信息和一个随机数。AI的行为通过随机触发。那么需要同步的信息就只剩下那些无法确定的因素。譬如玩家,什么时候释放什么技能、如何移动,我们是无法确定的,但只要在外面服务端的演练中同步上,那么同样可以演练出客户端的整个战斗过程出来。

  对比可以发现,使用这种方法,我们只需要同步玩家的技能、移动就可以了。省去了很多其它可以直接演练出来的信息。为了避免演练的偏差,可以定期同步一些内容。这样既可以保证战斗的一致性,也大幅度减少了带宽流量。

  当然使用这种方式,对客户端和服务端的约定要求非常高,相比也复杂了许多,对于研发人员的要求同样要高许多。

  不过业界已经有成型的方案,自然可以解决。对比玩家体验,这方面的优化还是很有必要的。

1

主题

105

帖子

679

积分

高级会员

Rank: 4

积分
679
发表于 2016-3-16 15:23:12 | 显示全部楼层
1000人同屏,呵呵呵!!!
手机屏幕有多大?
出发点就异想天开,写几万字也是白写。

1

主题

105

帖子

679

积分

高级会员

Rank: 4

积分
679
发表于 2016-3-16 15:24:05 | 显示全部楼层
假设1亿个人同屏怎么办?愁啊~~~~还是请比尔盖茨来写客户端吧。

91

主题

3122

帖子

3263

积分

论坛元老

Rank: 8Rank: 8

积分
3263
发表于 2016-7-24 14:13:02 | 显示全部楼层
版主大人说得没错

0

主题

1

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2022-12-27 18:26:16 | 显示全部楼层
能到100人同屏, 说明这游戏已经赚爆了, 不差钱请厉害的服务器1000人....

55

主题

229

帖子

618

积分

高级会员

Rank: 4

积分
618
发表于 2023-6-9 10:15:51 | 显示全部楼层
我们团队寻求一位手游程序员,能实现即时战斗或回合战斗,道具寄卖即可。工资+股份。有兴趣合作吗。QQ 404047405

10

主题

77

帖子

603

积分

高级会员

Rank: 4

积分
603
发表于 2023-8-10 16:39:28 | 显示全部楼层
手机客户端有什么网络压力?  难道是手机客户端做服务器使用

9

主题

75

帖子

112

积分

注册会员

Rank: 2

积分
112
发表于 2023-12-13 20:05:02 | 显示全部楼层
1000个人同屏你还是先考虑考虑服务器的压力吧

4

主题

67

帖子

475

积分

中级会员

Rank: 3Rank: 3

积分
475
QQ
发表于 2024-8-27 04:29:34 | 显示全部楼层
哈哈,传奇还有龙族1000人同屏都卡蒙圈了,这都是2D的游戏.

4

主题

67

帖子

475

积分

中级会员

Rank: 3Rank: 3

积分
475
QQ
发表于 4 天前 | 显示全部楼层
韩国的MMO在2009年以后采用了战斗状态的技术,也就说两个人角色在野外碰面,如果是普通状态,那就同步很少的信息,一旦两个人进入战斗状态,则两人同步信息开始提高到最高等级,这样的话PK起来比较流畅。还有副本内同步的问题,可以采用类似protocol buffer的技术来解决。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2024-11-21 17:44

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表