自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

romandion的专栏

创新缔造未来,专注铸就卓越

  • 博客(16)
  • 资源 (4)
  • 收藏
  • 关注

原创 单一世界架构初探之终端分布

在单一世界中,分布了众多的终端,如果没有利用终端计算能力,实在是浪费巨大的资源。有些人在探讨P2P模式,但我认为P2P仍然不是最好的利用方式。我们在前面曾经探讨过,在单一世界中,网络延时以及玩家众多是很致命的影响因素,如果P2P的话,是很难保证客户端之间的传输速度的,那么在高实时的游戏中,玩家体验就比较差了。一般说来,C和S之间的传输数据是不对等的,C传输的数据量要远少于S,不过S的计算能力要

2009-07-16 17:33:00 1265

原创 单一世界架构初探之可预测性

如果说局部性是一个核心原理,那么可预测性推论就是实现的核心基础。为什么呢?理由很简单,如果一个角色的行为能够在1秒之前被预测,那么客户端与服务端的网络延时可以容忍在1秒。一般洲际之间的网络在200-300毫秒之间,因此,跨洲际的单一世界的实现就成为了可能。 这个可预测推论是否正确呢,其实我们通过观察可以得到,推论本身是正确的,唯一不正确的是预测的时间范围。我们知道当客户端按下了攻击键,那么

2009-07-16 00:32:00 969

原创 单一世界架构初探之服务部署

单一世界的服务部署有很大的讲究。我曾经在论坛上提到过大分布小集群的概念,就是跟服务器部署有关系。我们知道,单一世界会遭遇很大的网络流量和用户数,使用集群只能解决计算能力,却解决不了网络流量。我们如果将所有的地图集中放在中国某地的一个集群中,那么该集群将承受巨大的带宽压力。和http不同的是,单一世界是持续性的网络流量。我们以中国区为例,我在各个省放置一个集群,然后在北京、上海、广州各放置一个中

2009-07-09 11:30:00 1197

原创 单一世界架构初探之世界地图

和其他网游不同的是,单一世界具有庞大的地图,比如一个地球,这种情况和导致地图的数据量很大,几个G都是正常的事情。在这种情况下,处理策略有很大的不同。以魔兽世界为例,所有的客户端和服务端都有相同的地图,这样保证在设计地图的计算时,不需要从服务端得到地图数据,减少数据传输量。在第二人生和激战中,有些不同,本地没有全部的地图。激战在跳跃到新的地方时,需要有个很长的延时,似乎是从服务端读取地图数据。

2009-07-08 15:36:00 1163

原创 单一世界架构初探之角色视野

角色视野理论和世界粒度有密切的关系,主要为了解决客户端的计算量而单独提出来的。以前的例子曾经提到过国战的例子,都是从服务器角度来解析如何实现,却从来没有考虑客户端的情况,而角色视野就是从客户端角度来解决国战的例子。我考察下,国战时,对客户端会有什么影响呢?首先,在角色视野将充斥大量的人和事物;其次,各种魔法和战斗将频繁发生;再次,和服务器的通讯量将激增;最后,本机计算量将飙升。很多质疑单一世界

2009-07-07 11:23:00 889

原创 单一世界架构初探之世界粒度

对服务器来说,没有什么粒度的概念,世界粒度主要还是从客户端的角度来看的。其实这个也好理解,你坐狮鹫从空中看到的地狱火跟面对面看到的地狱火完全是2个概念。虽然说,其实地狱火完全是一样的,可是因为观察粒度的不同,看到就是2个东西。另外一个例子,应该举个现在多数游戏都有的小地图来说。小地图,我最早见于《暗黑破坏神》,当然,现在魔兽世界也有。3维如何实现不同粒度的显示,不是我所长,我就不探讨了

2009-07-07 11:21:00 859

原创 单一世界架构初探之碰撞检测

碰撞检测,我知道很重要,不过我没有接触和研究过,所以就转载了个比较全的出来,顺便添加些自己的看法。可以参考下面的网址:http://dev.gameres.com/Program/Visual/3D/bobic.htm首先,必须先申明我想法,我在看这边文章之前的想法。我觉得判断空间2个曲面是否相交,最简单的情况就是球面。确定2个球心和半径。所以将任何一个物体切割成多个球构成的空间物体,

2009-07-07 11:01:00 1488 1

原创 单一世界架构初探之RTCP启示

RTP/RTCP主要应用于网络媒体数据传输的协议,和这里有2个比较接近的地方,一个是数据大另外一个是实时性。这个和单一世界的要求很接近,所以将本篇命名为RTCP启示,就是希望借鉴他们的优点。 我们知道,在单一世界中,任何2个实体都可以成为对方的数据源,也可以成为对方的发送目标,比如进入白骨荒野的任何人。这点和网络会议很象,参加会议的任何人都可以听到或者看到所有人。如果我们将进入白骨荒野

2009-07-07 10:13:00 1032

原创 单一世界架构初探之性价曲线

