首页 > 其他 > 详细

关于游戏场景中,状态一致性那些破事 (未完待续)

时间:2019-09-21 11:28:09      阅读:82      评论:0      收藏:0      [点我收藏+]

事件和状态

什么是状态?

状态就是历史事件的影响累加,在某一个时间点上的数据快照。

由于一系列的事件的触发,这些事件按照序列(发生时间、先后顺序)影响并改变了数据当前的结果(快照)。

这些事件对数据的影响可能是局部的(比如用户的操作,可能影响范围只被限定在这个玩家的数据边界内),也有可能是全局的(比如系统的操作、规则的变化,影响范围可能就是所有的玩家)。

无论如何,状态不过是从初始值,不断的应用事件,逐步演变到某一个事件序列的快照,他是那个序列点的计算结果。

一般我们谈论状态的时候,如果没有特别指明,那个时间序列点就是现实世界中的现在进行时,比如当我打字写到这段话的时候(2019年09月21日04:18:23),那么我目前所能观察到的所有状态,都是基于宇宙大爆炸到现在为止无数事件累计影响的结果。

历史无法改变,一眨眼,瞬息之间,天地万物已然与前一刻有所不同,无论如何反抗,都无法重来。

我时常在想,现实宇宙是多么的强大,能够容纳不计其数的原子、粒子进行不断的组合和运动。

我并不是一名物理学家,如果把整个宇宙当做是一个容器,这个容器内的某一个(空间)点上,原子、粒子相互运动产生影响,随着(时间)的推移,逐步影响扩散到整个容器范围内的所有元素运动轨迹。

换句话来讲,在上面的比方中,当宇宙中的某一点,在某一个时刻产生了一个事件,时间会把它的影响扩散到整个宇宙,更不用说,每时每刻,在每一个点上都在产生这种影响。

所以我们不可能预测到下一个时间点,它们的状态和现在的状态究竟有什么不同,短时间内的宏观预测是相对准确的,这种准确的来源,其实就是短时间内,它所带来的影响还没有扩散到我们无法想象的程度,也是我们从小到大,成长给我们带来的“经验”,但是随着时间范围的拉大,更多的事件参与其中,我们便再也无法得知到那时究竟会怎样?这就是所谓的蝴蝶效应。

一致性
在上面的比喻中,我讲到,每个人都是从婴儿、小孩逐步成长到现在,我们相信成长给我们带来的“经验”,我们相信这些经验给我们带来的感觉,那种感觉使我们能够在我们的观察中,从容应对,以及预测短时间内所要发生的一系列事情(状态预测、基于目前的快照)。

想象一下,如果我们正在吃饭,一闭眼,一睁眼,发现自己突然出现在了珠穆朗玛峰的峰顶,物理精神病患者(脑部物理损伤,唉,就是傻子)可能会吹着刺骨的寒风,远眺喜马拉雅山脉。但作为正常人的我们来讲,可能都会认为自己是在做梦,毕竟他不符合我们的感觉,也就是不符合我们的认知(一致性)。

所以究竟什么是一致性?它是对历史的总结,对经验的累积,对训练的结果产生一致的期待。

一致性使我们的生活更加的平滑、简单。

就好比是做UI交互设计,为什么风格、元素以及交互的模式都要保持相对的统一?首先它减少了重复的工作量,最为重要的是,用户在使用一段时间过后,它就能够适应你的模式,对你的模式产生了一致性的认知,无论我们进行怎样的组合,哪怕没有教用户怎么使用一个新的UI界面,他们也能从之前的经验中得到可能的答案。

所以,一致性使人们能够对这些模式产生总结,使人们能够更加轻松的,而更加高效的使用我们的产品。

再来讲状态的一致性,我们就知道它所要求的具体是什么了,那就是某一个时间点的状态(快照),它必须符合我们的预期,这个预期的来源是我们相对于上一个时间点的状态观察,执行了新的操作(事件),所预测的合理结果。

在这里,时间序列是其中非常重要的一个因素,当然我们也可以理解为先后顺序,我们不希望在下一秒突然站在珠穆朗玛峰的峰顶,自然也不希望,我的钱在下一秒就突然消失不见了。

一致性级别

...未完待续...


并发以及隔离

...未完待续...


“容器”管理

...未完待续...

关于游戏场景中,状态一致性那些破事 (未完待续)

原文:https://www.cnblogs.com/xingxueliao/p/11561263.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!