avatar
王者荣耀 系统设计# JobHunting - 待字闺中
l*c
1
听说最近这游戏挺火的,要不大家把它当作一道系统设计题来讨论一下?。。。
下面是从维基抄来的scale :
最高破5000万,最高同时在线人数破500万,注册用户数突破2亿。
avatar
z*n
2
我其实更想知道,腾讯很多游戏,无非是抄其他家类似IP,怎么它一做就能做这么火?
这里面的秘诀是什么?
avatar
c*t
3
不是一直加服务器吗?服务器之间昵称都不能共享,设计烂的一屁

【在 l***c 的大作中提到】
: 听说最近这游戏挺火的,要不大家把它当作一道系统设计题来讨论一下?。。。
: 下面是从维基抄来的scale :
: 最高破5000万,最高同时在线人数破500万,注册用户数突破2亿。

avatar
t*n
4
嗯 就你牛逼

【在 c******t 的大作中提到】
: 不是一直加服务器吗?服务器之间昵称都不能共享,设计烂的一屁
avatar
r*s
5
你也很牛逼。。。。。


: 嗯 就你牛逼



【在 t**********n 的大作中提到】
: 嗯 就你牛逼
avatar
u*n
6
除了分区还能咋的
avatar
c*t
7
你比我牛多了。我从用户角度说不行啊?

【在 t**********n 的大作中提到】
: 嗯 就你牛逼
avatar
l*c
8
比如db用什么,schema应该包含哪些table和column;哪些需要实时存到db, 哪些不需
要存db,只需要cache, 哪些可以游戏后再存db
client 之间以及和server之间的同步的最优解是什么?protocol用什么?每次client
to server, server to client 的payload里面都应该包含哪些信息,每隔多久sync一
次,client之间需要通信吗?
如果地图特别大怎么办?100 vs 100 怎么办?
像魔兽世界这样地图这么大,用户这么多的实时对战的是怎么scale的?

【在 u***n 的大作中提到】
: 除了分区还能咋的
avatar
r*s
9
作为半业内人士给你解释下
游戏这行当讲究的是快草蜢,什么毛协议,老子从来都用udp
没啥可存db同步的,游戏状态都在内存里,最多五分钟batch一下成就
游戏结束积分系统是完全不同的子系统,ui都不一样应该可以看出来不是一个team做的
你说server崩了怎么办?你问这个问题说明你不能成为合格的游戏开发者,真正的游戏
开发连code review都不发,哐哐push code。下一个


: 比如db用什么,schema应该包含哪些table和column;哪些需要实时存到db, 哪
些不需

: 要存db,只需要cache, 哪些可以游戏后再存db

: client 之间以及和server之间的同步的最优解是什么?protocol用什么?每次
client

: to server, server to client 的payload里面都应该包含哪些信息,每隔多久
sync一

: 次,client之间需要通信吗?

: 如果地图特别大怎么办?100 vs 100 怎么办?

: 像魔兽世界这样地图这么大,用户这么多的实时对战的是怎么scale的?



【在 l***c 的大作中提到】
: 比如db用什么,schema应该包含哪些table和column;哪些需要实时存到db, 哪些不需
: 要存db,只需要cache, 哪些可以游戏后再存db
: client 之间以及和server之间的同步的最优解是什么?protocol用什么?每次client
: to server, server to client 的payload里面都应该包含哪些信息,每隔多久sync一
: 次,client之间需要通信吗?
: 如果地图特别大怎么办?100 vs 100 怎么办?
: 像魔兽世界这样地图这么大,用户这么多的实时对战的是怎么scale的?

avatar
r*s
10
像魔兽这么大
一个基本技巧就是分图
你没发现去别的区域需要读进度条么
这是服务器正在把你的状态transfer到其他区域
每个区域互相可见的玩家基本都是在同一个进程的内存里面
要不然没法实时
这也限制了游戏不能像web service一样无限scale
如果你想要把区域进一步划分,就马上会受到区域边界问题的惩罚


: 比如db用什么,schema应该包含哪些table和column;哪些需要实时存到db, 哪
些不需

: 要存db,只需要cache, 哪些可以游戏后再存db

