V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  gantleman  ›  全部回复第 2 页 / 共 9 页
回复总数  179
1  2  3  4  5  6  7  8  9  
2020-09-22 20:29:59 +08:00
回复了 gantleman 创建的主题 推广 3D 游戏的万人同屏技术详解(2)
@crackhopper 我跟你谈如何精确度量耦合性。你和我谈用户感受?你是工程师还是产品?就像我问你,哪颗树有多高?你一直叨叨有高树有矮树。高树能做桌子,矮树只能烧。我问的高树有多高,能做几个桌子。听不懂就算了。
2020-09-22 14:59:23 +08:00
回复了 gantleman 创建的主题 推广 3D 游戏的万人同屏技术详解(2)
@crackhopper 太好了终于我们能在一种共识上来讨论 1 万个人的问题。这里你强调 1 万人施法魔法,要保证命中顺序。我们想象一下,在 1 万人的真实战斗中。差不多相当于两个团级的军队在战斗。你作为其中的士兵你打一枪,你是否能确定命中了吗?对方倒下了是故意倒下躲避子弹还是被子弹击中倒下的?

就是战后统计死亡人数,失踪人数也都没有人能保证准确?在现实社会都不能确定的耦合性,你要求在游戏里必须准确获得一致?这可笑么?现实社会都不能确定事情?所以你看 1 万人的游戏根本不需要非常强的游戏精度。

哪么 1 万人的服务器也就不需要很强的游戏精度。也就是外在产品耦合性决定内在技术耦合性。你在扯这个扯哪个的时候,你搞清楚什么是耦合了吗?你在用准确的度量耦合吗?你准确的还原产品耦合需求和技术耦合的设计需求了吗?

作为一个工程师基本的素养要有的。度量一个工程学上的单位时,例如耦合这个剂量单位。但强弱是个什么单位?你的所谓弱交互弱到什么程度。你要一杯热水洗脸,我给你一杯 1 百度的热水,你是不是就烫死了?不谈剂量,一会强一会弱,这是工程师该说的话吗?同样的话你要是换个地方说,能被人骂死你信不信。比如汽车工程师说我做的汽车防水性能很强。哪个防水很强是下雨不漏还是掉湖里淹不死呢?为什么我们的工程师能肆无忌惮的说这种基本工程素养都没有的话?就因为软件不死人就可以信口开河?
@kangsheng9527 商业社会就是这样的,人和人之间有着无穷无尽的零和博弈,相互利用。有利用价值的哪怕被人当枪使,也是有价值,多少人想当马云的枪而不得。
那是因为我们刚刚进入资本主义。大多数人还不了解资本主义的玩法。回忆一下封建社会是什么玩法?一个封建领主带着一群农奴。一个农奴不听话背叛主人,其他农奴可以骂他,杀了他,抢他的女人,抢他的房子。资本主义的玩法,资本家雇佣员工开公司赚钱,如果其中一个员工发现新的技术带着大家出去创业。那么他就有很大可能打败原来的资本家,跟着他的人都能赚大钱。

在资本主义社会里,你发现周围谁很聪明能搞出新东西。跟着他混就很大概率赚到大钱。

所以中国人被资本主义教育的还不够,碰到有能力,有反叛精神的人第一反应是封建社会的做法,骂他,可惜现在不能抢人房子和女人了。在国外有能力有反叛精神的人,会被一帮人跪舔,而且你可以跪舔好几个有反叛精神的人,万一有哪个真打败了原来的资本家,就能跟着分到肉。

