初探专题提供初探的最新资讯内容,帮你更好的了解初探。
由于分区计算,所以相邻区之间的冲突问题解决是很关键的,不论是静态分区,还是动态分区。边界冲突的核心是由于分区引起的。当一个逻辑上独立的实体跨在分区的边界上,那么,从分区的理论上,就会导致该实体被硬性的分割为2个实体。其中一个分区为计算该实体的行为时,比如走动,那么他就必须同时获取另外一个分区中,该实体的状态;而另外一个分区遇到的也是同样的问题,这就是产生了边界冲突。表现的连续性要求和实现的分区技术
为了分析服务端要处理的逻辑,我们按处理对象将单一世界划分为投影世界和表象世界。表象世界是客户端能看到的所有集合,而投影世界则是服务端要处理的所有数据和逻辑的集合。投影世界是表象世界在服务端的投影,所以叫投影世界。他是将网游世界中与架构无关的东西予以摒除,剩下一个部分投影的世界。比如一个角色可能有颜色等概念,但在投影世界中,只有三角形等抽象的数据。在单一世界中,每个角色和地形需要考虑的要素很多,比如
我们将以前的论述中,尽量将所有的模型简化。数据抽象的提出,将这个简化已经做到极致了。你想想,将一个复杂的运动简化为一个3维坐标的变化,是什么样概念。当然,这只是一种思想,而实际上,象碰撞检测这样需求的存在,投影世界并不是那么简单,但依然存在很大的空间。 首先,我们将投影世界中,所有的实体进行分类,标记为角色、武器、装备、地图、植物、山川等类,再由角色衍生为人类、兽人、暗夜精灵、血精灵等各个种族,而
我们可以想象,在单一世界架构中,肯定需要大量的服务器来支持,但反映在虚拟世界中,时间的流动是唯一的。全部服务器的时间流动就是整个世界的时间之轴,也就是时间之轴的流动是整个世界的标准时间。 在实现中,单一世界显然是由很多服务器构成了,每个服务器之间必然存在时间差,这种时间差可能导致基于时间相关的行为发生混乱。比如P1/P2两个玩家互 相攻击,P1在T1时间作出攻击行为,P2在T2时间作出攻击行为,本
和传统的服务器不一样,单一世界之间的服务器的通讯量十分庞大,也许瞬间的局域网传输量可以到1G,传统TCP/IP的移动窗口,拥塞控制,定时器等已经无法满足这个要求。高速局域网的理论和实践已经十分丰富,我不准备再拾人牙慧,重新再叙述。我在这里只提出这个问题。我们还可以考虑利用LFS,以及集群等思想来改造所有的服务器。
主动模式在大型服务系统中,是完全必须的。在设计模式中,有个监听模式可以概括这种情况,而不完全如此。在监听模式中,往往需要先往目标注册,然后 根据目标的状态变化,由目标通知监听者。但在这里,监听者却并不知道需要监听哪些东西。也就是说监听者和被监听者之间往往没有固定和必然的联系。 我 们可以想象,当一个人进入白骨荒野,这是个眼界很开阔的地图,对于你的进入,已经在白骨荒野的人应该可以看到你的存在,而事实
性价曲线的提出主要从商业角度探讨,毕竟一个网游的最终是以商业目的。我们运营成本来算下看看,应该包括机器采购成本,人员维护成本,还有运行成 本。机器采购成本比较简单,就是服务器的买入价。人员维护成本主要是薪资和办公费用以及福利待遇等。人员这块有个地方估计需要注意,一般linux比 win32薪资待遇都偏高点,当然不是绝对,但至少我见过的普遍如此。运行成本,就比较复杂了,包括电费,机房费以及托管费用等
RTP/RTCP主要应用于网络媒体数据传输的协议,和这里有2个比较接近的地方,一个是数据大另外一个是实时性。这个和单一世界的要求很接近,所以将本篇命名为RTCP启示,就是希望借鉴他们的优点。   我们知道,在单一世界中,任何2个实体都可以成为对方的数据源,也可以成为对方的发送目标,比如进入白骨荒野的任何人。这点和网络会议很象,参加会议的任何人都可以听到或者看到所有人。如果我们将进入白骨荒野的所有人
碰撞检测,我知道很重要,不过我没有接触和研究过,所以就转载了个比较全的出来,顺便添加些自己的看法。可以参考下面的网址: http://dev.gameres.com/Program/Visual/3D/bobic.htm 首先,必须先申明我想法,我在看这边文章之前的想法。我觉得判断空间2个曲面是否相交,最简单的情况就是球面。确定2个球心和半径。所以将任何一个物体切 割成多个球构成的空间物体,并不断
对服务器来说,没有什么粒度的概念,世界粒度主要还是从客户端的角度来看的。其实这个也好理解,你坐狮鹫从空中看到的地狱火跟面对面看到的地狱火完 全是2个概念。虽然说,其实地狱火完全是一样的,可是因为观察粒度的不同,看到就是2个东西。另外一个例子,应该举个现在多数游戏都有的小地图来说。小地 图,我最早见于《暗黑破坏神》,当然,现在魔兽世界也有。 3维如何实现不同粒度的显示,不是我所长,我就不探讨了,只是
角色视野理论和世界粒度有密切的关系,主要为了解决客户端的计算量而单独提出来的。以前的例子曾经提到过国战的例子,都是从服务器角度来解析如何实现,却从来没有考虑客户端的情况,而角色视野就是从客户端角度来解决国战的例子。 我考察下,国战时,对客户端会有什么影响呢?首先,在角色视野将充斥大量的人和事物;其次,各种魔法和战斗将频繁发生;再次,和服务器的通讯量将激增;最后,本机计算量将飙升。很多质疑单一世界架
和其他网游不同的是,单一世界具有庞大的地图,比如一个地球,这种情况和导致地图的数据量很大,几个G都是正常的事情。在这种情况下,处理策略有很大的不同。 以魔兽世界为例,所有的客户端和服务端都有相同的地图,这样保证在设计地图的计算时,不需要从服务端得到地图数据,减少数据传输量。在第二人生和激战中,有些不同,本地没有全部的地图。激战在跳跃到新的地方时,需要有个很长的延时,似乎是从服务端读取地图数据。 但
单一世界的服务部署有很大的讲究。我曾经在论坛上提到过大分布小集群的概念,就是跟服务器部署有关系。我们知道,单一世界会遭遇很大的网络流量和用户数,使用集群只能解决计算能力,却解决不了网络流量。我们如果将所有的地图集中放在中国某地的一个集群中,那么该集群将承受巨大的带宽压力。和http不同的是,单一世界是持续性的网络流量。 我们以中国区为例,我在各个省放置一个集群,然后在北京、上海、广州各放置一个中央
如果说局部性是一个核心原理,那么可预测性推论就是实现的核心基础。为什么呢?理由很简单,如果一个角色的行为能够在1秒之前被预测,那么客户端与服务端的网络延时可以容忍在1秒。一般洲际之间的网络在200-300毫秒之间,因此,跨洲际的单一世界的实现就成为了可能。   这个可预测推论是否正确呢,其实我们通过观察可以得到,推论本身是正确的,唯一不正确的是预测的时间范围。我们知道当客户端按下了攻击键,那么在接
在单一世界中,分布了众多的终端,如果没有利用终端计算能力,实在是浪费巨大的资源。有些人在探讨P2P模式,但我认为P2P仍然不是最好的利用方式。我们在前面曾经探讨过,在单一世界中,网络延时以及玩家众多是很致命的影响因素,如果P2P的话,是很难保证客户端之间的传输速度的,那么在高实时的游戏中,玩家体验就比较差了。 一般说来,C和S之间的传输数据是不对等的,C传输的数据量要远少于S,不过S的计算能力要大
【编者按】时下,Vagrant 被 DevOps 软件开发商广泛作为开发阶段的本地软件开发环境,而在本文,CERT Division高级研究员介绍的 Otto 则是 Vagrant 开发团队 Hashicorp 的又一力作。本文系 OneAPM 工程师翻译。 在搭建运行在笔记本之上的开发环境时,Vagrant 的表现非常优秀。不过在将程序迁往生产环境之时,在 Vagrant 的配置文件中所存储的配
(点击上方蓝字,可快速关注我们) 来源:懒得安分 链接:http://www.cnblogs.com/landeanfen/p/4816706.html 前言:今天看到一篇博文里面写道:越是忙人越有时间写博客。呵呵,似乎有点道理,博主为了证明自己也是忙人,这不就来学习下DDD这么一个听上去高大上的东西。前面介绍了下MEF和AOP的相关知识,后面打算分享Automapper、仓储模式、WCF等东西的
(点击上方蓝字,可快速关注我们) 来源:懒得安分 链接:http://www.cnblogs.com/landeanfen/p/4834730.html 前言:上篇介绍了DDD设计Demo里面的聚合划分以及实体和聚合根的设计,这章继续来说说DDD里面最具争议的话题之一的仓储Repository,为什么Repository会有这么大的争议,博主认为主要原因无非以下两点:一是Repository的真实
(点击上方蓝字,可快速关注我们) 来源:懒得安分 链接:http://www.cnblogs.com/landeanfen/p/4837520.html 前言:上篇介绍了下仓储的代码架构示例以及简单分析了仓储了使用优势。本章还是继续来完善下仓储的设计。上章说了,仓储的最主要作用的分离领域层和具体的技术架构,使得领域层更加专注领域逻辑。那么涉及到具体的实现的时候我们应该怎么做呢,本章就来说说仓储里面
(点击上方蓝字,可快速关注我们) 来源:懒得安分 链接:http://www.cnblogs.com/landeanfen/p/4841211.html 前言:前面三篇分享了下DDD里面的两个主要特性:聚合和仓储。领域层的搭建基本完成,当然还涉及到领域事件和领域服务的部分,后面再项目搭建的过程中慢慢引入,博主的思路是先将整个架构走通,然后一步一步来添加相关元素,使架构慢慢变得丰满。这篇打算分享下应