: client 之间以及和server之间的同步的最优解是什么?protocol用什么?每次
client

: to server, server to client 的payload里面都应该包含哪些信息,每隔多久
sync一

: 次,client之间需要通信吗?

: 如果地图特别大怎么办?100 vs 100 怎么办?

: 像魔兽世界这样地图这么大,用户这么多的实时对战的是怎么scale的?



【在 l***c 的大作中提到】
: 比如db用什么,schema应该包含哪些table和column;哪些需要实时存到db, 哪些不需
: 要存db,只需要cache, 哪些可以游戏后再存db
: client 之间以及和server之间的同步的最优解是什么?protocol用什么?每次client
: to server, server to client 的payload里面都应该包含哪些信息,每隔多久sync一
: 次,client之间需要通信吗?
: 如果地图特别大怎么办?100 vs 100 怎么办?
: 像魔兽世界这样地图这么大,用户这么多的实时对战的是怎么scale的?

avatar
r*s
11
当然农药这种session based游戏和wow这种mmo是没法比的
session based游戏对于稳定性的要求低好多
mmo的复杂度可以说是所有游戏之冠。mmo的问题如果能handle好的话那么其他游戏都不
是个事。
不说了。刷碗去了


: 像魔兽这么大

: 一个基本技巧就是分图

: 你没发现去别的区域需要读进度条么

: 这是服务器正在把你的状态transfer到其他区域

: 每个区域互相可见的玩家基本都是在同一个进程的内存里面

: 要不然没法实时

: 这也限制了游戏不能像web service一样无限scale

: 如果你想要把区域进一步划分,就马上会受到区域边界问题的惩罚

: 些不需

: client



【在 r*****s 的大作中提到】
: 像魔兽这么大
: 一个基本技巧就是分图
: 你没发现去别的区域需要读进度条么
: 这是服务器正在把你的状态transfer到其他区域
: 每个区域互相可见的玩家基本都是在同一个进程的内存里面
: 要不然没法实时
: 这也限制了游戏不能像web service一样无限scale
: 如果你想要把区域进一步划分,就马上会受到区域边界问题的惩罚
:
:
: 比如db用什么,schema应该包含哪些table和column;哪些需要实时存到db, 哪

avatar
l*c
12
谢谢大牛。。。

【在 r*****s 的大作中提到】
: 当然农药这种session based游戏和wow这种mmo是没法比的
: session based游戏对于稳定性的要求低好多
: mmo的复杂度可以说是所有游戏之冠。mmo的问题如果能handle好的话那么其他游戏都不
: 是个事。
: 不说了。刷碗去了
:
:
: 像魔兽这么大
:
: 一个基本技巧就是分图
:
: 你没发现去别的区域需要读进度条么
:
: 这是服务器正在把你的状态transfer到其他区域

avatar
z*n
13

你到底是干啥的?天天就见你包饺子刷碗了。

【在 r*****s 的大作中提到】
: 当然农药这种session based游戏和wow这种mmo是没法比的
: session based游戏对于稳定性的要求低好多
: mmo的复杂度可以说是所有游戏之冠。mmo的问题如果能handle好的话那么其他游戏都不
: 是个事。
: 不说了。刷碗去了
:
:
: 像魔兽这么大
:
: 一个基本技巧就是分图
:
: 你没发现去别的区域需要读进度条么
:
: 这是服务器正在把你的状态transfer到其他区域

avatar
r*s
14
我就是一个打杂的。。。


: 你到底是干啥的?天天就见你包饺子刷碗了。



【在 z*********n 的大作中提到】
:
: 你到底是干啥的?天天就见你包饺子刷碗了。

avatar
p*r
15
王者数据规模至少是魔兽的10倍规模以上,
而且魔兽都是pc有线,王者是手游。
魔兽和王者技术上也不是一个级别的,
王者开发团队基本可以完虐魔兽技术团队。
IOS安卓分区不能互通是故意的商业目的,
不少人练2个号,花双分钱。
不要再用5年前或者10年前的思路去看国内,
国内现在很多软件都完爆美国。

