MMORPG不同于其它的局域网的网络游戏,它是一个面向整个Internet的连接人数过万的网络游戏,因此他的服务器端设计则极为重要
服务器的基本设置
在大型网络游戏里,通常设计为C/S结构,客户端不再对数据进行逻辑处理,而只是一个收发装置,从玩家那里接受到操作信息,然后反馈给服务器,再由服务器进行处理后发回客户端,经客户端通过图形化处理,给玩家呈现出一个缤纷的游戏世界。
登陆服务器
在这里也可以称之为连接服务器,网络游戏的客户端一般是连接到这里,然后再由该连接服务器根据不同的需要,把游戏消息转发给其它相应的服务器(逻辑和地图服务器)也因为它是客户端直接连接的对象,它同时也负担了验证客户身份的工作。
地图服务器
在这里也可以称之为连续事件服务器。在这个服务器里要处理的对象(玩家)所做的动作都是一个连续事件。例如玩家从A点移动到B点,这样一个动作,需要一定的时间进行移动,因此说移动是一个连续事件。
逻辑服务器
在这里可以称之为瞬时事件服务器,在这个服务器里,处理对象(玩家)所做的动作均可以在非常断时间内完成完成。例如玩家从商店购买一瓶药书,当玩家确认购买后,服务器先扣除玩家的游戏币,然后再把相应的药水瓶加入玩家的背包里。这2个操作对于服务器来说,只是2个数字的加减,计算完这两个数字的加减,这个事件就可以结束了。因此,我们可以说这个事件是一个瞬时事件
服务器组的改进
不过在实际应用的过程中,游戏服务器的结构要比上面所说的3种服务结构要复杂些,不过也都是在这3种最基本的服务器架构下进行扩充,扩充的主要是其它辅助功能。在实际应用里可能增加的2种服务器,数据库服务器,计费服务器,由逻辑服务器独立出来的聊天服务器。
数据库服务器
数据库服务器其实就是专门利用一台服务器进行数据库的读写操作。这点特别是在大型的网络游戏里尤为重要。因为在大型网络游戏里,要处理玩家的数据量非常大,如果不利用专门的服务器进行处理,很有可能会拖累这个服务器组。
计费服务器
通常在商业的网络游戏里出现,用于记录玩家在线的时间,给收费提供依据,同时也是整个服务器组里最重要的部分,一旦出现问题,运营商就不用赚钱了。
聊天服务器
在游戏里的聊天功能是属于一种瞬时动作,理论上是放在逻辑服务器里进行处理。不过在大型网络游戏里,因为这个部分功能与游戏里的其它部分联系并不紧密,因此可以独立出来做一个功能服务器。
服务器的集群设置
在大型游戏的应用过程中,实际需要处理的玩家数量可能过万,一台普通的服务器是无法完成所要完成的工作,因此,在实际应用的时候,通常是由一组多台服务器共同完成一个功能。
例如地图服务器,可以根据需要,把游戏里所有的地域进行划分,划分为N个区域,然后让这一个区域里发生的事件都用一个特定的服务器进行处理。这样做的目的是减少一个服务器所承担的计算量,把整个系统组成一个分布式的网络。
不过这样做的同时会造成一个麻烦:当一位玩家从区域1,移动到区域2。这个时候,就必须先在服务器1里把玩家删除,然后再在区域2里加入玩家。同时需要由服务器1向服务器2转移玩家的数据信息(因为服务器组在工作的时候,玩家的信息只能保存在当前所在区域的服务器里),也就是说一旦玩家发生服务器间区域移动,服务器端就不可避免的造成数据通讯。因为这种移动并不是有规律的,玩家所在的服务器都有可能到达其它服务器。这样,如果服务器组里有N台地图服务器,那么,每个服务器都可能向其它N-1台服务器产生连接,总共就可能产生N×N个连接。如此数量连接如果只是使用普通的socket设计,就很有可能会给服务器通讯间的各种问题所困扰,为此,在商业网络游戏的服务器之间,通常都使用成熟的第三方的通讯中间件,如ACE,ICE等作为网络连接的传输层。
分享到:
相关推荐
此外,对于MMORPG的特性,如大规模的用户并发、角色的个性化、复杂的经济系统和社交功能等,都需要在引擎设计时特别考虑。例如,服务器架构的设计至关重要,通常会采用分布式或分区策略来处理海量数据交换和处理。 ...
MMORPG服务器端架构和设计 后端设计
Unity3D开发的MMORPG游戏服务器和客户端 Unity3D开发的MMORPG游戏服务器和客户端源码,服务端是用PhotonServer开发,全部解压后900多mb。 所以请不要商用,仅限学习使用
2. **游戏服务器架构**:MMORPG通常需要分布式服务器来处理大量并发玩家。C#可以用来设计和实现这些服务器,例如使用actor模型或者工作队列等高性能架构。 3. **游戏对象和组件**:Unity引擎的组件系统允许开发者将...
在MMORPG游戏设计中,角色移动、技能施放、物品交换等都是核心元素。Unity3D提供了强大的物理引擎,可以实现逼真的碰撞检测和动态物体模拟。而PhotonServer则负责确保这些操作在网络环境中的正确同步。例如,当一个...
【MMORPG游戏服务器端设计】是网络游戏开发中的核心部分,涉及到玩家的实时交互、数据同步、游戏逻辑处理等多个方面。以下将详细阐述MMORPG游戏服务器端设计的关键知识点: 1. **服务器角色与功能**: - **同步**...
3. **网关服务器**:作为客户端与游戏服务器之间的桥梁,处理网络通信,转发玩家请求,并执行初步的安全检查,如令牌验证和DoS防护。 4. **地图服务器**:负责游戏世界中不同区域的地图逻辑,管理玩家的位置和移动...
综上所述,C++实现的简单MMORPG游戏涉及到的知识点广泛且深入,包括面向对象设计、网络编程、多线程、数据库交互、图形渲染、物理模拟、脚本集成、资源管理、游戏逻辑以及调试优化等。理解并掌握这些知识点对于开发...
根据提供的文件信息,下面将详细介绍关于标题“StendHal---一个开源的MMORPG游戏”的相关知识点。由于描述部分内容为空,故知识点的总结将基于标题和部分内容。 StendHal是一个开源的大型多人在线角色扮演游戏...
### 网页MMORPG游戏设计与实现中若干关键技术的应用研究 #### 一、引言 随着互联网技术的快速发展,网页游戏作为一种新兴的游戏形式,以其便捷性、易用性和跨平台特性受到广大用户的欢迎。其中,大型多人在线角色...
c 基于c#+mysql编写的mmorpg游戏服务器 基于c#+mysql编写的mmorpg游戏服务器 适用人群:学习不同技术领域的小白或进阶学习者;可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。
通过对这些源码的研究,开发者不仅可以深化对MMORPG服务端设计的理解,还能学习到如何构建高性能、高并发的游戏服务器,这对于提升个人技能或团队开发能力具有极大的帮助。在实际应用中,还可以结合其他技术,如...
开发者使用C++可以深入到游戏引擎的底层,优化性能并实现高度定制化。C++的模板和面向对象特性也使得代码更易于组织和维护。 MySQL数据库系统在TrinityCore中扮演着重要角色,它是存储游戏世界数据的主要平台。包括...
以上知识点概括了使用AS3.0开发MMORPG游戏的关键技术和实践,包括网络编程、数据编码解码、模块化设计、事件处理、资源管理等方面。这些内容对于理解AS3.0在现代游戏开发中的应用非常有价值。由于文档内容部分是经过...
整体而言,文档内容广泛地覆盖了MMORPG游戏策划中的多个方面,从账号系统到社交互动,从宠物坐骑到技能装备,再到光影和易容系统,为游戏设计提供了全面且深入的知识框架。这些知识点对于游戏设计师、策划人员以及对...
《MMORPG游戏设计:从核心玩法到系统结构》 MMORPG,全称为Massively Multiplayer Online Role-Playing Game,即大型多人在线角色扮演游戏,是一种深受玩家喜爱的游戏类型。TX内部培训资料“TX-MMORPG游戏培训.zip...
在当前信息技术领域中,...通过采用低耦合的设计方法,该方案不仅能够确保游戏服务器的高性能、稳定性,还能在不断变化的游戏需求下进行灵活扩展,以及提供良好的维护性,为游戏开发商和运营商提供了重要的参考价值。
《MMORPG游戏论文 - 检测-论文.doc》这篇文档主要探讨的是大型多人在线角色扮演游戏(MMORPG)的相关领域,其中包括游戏设计、玩家行为、社区动态以及技术检测等多个方面。MMORPG作为网络游戏的一种重要类型,其独特...