性价曲线的提出主要从商业角度探讨,毕竟一个网游的最终是以商业目的。我们运营成本来算下看看,应该包括机器采购成本,人员维护成本,还有运行成本。机器采购成本比较简单,就是服务器的买入价。人员维护成本主要是薪资和办公费用以及福利待遇等。人员这块有个地方估计需要注意,一般linux比win32薪资待遇都偏高点,当然不是绝对,但至少我见过的普遍如此。运行成本,就比较复杂了,包括电费,机房费以及托管费

2009-07-07 09:36:00 964

原创 单一世界架构初探之主动模式

主动模式在大型服务系统中,是完全必须的。在设计模式中,有个监听模式可以概括这种情况,而不完全如此。在监听模式中,往往需要先往目标注册,然后根据目标的状态变化,由目标通知监听者。但在这里,监听者却并不知道需要监听哪些东西。也就是说监听者和被监听者之间往往没有固定和必然的联系。我们可以想象,当一个人进入白骨荒野,这是个眼界很开阔的地图,对于你的进入,已经在白骨荒野的人应该可以看到你的存在,

2009-07-07 01:02:00 904

原创 单一世界架构初探之高速通讯

和传统的服务器不一样,单一世界之间的服务器的通讯量十分庞大,也许瞬间的局域网传输量可以到1G,传统TCP/IP的移动窗口,拥塞控制,定时器等已经无法满足这个要求。高速局域网的理论和实践已经十分丰富,我不准备再拾人牙慧,重新再叙述。我在这里只提出这个问题。我们还可以考虑利用LFS,以及集群等思想来改造所有的服务器。

2009-07-07 00:59:00 984

原创 单一世界架构初探之时间之轴

我们可以想象,在单一世界架构中,肯定需要大量的服务器来支持,但反映在虚拟世界中,时间的流动是唯一的。全部服务器的时间流动就是整个世界的时间之轴,也就是时间之轴的流动是整个世界的标准时间。在实现中,单一世界显然是由很多服务器构成了,每个服务器之间必然存在时间差,这种时间差可能导致基于时间相关的行为发生混乱。比如P1/P2两个玩家互相攻击,P1在T1时间作出攻击行为,P2在T2时间作出攻击行为

2009-07-07 00:58:00 1026

原创 单一世界架构初探之数据抽象

我们将以前的论述中,尽量将所有的模型简化。数据抽象的提出,将这个简化已经做到极致了。你想想,将一个复杂的运动简化为一个3维坐标的变化,是什么样概念。当然,这只是一种思想,而实际上,象碰撞检测这样需求的存在,投影世界并不是那么简单,但依然存在很大的空间。首先,我们将投影世界中,所有的实体进行分类,标记为角色、武器、装备、地图、植物、山川等类,再由角色衍生为人类、兽人、暗夜精灵、血精灵等各个种族,

2009-07-06 17:04:00 1076

原创 单一世界架构初探之投影世界

为了分析服务端要处理的逻辑,我们按处理对象将单一世界划分为投影世界和表象世界。表象世界是客户端能看到的所有集合,而投影世界则是服务端要处理的所有数据和逻辑的集合。投影世界是表象世界在服务端的投影,所以叫投影世界。他是将网游世界中与架构无关的东西予以摒除,剩下一个部分投影的世界。比如一个角色可能有颜色等概念,但在投影世界中,只有三角形等抽象的数据。在单一世界中,每个角色和地形需要考虑的要素很多,比如

2009-07-03 13:17:00 1176

原创 单一世界架构初探之边界冲突

由于分区计算,所以相邻区之间的冲突问题解决是很关键的,不论是静态分区,还是动态分区。边界冲突的核心是由于分区引起的。当一个逻辑上独立的实体跨在分区的边界上,那么,从分区的理论上,就会导致该实体被硬性的分割为2个实体。其中一个分区为计算该实体的行为时,比如走动,那么他就必须同时获取另外一个分区中,该实体的状态;而另外一个分区遇到的也是同样的问题,这就是产生了边界冲突。表现的连续性要求和实现的分区技术

2009-07-02 10:30:00 1011

原创 单一世界架构初探之动态分区

静态分区,让每个服务器负责特定区域,技术上相对简单;而动态分区实际上更接近于集群技术,按照负载自动调整区域,但技术更加复杂。上面所论述的计算迁移就是为了讨论动态分区做的准备。在魔兽世界中,暴风城和闪金镇是2个典型,暴风城是个主城,人多、地形复杂,而闪金镇周围都是森林,人也多是匆匆过客,除了少数升级做任务。一般说来,我们可以拿2个服务器,一个负责暴风城,而另外一个负责闪金镇。显然,这种划

2009-07-01 09:33:00 1296

C++编码规范

基于谷歌的C++编码规范,将其翻译为中文,并做一定的扩展。

2012-07-12

Lua 的实现,Lua使用者不能不看,脚本语言的经典啊。

关于Lua是如何的实现,英文版本。Lua使用者不能不看,脚本语言的设计经典啊。

2009-03-20

云风的大世界架构,介绍基础的大型网游的服务端架构。

云风是网易的开发经理,在业界影响颇大。这个pdf是他关于大世界理念的基础介绍。

2008-09-11

资源管理软件设计.pdf

这是一个比较完整的UML软件设计文档案例

2008-09-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除