【在 r*****s 的大作中提到】
: 像魔兽这么大
: 一个基本技巧就是分图
: 你没发现去别的区域需要读进度条么
: 这是服务器正在把你的状态transfer到其他区域
: 每个区域互相可见的玩家基本都是在同一个进程的内存里面
: 要不然没法实时
: 这也限制了游戏不能像web service一样无限scale
: 如果你想要把区域进一步划分,就马上会受到区域边界问题的惩罚
:
:
: 比如db用什么,schema应该包含哪些table和column;哪些需要实时存到db, 哪

avatar
r*s
16
session based game没有难度啊
每个session就那么几个人,可以类似web server一样scale
而wow和剑III都是mmo,scaling mode根本就不一样,在scalability的技术难度上不是
一个数量级的。
能不能不要带预判心理啊,这里比较的不是国内和国外,比较的是两类完全不同的游戏
,国内也有贱三啊
当然看得出来你没太接触过游戏开发,以为active user多技术难度就大,一般人都有
这种误解,可以理解。


: 王者数据规模至少是魔兽的10倍规模以上,

: 而且魔兽都是pc有线,王者是手游。

: 魔兽和王者技术上也不是一个级别的,

: 王者开发团队基本可以完虐魔兽技术团队。

: IOS安卓分区不能互通是故意的商业目的,

: 不少人练2个号,花双分钱。

: 不要再用5年前或者10年前的思路去看国内,

: 国内现在很多软件都完爆美国。



【在 p**r 的大作中提到】
: 王者数据规模至少是魔兽的10倍规模以上,
: 而且魔兽都是pc有线,王者是手游。
: 魔兽和王者技术上也不是一个级别的,
: 王者开发团队基本可以完虐魔兽技术团队。
: IOS安卓分区不能互通是故意的商业目的,
: 不少人练2个号,花双分钱。
: 不要再用5年前或者10年前的思路去看国内,
: 国内现在很多软件都完爆美国。

avatar
r*s
18
"
第一,它的开发效率比较高。如果你开发思路的整体框架是验证可行的,如果你把它的
缺点解决了,那么你的开发思路完全就跟写单机一样,你只需要遵从这样的思路,尽量
保证性能,程序该怎么写就怎么写。
"
对。。。就是快糙猛。。。慢工细活不适合游戏开发。。。


: http://www.sohu.com/a/140181180_204824



【在 z****8 的大作中提到】
: http://www.sohu.com/a/140181180_204824
avatar
t*l
19
大神你在哪刷碗?
我能去找您一起刷题吗?

【在 r*****s 的大作中提到】
: "
: 第一,它的开发效率比较高。如果你开发思路的整体框架是验证可行的,如果你把它的
: 缺点解决了,那么你的开发思路完全就跟写单机一样,你只需要遵从这样的思路,尽量
: 保证性能,程序该怎么写就怎么写。
: "
: 对。。。就是快糙猛。。。慢工细活不适合游戏开发。。。
:
:
: http://www.sohu.com/a/140181180_204824
:

avatar
p*r
20
你说得对就是了。

【在 r*****s 的大作中提到】
: session based game没有难度啊
: 每个session就那么几个人,可以类似web server一样scale
: 而wow和剑III都是mmo,scaling mode根本就不一样,在scalability的技术难度上不是
: 一个数量级的。
: 能不能不要带预判心理啊,这里比较的不是国内和国外,比较的是两类完全不同的游戏
: ,国内也有贱三啊
: 当然看得出来你没太接触过游戏开发,以为active user多技术难度就大,一般人都有
: 这种误解,可以理解。
:
:
: 王者数据规模至少是魔兽的10倍规模以上,

avatar
r*s
21
多谢大神夸奖!!!!!


: 你说得对就是了。



【在 p**r 的大作中提到】
: 你说得对就是了。
avatar
r*s
22
我在法拉盛刷碗啊,还能在哪


: 大神你在哪刷碗?

: 我能去找您一起刷题吗?



【在 t******l 的大作中提到】
: 大神你在哪刷碗?
: 我能去找您一起刷题吗?

avatar
p*r
23
嘿嘿,06到14年,我在某MMRPG游戏公司做了8年兼职架构师,
赚了现在的房子和车子,以及存款。

