作者zo6596001 (超帅肥宅)
看板PCReDive
标题Re: [台闻] 外挂停权:10/24更新公告
时间Fri Oct 26 16:16:04 2018
大家好,我是今年刚从私立学店毕业的肥宅。
正好我的专题是做VR连线运动游戏,所以对这方面有点涉猎。
(虽然连线部分最後没做出来。)
先跟大家聊一下我亲戚家的状况。
亲戚家为了省钱,所以没办实体网路,家中如4K电视、笔电全部都是透过其中一台手机分享。
根据我的实测,速率大概可以在6~20Mbps之间浮动,尖峰时间当然是6,离峰可到20。
在这种环境下,想当然的,网路一定常常会延迟、掉封包。
而网路延迟、掉封包就是造成游戏无法及时运算的元凶之一。
※ 引述《greydust (灰)》之铭言:
: 闲聊一下, 以下都是按照我看见的部份做的猜测
: 我还没空去拆公主连结的apk, 欢迎有拆过的指正
: 说实话要治本真的很简单, 所有会影响到他人的战斗都在伺服器算就好了(战队/竞技)
: 一场战斗90秒, 一格用1/30秒就好, 也就至多2700动
其实这种游戏也不是2700个影格都有角色在动作。
而且网路并不可靠,UDP会掉封包,TCP速度有点慢。
再加上有些人的设备真的有问题,像是上面提到的状况。
: 虽然会增加成本但应该也不至於太夸张
拿Unity官方伺服器来看的话,一个月1.22GB的流量大概是900NTD。
Google的便宜一些,比较烂的机器每个月也要700多NTD,网路每GB在加0.12NTD。
朋友架网站每个月也不到300NTD
但是使用者的设备如果有问题的话也没用,因为还是会延迟。
: 而想要让战斗可以在伺服器端运算的大前提是战斗逻辑要能独立出来
: 可是公主连结的战斗我看起来非常像是直接把各种运算直接套在物件上让它真实的去跑
: 而非先抽象的把战斗结果算出来再用画面表现
: 最明显的例子就是常常会出现在心得中的, 调framerate可以改变放招次序的方法
: 如果战斗的逻辑有拉出来算, 很难理解会出这种问题
: 没弄错的话公主连结应该是用Unity写的
: 我可以想像很可能整个战斗就是一堆角色物件挂在那边用Unity的Update在触发
: (所以调framerate才会让战斗产生变化, 甚至手机太烂也会)
: 这种战斗要搬上伺服器算也不是不行, 但一来成本会飞天
上面好像说成本不会增加太多......
: 二来都没有办法把战斗逻辑独立出来了, 又怎麽可能有技术力在伺服器上套用Unity运算?
: 再说到事後的检查, 用统计或是ML的方式去抓离群的数字
: 讲难听一点, 都没钱请工程师把战斗逻辑拆到伺服器上了
: 又怎麽会想要再多花钱请有统计专门的Data Engineer之类的人就为了抓外挂?
: 外包的机会又更低了, 先不说钱的问题, 光是外包抓错人要谁扛就超级麻烦了吧...
: 至於Sonet代理到底能做什麽, 我没代理过游戏也没个谱
: 或许Sonet根本没资料库的权限, 或许CY的战斗记录根本没保存太多资讯, 可能性太多了
: 反正有事就可以推给原厂, 根本也没人知道真实情况是怎样
: 总而言之就是, 虽然应该已经是老调重弹
: 但是觉得很不爽就该罢玩罢储, 这才是真正对CY和Sonet有影响力的办法
: 营收下降太多了上面提到那些困难100%都会被立刻解决
: 没被解决就是... 嗯, 其实大家并没那麽在意
: 比如说我就没很在意, 反正养养老婆看神仙打架, 也是蛮有趣的
我个人是觉得,每个人使用的网路环境不同,在恶劣的环境下使用会有延迟的状况发生。
所以我还是比较喜欢在事後侦测玩家是否有开外挂。
至於事後怎麽侦测,那就不知道了~~~ 学店学生听不懂回归分析、机器学习~
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.167.31.38
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/PCReDive/M.1540541767.A.B54.html
1F:→ Rust: 原文的意思是应该是把每个时间点要做什麽动作先算出来 10/26 16:56
2F:→ Rust: 传到 user 端只负责显示 10/26 16:56
3F:→ Rust: 反正共斗也砍了 10/26 16:56
4F:→ Rust: 不用真的算每一格 反正除了回避有随机性其他都是简单算数 10/26 17:00
5F:→ Rust: 不用真的算每一格 反正除了回避有随机性其他都是简单算数 10/26 17:00
6F:→ gcobc12632: 爆击: 10/26 17:01
7F:→ ttt95217: 伺服端负责出乱数表的数字就好了 不需要算 10/26 17:22
8F:推 greydust: 如同一楼讲的, 把战斗先抽象化出来, 就可以包成一个lib 10/26 17:34
9F:→ greydust: 角色资料乱数种子丢进去, 理当可以产生一串哪个时间点谁 10/26 17:35
10F:→ greydust: 做了什麽事的输出, server只需要取结果, client取整串输 10/26 17:35
11F:→ greydust: 出去做演示就可以了, 跟网路没什麽关系. 当然, 战队战就 10/26 17:35
12F:→ greydust: 可以很简单的验算 10/26 17:36
13F:→ evildark: nokia3310, 共斗公会战都没断过 10/26 17:52
14F:推 TBdrays: 那个根本进不去吧 10/26 20:55