一种游戏在线调试方法、系统及编辑服务端的制作方法
【专利摘要】本发明公开了一种游戏在线调试方法,包括如下步骤:发起与游戏客户端的连接请求,并在连接成功后,持有连接对象;其中,所述游戏客户端内的每个游戏角色均被配置至少一组对应的游戏数据;监听用户对所述游戏数据的第一操作,并收集根据所述第一操作生成的改动数据;通过所述连接对象访问所述游戏客户端,并使用收集的所述改动数据替换所述游戏客户端内对应的游戏角色的游戏数据,以使所述游戏客户端根据所述改动数据执行游戏逻辑。本发明还公开了一种编辑服务端与游戏在线调试系统,可实现实时的游戏调试。
【专利说明】
一种游戏在线调试方法、系统及编辑服务端
技术领域
[0001]本发明涉及游戏调试领域,尤其涉及一种游戏在线调试方法、系统及编辑服务端。
【背景技术】
[0002]在游戏开发过程或运营过程中,常常需要对游戏内的游戏数据,例如游戏角色的战斗值、成长值或者装备属性等进行编辑或调整,以保证游戏的平衡性。如图1所示,传统的游戏数据编辑方案大多基于策划改表的形式,策划在改动游戏数据表格后通过固定的导表规则来生成可以在游戏内使用的脚本文件,然后将脚本文件上传服务器后重启对应服务器才能生效。其基本流程如下:
[0003](I)修改游戏数据表格;
[0004](2)将修改后的表格上传至SVN服务器;
[0005](3)针对修改后表格进行导表热更,生成能在游戏中生效的脚本文件;
[0006](4)对应游戏服务端、游戏客户端重启或者热更;
[0007](5)在游戏客户端内查看修改后效果。
【发明内容】
[0008]上述方案在调试游戏角色的属性在流程上很清晰,通常也能做得很规范。但由于每次修改完成后都需要重新导表以及重启游戏服务器或者游戏客户端才能生效,即每修改一次游戏数据都需要重新走一遍上述流程,而往往可能需要多次修改才能达到预期的结果,导致游戏策划需要耗费大量的时间在这些流程中,延缓了游戏开发进度,增加了游戏的维护时间。
[0009]针对上述问题,本发明的目的在于提供一种游戏在线调试方法,包括如下步骤:
[0010]发起与游戏客户端的连接请求,并在连接成功后,持有连接对象;其中,所述游戏客户端内的每个游戏角色均被配置至少一组对应的游戏数据;
[0011]监听用户对所述游戏数据的第一操作,并收集根据所述第一操作生成的改动数据;
[0012]通过所述连接对象访问所述游戏客户端,并使用收集的所述改动数据替换所述游戏客户端内对应的游戏角色的游戏数据,以使所述游戏客户端根据所述改动数据执行游戏逻辑。
[0013]上述技术方案中,通过建立与游戏客户端的连接关系,并利用收集的改动数据替换所述游戏客户端内对应的游戏角色的游戏数据,使得游戏客户端根据改动数据执行游戏逻辑,从而达到了实时修改,实时调试的目的,且可以在游戏客户端查看到当前修改的效果O
[0014]优选地,与所述游戏客户端进行的所述连接,具体为:远程调用连接;所述连接对象具体为:线程服务。
[0015]在本优选方案中,所述连接为远程调用连接,因而可以在远程实现对游戏客户端的调用。
[0016]优选地,所述第一操作至少包括以下其中之一:修改游戏角色的游戏数据,对游戏角色配置或更换游戏装备,对游戏角色配置或更换游戏道具,对游戏角色配置或更换游戏符文,控制游戏角色技能释放,控制游戏Al。
[0017]优选地,在发起与游戏客户端的连接请求,并在连接成功后,持有连接对象之后,还包括:
[0018]通过所述连接对象向所述游戏客户端发送测试代码,以使所述游戏客户端在接收到所述测试代码后,执行所述测试代码,并返回开启的后门端口;
[0019]根据所述后门端口向所述游戏客户端发送初始化代码,以使所述游戏客户端进行初始化;
[0020]在确定所述游戏客户端完成初始化后,向所述游戏客户端发送统计脚本;
[0021]通过远程实现函数在所述游戏客户端解析所述统计脚本,并在所述游戏客户端完成脚本解析后,将所述统计脚本设置到所述游戏客户端的指定路径,以使所述游戏客户端在执行游戏逻辑时,利用所述统计脚本统计在执行游戏逻辑过程中生成的指定数据的统计值,并将所述统计值返回。
[0022]本优选方案中,在不改变游戏客户端逻辑的前提下,基于外挂式插件开发向游戏客户端插入统计脚本,以统计游戏数据被改动后的统计值,从而更简单直观的体现数据改动的效果,方便策划的判断决策,可扩展性强。
[0023]优选地,所述统计值至少包括以下其中一种:游戏角色的秒伤害、技能持续时间、命中率。
[0024]优选地,在监听用户对所述游戏数据的第一操作,并收集根据所述第一操作生成的改动数据之后,还包括:
[0025]监听用户的第二操作,根据所述第二操作启动预览界面,并在所述预览界面显示游戏数据发生改动的游戏角色在经所述第一操作后的数据对比和/或所述游戏客户端返回的所述统计值。
[0026]本优选方案中,通过提供预览界面来预览游戏角色的属性情况及发送游戏数据改变后的属性对比情况和/或所述游戏客户端返回的所述统计值,从而更简单直观的体现修改的效果,方便策划的判断决策。
[0027]优选地,所述游戏数据存放于内置的表格的单元格内,则所述游戏在线调试方法还包括:
[0028]当监听到用户对任意一个单元格内的游戏数据执行所述第一操作时,发送第一信号;
[0029]当后台注册的槽接收所述第一信号后,获取所述第一操作针对的当前单元格的标识,并根据所述标识从预置的单元格关联映射表内查询与当前单元格具有关联关系的单元格;
[0030]根据查询得到的结果跳转到与所述当前单元格具有关联关系的单元格。
[0031]一般来说,游戏角色的游戏数据是有关联关系的,当对某个游戏数据进行更换时,则很可能需要对与其具有关联关系的游戏数据进行同步更改或替换,本优选方案通过提供自动跳转的功能,可以自动跳转到具有关联关系的单元格,避免了手动寻找具有关联关系的单元格的过程,缩短了游戏调试的时间和效率。
[0032]优选地,所述游戏数据存放于内置的表格的单元格内,则所述游戏在线调试方法还包括:
[0033]当监听到用户对任意一个单元格内的游戏数据执行所述第一操作时,发射第二信号;
[0034]当后台注册的槽接收所述第二信号后,获取所述第一操作针对的当前单元格的标识,并根据所述标识从预置的单元格关联映射表内查询与所述当前单元格具有关联关系的单元格;
[0035]根据查询得到结果显示与所述当前单元格具有关联关系的单元格的标识。
[0036]—般来说,游戏角色的游戏数据是有关联关系的,当对某个游戏数据进行更换时,则很可能需要对与其具有关联关系的游戏数据进行同步更改或替换,本优选方案通过提供自动提不的功能,可以自动提不具有关联关系的单7Π格,避免了手动寻找具有关联关系的单元格的过程,缩短了游戏调试的时间和效率。
[0037]优选地,所述游戏数据存放于内置的表格的单元格内,则所述游戏在线调试方法还包括:
[0038]根据游戏角色的类型对所述单元格进行归类,使得具有相同类型的游戏角色对应的单元格放置于同一分组内。
[0039]一般来说,游戏角色分为各种类型,如物理输出型、辅助型、法术输出型等,其中,当对某个游戏角色的游戏数据进行更改或替换时,则很有可能需要对同类型的游戏角色的游戏数据进行同步的更改或替换时,本优选方案中,通过将具有相同类型的游戏角色对应的单元格放置于同一分组内,方便进行更改,提供游戏调试的效率。
[0040]优选地,所述游戏数据存放于内置的表格的单元格内,则所述游戏在线调试方法还包括:
[0041]在监听到用户向任一单元格内输入游戏数据时,判断所述游戏数据是否符合所述单元格预置的数据类型要求,若否,则发出报错提醒。
[0042]由于游戏数据本身是有数据类型要求的,例如,某个单元格内只能填写整型数据,而不能填入浮点型数据,在本优选方案中,在游戏数据写入单元格的时候就提前预判填写的游戏数据是否合法,避免了在导入的时候报错而导致检查修改的过程,进一步提高了游戏调试的效率。
[0043]优选地,所述游戏数据初始存放于外部的表格文件中,则在发起与游戏客户端的连接请求,并在连接成功后,持有连接对象之前,还包括:
[0044]同时启动至少两个子线程,并使每个子线程启动一个与所述表格文件的文件类型对应的进程;
[0045]所述子线程根据启动的进程分别读取所述表格文件中的游戏数据;
[0046]所述子线程在读取完成后,对所述游戏数据进行序列化,并输出到内置的表格中,以将所述游戏数据从外部的表格文件导入到内置的表格中。
[0047]在游戏数据的填写方式中,有些用户习惯先在外部的表格文件(如excel)中填写,再导入到内置的表格中,通常一张表格的数据量在几M以上,按通常流程处理表格的数据导入需要消耗几十分钟,这对于编辑操作而言是无法容忍的。本优选方案中,基于非阻塞式的方案来读取表格文件及约束关系。同时启动多个子线程进行数据读取处理,再统一序列化,并通过StdOUt方式进行数据传输,写入到内置的表格中,从而节省了游戏数据导入的时间。
[0048]优选地,所述连接为RPyC连接。
[0049]本优选方案中,使用RPyC进行远程连接和调用,其中,使用RPyC连接生成的连接对象具有透明的特定,这意味着对于游戏客户端中暴露的方法,只要连接对象未关闭,都能进行访问。此外,RPyC还具有远程调用方便,异步调用方便等优点。
[0050]优选地,所述通过所述连接对象访问所述游戏客户端,并使用收集的所述改动数据替换所述游戏客户端内对应的游戏角色的游戏数据,以使所述游戏客户端根据所述改动数据执行游戏逻辑,具体为:
[0051]通过所述连接对象访问所述游戏客户端,并在内存中使用收集的所述改动数据替换所述游戏客户端内对应的游戏角色的游戏数据,以使所述游戏客户端根据所述改动数据执行游戏逻辑。
[0052]在本优选方案中,游戏数据的替换仅在内存中进行,因而不会改变在游戏客户端内存储的游戏数据。
[0053 ]本发明还提供了一种编辑服务端,包括:
[0054]连接请求单元,用于发起与游戏客户端的连接请求,并在连接成功后,持有连接对象;其中,所述游戏客户端内的每个游戏角色均被配置至少一组对应的游戏数据;
[0055]数据收集单元,用于监听用户对所述游戏数据的第一操作,并收集根据所述第一操作生成的改动数据;
[0056]访问单元,用于通过所述连接对象访问所述游戏客户端,并使用收集的所述改动数据替换所述游戏客户端内对应的游戏角色的游戏数据,以使所述游戏客户端根据所述改动数据执行游戏逻辑。
[0057]优选地,所述连接请求单元与所述游戏客户端进行的所述连接,具体为:远程调用连接;所述连接对象具体为:线程服务。
[0058]优选地,所述第一操作至少包括以下其中之一:修改游戏数据,对游戏角色配置或更换游戏装备,对游戏角色配置或更换游戏道具,对游戏角色配置或更换游戏符文,控制游戏角色技能释放,控制游戏Al。
[0059]优选地,还包括:
[0060]测试代码发送单元,用于通过所述连接对象向所述游戏客户端发送测试代码,以使所述游戏客户端在接收到所述测试代码后,执行所述测试代码,并返回开启的后门端口;
[0061]初始化代码发送单元,用于根据所述后门端口向所述游戏客户端发送初始化代码,以使所述游戏客户端进行初始化;
[0062]统计脚本发送单元,用于在确定所述游戏客户端完成初始化后,向所述游戏客户端发送统计脚本;
[0063]统计脚本部署单元,用于通过远程实现函数在所述游戏客户端解析所述统计脚本,并在所述游戏客户端完成脚本解析后,将所述统计脚本设置到所述游戏客户端的指定路径,以使所述游戏客户端在执行游戏逻辑时,利用所述统计脚本统计在执行游戏逻辑过程中生成的指定数据的统计值,并将所述统计值返回。
[0064]优选地,所述统计值至少包括以下其中一种:游戏角色的秒伤害、技能持续时间、命中率。
[0065]优选地,还包括:
[0066]预览单元,用于监听用户的第二操作,根据所述第二操作启动预览界面,并在所述预览界面显示游戏数据发生改动的游戏角色在经所述第一操作后的数据对比和/或所述游戏客户端返回的所述统计值。
[0067]优选地,所述游戏数据存放于内置的表格的单元格内,则所述编辑服务端还包括:
[0068]第一信号发射单元,用于当监听到用户对任意一个单元格内的游戏数据执行所述第一操作时,发射第一信号;
[0069]第一查询单元,用于当后台注册的槽接收所述第一信号后,获取所述第一操作针对的当前单元格的标识,并根据所述标识从预置的单元格关联映射表内查询与当前单元格具有关联关系的单7Π格;
[0070]跳转单元,用于根据查询得到的结果跳转到与所述当前单元格具有关联关系的单元格。
[0071 ]优选地,所述游戏数据存放于内置的表格的单元格内,则所述编辑服务端还包括:
[0072]第二信号发射单元,用于当监听到用户对任意一个单元格内的游戏数据执行所述第一操作时,发射第二信号;
[0073]第二查询单元,用于当后台注册的槽接收所述第二信号后,获取所述第一操作针对的当前单元格的标识,并根据所述标识从预置的单元格关联映射表内查询与所述当前单兀格具有关联关系的单兀格;
[0074]提示显示单元,用于根据查询得到的结果在界面上显示与所述当前单元格具有关联关系的单兀格的标识。
[0075]优选地,所述游戏数据存放于内置的表格的单元格内,则所述编辑服务端还包括:
[0076]归类单元,用于根据游戏角色的类型对所述单元格进行归类,使得具有相同类型的游戏角色对应的单元格放置于同一分组内。
[0077]优选地,所述游戏数据存放于内置的表格的单元格内,则所述编辑服务端还包括:
[0078]合法检查单元,用于在监听到用户向任一单元格内输入游戏数据时,判断所述游戏数据是否符合所述单元格预置的数据类型要求,若否,则发出报错提醒。
[0079]优选地,还包括:
[0080]子线程启动单元,用于同时启动至少两个子线程,并使每个子线程启动一个与所述表格文件的文件类型对应的进程;
[0081]读取单元,用于根据启动的进程分别读取所述表格文件中的游戏数据;
[0082]输出单元,用于在读取完成后,对所述游戏数据进行序列化,并输出到所述编辑服务端内置的表格中,以将所述游戏数据从外部的表格文件导入到内置的表格中。
[0083]优选地,所述连接为RPyC连接。
[0084]优选地,所述访问单元具体用于,通过所述连接对象访问所述游戏客户端,并在内存中使用收集的所述改动数据替换所述游戏客户端内对应的游戏角色的游戏数据,以使所述游戏客户端根据所述改动数据执行游戏逻辑。
[0085]本发明还提供一种游戏在线调试系统,包括游戏客户端及上述的编辑服务端,其中:
[0086]所述编辑服务端,用于发起与游戏客户端的连接请求,并在连接成功后,持有连接对象;其中,所述游戏客户端内的每个游戏角色均被分配一组对应的游戏数据;
[0087]所述编辑服务端,还用于监听用户对所述游戏数据的第一操作,并收集根据所述第一操作生成的改动数据;
[0088]所述编辑服务端,还用于通过所述连接对象访问所述游戏客户端,并使用收集的所述改动数据替换所述游戏客户端内对应的游戏角色的游戏数据;
[0089]所述游戏客户端,用于根据所述改动数据执行游戏逻辑。
[0090]优选地,所述连接为RPyC连接;其中,所述编辑服务端作为RPyCClient端,所述游戏客户端作为RPyC Server端。
【附图说明】
[0091]为了更清楚地说明本发明的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0092]图1是现有技术的游戏调试的流程示意图。
[0093]图2是本发明实施例提供的游戏在线调试方案的流程示意图。
[0094]图3是编辑服务端对游戏客户端进行远程调用的示意图。
[0095]图4是编辑服务端向游戏客户端植入统计代码的流程示意图。
[0096]图5是将所述统计脚本植入游戏客户端的原理示意图。
[0097]图6是对编辑服务端内置的表格设置约束关系的示意图。
[0098]图7是编辑服务端通过多个子线程同时读取外部的表格文件的示意图。
[0099]图8是本发明实施例提供的编辑服务端的结构示意图。
[0100]图9是本发明实施例提供的编辑服务端的另一种结构示意图。
[0101]图10是本发明实施例提供的编辑服务端的另一种结构示意图。
[0102]图11是本发明实施例提供的编辑服务端的另一种结构示意图。
[0103]图12是本发明实施例提供的编辑服务端的另一种结构示意图。
[0104]图13是本发明实施例提供的编辑服务端的另一种结构示意图。
[0105]图14是本发明实施例提供的编辑服务端的另一种结构示意图。
【具体实施方式】
[0106]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0107]请参阅图2,本发明实施例提供一种游戏在线调试方法,用于进行游戏的实时在线调试,本实施例是从编辑服务端进行描述的,其包括如下步骤:
[0108]SlOl,发起与游戏客户端的连接请求,并在连接成功后,持有连接对象;其中,所述游戏客户端内的每个游戏角色均被配置至少一组对应的游戏数据。
[0109]在本发明实施例中,所述游戏客户端作为游戏数据的使用端,存储了必要的游戏角色(包括供用户选择的角色、游戏预置的NPC及游戏Al (Artificial Intelligence,人工智能))的游戏数据,所述游戏数据可包括游戏角色的初始数值(如初始攻击力、初始防御力、初始生命值)、成长数值(如游戏角色每升一级引起的攻击力、防御力和生命值变化)、技能威力、技能范围等。其中,在执行游戏逻辑中,所述游戏客户端可根据不同的游戏角色的游戏数值进行数值结算,来得到最终的战斗结果。
[0110]在本发明实施例中,所述编辑服务端存储了与所述游戏客户端内的至少一个游戏角色对应的游戏数据,并可通过建立与所述游戏客户端的连接,将游戏数据传递给所述游戏客户端,从而达到在游戏客户端更改对应的游戏角色的游戏数据的目的。
[0111]在本发明实施例中,所述连接为远程调用连接;所述连接对象具体为:线程服务,其是所述编辑服务端对游戏客户端进行访问的途径。
[0112]具体地,通过远程调用方式进行连接时,该连接可生成透明的连接对象对游戏客户端进行访问,通过所述连接对象,所述编辑服务端即可访问到所述游戏客户端的各个游戏功能模块。而本发明生成的连接对象具有透明的特点,具体为一个线程服务,只要所述线程服务未关闭,所述编辑服务端都能实现远程访问和调用。
[0113]优选地,如图3所示,在本发明的一个实施例中,所述编辑客户端与所述游戏客户端可通过RPyC(Remote Python Call)进行连接,以实现远程调用,其中:
[0114]所述游戏客户端作为RPyCServer端,其在启动时,会运行一个预先设置好的RPyCServer,并以一个固定的数字作为端口号,通过监听所述端口号来监听来自RPyC Client的连接请求。
[0115]所述编辑服务端作为RPyCClient端,其在需要建立与所述游戏客户端的连接时,先检测所述游戏客户端是否启动,若未启动则自动启动所述游戏客户端,并向所述端口号发起与所述游戏客户端的RPyC server建立连接的请求,在连接成功后,所述编辑服务端持有连接对象,并可通过所述连接对象访问到所述游戏客户端的各个游戏功能模块,再通过这些游戏功能模块调用具体的接口,实现游戏的调试。
[0116]在本发明实施例中,通过RPyC(—个Python的库用来实现远程过程调用和分布式计算的工具)进行连接时,该连接可生成透明的连接对象对游戏客户端进行访问,通过所述连接对象,所述编辑服务端即可访问到所述游戏客户端的各个游戏功能模块。而基于RPyC生成的连接对象具有透明的特点,这意味通过所述连接对象调用远程对象(游戏客户端)中的方法(方法是对象的一类操作或者是对象的某些功能)就像在本地调用方法一样,因而对于游戏客户端中暴露的方法(暴露的方法是指对象中可以被别的包访问和调用的方法,如对象的公有(public)类型的方法),只要所述连接对象未关闭,所述编辑服务端都能对这些方法进行访问和调用。此外,使用RPyC来实现远程过程调用还具有远程调用方便和异步调用方便等优点。
[0117]当然,应该理解的是,在本发明其他实施例中,所述编辑服务端与所述游戏客户端还可通过其他的远程调用连接实现远程连接和调用,本发明不做具体限定。
[0118]S102,监听用户对所述游戏数据的第一操作,并收集根据所述第一操作生成的改动数据。
[0119]在本发明实施例中,当需要对所述游戏客户端内的游戏数据进行调试时,用户可通过对存放在所述编辑服务端的游戏数据执行第一操作,其中,所述第一操作至少包括以下其中之一:修改游戏数据,对游戏角色配置或更换游戏装备,对游戏角色配置或更换游戏道具,对游戏角色配置或更换游戏符文,控制游戏角色技能释放,控制游戏Al。
[0120]例如,用户可以直接在编辑服务端内修改某个游戏角色的初始攻击力或者升级经验、技能威力等。此时,当所述编辑服务端监听到用户对所述游戏数据发出所述第一操作,可收集到根据所述第一操作生成的改动数据。
[0121]此外,用户也可以在所述编辑服务端将游戏装备、游戏道具或者游戏符文等配置给游戏角色,此时,所述游戏角色的属性将附加上游戏装备、游戏道具或者游戏符文等的属性,也会生成新的改动数据。
[0122]此外,用户还可以通过发出第一操作来控制游戏客户端内的游戏角色技能释放,控制游戏Al的动作等。
[0123]S103,通过所述连接对象访问所述游戏客户端,并使用收集的所述改动数据替换所述游戏客户端内对应的游戏角色的游戏数据,以使所述游戏客户端根据所述改动数据执行游戏逻辑。
[0124]例如,假设所述第一操作为将所述游戏角色A的初始攻击力从10修改为12,则所述编辑服务端在接收到所述改动数据(即12)后,通过所述连接对象访问所述游戏客户端,并使用12替换所述游戏角色A原本的初始攻击力10,此后,在所述游戏客户端执行游戏逻辑时,所述游戏角色A的初始攻击力即变为12,从而实现了实时的游戏在线调试。
[0125]在本发明实施中,所述编辑客户端利用所述改动数据对游戏客户端的游戏数据进行替换时,可仅在游戏客户端的内存中进行相应数据的替换,此时,所述编辑服务端可先查询与所述改动数据对应的游戏数据的内存地址,然后在内存中使用所述改动数据替换对应的游戏角色的游戏数据。这样,可以保证游戏客户端存储的游戏数据不变,即在每次游戏客户端重启或连接关闭后,所述游戏客户端的游戏数据将重新变回原来的数值,避免了游戏客户端的游戏数据被随意改变。
[0126]当然,在本发明的其他实施例中,也可以直接利用改动数据替换游戏客户端存储的游戏数据,这样,可以更好的保存每次的改动,避免每次重启或重新连接后需要再次调试的问题。
[0127]综上所述,本发明实施例提供的游戏在线调试方法,通过建立与游戏客户端的连接关系,并利用收集的改动数据替换所述游戏客户端内对应的游戏角色的游戏数据,使得游戏客户端根据改动数据执行游戏逻辑,从而达到了实时修改,实时调试的目的,从而避免了繁琐的导表和重启过程,极大提高了游戏调试的效率,缩短了游戏开发的时间。
[0128]为了便于对本发明的理解,下面将对本发明的一些优选实施例做进一步的介绍。
[0129]第一个优选实施例:
[0130]在对游戏角色的游戏数据进行改动后,有时还需要统计根据改动得到的一些数值,而这些数值,例如所述游戏角色经改动后的秒伤害、技能持续时间、命中率,是无法直观得到的,需要利用工具或脚本进行统计。
[0131]则此时,如图4所示,本发明的游戏在线调试方法在步骤SlOl之后,还包括:
[0132]SlOll,通过所述连接对象向所述游戏客户端发送测试代码,以使所述游戏客户端在接收到所述测试代码后,执行所述测试代码,并返回开启的后门端口。
[0133]在本发明实施例中,所述测试代码可为一个木马程序,通过发送所述测试代码可获得所述游戏客户端的后门端口,从而可通过所述后门端口入侵到所述游戏客户端,达到在所述游戏客户端插入脚本或插件的目的。
[0134]S1012,根据所述后门端口向所述游戏客户端发送初始化代码,以使所述游戏客户端进行初始化。
[0135]S1013,在确定所述游戏客户端完成初始化后,向所述游戏客户端发送统计脚本。
[0136]S1014,通过远程实现函数在所述游戏客户端解析所述统计脚本,并在所述游戏客户端完成脚本解析后,将所述统计脚本设置到所述游戏客户端的指定路径,以使所述游戏客户端在执行游戏逻辑时,利用所述统计脚本统计在执行游戏逻辑过程中生成的指定数据的统计值,并将所述统计值返回。
[0137]在本优选实施例中,在技术上采用了hotfix的方案来在游戏客户端植入所述统计脚本,从而达到了在所述游戏客户端增加部分功能逻辑的目的。
[0138]其中,如图5所述,hotfix的原理可用如下例子来说明,假设原系统中有一个名为getValue()的函数(原函数),当需要修改getValue函数里面valueA的值为2,此时可以在hotfix脚本里新建一个函数(附加代码),让原函数getValue()指向新函数的内存空间(SP将附加代码增加到原函数上,形成替换以后的函数),这样每次执行getValueO的时候实际上将执行新函数的逻辑,valueA的值变成了 2。
[0139]在本优选实施例中,所述编辑服务端可以通过向所述游戏客户端植入所述统计脚本,并将统计脚本附加到所述游戏客户端原有的游戏逻辑上。当所述统计脚本在所述编辑客户端完成解析和部署后,在所述游戏客户端执行游戏逻辑时,这段附加的统计脚本可统计指定数据的统计值,其中,这里的指定数据由实际需要在所述统计脚本中编程来决定,本发明不做具体的限定。
[0140]本优选实施例中,在不改变游戏客户端本身的游戏逻辑的前提下,基于外挂式插件开发向游戏客户端插入统计脚本,以统计游戏数据被改动后的指定数据的统计值,从而更简单的体现修改的效果,方便策划的判断决策,可扩展性强。
[0141]第二个优选实施例:
[0142]优选地,在步骤S102之后,还包括:
[0143]监听用户的第二操作,根据所述第二操作启动预览界面,并在所述预览界面显示游戏数据发生改动的游戏角色在经所述第一操作后的数据对比和/或所述游戏客户端返回的所述统计值。
[0144]在本优选方案中,当所述编辑服务端监听用户执行第二操作(如按下预览控件)时,即启动预览界面来预览游戏角色的属性情况及发生游戏数据改变后的属性对比情况,以更直观的获得游戏数据的改动情况和前后变化情况。例如,假设用户在第一操作时,将游戏角色A的初始攻击力从10调整到12,则此时在预览界面将呈现出原有的初始攻击力和改动后的初始攻击力。
[0145]此外,在启动预览的同时,还可以发起与所述游戏客户端的连接,利用生成的连接对象访问游戏客户端,并使用收集的所述改动数据替换所述游戏客户端内对应的游戏角色的游戏数据,以接收所述游戏客户端根据所述改动数据和统计脚本返回的统计值,并将所述统计值同时显示在所述预览界面上。
[0146]本优选实施例中,通过提供预览界面来预览游戏角色的属性情况及发生游戏数据改变后的属性对比情况和/或所述游戏客户端返回的所述统计值,从而更简单的体现修改的效果,方便策划的判断决策。
[0147]第三个优选实施例:
[0148]—般来说,所述游戏数据存放于所述编辑服务端内置的表格的单元格内,而且游戏角色的游戏数据之间是有关联关系的。例如,当游戏角色的力量发生变化时,其生命值也可能需要相应变化,因而当对某个游戏数据进行更换时,则很可能需要对与其具有关联关系的游戏数据进行同步更改或替换,为此在本优选实施例中,所述游戏在线调试方法还包括:
[0149]当监听到用户对任意一个单元格内的游戏数据执行所述第一操作时,发送第一信号;
[0150]当后台注册的槽接收所述第一信号后,获取所述第一操作针对的当前单元格的标识,并根据所述标识从预置的单元格关联映射表内查询与当前单元格具有关联关系的单元格;
[0151]根据查询得到的结果跳转到与所述当前单元格具有关联关系的单元格。
[0152]本优选实施例主要使用了PyQT的信号槽机制来进行关联跳转。首先,在所述编辑服务端的后台注册相关的槽,作为信号的监听者。当用户在对所述编辑服务端发出第一操作时,所述编辑服务端发射第一信号,后台注册的槽在接收到所述第一信号后对用户操作的当前单元格进行检查并从预置的单元格关联映射表内查询与当前单元格具有关联关系的单元格,并进行跳转。
[0153]如图6所示,当用户点击某一单元格时,所述编辑服务端会查找该单元格所在的行及关联表头名称(即当前单元格的标识),再根据所述单元格关联映射表通过表头对应到与当前单元格具有关联关系的单元格的具体位置,并进行跳转。
[0154]其中,所述单元格关联映射表预先定义好了不同单元格的关联关系和约束关系,在本优选实施例中,所述约束关系为关联跳转,即在检测到与当前单元格具有关联关系的单元格时,实现自动跳转。
[0155]本优选实施例通过提供自动跳转的功能,可以自动跳转到与当前单元格具有关联关系的单元格,避免了手动寻找单元格的过程,缩短了游戏调试的时间和效率,并可避免出现遗漏的问题。
[0156]第四个优选实施例:
[0157]—般来说,所述游戏数据存放于所述编辑服务端内置的表格的单元格内,而且游戏角色的游戏数据之间是有关联关系的。例如,当游戏角色的力量发生变化时,其生命值也可能需要相应变化,因而当对某个游戏数据进行更换时,则很可能需要对与其具有关联关系的游戏数据进行同步更改或替换,为此在本优选实施例中,所述游戏在线调试方法还包括:
[0158]当监听到用户对任意一个单元格内的游戏数据执行所述第一操作时,发射第二信号。
[0159]当后台注册的槽接收所述第二信号后,获取所述第一操作针对的当前单元格的标识,并根据所述标识从预置的单元格关联映射表内查询与所述当前单元格具有关联关系的单元格。
[0160]根据查询得到结果显示与所述当前单元格具有关联关系的单元格的标识。
[0161 ]与第三个优选实施例的区别在于,本优选实施例中,并不提供跳转,而是在编辑服务端的界面上弹出与当前单元格具有关联关系的单元格的编号或位置的提示,如此通过提供自动提示的功能,避免了手动寻找具有关联关系的单元格的过程,缩短了游戏调试的时间和效率。
[0162]第五个优选实施例:
[0163]优选地,所述游戏数据存放于内置的表格的单元格内,则所述游戏在线调试方法还包括:
[0164]根据游戏角色的类型对所述单元格进行归类,使得具有相同类型的游戏角色对应的单元格放置于同一分组内。
[0165]—般来说,游戏角色分为各种类型,如物理输出型、辅助型、法术输出型等,其中,当对某个游戏角色的游戏数据进行更改或替换时,则很有可能需要对同类型的游戏角色的游戏数据进行同步的更改或替换时,本优选方案中,通过将具有相同类型的游戏角色对应的单元格放置于同一分组内,方便进行更改,提高游戏调试的效率。
[0166]第六个优选实施例:
[0167]优选地,所述游戏数据存放于内置的表格的单元格内,则所述游戏在线调试方法还包括:
[0168]在监听到用户向任一单元格内输入游戏数据时,判断所述游戏数据是否符合所述单元格预置的数据类型要求,若否,则发出报错提醒。
[0169]由于游戏数据本身是有数据类型要求的,例如,某个单元格内只能填写整型数据,则当所述编辑服务端监听到用户向该单元格填入非整型数据时,就自动提醒数据填入错误。
[0170]在本优选实施例中,在游戏数据写入单元格的时候就提前预判填写的游戏数据是否符合该单元格预置的数据类型要求,避免了在数据导入的时候再检查报错而导致的查询过程,进一步提高了游戏调试的效率。
[0171]第七个优选实施例:
[0172]优选地,所述游戏数据初始存放于外部的表格文件中,则在发起与游戏客户端的连接请求,并在连接成功后,持有连接对象之前,还包括:
[0173]同时启动至少两个子线程,并使每个子线程启动一个与所述表格文件的文件类型对应的进程;
[0174]所述子线程根据启动的进程分别读取所述表格文件中的游戏数据;
[0175]所述子线程在读取完成后,对所述游戏数据进行序列化,并输出到内置的表格中,以将所述游戏数据从外部的表格文件导入到内置的表格中。
[0176]在游戏数据的填写方式中,有些用户习惯于先在外部的表格文件(如excel)中填写,再导入到游戏编辑端内置的表格中,通常一张外部的表格文件的数据量在几M以上,按通常流程处理表格文件的数据导入需要消耗几十分钟,这对于编辑操作而言是无法容忍的。如图7所示,本优选实施例中,基于非阻塞式的方案来读取表格文件及其内部的约束关系(即同时读取单元格之间的关联关系),通过同时启动多个子线程,进行数据读取和初始化,在序列化后,通过stdout方式进行数据传输,从而节省了游戏数据从外部的表格文件导入到所述编辑服务端内置的表格中所需的时间,提高了游戏调试的效率。
[0177]请参阅图8,本发明实施例还提供了一种编辑服务端100,包括:
[0178]连接请求单元10,用于发起与游戏客户端的连接请求,并在连接成功后,持有连接对象;其中,所述游戏客户端内的每个游戏角色均被配置至少一组对应的游戏数据。
[0179]其中,所述连接请求单元10与所述游戏客户端进行的所述连接,具体为:远程调用连接;所述连接对象具体为:线程服务。
[0180]其中,可与所述游戏客户端通过RPyC的方式进行连接,所述连接请求单元10作为RPyC Client端,所述游戏客户端作为RPyC Server端。
[0181]数据收集单元20,用于监听用户对所述游戏数据的第一操作,并收集根据所述第一操作生成的改动数据。
[0182]其中,所述第一操作至少包括以下其中之一:修改游戏数据,对游戏角色配置或更换游戏装备,对游戏角色配置或更换游戏道具,对游戏角色配置或更换游戏符文,控制游戏角色技能释放,控制游戏Al。
[0183]访问单元30,用于通过所述连接对象访问所述游戏客户端,并使用收集的所述改动数据替换所述游戏客户端内对应的游戏角色的游戏数据,以使所述游戏客户端根据所述改动数据执行游戏逻辑。
[0184]本发明实施例提供的编辑服务端100,通过所述连接请求单元10建立与游戏客户端的连接关系,所述访问单元30利用所述数据收集单元20收集的改动数据替换所述游戏客户端内对应的游戏角色的游戏数据,使得游戏客户端根据改动数据执行游戏逻辑,从而达到了实时修改,实时调试的目的。
[0185]优选地,请一并参阅图9,所述编辑服务端100还包括:
[0186]测试代码发送单元11,用于通过所述连接对象向所述游戏客户端发送测试代码,以使所述游戏客户端在接收到所述测试代码后,执行所述测试代码,并返回开启的后门端P
[0187]初始化代码发送单元12,用于根据所述后门端口向所述游戏客户端发送初始化代码,以使所述游戏客户端进行初始化。
[0188]统计脚本发送单元13,用于在确定所述游戏客户端完成初始化后,向所述游戏客户端发送统计脚本。
[0189]统计脚本部署单元14,用于通过远程实现函数在所述游戏客户端解析所述统计脚本,并在所述游戏客户端完成脚本解析后,将所述统计脚本设置到所述游戏客户端的指定路径,以使所述游戏客户端在执行游戏逻辑时,利用所述统计脚本统计在执行游戏逻辑过程中生成的指定数据的统计值,并将所述统计值返回。
[0190]其中,所述统计值至少包括以下其中一种:游戏角色的秒伤害、技能持续时间、命中率。
[0191]优选地,请一并参阅图10,所述编辑服务端100还包括:
[0192]预览单元40,用于监听用户的第二操作,根据所述第二操作启动预览界面,并在所述预览界面显示游戏数据发生改动的游戏角色在经所述第一操作后的数据对比和/或所述游戏客户端返回的所述统计值。
[0193]优选地,请一并参阅图11,所述游戏数据存放于所述编辑服务端100内置的表格的单元格内,则所述编辑服务端100还包括:
[0194]第一信号发射单元51,用于当监听到用户对任意一个单元格内的游戏数据执行所述第一操作时,发射第一信号;
[0195]第一查询单元52,用于当后台注册的槽接收所述第一信号后,获取所述第一操作针对的当前单元格的标识,并根据所述标识从预置的单元格关联映射表内查询与当前单元格具有关联关系的单兀格;
[0196]跳转单元53,用于根据查询得到的结果跳转到与所述当前单元格具有关联关系的单元格。
[0197]优选地,请一并参阅图12,所述游戏数据存放于所述编辑服务端100内置的表格的单元格内,则所述编辑服务端100还包括:
[0198]第二信号发射单元54,用于当监听到用户对任意一个单元格内的游戏数据执行所述第一操作时,发射第二信号;
[0199]第二查询单元55,用于当后台注册的槽接收所述第二信号后,获取所述第一操作针对的当前单元格的标识,并根据所述标识从预置的单元格关联映射表内查询与所述当前单7Π格具有关联关系的单7Π格;
[0200]提示显示单元56,用于根据查询得到的结果在界面显示与所述当前单元格具有关联关系的单兀格的标识。
[0201 ]优选地,请一并参阅图13,所述游戏数据存放于所述编辑服务端100内置的表格的单元格内,则所述编辑服务端100还包括:
[0202]归类单元57,用于根据游戏角色的类型对所述单元格进行归类,使得具有相同类型的游戏角色对应的单元格放置于同一分组内。
[0203]优选地,所述游戏数据存放于所述编辑服务端100内置的表格的单元格内,则所述编辑服务端100还包括:
[0204]合法检查单元58,用于在监听到用户向任一单元格内输入游戏数据时,判断所述游戏数据是否符合所述单元格预置的数据类型要求,若否,则发出报错提醒。
[0205]优选地,请一并参阅图14,所述编辑服务端100还包括:
[0206]子线程启动单元61,用于同时启动至少两个子线程,并使每个子线程启动一个与所述表格文件的文件类型对应的进程;
[0207]读取单元62,用于程根据启动的进程分别读取所述表格文件中的游戏数据;
[0208]输出单元63,用于在读取完成后,对所述游戏数据进行序列化,并输出到内置的表格中,以将所述游戏数据从外部的表格文件导入到内置的表格中。
[0209]本发明还提供一种游戏在线调试系统,包括游戏客户端及如上述的编辑服务端100,如图3所示,其中:
[0210]所述编辑服务端100,用于发起与游戏客户端的连接请求,并在连接成功后,持有连接对象;其中,所述游戏客户端内的每个游戏角色均被分配一组对应的游戏数据.
[0211]所述编辑服务端100,还用于监听用户对所述游戏数据的第一操作,并收集根据所述第一操作生成的改动数据.
[0212]所述编辑服务端100,还用于通过所述连接对象访问所述游戏客户端,并使用收集的所述改动数据替换所述游戏客户端内对应的游戏角色的游戏数据。
[0213]所述游戏客户端,用于根据所述改动数据执行游戏逻辑。
[0214]优选地,所述编辑服务端与所述游戏客户端通过RPyC进行连接,以利用RPyC生成的透明的连接对象对所述游戏客户端进行访问;其中,所述编辑服务端作为RPyC Client端,所述游戏客户端作为RPyC Server端。
[0215]本发明实施例提供的游戏在线调试系统,所述编辑服务端100建立与游戏客户端的连接关系,再利用收集的改动数据替换所述游戏客户端内对应的游戏角色的游戏数据,使得游戏客户端根据改动数据执行游戏逻辑,从而达到了实时修改,实时调试的目的,从而避免了繁琐的导表和重启过程,极大提高了游戏调试的效率,缩短了游戏开发的时间。
[0216]以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。
[0217]本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
【主权项】
1.一种游戏在线调试方法,其特征在于,包括如下步骤: 发起与游戏客户端的连接请求,并在连接成功后,持有连接对象;其中,所述游戏客户端内的每个游戏角色均被配置至少一组对应的游戏数据; 监听用户对所述游戏数据的第一操作,并收集根据所述第一操作生成的改动数据; 通过所述连接对象访问所述游戏客户端,并使用收集的所述改动数据替换所述游戏客户端内对应的游戏角色的游戏数据,以使所述游戏客户端根据所述改动数据执行游戏逻辑。2.根据权利要求1所述的游戏在线调试方法,其特征在于, 与所述游戏客户端进行的所述连接,具体为:远程调用连接;所述连接对象具体为:线程服务。3.根据权利要求1所述的游戏在线调试方法,其特征在于,所述第一操作至少包括以下其中之一:修改游戏角色的游戏数据,对游戏角色配置或更换游戏装备,对游戏角色配置或更换游戏道具,对游戏角色配置或更换游戏符文,控制游戏角色技能释放,控制游戏Al。4.根据权利要求1所述的游戏在线调试方法,其特征在于,在发起与游戏客户端的连接请求,并在连接成功后,持有连接对象之后,还包括: 通过所述连接对象向所述游戏客户端发送测试代码,以使所述游戏客户端在接收到所述测试代码后,执行所述测试代码,并返回开启的后门端口; 根据所述后门端口向所述游戏客户端发送初始化代码,以使所述游戏客户端进行初始化; 在确定所述游戏客户端完成初始化后,向所述游戏客户端发送统计脚本; 通过远程实现函数在所述游戏客户端解析所述统计脚本,并在所述游戏客户端完成脚本解析后,将所述统计脚本设置到所述游戏客户端的指定路径,以使所述游戏客户端在执行游戏逻辑时,利用所述统计脚本统计在执行游戏逻辑过程中生成的指定数据的统计值,并将所述统计值返回。5.根据权利要求4所述的游戏在线调试方法,其特征在于,所述统计值至少包括以下其中一种:游戏角色的秒伤害、技能持续时间、命中率。6.根据权利要求4所述的游戏在线调试方法,其特征在于,在监听用户对所述游戏数据的第一操作,并收集根据所述第一操作生成的改动数据之后,还包括: 监听用户的第二操作,根据所述第二操作启动预览界面,并在所述预览界面显示游戏数据发生改动的游戏角色在经所述第一操作后的数据对比和/或所述游戏客户端返回的所述统计值。7.根据权利要求1所述的游戏在线调试方法,其特征在于,所述游戏数据存放于内置的表格的单元格内,则所述游戏在线调试方法还包括: 当监听到用户对任意一个单元格内的游戏数据执行所述第一操作时,发送第一信号; 当后台注册的槽接收所述第一信号后,获取所述第一操作针对的当前单元格的标识,并根据所述标识从预置的单元格关联映射表内查询与当前单元格具有关联关系的单元格; 根据查询得到的结果跳转到与所述当前单元格具有关联关系的单元格。8.根据权利要求1所述的游戏在线调试方法,其特征在于,所述游戏数据存放于内置的表格的单元格内,则所述游戏在线调试方法还包括: 当监听到用户对任意一个单元格内的游戏数据执行所述第一操作时,发送第二信号; 当后台注册的槽接收所述第二信号后,获取所述第一操作针对的当前单元格的标识,并根据所述标识从预置的单元格关联映射表内查询与所述当前单元格具有关联关系的单元格; 根据查询得到结果在界面上显示与所述当前单元格具有关联关系的单元格的标识。9.根据权利要求1所述的游戏在线调试方法,其特征在于,所述游戏数据存放于内置的表格的单元格内,则所述游戏在线调试方法还包括: 根据游戏角色的类型对所述单元格进行归类,使得具有相同类型的游戏角色对应的单元格放置于同一分组内。10.根据权利要求1所述的游戏在线调试方法,其特征在于,所述游戏数据存放于内置的表格的单元格内,则所述游戏在线调试方法还包括: 在监听到用户向任一单元格内输入游戏数据时,判断所述游戏数据是否符合所述单元格预置的数据类型要求,若否,则发出报错提醒。11.根据权利要求7至10任意一项所述的游戏在线调试方法,其特征在于,所述游戏数据初始存放于外部的表格文件中,则在发起与游戏客户端的连接请求,并在连接成功后,持有连接对象之前,还包括: 同时启动至少两个子线程,并使每个子线程启动一个与所述表格文件的文件类型对应的进程; 所述子线程根据启动的进程分别读取所述表格文件中的游戏数据; 所述子线程在读取完成后,对所述游戏数据进行序列化,并输出到内置的表格中,以将所述游戏数据从外部的表格文件导入到内置的表格中。12.根据权利要求1或2所述的游戏在线调试方法,其特征在于, 所述连接为RPyC连接。13.根据权利要求1所述的游戏在线调试方法,其特征在于,所述通过所述连接对象访问所述游戏客户端,并使用收集的所述改动数据替换所述游戏客户端内对应的游戏角色的游戏数据,以使所述游戏客户端根据所述改动数据执行游戏逻辑,具体为: 通过所述连接对象访问所述游戏客户端,并在内存中使用收集的所述改动数据替换所述游戏客户端内对应的游戏角色的游戏数据,以使所述游戏客户端根据所述改动数据执行游戏逻辑。14.一种编辑服务端,其特征在于,包括: 连接请求单元,用于发起与游戏客户端的连接请求,并在连接成功后,持有连接对象;其中,所述游戏客户端内的每个游戏角色均被配置至少一组对应的游戏数据; 数据收集单元,用于监听用户对所述游戏数据的第一操作,并收集根据所述第一操作生成的改动数据; 访问单元,用于通过所述连接对象访问所述游戏客户端,并使用收集的所述改动数据替换所述游戏客户端内对应的游戏角色的游戏数据,以使所述游戏客户端根据所述改动数据执行游戏逻辑。15.根据权利要求14所述的编辑服务端,其特征在于,所述连接请求单元与所述游戏客户端进行的所述连接,具体为:远程调用连接;所述连接对象具体为:线程服务。16.根据权利要求14所述的编辑服务端,其特征在于,所述第一操作至少包括以下其中之一:修改游戏数据,对游戏角色配置或更换游戏装备,对游戏角色配置或更换游戏道具,对游戏角色配置或更换游戏符文,控制游戏角色技能释放,控制游戏Al。17.根据权利要求14所述的编辑服务端,其特征在于,还包括: 测试代码发送单元,用于通过所述连接对象向所述游戏客户端发送测试代码,以使所述游戏客户端在接收到所述测试代码后,执行所述测试代码,并返回开启的后门端口; 初始化代码发送单元,用于根据所述后门端口向所述游戏客户端发送初始化代码,以使所述游戏客户端进行初始化; 统计脚本发送单元,用于在确定所述游戏客户端完成初始化后,向所述游戏客户端发送统计脚本; 统计脚本部署单元,用于通过远程实现函数在所述游戏客户端解析所述统计脚本,并在所述游戏客户端完成脚本解析后,将所述统计脚本设置到所述游戏客户端的指定路径,以使所述游戏客户端在执行游戏逻辑时,利用所述统计脚本统计在执行游戏逻辑过程中生成的指定数据的统计值,并将所述统计值返回。18.根据权利要求17所述的编辑服务端,其特征在于,所述统计值至少包括以下其中一种:游戏角色的秒伤害、技能持续时间、命中率。19.根据权利要求17所述的编辑服务端,其特征在于,还包括: 预览单元,用于监听用户的第二操作,根据所述第二操作启动预览界面,并在所述预览界面显示游戏数据发生改动的游戏角色在经所述第一操作后的数据对比和/或所述游戏客户端返回的所述统计值。20.根据权利要求14所述的编辑服务端,其特征在于,所述游戏数据存放于内置的表格的单元格内,则所述编辑服务端还包括: 第一信号发射单元,用于当监听到用户对任意一个单元格内的游戏数据执行所述第一操作时,发射第一信号; 第一查询单元,用于当后台注册的槽接收所述第一信号后,获取所述第一操作针对的当前单元格的标识,并根据所述标识从预置的单元格关联映射表内查询与当前单元格具有关联关系的单7Π格; 跳转单元,用于根据查询得到的结果跳转到与所述当前单元格具有关联关系的单元格。21.根据权利要求14所述的编辑服务端,其特征在于,所述游戏数据存放于内置的表格的单元格内,则所述编辑服务端还包括: 第二信号发射单元,用于当监听到用户对任意一个单元格内的游戏数据执行所述第一操作时,发射第二信号; 第二查询单元,用于当后台注册的槽接收所述第二信号后,获取所述第一操作针对的当前单元格的标识,并根据所述标识从预置的单元格关联映射表内查询与所述当前单元格具有关联关系的单7Π格; 提示显示单元,用于根据查询得到的结果在界面上显示与所述当前单元格具有关联关系的单元格的标识。22.根据权利要求14所述的编辑服务端,其特征在于,所述游戏数据存放于内置的表格的单元格内,则所述编辑服务端还包括: 归类单元,用于根据游戏角色的类型对所述单元格进行归类,使得具有相同类型的游戏角色对应的单元格放置于同一分组内。23.根据权利要求14所述的编辑服务端,其特征在于,所述游戏数据存放于内置的表格的单元格内,则所述编辑服务端还包括: 合法检查单元,用于在监听到用户向任一单元格内输入游戏数据时,判断所述游戏数据是否符合所述单元格预置的数据类型要求,若否,则发出报错提醒。24.根据权利要求20至23任意一项所述的编辑服务端,其特征在于,还包括: 子线程启动单元,用于同时启动至少两个子线程,并使每个子线程启动一个与所述表格文件的文件类型对应的进程; 读取单元,用于根据启动的进程分别读取所述表格文件中的游戏数据; 输出单元,用于在读取完成后,对所述游戏数据进行序列化,并输出到内置的表格中,以将所述游戏数据从外部的表格文件导入到内置的表格中。25.根据权利要求13或14所述的编辑服务端,其特征在于,所述连接为RPyC连接。26.根据权利要求14所述的编辑服务端,其特征在于,所述访问单元具体用于,通过所述连接对象访问所述游戏客户端,并在内存中使用收集的所述改动数据替换所述游戏客户端内对应的游戏角色的游戏数据,以使所述游戏客户端根据所述改动数据执行游戏逻辑。27.—种游戏在线调试系统,其特征在于,包括游戏客户端及如权利要求14至26任意一项所述的编辑服务端,其中: 所述编辑服务端,用于发起与游戏客户端的连接请求,并在连接成功后,持有连接对象;其中,所述游戏客户端内的每个游戏角色均被分配一组对应的游戏数据; 所述编辑服务端,还用于监听用户对所述游戏数据的第一操作,并收集根据所述第一操作生成的改动数据; 所述编辑服务端,还用于通过所述连接对象访问所述游戏客户端,并使用收集的所述改动数据替换所述游戏客户端内对应的游戏角色的游戏数据; 所述游戏客户端,用于根据所述改动数据执行游戏逻辑。28.根据权利要求27所述的游戏在线调试系统,其特征在于,所述连接为RPyC连接;其中,所述编辑服务端作为RPyC Client端,所述游戏客户端作为RPyC Server端。
【文档编号】G06F11/36GK105912474SQ201610264962
【公开日】2016年8月31日
【申请日】2016年4月26日
【发明人】包振兵, 徐豪灿
【申请人】网易(杭州)网络有限公司