Re: [心得] 技能升级假说

楼主: soraka (索拉卡)   2013-09-08 00:15:36
针对回应一下
※ 引述《hectorhsu (The Hector)》之铭言:
: 再辩就难看了喔~
: → yols:重点是满技后系统是否还会累计他的回合数.毕竟这对SERVER很伤 09/07 23:05
: → yols:除非那工程师很懒..不然一般不会开无限上限的记录(暂记忆空间 09/07 23:06
: → yols:会这么说是因为假若每个人都有一张黑狗,所以主机得储存每个 09/07 23:07
: → yols:人每只黑狗的回合场数,重点无上限。等同要无限空间,这是很 09/07 23:08
: → yols:脑X的程式设计写法就是... 09/07 23:08
: 1. 一般不会开无限上限的纪录 => 不太懂您的意思
: int a = 5 和 a = 100000000 储存空间一样
: 2. 神魔欢庆600万下载,假设每个人有1张那就记录600万个整数
: 需要 4 Bytes * 6000000 = 24000000 bytes = 24000 KB = 24MB
: 还真大,害我都担心SERVER会伤爆了 /Q__Q\
: 2. 说MH的程式设计写法脑残,这边一定有MH的工程师会看,他们应该很不爽吧
: 4. "等同要无限空间" 这边你说空间 空间 空间 那大家应该没有曲解你的初衷吧?
: → yols:不是资料问题..单纯就程式语言概念来讲就不可能= =" 09/07 23:09
: 1. 刚刚说空间,现在又不是资料问题了,难道是程式码太多行?机器太多台?
: → yols:所以才说这是一个很脑X的写法..因为迟早会爆阿.若是这样有天 09/07 23:10
: 2. 全球60亿人次下载好了,每个人有1只满技黑狗
: 需要 24MB * 1000 = 24000MB = 24GB
: 好像我家的硬盘勉强还够
帮你算仔细一点
60亿人次
一个玩家最多有400张卡片
一张卡片要有卡片经验还有技能经验(也就是我们在讨论的回合数) 也就是2个变量
假设用了理论上绝对用不完的4byte来记录(2147483647)
6,000,000,000 * 400 * 2 * 4 byte = 19,200,000,000,000 byte = 19TB
你说这个容量是不是有点可观呢
所以变量大小的取舍还是很重要的喔 揪咪
: → yols:要改就会可能变成大工程..INT 要转其他型别..ORZ一想到就可怕 09/07 23:11
: (unsigned long long) a = ..
: 我想到也觉得好可怕 > <
对阿 每个变量一次 复制上面的算式一下
6,000,000,000 * 400 * 2 = ...
懒得算了 反正还是很多次
: 推 yols:re..我是觉得不可能..但不是把人当白痴..因为这代表程式有可 09/07 23:14
: 不,你就是把人当白痴
: → yols:能出现的BUG 而已..你要试就试..打我脸我就认了而已 09/07 23:14
: 啪。
: → yols:我只是觉得不可能无上限..而这极限又在哪你又说不准.. 09/07 23:16
: → yols:重点不在65535好吗...你用DOUBLE也依样= ="... 09/07 23:20
: 讲到这好像你的意思不是指数字很大,我们继续看下去
: → yols:所以LUKE 若是这样就跟我说的一样这篇猜测是错的 09/07 23:21
: → yols:我只是要说一般程式到达这东西当前上限后基本不会再记录了 09/07 23:22
: 又是"一般程式",请问阁下是哪一间公司的工程师..
: 推 yols:超过那极限值皆以那数值记,而这极限值可能会以两种方式记录 09/07 23:26
: 有人回了,if(N<25000) N++;
: 这样子的东西比起那些动画和背后一堆工作...
: 每一场战斗有多少逻辑判断在执行..
: → yols:一种是每个不同SLV最大值最极限,或者以一个不可能人达到数 09/07 23:27
: → yols:来记,但后者所耗费资源基本会比前者多..(光是每人50张卡算 09/07 23:27
: → yols:一百万玩家*50张卡*后者那极大数,外加同时上线SERVER负担很 09/07 23:28
: → yols:大... 09/07 23:29
: 刚算过了
: → yols:讲真的我不太相信一家手机公司会花到多少钱扩充SERVER 就是= 09/07 23:29
: → yols:读取卡片资料 搜索卡片资料 搜索卡片个别技能经验资料.. 09/07 23:30
: 方法问题而已,看到这里就知道你不懂了,麻烦请留给玩家一个正常讨论练法的空间。
好啦 我只能说打脸文真的不要发太快 想法也不要太单纯
程式设计要考虑的事情其实还蛮多的... 0.0|||
作者: nightjustin (洛神天来)   2013-09-08 00:16:00
113推一下~补XD
作者: hectorhsu (The Hector)   2013-09-08 00:16:00
我刚有笔误,回去看一下真实大小再说
作者: hectorhsu (The Hector)   2013-09-08 00:17:00
第一个请 /1000存卡片只要这点空间~够划算了~
作者: hectorhsu (The Hector)   2013-09-08 00:19:00
照您说的已经是超级高估,也只要19GB
作者: hectorhsu (The Hector)   2013-09-08 00:20:00
是不是有点不可观呢?啾咪 ^_<
作者: qiaffvvf (鸑鷟)   2013-09-08 00:20:00
所以快把上限改五百张吧 不够用啦 ><
作者: lin89710 (谷)   2013-09-08 00:21:00
真有60亿人数我相信MH会笑着买服务器的.......才19T
作者: hectorhsu (The Hector)   2013-09-08 00:22:00
是19G,我刚刚发文一开始漏掉K..
作者: yols (yols)   2013-09-08 00:22:00
HEC ..你去看一下我为啥说不可能吧...
作者: yols (yols)   2013-09-08 00:23:00
还有19T 是指内存不过真那样我相信MH 会用GOOGLE那种电脑玩
作者: yols (yols)   2013-09-08 00:24:00
硬盘储存空间一直不是要点,要点是要顺间处理19T资料量阿还有不能让使用者感觉到你没服务到我这样
作者: lin89710 (谷)   2013-09-08 00:25:00
一台SERVER包含他的网络设备 还有他单笔资料的记法
作者: lin89710 (谷)   2013-09-08 00:26:00
一定会算出同时可服务的人数上限 MH也会知道有多少"活"
作者: lin89710 (谷)   2013-09-08 00:27:00
帐号 适时的评估何时需要多租用或是购入新主机维持营运吧.... 当哪天他需要同时瞬间处理19T的资料的时候
作者: lin89710 (谷)   2013-09-08 00:28:00
他应该发到不知到哪里去了......
楼主: soraka (索拉卡)   2013-09-08 00:31:00
重点还是19T的变量空间十分惊人...
作者: yols (yols)   2013-09-08 00:33:00
不过那是指瞬间..只要CPU 有办法处理的话...
作者: yols (yols)   2013-09-08 00:34:00
但光那CPU 我这边8核*4处理字串比对有时都快炸了...
作者: rigmarole (Brad Pin~)   2013-09-08 00:43:00
如果他有60亿个玩家包包空间有400格...19T硬盘会是什么问题吗? 买下google都没问题了
作者: whatai (多多)   2013-09-08 00:44:00
19T队服务器来说根本不算什么好吗.. 又再以家用电脑计算
作者: rigmarole (Brad Pin~)   2013-09-08 00:45:00
更不用说一般线上游戏的资料量跟本远大于这个数字
作者: yols (yols)   2013-09-08 00:45:00
我是不知这边文是指硬盘还是内存..但我指的是内存
作者: whatai (多多)   2013-09-08 00:45:00
且真有60亿人次 早就是世界级的超大型网络公司了 好吗
作者: darkster (草民)   2013-09-08 00:45:00
用不到瞬间吧…游戏也只有进出场有传送封包而已
作者: whatai (多多)   2013-09-08 00:46:00
为什魔同时load到内存呢? 呵呵 读完数据库再来吧
作者: rigmarole (Brad Pin~)   2013-09-08 00:46:00
你真的写过线上游戏的server端程式, 就会知道这根本一点都不是问题...
作者: yols (yols)   2013-09-08 00:46:00
任何程式跟资料在运算前是都先弄到内存内喔~~
作者: yols (yols)   2013-09-08 00:47:00
所以才会有用快取内存存在的必要性
作者: whatai (多多)   2013-09-08 00:47:00
真要19T内存只有一个情形 60亿人"同时"上线 恩..
作者: rigmarole (Brad Pin~)   2013-09-08 00:48:00
同时上线还不够哩... 所有卡片资料还要全部用到
作者: Nuaaukw (晨曦之憶、)   2013-09-08 00:48:00
什么情况才会有六十亿人次同时存取啦...你要先担心网络吧
作者: yols (yols)   2013-09-08 00:48:00
商比较可能做法是累积到一定的量一次做,这就考验内存的大小了..
作者: rigmarole (Brad Pin~)   2013-09-08 00:49:00
你要不要先看一下别人服务器端的程式怎么写的^^""你很明显都是用想像的,而且还跟现实差很远...
作者: Nuaaukw (晨曦之憶、)   2013-09-08 00:49:00
你该不会认为这游戏的数据库,所有玩家用一个吧?
作者: yols (yols)   2013-09-08 00:49:00
先不管几人上线啦= ="我这边SERVER不是一般使用者在用光单台
作者: whatai (多多)   2013-09-08 00:50:00
等你们真的写过socket SQL相关程式再说吧 根本出师表全文
作者: yols (yols)   2013-09-08 00:50:00
传送10G封包量就很紧了..现在大概最多1G..那个运算量更不用说
作者: yols (yols)   2013-09-08 00:51:00
应该不可能在同一台就是~只是分批后还要搜寻搜寻后还要运算
作者: yols (yols)   2013-09-08 00:52:00
所以依此推断下来我才说不太可能是MAX LV 后继续计数毕竟只搜索运算可能还好 再加上写入我是觉得压力有点太大了
作者: darkster (草民)   2013-09-08 00:53:00
总感觉你的逻辑不是用在服务器型主机上的,硬件层面的存取不需要使用数据库的人去担心吧,数据库服务器会处理好,除非逻辑错的太夸张严重占用的服务器资源
作者: rigmarole (Brad Pin~)   2013-09-08 00:53:00
你知道神魔一场战斗只有开始跟结束各会传一次封包吗
作者: lin89710 (谷)   2013-09-08 00:54:00
服务器资源一定是必要的浪费阿 有良心的公司至少会租到
作者: yols (yols)   2013-09-08 00:54:00
YES DARK 因为我本就不是对数据库那边很熟,所以我重点在于
作者: Nuaaukw (晨曦之憶、)   2013-09-08 00:54:00
...只有进出战斗才有传送封包为什么会一直在想压力的事
作者: yols (yols)   2013-09-08 00:55:00
硬件写入上,但硬件读写绝对会影响服务速度总不会要硬件怪罪
作者: lin89710 (谷)   2013-09-08 00:55:00
够用的SERVER数吧.... 60亿人的游戏只需要19T的资料空间
作者: whatai (多多)   2013-09-08 00:55:00
真的有60亿人"同时"上线再说吧 根本脱离现实 没有讨论必要
作者: lin89710 (谷)   2013-09-08 00:56:00
12点应该不只六万....
作者: yols (yols)   2013-09-08 00:56:00
那应该得列数据库才可能了解了..那我们猜再多也没用
作者: whatai (多多)   2013-09-08 00:56:00
但是同时传输封包的机率又是多少? 看清楚现实面吧
作者: darkster (草民)   2013-09-08 00:57:00
真的不熟的话,建议先别争了,你可以想看看魔兽世界的使用者比神魔多多少,资料量又大多少,为什么就没问题魔兽还是即时游戏喔
作者: yols (yols)   2013-09-08 00:57:00
你没听过程式开发者解决不了问题时就是脱一段时间吗..然后就
作者: Xinlong (Ashyjet)   2013-09-08 00:57:00
dark大.. 你这让我想到D3一开始...(泣
作者: yols (yols)   2013-09-08 00:58:00
硬件升级价格降低问题解决(啾咪
作者: lin89710 (谷)   2013-09-08 00:58:00
D3那跟工程师没关系 是韩国买的服务器不够 又被中国硬上
作者: darkster (草民)   2013-09-08 00:58:00
啃,死暴风雪分明是拿玩家当测试员
作者: Nuaaukw (晨曦之憶、)   2013-09-08 00:59:00
我只想跟你说,sLv数值有上限是可能的,但是你想法是错的
作者: Xinlong (Ashyjet)   2013-09-08 00:59:00
我没有说工程师怎么样 我只是在说D3很有问题..没其他..
作者: lin89710 (谷)   2013-09-08 00:59:00
压力测试本来就是靠玩家阿XDD 只是这压力..... 有点大
作者: Nuaaukw (晨曦之憶、)   2013-09-08 01:00:00
有上限的原因绝对不会是因为硬件考量
作者: lin89710 (谷)   2013-09-08 01:00:00
这游戏的资料 手机就能处理了 服务器还要考虑硬件
作者: yols (yols)   2013-09-08 01:00:00
WOW机制我没钻研过就是总不会一台负责某几块地图运算这样吧..
作者: yols (yols)   2013-09-08 01:02:00
要看它们怎玩的...或许只记录地图上怪物数量跟哪几个玩家及
作者: Nuaaukw (晨曦之憶、)   2013-09-08 01:02:00
WOW的服务器单位请用“组”而不是“台”....XD
作者: yols (yols)   2013-09-08 01:03:00
目前动作这些病不会读写到硬件,真正要读写进去应该是离开游戏升级..某些情况这样
作者: yols (yols)   2013-09-08 01:04:00
所以多数资料都是在内存跟暂存内存间来回的话这样还好真正写入跟读取才会慢(所以登入登出时间都很久阿...
作者: lin89710 (谷)   2013-09-08 01:06:00
你怎么知道打完之后的沟通多久 到你下次跟他沟通之前
作者: ChiKK   2013-09-08 01:07:00
我是MH有60亿玩家服务器要我架在月球也没问题…
作者: lin89710 (谷)   2013-09-08 01:07:00
她可能都在写入 你唯一知道的只有 登入 好像有点久
作者: whatai (多多)   2013-09-08 01:08:00
请做好socket TCP/IP DB distributed DB 的功课再来
作者: yols (yols)   2013-09-08 01:08:00
那我小看硬盘的耐久度了...
作者: lin89710 (谷)   2013-09-08 01:09:00
那东西本来就是耗材 租服务器的时候都算在价钱里了
作者: whatai (多多)   2013-09-08 01:10:00
如果真有60亿人同时对一"台"服务器连线 这不叫连线是DDos
作者: yols (yols)   2013-09-08 01:10:00
WHAT大...别这样要是我两边都很熟我还在这做啥!!!!
作者: lin89710 (谷)   2013-09-08 01:10:00
楼上XDDDDDDD
作者: darkster (草民)   2013-09-08 01:11:00
这功课有点多XD,之前都是有点兴趣大略看看而已
作者: Domobear (CAT)   2013-09-08 01:12:00
wow都没问题了,神魔怎么会有问题
作者: Xinlong (Ashyjet)   2013-09-08 01:13:00
提到WOW 我又只好再次望向D3.. 单纯抱怨..
作者: darkster (草民)   2013-09-08 01:13:00
之前晚上12点整,玩家就是在对神魔服务器DDOS啊XD
作者: yols (yols)   2013-09-08 01:13:00
那是用行为跟程式设计概念做推断而已跟这边一样
作者: KeyFSN ( ~☼☽✩☁~ )   2013-09-08 01:15:00
19T真的没有很多...
作者: whatai (多多)   2013-09-08 01:21:00
其实有兴趣可以先研究封包是怎么传输的 Wireshark很好用
作者: whatai (多多)   2013-09-08 01:22:00
一切的魔法都是从这里开始
作者: yols (yols)   2013-09-08 01:23:00
封包传输我大概了解但我只了解到封包在UNIX 的结构但我不确定
作者: yols (yols)   2013-09-08 01:24:00
跟你说的DB有啥关系就是。所以我着重点都尽量在主机运算负担而不是网络传输负担
作者: whatai (多多)   2013-09-08 01:24:00
那么之后可以了解到怎么发送封包与接收
作者: yols (yols)   2013-09-08 01:25:00
麻自己做包我倒还没试过大概知道原理,解包基本都OK但这跟DB??????Y
作者: whatai (多多)   2013-09-08 01:25:00
之后就是处理收到的资料 以及如何储存 要传怎么跟DB沟通
作者: yols (yols)   2013-09-08 01:26:00
DB 负担不是重点在数据库设计与相关搜索算法上吗?
作者: whatai (多多)   2013-09-08 01:26:00
例如你收到一个LOGIN的封包 在服务器验证之后 可能会把
作者: yols (yols)   2013-09-08 01:27:00
那边我感觉玩下去很深阿...深到我会溺死这样...
作者: whatai (多多)   2013-09-08 01:27:00
登入时间写入数据库 服务器的程式本身没有这数值也不会储存
作者: whatai (多多)   2013-09-08 01:28:00
有需要直接从DB捞 如此程式不用开很大的内存至于DB资料量超过100万笔时 就完全是另一个故事了
作者: whatai (多多)   2013-09-08 01:29:00
数据库优化 效率要深入其实东西也很多
作者: yols (yols)   2013-09-08 01:30:00
姆..这样写法我就不清楚了..我一直把DB 跟处理在逻辑上放再一起,而WHAT大则是把它彻底分开这样比较有效率就是~~
作者: maple205 (艾瑞克)   2013-09-08 02:58:00
有人要喝饮料吗
作者: ffaatt (不由分说)   2013-09-08 09:24:00
一次不是才处理五张

Links booklink

Contact Us: admin [ a t ] ucptt.com