保守派在资本主义是没有市场的,赚钱的自由比命都重要。
2020-09-20 04:25:48 +08:00
回复了 gantleman 创建的主题 开源软件 多线程开发的终结者 pelagia
@helloword123 不不不,您不是眼拙。
2020-09-16 22:34:45 +08:00
回复了 gantleman 创建的主题 推广 3D 游戏的万人同屏技术详解(2)
@crackhopper 既然帖子都被拉黑了,我就是无忌惮的多说几句。记不清 CAP 作者还是 poxe 作者是数学博士。他们在数学尺度上讨论一致性问题我理解。数学尺度是什么意思就是超越物理的尺度。在宇宙范围都通用的理论。工程学范围的一致是什么?贴瓷砖的装修工程师要考虑一面墙的瓷砖是不是一致的,不一致业主就要往你脸上吐口水。一个贴瓷砖的师傅讨论在地球上贴砖和在火星上贴砖的通用一致性理论?怕是要扯到蛋了吧? CAP 是不是定律,是数学定律还是工程定律?请问工程学有全部条件下都通用的定律吗?如果工程学有通用的定律,哪软件工程是不是要从土木工程学起了呢?所以我是不是要吐槽下美国软件分布式学会的哪几个大叔大婶到底再研究研究什么?
2020-09-16 19:26:29 +08:00
回复了 gantleman 创建的主题 推广 3D 游戏的万人同屏技术详解(2)
@crackhopper 既然提到了 CAP,哪么必然有几种情况下的 CAP 。同进程内的 CAP,不同进程同服务器的 CAP,不同服务器同内网的 CAP,不同服务器公网的 CAP 。显然这4种情况下的 CAP 要分别讨论。例如同进程内的一致性问题,任意线程的崩溃必然导致进程重置。哪么线程崩溃导致重置导致消灭不一致。哪么问题来了,消灭不一致是不是就代表了一致呢?你看在不同背景下讨论一致性问题时会产生各种细微不同,这种不同导致的结果并不绝对相同。
2020-09-10 15:39:13 +08:00
回复了 gantleman 创建的主题 推广 3D 游戏的万人同屏技术详解(2)
@yueyoum 谢谢你提供的失败经验。100 人团站,每个人每秒 60 帧提交移动数据,是每秒提供 6 千个数据。每秒 6 千次的写入压力 redis 还是可以承担的。
2020-09-10 13:20:26 +08:00
回复了 gantleman 创建的主题 推广 3D 游戏的万人同屏技术详解(2)
@leimao
@psyche

