其次,游戏服务器中每一个用户都是独立存在的,每一个用户的数据、请求等都是独立的,用户彼此间的数据并没有任何交互。这也是游戏服务器与普通服务器之间最大的区别。至于客户端之间会有交互这一点,举最简单的例子,一个人在一个场景里面说了一句话,那么“同一个屏幕”的玩家也需要能够看到他说的这句话。此时游戏服务器就需要判断,多远的距离以内的玩家,会认定为是"同屏幕"的玩家,需要向这些玩家广播这个玩家说的这句话。
这个广播就比较麻烦了。首先,需要计算哪些玩家属于"同屏幕",就是我们在第一点提到的玩家身上某些经常变化的属性需要做的运算,在这里需要根据玩家的坐标,找出来跟在同屏幕的玩家,用到的是AOI的概念。另外,找到了这些需要接收这个消息的玩家之后,将消息转发给它们又是一个IO密集的操作,假如场景中有10个人,那么一句话就需要同时广播给另外9个人,假如有100人,1000人呢,数据量就更大了,而且时间的延迟也不能太长,这对于游戏服务器的性能就要求很高了。所以同样的一个硬件配置的服务器,可能跑Nginx可以同时处理上万的链接,但是对于一个游戏服务器就只有1,2千了,就是因为游戏服务器是一个CPU密集而且IO密集的服务器类型。而且不仅需要这样的游戏服务器不仅要求性能比较高,还需要服务器具有极高的稳定性,总不能隔一会就宕机了,那大家还怎么玩。
此外,游戏服务器需要更好的数据承载能力和处理能力。而普通服务器则在各个方面都比较均衡。在寻找游戏服务器租用商的时候,一定要选择那种CPU性能非常出色的。
最后一点,游戏行业一直以来是网络攻击的重灾区,很多游戏刚上线没多久就频繁遭到攻击,导致玩家大量流失口碑下降,最后可能导致直接关服。所以游戏服务器一定要带高防流量包。
100% 是 Unreal,无以伦比的工具链。1 首先,havok是物理引擎,不是游戏的,可以被嵌入Unreal(Unreal默认带的是PhysX物理引擎), 就不在一个层面讨论了。
2 从技术上看,Unreal和Cryengine都很领先, Gamebryo稍次,bigworld主要靠服务器套件,从游戏引擎综合讲,更次点。 然后是做小游戏的Unity3D(比如iphone,不过这引擎没源码授权), 再然后是比较垃圾的Torque. Hero engine是听过没接触过的,所以多评价。
3 脚本内嵌:
unreal : 自己的Unreal Script
CryEngine &Gamebryo: lua
Bigworld: python
Unity 3D:(只能用脚本编游戏) C#, Js.
4 价格, Unreal >Cryengine >Bigworld >Gamebryo >>Unity 3D >Torque
5 如果你英文过关,这里有10大游戏引擎, 你自己看,我就不翻译了
http://www.develop-online.net/news/32250/The-top-10-game-engines-revealed
6 中国的话,目前Gamebryo使用最多,tencent,盛大都有在用,世界范围,Unreal是主流。
希望对你有帮助 。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)