一种网络游戏服务器中动态加载配置档和脚本的方法技术

技术编号:3500153 阅读:344 留言:0更新日期:2012-04-11 18:40
一种动态加载配置档和脚本的方法,其特征在于为:首先由服务器监听是否收到客户端发送的重新加载命令,当服务器的主线程收到客户端工具发送的重新加载的指令后,暂停主循环,重新执行加载命令来加载配置档和脚本。

【技术实现步骤摘要】

本专利技术涉及网络游戏服务器领域,特别是。
技术介绍
随着网络游戏的发展,往往游戏玩家有时候并不满足游戏本身单一的操作,因此需要换一些设定值,这些都是频繁更改的部分,所以在网络游戏服务器中提供了一些配置档和涉及到游戏玩法的逻辑处理脚本。其中配置档包括怪物,道具的数值设定等,逻辑处理脚本包括npc(游戏中非玩家的角色)的事件处理,任务系统等。配置档和脚本是提供给游戏策划者们设计的,这些是经常改动的部分,如果配置档和脚本不停的改动,就会需要服务器重新启动并加载,这样就会带来诸多不便,如更多的等待时间,许多游戏逻辑错误无法重现,也不便于策划者们立即去对比改动前后的效果。传统的方法就是通过服务器重新启动,在服务器初始化的时候加载,服务器加载配置档的本质就是把配置档以一定格式存储于服务器内存中,在游戏的主循环中需要的时候访问这部分内存,加载脚本的本质就是脚本引擎执行这些脚本代码片断。这种方法的在游戏开发阶段缺点是耗费相对比较多的时间,带来的就是策划者们人工等待的成本;在运营阶段带来的缺点就是服务器程序必须关闭后重新启动,玩家被迫下线,带来玩家体验感的下降。
技术实现思路
本专利技术为解决上述问题提供了,可以简单快速地在网络游戏服务器中加载配置档和脚本文件。本专利技术的技术方案如下一种动态加载配置档和脚本的方法,其特征在于为首先由服务器监听是否收到客户端发送的重新加载命令,当服务器的主线程收到客户端工具发送的重新加载的指令后,暂停主循环,重新执行加载命令来加载配置档和脚本。所述客户端主动向服务器进程发送消息,游戏客户端与服务器端的进程间通讯采用Socket方式。所述重新执行加载命令是指对于配置档,就是把配置档文件在重新加载之前对应的系统内存块数据清除,再把配置档文件重新读进系统内存;对于脚本,就是由脚本引擎调用读取脚本文件的特殊函数接口按顺序重新读取和执行脚本。所述主线程是指负责处理整个游戏世界逻辑的线程,包括游戏世界里面的npc,怪物的人工智能的模拟,玩家动作的处理等。所述Socket是TCP/IP网络的函数接口。所述服务器采用单线程,在加载命令执行时,主线程的游戏世界的逻辑处理必须暂停,加载完毕,主循环再继续。因为服务器采用单线程,加载命令会影响主线程,所以必须将主线程的逻辑处理暂停。所述服务器采用多线程,加载命令在另外的加载工作线程执行,当加载线程进行时,主线程等待加载线程,加载完成后,主线程通过信号量被告知是否继续。所述信号量是一种同步机制,信号量用于保护两个或两个以上关键代码段,这些关键代码段不能并发调用,在进入一个关键代码段之前,线程必须获取一个信号量。所述脚本指游戏玩法包括战斗公式,任务等设计的代码片断文件;所述配置档表示道具,怪物,技能等的数值设定。本专利技术的有益效果如下本专利技术的客户端与服务器端的进程间通讯采用Socket方式,通过重新加载的方法可以降低成本,包括人力和时间成本,也可以降低在游戏产品设计过程中错误的出现几率,不会经常重启服务器,可以增加玩家的体验感。附图说明图1为本专利技术的进程流程2为本专利技术采用单线程的流程图具体实施方式实施例1一种动态加载配置档和脚本的方法,首先由服务器监听是否收到客户端发送的重新加载命令,当服务器的主线程收到客户端工具发送的重新加载的指令后,暂停主循环,重新执行加载命令来加载配置档和脚本。所述客户端主动向服务器进程发送消息,游戏客户端与服务器端的进程间通讯采用Socket方式。所述重新执行加载命令是指对于配置档,就是把配置档文件在重新加载之前对应的系统内存块数据清除,再把配置档文件重新读进系统内存;对于脚本,就是由脚本引擎调用读取脚本文件的特殊函数接口按顺序重新读取和执行脚本。所述主线程是指负责处理整个游戏世界逻辑的线程,包括游戏世界里面的npc,怪物的人工智能的模拟,玩家动作的处理等。所述Socket是TCP/IP网络的函数接口。所述服务器采用单线程,在加载命令执行时,主线程的游戏世界的逻辑处理必须暂停,加载完毕,主循环再继续。因为服务器采用单线程,加载命令会影响主线程,所以必须将主线程的逻辑处理暂停。所述服务器采用多线程,加载命令在另外的加载工作线程执行,当加载线程进行时,主线程等待加载线程,加载完成后,主线程通过信号量被告知是否继续。所述信号量是一种同步机制,信号量用于保护两个或两个以上关键代码段,这些关键代码段不能并发调用,在进入一个关键代码段之前,线程必须获取一个信号量。所述脚本指游戏玩法包括战斗公式,任务等设计的代码片断文件;所述配置档表示道具,怪物,技能等的数值设定。实施例2如图2所示,服务器采用单线程的时候,动态加载游戏中道具价格表的具体实例,某一道具初始价格为a,重新加载后价格为b。权利要求1.一种动态加载配置档和脚本的方法,其特征在于为首先由服务器监听是否收到客户端发送的重新加载命令,当服务器的主线程收到客户端工具发送的重新加载的指令后,暂停主循环,重新执行加载命令来加载配置档和脚本。2.根据权利要求1所述的一种动态加载配置档和脚本的方法,其特征在于所述客户端主动向服务器进程发送消息,游戏客户端与服务器端的进程间通讯采用Socket方式。3.根据权利要求1所述的一种动态加载配置档和脚本的方法,其特征在于所述重新执行加载命令是指对于配置档,就是把配置档文件在重新加载之前对应的系统内存块数据清除,再把配置档文件重新读进系统内存;对于脚本,就是由脚本引擎调用读取脚本文件的特殊函数接口按顺序重新读取和执行脚本。4.根据权利要求1所述的一种动态加载配置档和脚本的方法,其特征在于所述主线程是指负责处理整个游戏世界逻辑的线程。5.根据权利要求1所述的一种动态加载配置档和脚本的方法,其特征在于所述Socket是TCP/IP网络的函数接口。6.根据权利要求1所述的一种动态加载配置档和脚本的方法,其特征在于所述服务器采用单线程,在加载命令执行时,主线程的游戏世界的逻辑处理必须暂停,加载完毕,主循环再继续。所述服务器采用多线程,加载命令在另外的加载工作线程执行,当加载线程进行时,主线程等待加载线程,加载完成后,主线程通过信号量被告知是否继续。7.根据权利要求6所述的一种动态加载配置档和脚本的方法,其特征在于所述信号量是一种同步机制,信号量用于保护两个或两个以上关键代码段,这些关键代码段不能并发调用,在进入一个关键代码段之前,线程必须获取一个信号量。全文摘要本专利技术提供了一种动态加载配置档和脚本的方法,其特征在于为首先由服务器监听是否收到客户端发送的重新加载命令,当服务器的主线程收到客户端工具发送的重新加载的指令后,暂停主循环,重新执行加载命令来加载配置档和脚本;本专利技术的客户端与服务器端的进程间通讯采用Socket方式,通过重新加载的方法可以降低成本,包括人力和时间成本,也可以降低在游戏产品设计过程中错误的出现几率,不会经常重启服务器,可以增加玩家的体验感。文档编号G06F9/46GK101021884SQ20071004874公开日2007年8月22日 申请日期2007年3月28日 优先权日2007年3月28日专利技术者陈济忠, 何文辉, 周冠强 申请人:成都金山互动娱乐科技有限公司 本文档来自技高网...

【技术保护点】
一种动态加载配置档和脚本的方法,其特征在于为:首先由服务器监听是否收到客户端发送的重新加载命令,当服务器的主线程收到客户端工具发送的重新加载的指令后,暂停主循环,重新执行加载命令来加载配置档和脚本。

【技术特征摘要】

【专利技术属性】
技术研发人员:陈济忠何文辉周冠强
申请(专利权)人:成都金山互动娱乐科技有限公司
类型:发明
国别省市:90

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1