世界专题提供世界的最新资讯内容,帮你更好的了解世界。
主动模式在大型服务系统中,是完全必须的。在设计模式中,有个监听模式可以概括这种情况,而不完全如此。在监听模式中,往往需要先往目标注册,然后 根据目标的状态变化,由目标通知监听者。但在这里,监听者却并不知道需要监听哪些东西。也就是说监听者和被监听者之间往往没有固定和必然的联系。 我 们可以想象,当一个人进入白骨荒野,这是个眼界很开阔的地图,对于你的进入,已经在白骨荒野的人应该可以看到你的存在,而事实
性价曲线的提出主要从商业角度探讨,毕竟一个网游的最终是以商业目的。我们运营成本来算下看看,应该包括机器采购成本,人员维护成本,还有运行成 本。机器采购成本比较简单,就是服务器的买入价。人员维护成本主要是薪资和办公费用以及福利待遇等。人员这块有个地方估计需要注意,一般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的计算能力要大
单一世界的构想和规划,已经准备了很多时间。虽然,理论上已经有了雏形,不过实践上,依然要依赖于魔兽世界的私服来实现。后面相关内容都将围绕这个主题展开。我将这个系统命名为Single World,依照传统,简称为S端。从现有端的构成上,基本分成:1、基础库,比如ACE 、SSL等;2、基础架构、如地图等;3、游戏逻辑;4、数据库;5、人工智能。 让我从头开始,显然出成果会是很遥远的未来,因此,我必须借
报文在所有的CS架构中,是很重要的基础。因此,在所有工作开展之前,有必要先对报文进行分析。作为一个通用的服务器,那么他的报文格式必须受标准 约束,在灵活性跟可扩展性方便是很重要的考虑因素,而对具体的业务规则反而不能深入的介入。魔兽世界的报文具有他本身私有的业务规则,单一世界是为网游戏 设计的,所以不可避免得要加入业务规则。一个折衷的方案是,服务器内部具有通用的标准规则,而通过转换器将魔兽世界的规则
我们知道,报文在网络上的流转主要是以二进制方式传输,而报文具体的含义依赖于收发双方的私有约定。而XML设计于一种通用标准,在业务上具有更广泛的适用性,但其解析上有较高的复杂度,带来性能损失。我们需要设计一种高效、简单、更强业务描述能力的报文协议,显然,在报文定义具体业务含义的内容是不可行的。我将这个报文协议命名为GEST协议,全称是A GENERAL 、 EFFICIENT 、SIMPLE TRA
请求代理相当于网关或者是前置机,负责接收客户端的请求报文。为了兼容原来的服务器,必须开发一个代理,负责解析报文以及做部分分发,允许将部分功能转到接新的服务模块。 单一世界本身的通讯量非常大,因此,完全依靠单一服务器来接收请求是不合理。这也是为何必须开发请求代理的原因。另外一个原因是,我认为系统的升级和变更应该是渐进式,将新系统融入并逐步替换旧系统。因为,旧系统虽然存在许多问题,但已经稳定地运行了许
系统重演是服务系统一个很重要的特性,但基本上很难。除了某些对系统可靠性要求很高的系统,比如交易系统。系统重演就像魔法时光回溯那样,将所有的过程不失真的完全执行一遍。这是个理想状态,但最大可能性的重演具有很高的意义,我希望能在单一世界中,实践这个特性。 我们首先界定下,什么是系统重演。我们认为对于系统,任何时间,任何环境下,只要相同的输入,都会得到相同的结果,那么,这个过程就是系统重演。这个定义借用
DDOS防御是个很重要的课题,对于大公司来说,有很多资源可以调配,但对小型应用来说,却是灭顶之灾。这个主要讨论下,如何让小型的应用最大限度的抵御DDOS。 首先,我们要针对的是,导致带宽耗尽的情况。至于碎片攻击或者针对操作系统漏洞的情况就不考虑了。我们知道,DDOS最常用的方式,是利用大量的肉鸡在同一时刻发起攻击,导致某个服务系统无法响应合法的请求。通常来说,一个网络服务总是以一个域名为标记的,比
26日,作为历史性的决定,美国最高法院宣布同性婚姻在全美所有州均合法。全球范围来看,绝大多数的国家对待这个社会议题依然讳莫如深。 在一个价值观必须单一、不能接受多元的世界里,每个人都有可能是下一个“变态”——毕竟,人人身上都有着或多或少与众不同的“怪癖”。 而对他人的理解和包容,本身就是一种美德的体现。 美国最高法院的9名大法官以5比4的结果裁决同性婚姻合法,这意味同性伴侣今后可在全美50个州注册
  新智元编译   来源:sciencemag.org 作者:Matthew Hutson 编译:张易 新智元启动 2017 最新一轮大招聘: COO、总编、主笔、运营总监、视觉总监等8大职位全面开放。 新智元为COO和执行总编提供最高超百万的年薪激励;为骨干员工提供最完整的培训体系、高于业界平均水平的工资和奖金。加盟新智元,与人工智能业界领袖携手改变世界。 简历投递:jobs@aiera.com
我基本上想了解一些人认为在现实世界的代码中使用单一责任原则是合理的,实际上有多少。在 Podcast #38年乔尔谈论这个OOP原则是如何无用的现实世界;此外,这表明Bob叔叔的人们可能不会写出不平凡的系统。 我在几个软件项目中亲自写了或扮演了重要角色,但是在我的年轻职业生涯中,现在才发现了这种模式。我喜欢这个原则的声音,真的很想开始使用它。我发现乔尔在播客中的论据很弱(像其他人一样,如果继续阅读
尽管已经长期研究域驱动设计,但仍然有一些基础知识,我只是想出来。 似乎每次我尝试设计一个丰富的域层时,我仍然需要很多域名服务或一个厚实的应用层,而且我最终会出现一堆没有真实逻辑的近似贫乏的域实体,除了“GetTotalAmount”等。关键的问题是实体不知道外部的东西,而且对实体注入任何东西都是不好的做法。 让我举一些例子: 用户注册服务。用户被保存在数据库中,生成并保存文件(用户帐户需要),并发