【在 r*****s 的大作中提到】
: 多谢大神夸奖!!!!!
:
:
: 你说得对就是了。
:

avatar
r*s
24
那大神15年退休了吗?


: 嘿嘿,06到14年,我在某MMRPG游戏公司做了8年兼职架构师,

: 赚了现在的房子和车子,以及存款。



【在 p**r 的大作中提到】
: 嘿嘿,06到14年,我在某MMRPG游戏公司做了8年兼职架构师,
: 赚了现在的房子和车子,以及存款。

avatar
p*r
25
我佩服王者是觉得手机上做到这么好,
真的是五体投地,可能我没研究过手游。
不过现在老了,只看表面,
一听技术细节就崩溃。。。泪流满面啊。
avatar
p*r
26
我倒是想,可惜还是要赚钢蹦付日常开销啊。

【在 r*****s 的大作中提到】
: 那大神15年退休了吗?
:
:
: 嘿嘿,06到14年,我在某MMRPG游戏公司做了8年兼职架构师,
:
: 赚了现在的房子和车子,以及存款。
:

avatar
r*s
27
现在手机硬件好了啊
大神你再出个山,北美市场可以横推了


: 我佩服王者是觉得手机上做到这么好,

: 真的是五体投地,可能我没研究过手游。

: 不过现在老了,只看表面,

: 一听技术细节就崩溃。。。泪流满面啊。



【在 p**r 的大作中提到】
: 我倒是想,可惜还是要赚钢蹦付日常开销啊。
avatar
t*l
28
我在法拉盛挂CPT
我今天去你们餐厅吃饭顺便拜见一下您?
餐厅地址能私信给我吗?
谢谢大神

【在 r*****s 的大作中提到】
: 我在法拉盛刷碗啊,还能在哪
:
:
: 大神你在哪刷碗?
:
: 我能去找您一起刷题吗?
:

avatar
z*e
29
额,其实并没有。。。

【在 p**r 的大作中提到】
: 王者数据规模至少是魔兽的10倍规模以上,
: 而且魔兽都是pc有线,王者是手游。
: 魔兽和王者技术上也不是一个级别的,
: 王者开发团队基本可以完虐魔兽技术团队。
: IOS安卓分区不能互通是故意的商业目的,
: 不少人练2个号,花双分钱。
: 不要再用5年前或者10年前的思路去看国内,
: 国内现在很多软件都完爆美国。

avatar
j*x
30
》 王者数据规模至少是魔兽的10倍规模以上
这是按照同时在线规模10倍来划分么?
游戏场景数据,环境变化这些两者设计有本质区别,如何区分?
但是强耦合的用户状态的划分远不是10倍用户这么线性变化的吧?
》而且魔兽都是pc有线,王者是手游。
pc游戏好像更复杂
似乎跟你上下文暗示的结论相冲突
》魔兽和王者技术上也不是一个级别的,
孰优孰劣前两个论断没有给出结论啊
当然这个结论是正确的
俩者确实不是一个级别
》王者开发团队基本可以完虐魔兽技术团队。
仅就打游戏来说,我感觉两个团队各自都可以在自己的游戏里玩虐对手的技术团队
》IOS安卓分区不能互通是故意的商业目的,
技术上商业上都有考虑
魔兽想做全球同服那是毫无可能
农药一样
大家都有技术极限
》不要再用5年前或者10年前的思路去看国内,
我看5到10年的思路还是适用的
比如你这样不学无术
满嘴跑火车
前言不搭后语
信口雌黄的技术思路
我看就像是10年前国内无赖技术人员的行事风格
》国内现在很多软件都完爆美国。
那当然
国内的regulation几乎不存在
只要配合政府
你就算跟传销集团合伙杀人
也没人怎么着你
当然是完爆美国
不止美国
我怕是人类历史上都是前无古人后无来者了

【在 p**r 的大作中提到】
: 王者数据规模至少是魔兽的10倍规模以上,
: 而且魔兽都是pc有线,王者是手游。
: 魔兽和王者技术上也不是一个级别的,
: 王者开发团队基本可以完虐魔兽技术团队。
: IOS安卓分区不能互通是故意的商业目的,
: 不少人练2个号,花双分钱。
: 不要再用5年前或者10年前的思路去看国内,
: 国内现在很多软件都完爆美国。

