游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2828|回复: 0

基于分布式对象的网游程序结构设计(6)--网游的架构平台

[复制链接]

17

主题

22

帖子

37

积分

注册会员

Rank: 2

积分
37
发表于 2008-1-28 21:37:00 | 显示全部楼层 |阅读模式
SRP平台的2.40.1版本已经上传到网站,该版本具有两个特点:1,开放了链路层接口(可以针对不同应用,开发有针对性地链路层);2,增加新版客户端SRPExplore,为目前首款同时支持BS和CS结构的浏览器,其BS采用IE内核,CS采用SRP平台作为内核。
为什么前面分析和讨论这么多内容,因为网页式游戏具有天生的优势,就是统一客户端,在客户端使用浏览器,可以浏览所有的页面;但是目前浏览器结构,WebService结构,以及DCom/Cobra等分布式对象模型,多少存在一些限制,在一些应用领域,比如网游的开发,并不合适,因此,新的分布式对象模型,支持更高通信效率,更加灵活的平台有其产生的必要性。
网游中涉及的功能可分为三大类:数据库,架构平台,和图像引擎;数据库技术是发展最完善的技术,目前成熟的数据库系统可以覆盖大型,中型,乃至小型的各种应用;图像引擎是游戏中最热门的话题,各种特效,其实现都需要引擎支持,这也是游戏技术中竞争最激烈的一块,各种新的技术和硬件层出不穷。不同的游戏,对于引擎的要求不同,简单的甚至可以使用GUI直接实现,复杂的不仅需要高效的引擎,而且对于显示硬件配置都有相应的要求,因此这部分很难统一。
而架构平台,虽然也包含了各种技术,诸如网络传输,状态管理,脚本支持等,但大多认为是成熟的技术,把这些成熟的技术堆叠在一起,成为一个网游平台,这绝对不比完成一个图像引擎简单,需要考虑的内容更多。架构平台连接数据库和图像引擎,整合游戏的逻辑,形成一个完整的网络游戏。
网游架构可以分为服务器端和客户端架构,不同的网游,服务器端架构都可能不同,作为架构平台,不仅要求具有扩展性,而且要提供灵活的方式,以便支持各种服务器端架构,作为典型服务器端架构的一种,至少包括:登陆服务器,场景服务器和数据库服务器。
登陆服务器也可能采用多个实现,一个完成负荷分担的功能,将玩家请求,根据其它登陆服务器的负载,进行分担。其它登陆服务器可以完成玩家的创建,销毁,并根据玩家下线的位置和场景服务器的负荷情况,将玩家分配到不同的场景服务器上。
场景服务器可能很多,对一幅大的世界地图,划分不同的区域,由不同的场景服务器进行管理,玩家可以方便的在不同的场景之间进行切换。
数据库服务器不用多说。
作为网游架构平台,需要支持方便实现上述这些功能,并可以通过扩展模块,对架构平台扩展,以便适应新的功能要求。目前SRP平台通过一个C++函数Redirect或者脚本Redirect,可以方便的实现不同服务器之间的切换,提供的扩展接口简单方便,并内置了对Lua脚本的支持,直接使用脚本即可实现大部分的游戏逻辑。
客户端架构相对简单,但是采用SRP分布式对象平台,客户端可以立即具有以下功能:
1. 客户端免安装,采用统一一个客户端,可以运行其上开发的任何游戏。
2. 自动更新,不需要单独发行游戏的升级包,服务器端升级,则客户端自动升级更新
3. 数据的自动在线下载,支持在线数据的更新,服务器端可以设置单独一个或者多个服务器,专门用于 数据的下载。
网游架构平台是网游中的又一关键的核心技术,其本身的重要性,对于整个网游的开发成败影响甚至远远大于优秀的图像引擎。而对于网游架构的研讨,远没有对图像的引擎的研讨吸引眼球。本文仅仅作为一家的观点,欢迎各位业界朋友批评指正,参与讨论。相关的服务器端,客户端,以及实例可从网站http://www.srplab.com下载。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-19 23:39

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表