谢谢回复,你们说我什么都没关系。但请不要再说年轻人就该如何了之类的话,年轻的压力已经很大了,请多体谅他们。
2020-09-10 13:08:00 +08:00
回复了 gantleman 创建的主题 推广 3D 游戏的万人同屏技术详解(2)
@psyche <使用 redis 实现 5 万人同服的'相位技术'>这篇文章在知乎有 4 百多个赞,我不想质疑这些点赞的人都是没有实际服务器编程经验的人。为什么要回复你是因为你在教育年轻人什么是靠普。我没有说过我做的技术都是靠普的。靠普的技术我想也轮不到我去教。在关于 redis 的文章里 redis 主从集群是非常普通的技术了。独立位置服务也是被公司常常使用的技术。让我惊讶的是都 2020 年还拒绝使用 redis 。还在强调单线程是性能最好的服务器。还有拒绝使用分布式的服务器开发。难道你们的服务器都是基于汇编语言开发的单线程服务器?我刚入行的时候也有些老师傅教育我,汇编语言是世界上最快的语言。C 语言都是异端,java 语言只能开发网页。而如今我会使用 C 和 java 但再也没有使用过汇编。最靠普的东西不需要老师傅去教育。如今教育我的老师傅也不知道在哪了。linus 发明 linux 的时候只是一个在校的研究生,按背景口水人的话 linux 操作系统就不存在了。世界潮流浩浩荡荡,唯一靠普的就是保持开放的心态不断尝试新东西。最重要的技能就是学会浪费时间。
2020-09-06 15:29:18 +08:00
回复了 gantleman 创建的主题 推广 3D 游戏的万人同屏技术详解(2)
@cest 原来是怕我红呀,原来是怕我空降给你当 cto 。我真是要敬佩你的想象能力。云风做的三国志策略版已经冲到国产游戏第三。仅次于腾讯的哪两个。就是因为云风都公司一直在尝试新技术和新玩法。要是我有幸遇到制作人敢用新玩法,用新技术,我做梦都能笑醒。没准就能捣腾出国产第一的游戏。而且我也没听说过程序员在论坛里能决定用谁当 cto 的。也没听过程序员能在论坛里就能决定公司用什么技术是不是靠谱的。我拿出技术和想法和大家交流,我也吸取错误教训,也给大家提供一个思考的方向。也许我这辈子都做不出来我理想中的分布式系统。不过没关系,不用害怕我去给你做 cto 。至少我做 cto 不会让大家去做无聊的换皮游戏。
2020-09-05 09:49:08 +08:00
回复了 gantleman 创建的主题 推广 3D 游戏的万人同屏技术详解(2)
@cs8425 redis 的 1 秒 /10 万应该可以覆盖 1 秒 /8640 次吧。起码差着一个数量级呢。所以肯定不会是 redis 性能不够。没错 redis 需要网络,需要解析命令,然后是使用 map 存储。起码比内存操作慢了 100 倍。如果 redis 这种基本的分布式组件都不能满足需求,哪游戏开发就不能用分布式了。mysql 都不能用了,因为性能太差。多线程有锁的开销必然也比内存操作慢。哪多线程也不能用了。文件 io 比 redis 更慢了也不能用了?你看单线程内存操作最快了,游戏服务器开发用单线程最好?
2020-09-04 19:08:29 +08:00
回复了 gantleman 创建的主题 推广 3D 游戏的万人同屏技术详解(2)
@LennieChoi 以前也是放到缓存服务器上,不过都是各个公司自己写的。游戏数据远不比银行或互联网,可以说 99%的数据都是垃圾数据。没有那么严格的一致性要求。用户回档补些金币或礼包就可以了。过去 C++写的服务器意外崩溃很多,现在都是脚本语言,已经很少担忧服务器崩溃的事情。
2020-09-04 00:14:09 +08:00
回复了 gantleman 创建的主题 推广 3D 游戏的万人同屏技术详解(2)
@cs8425 做个简单的算数题,12 个人同屏,其中每个人以每秒 60 次的频率给其他 12 个人发送广播。这个广播的数据包括移动,射击,技能。那么每秒就是 12 乘 12 乘 60 次共 8640 次服务器数据提交。假设服务端只有一台 redis 处理数据。那么理论极限每次可以每次提交处理 10 次数据请求。所以是不是我数学不好,我没想明白为什么 redis 性能不能满足你 12 人 pvp 的数据处理需求。
2020-09-03 13:47:04 +08:00
回复了 gantleman 创建的主题 推广 3D 游戏的万人同屏技术详解(2)
@cs8425 请问 10ms 就要跑完所有计算?是什么计算?数据有哪些?请问“个人写过最高 12 人的 PvP 游戏 可以肯定都是直接对内存做计算&操作”的 技术指标。内存,cpu,网络带宽占用多少?你说了很多,但我没看出来,为什么 12 人的 PVP 导致硬件不够用。
2020-09-02 13:26:26 +08:00
回复了 gantleman 创建的主题 推广 3D 游戏的万人同屏技术详解(2)
@dogfeet 可能你没有写过游戏服务器,对游戏服务器的技术不太了解。redis 的异步读写每秒可以支持 10 万次,操作都是按毫秒级 ,技能释放是用户按秒级别的计算 。redis 操作再慢还能比用户的操作还慢?为什么你把完全不同量级的东西都能搅和在一起说。
2020-09-01 22:09:10 +08:00
回复了 gantleman 创建的主题 推广 3D 游戏的万人同屏技术详解(2)
@dogfeet 你提出了问题,却又回避了问题,风险很高有多高?有哪些风险?关联要强又强在哪,有哪些好处和坏处。我们不把问题都列出来,又怎么能得出结论说哪个好哪个坏呢?用 redis 做示例是因为好懂,接口简单。并且性能在单线程数据服务中是最快的。普通程序员用演员模型加数据库写的缓存服务不可能比 redis 更快。redis 只做位置存储服务,只有两个接口写入,读取。为了文章好懂我省略了空间管理服务。并且每个游戏在空间管理上都会有细节的不同。演员模型只是一个产品上的概念,对于技术来说只能当作辅助设计工具。因为操作系统和开发本身都没有这个概念。部分语言有这个概念,然而语言到微服务又有十万八千里。如你所说纯粹的演员模型会导致通信成本激增。极端情况为每个玩家每种功能都创建服务。一方面要维护激增的接口,一方面要维护激增的硬件。
2020-08-30 23:51:01 +08:00
回复了 gantleman 创建的主题 推广 3D 游戏的万人同屏技术详解(2)
@danc 是的我也希望中国早日作出 3A 大做,一起加油吧。
1  2  3  4  5  6  7  8  9  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2788 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 17ms · UTC 13:04 · PVG 21:04 · LAX 05:04 · JFK 08:04
Developed with CodeLauncher
♥ Do have faith in what you're doing.