avatar
r*s
31
楼上这id好像也是水母的老id了
大家和和气气嘛
都是大神
发大财


: 》 王者数据规模至少是魔兽的10倍规模以上

: 这是按照同时在线规模10倍来划分么?

: 游戏场景数据,环境变化这些两者设计有本质区别,如何区分?

: 但是强耦合的用户状态的划分远不是10倍用户这么线性变化的吧?

: 》而且魔兽都是pc有线,王者是手游。

: pc游戏好像更复杂

: 似乎跟你上下文暗示的结论相冲突

: 》魔兽和王者技术上也不是一个级别的,

: 孰优孰劣前两个论断没有给出结论啊

: 当然这个结论是正确的



【在 j********x 的大作中提到】
: 》 王者数据规模至少是魔兽的10倍规模以上
: 这是按照同时在线规模10倍来划分么?
: 游戏场景数据,环境变化这些两者设计有本质区别,如何区分?
: 但是强耦合的用户状态的划分远不是10倍用户这么线性变化的吧?
: 》而且魔兽都是pc有线,王者是手游。
: pc游戏好像更复杂
: 似乎跟你上下文暗示的结论相冲突
: 》魔兽和王者技术上也不是一个级别的,
: 孰优孰劣前两个论断没有给出结论啊
: 当然这个结论是正确的

avatar
j*x
32
我这个就事论事
确实是和气
原来的贴主写得什么玩意儿。。。
几年前我直接破口大骂了。。。

【在 r*****s 的大作中提到】
: 楼上这id好像也是水母的老id了
: 大家和和气气嘛
: 都是大神
: 发大财
:
:
: 》 王者数据规模至少是魔兽的10倍规模以上
:
: 这是按照同时在线规模10倍来划分么?
:
: 游戏场景数据,环境变化这些两者设计有本质区别,如何区分?
:
: 但是强耦合的用户状态的划分远不是10倍用户这么线性变化的吧?
:
: 》而且魔兽都是pc有线,王者是手游。

avatar
z*e
33
re

【在 r*****s 的大作中提到】
: 作为半业内人士给你解释下
: 游戏这行当讲究的是快草蜢,什么毛协议,老子从来都用udp
: 没啥可存db同步的,游戏状态都在内存里,最多五分钟batch一下成就
: 游戏结束积分系统是完全不同的子系统,ui都不一样应该可以看出来不是一个team做的
: 你说server崩了怎么办?你问这个问题说明你不能成为合格的游戏开发者,真正的游戏
: 开发连code review都不发,哐哐push code。下一个
:
:
: 比如db用什么,schema应该包含哪些table和column;哪些需要实时存到db, 哪
: 些不需
:
: 要存db,只需要cache, 哪些可以游戏后再存db

avatar
z*e
34

也不完全,这里的session有十个人在同时使用这个session
web是一个人一个session,不需要处理并发,区别还是比较明显的
多了一步需要处理并发修改的状态,mmo是几千个人一个session
新浪微博用redis,用redis就增加了一层io,就慢
所以一般都是内存里面一个类来搞
而且一般的web server不支持udp
所以这些东西都要自己实现
最早用php,比如刀塔传奇,结果很慢,受不了
最早是php+mysql,我去
后来mysql换成了redis或者memcache,勉强够用
后来发现erlang有一个actor model,好像很好用
所以现在不少换erlang
暴雪就用了akka,原理类似
我们主张用vert.x
哼哼

【在 r*****s 的大作中提到】
: session based game没有难度啊
: 每个session就那么几个人,可以类似web server一样scale
: 而wow和剑III都是mmo,scaling mode根本就不一样,在scalability的技术难度上不是
: 一个数量级的。
: 能不能不要带预判心理啊,这里比较的不是国内和国外,比较的是两类完全不同的游戏
: ,国内也有贱三啊
: 当然看得出来你没太接触过游戏开发,以为active user多技术难度就大,一般人都有
: 这种误解,可以理解。
:
:
: 王者数据规模至少是魔兽的10倍规模以上,

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。