CN110478893A - 游戏事件执行方法及装置 - Google Patents

游戏事件执行方法及装置 Download PDF

Info

Publication number
CN110478893A
CN110478893A CN201910787440.9A CN201910787440A CN110478893A CN 110478893 A CN110478893 A CN 110478893A CN 201910787440 A CN201910787440 A CN 201910787440A CN 110478893 A CN110478893 A CN 110478893A
Authority
CN
China
Prior art keywords
event
game
tree
node
events
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910787440.9A
Other languages
English (en)
Inventor
吴添
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN201910787440.9A priority Critical patent/CN110478893A/zh
Publication of CN110478893A publication Critical patent/CN110478893A/zh
Pending legal-status Critical Current

Links

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/214Input arrangements for video game devices characterised by their sensors, purposes or types for locating contacts on a surface, e.g. floor mats or touch pads
    • A63F13/2145Input arrangements for video game devices characterised by their sensors, purposes or types for locating contacts on a surface, e.g. floor mats or touch pads the surface being also a display device, e.g. touch screens
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/80Special adaptations for executing a specific game genre or game mode
    • A63F13/822Strategy games; Role-playing games

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明提供了一种游戏事件执行方法及装置,涉及计算机程序开发的技术领域,可以解决代码复用度低,而且代码耦合度高,导致游戏运行的灵活性受到限制的问题。游戏事件执行方法应用于运行游戏的设备,本方法包括:确定监听到的新游戏事件;根据所述新游戏事件动态地生成事件树的新事件节点,其中,所述事件树为根据监听到的游戏事件动态地生成的树结构;根据所述事件树执行构成所述事件树的事件节点所对应的游戏事件。

Description

游戏事件执行方法及装置
技术领域
本发明涉及计算机程序开发技术领域,尤其是涉及一种游戏事件执行方法及装置。
背景技术
随着游戏的规模越来越大,游戏开发的过程也需要投入更多的精力和时间。游戏的开发过程由很多方面组成,其中,对于游戏逻辑的开发方面,核心的部分在于核心玩法,一般是战斗、技能和游戏对象自动互动功能的开发。普遍的做法是开发一套定制化的战斗流程,然后每个技能单独开发、实现,或者分类开发、实现。
游戏逻辑的开发因不同游戏、不同玩法的设计而各不相同。通常都是由各个项目组、玩法的具体负责人单独设计、编码以及测试,工作的独立性较高、重用度较低,一般也占据着游戏产品开发的大部分工作量。
目前,游戏逻辑的开发过程是采用状态机来实现流程控制,通常每一类行为对象拥有一个独立的状态机。但是,采用状态机的设计过程中代码复用度低,而且代码耦合度高,导致游戏运行的灵活性受到限制。
发明内容
本发明的目的在于提供一种游戏事件执行方法以及装置,以缓解现有技术中代码复用度低,而且代码耦合度高,导致游戏运行的灵活性受到限制的问题。
本发明提供的一种游戏事件执行方法,所述方法应用于运行游戏的设备,所述游戏事件执行方法包括:
确定监听到的新游戏事件;
根据所述新游戏事件动态地生成事件树的新事件节点,其中,所述事件树为根据监听到的游戏事件动态地生成的树结构;
根据所述事件树执行构成所述事件树的事件节点所对应的游戏事件。
进一步的,所述确定监听到的新游戏事件的步骤,至少包括如下一种:响应游戏操作命令,确定所述操作命令对应的所述新游戏事件;响应当前游戏事件处理,确定与所述当前游戏事件相关联的所述新游戏事件。
进一步的,所述根据所述新游戏事件动态地生成事件树的新事件节点的步骤,包括:
根据操作命令对应的所述新游戏事件建立事件树,并动态地生成所述事件树的根节点。
进一步的,树结构为动态树结构。
进一步的,所述根据所述事件树执行构成所述事件树的事件节点所对应的游戏事件的步骤,包括:
根据监听到的游戏事件的先后顺序,执行位于同一层的事件节点。
进一步的,所述根据所述事件树执行构成所述事件树的事件节点所对应的游戏事件的步骤,包括:
根据深度优先搜索的顺序,执行位于同一根节点下的事件节点。
进一步的,所述响应当前游戏事件处理,确定与所述当前游戏事件相关联的所述新游戏事件的步骤之后,还包括:
将所述新游戏事件进行挂接,使所述根据所述新游戏事件动态地生成事件树的新事件节点的步骤,在所述当前游戏事件处理完毕之后进行。
进一步的,所述根据所述新游戏事件动态地生成事件树的新事件节点的步骤之后,还包括:
将所述新事件节点嵌套至所述当前游戏事件的子节点容器中。
进一步的,一个所述新游戏事件至多造成一个游戏界面上的数值的变化。
本发明提供的一种游戏事件编辑方法,所述方法应用于安装有游戏开发平台的设备,所述游戏开发平台预先配置有事件操作界面,所述事件操作界面配置有动态树结构的事件树,所述事件树包括多个事件节点;
所述方法包括:
响应配置操作,配置观察映射表,所述观察映射表用于存储每个事件节点及其生成条件的映射关系;
响应事件节点编辑操作,对所述观察映射表中的事件节点进行事件要素的编辑,所述事件要素包括触发条件、作用对象和作用效果。
本发明提供的一种游戏事件执行装置,所述装置应用于运行游戏的设备,所述游戏事件执行装置包括:
监听模块,用于确定监听到的新游戏事件;
节点生成模块,用于根据所述新游戏事件动态地生成事件树的新事件节点,其中,所述事件树为根据监听到的游戏事件动态地生成的树结构;
执行模块,用于根据所述事件树执行构成所述事件树的事件节点所对应的游戏事件。
本发明提供的一种游戏事件编辑装置,所述装置应用于安装有游戏开发平台的设备,所述游戏开发平台预先配置有事件操作界面,所述事件操作界面配置有动态树结构的事件树,所述事件树包括多个事件节点;
所述游戏事件编辑装置包括:
配置模块,用于响应配置操作,配置观察映射表,所述观察映射表用于存储每个事件节点及其生成条件的映射关系;
编辑模块,用于响应事件节点编辑操作,对所述观察映射表中的事件节点进行事件要素的编辑,所述事件要素包括触发条件、作用对象和作用效果。
本发明提供的一种电子终端,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的方法的步骤。
本发明提供的一种具有处理器可执行的非易失的程序代码的计算机可读介质,所述程序代码使所述处理器执行上述的方法的步骤。
本发明提供的游戏事件执行方法以及装置,游戏事件执行方法应用于运行游戏的设备,首先,确定监听到的当前发生的新游戏事件,之后,该新游戏事件动态地生成事件树的新事件节点,其中的事件树是根据监听到的之前发生过的游戏事件动态地生成的树结构,然后,根据该事件树,对构成事件树的事件节点所对应的游戏事件进行执行,通过采用树状的逻辑结构,并且以游戏事件作为节点,形成动态的事件树,相比于现有的状态机,提高了代码复用度,降低了代码耦合度,从而使游戏的运行过程具有更强的灵活性。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的应用场景示意图;
图2为本申请实施例提供的电子设备的结构示意图;
图3为本申请实施例提供的游戏事件执行方法的流程示意图;
图4为本申请实施例提供的一种事件树示例的结构示意图;
图5为本申请实施例提供的游戏事件编辑方法的流程示意图;
图6为本申请实施例提供的一种在卡牌上增加的技能示意图;
图7为本申请实施例提供的一种树形结构的结算流程示意图;
图8为本申请实施例提供的游戏事件编辑装置的结构示意图;
图9为本申请实施例所提供的游戏事件执行装置的结构示意图。
具体实施方式
下面将结合实施例对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请实施例的游戏事件中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括其他没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
目前,游戏逻辑的组织方式,比较常见的是采用状态机来实现流程控制,一般情况下是每一类行为对象拥有一个独立的状态机,通过定义一套完备的输入、输出、状态节点、状态跳转关系来控制自身完整的交互行为。这是一种典型的面向对象的设计方法,例如,对编辑器中关卡、对象的设计等。
例如,一个类似卡牌游戏的回合总流程的状态机,和一个类似卡牌游戏的回合阶段内的状态机,分别定义了相应环节的状态节点、跳转逻辑。在代码里,对应的需要实现战斗总控对象、战斗回合对象的状态控制逻辑和对应行为的功能。例如,“选将”、“回合开始”、“判定”、“摸牌”、“出牌”、“弃牌/开始”等。当然,这些仅是游戏状态机的一小部分,除此之外,还有大量更复杂的状态机用于实现范围技能、攻击结算等逻辑。
由此可见,状态机尝试完整的描述一个对象的行为。但是,状态机也随之带来了一些缺点:代码耦合度较高、难以复用,状态多导致系统复杂、难以扩展,状态预先定义导致灵活性较差、功能相对单一。而且在实际使用场景中,经常需要对状态机进行拆分,甚至还需要嵌套、分层,整个系统极其复杂。再者,状态机是一个静态结构,所有行为都是预设的,使其灵活性也受到了限制。
因此,大量的逻辑开发工作消耗了开发组的人力,拉长了产品的开发周期,再者,高定制化、低重用的代码,也使其生命周期非常短,淘汰速度很快。从而导致了逻辑开发工作高成本的结果,使逻辑开发成为项目开发中一个沉重的负担。
基于此,本申请实施例提供的一种游戏事件编辑方法、装置、游戏事件执行方法以及装置,可以缓解现有技术中代码复用度低,而且代码耦合度高,导致游戏运行的灵活性受到限制的问题。
为便于对本实施例进行理解,首先对本申请实施例所公开的一种游戏事件编辑方法、装置、游戏事件执行方法以及装置进行详细介绍。
本申请实施例提供的方法可以应用于电子设备,其中,电子设备包括显示屏和处理器,该显示屏用于呈现事件操作界面。
在一些实施例中,通过电子设备对事件操作界面进行操作时,该事件操作界面可以用于操作电子设备本地的内容,也可以用于操作对端服务器的内容。
例如,如图1所示,图1为本申请实施例提供的应用场景示意图。该应用场景可以包括电子设备(例如,计算机101)和服务器102,电子设备可以通过有线网络或无线网络与服务器102进行通信。其中,电子设备用于运行虚拟桌面,通过该虚拟桌面,可以与服务器102进行交互,以实现对服务器102中的内容进行编辑。
本实施例的电子设备以计算机101为例进行说明。如图2所示,计算机101包括:射频(Radio Frequency,RF)电路110、存储器120、显示屏130、处理器140等部件。本领域技术人员可以理解,图2中示出的计算机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。本领领域技术人员可以理解显示屏130属于用户界面(UI,User Interface),且计算机101可以包括比图示或者更少的用户界面。
射频电路110还可以通过无线通信与网络和其他设备通信。无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobile communication,全球移动通讯系统)、GPRS(General Packet Radio Service,通用分组无线服务)、CDMA(CodeDivision Multiple Access,码分多址)、WCDMA(Wideband Code Division MultipleAccess,宽带码分多址)、LTE(Long Term Evolution,长期演进)、电子邮件、SMS(ShortMessaging Service,短消息服务)等。
存储器120可用于存储软件程序以及模块,处理器140通过运行存储在存储器120的软件程序以及模块,从而执行计算机101的各种功能应用以及数据处理。存储器120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据计算机101的使用所创建的数据等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
显示屏130可用于显示事件操作界面和接收用户针对事件操作界面的操作。具体的显示屏130可包括显示面板和触控面板。其中显示面板可以采用LCD(Liquid CrystalDisplay,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置。
计算机101还包括操作面板,用于接收针对事件操作界面的操作,该操作面板可以为覆盖于显示屏130上的触控面板,也可以为与显示屏130设置相对独立的键盘装置、鼠标等。因此,操作面板与显示屏130可以作为两个独立的部件来实现也可以集成而来实现。
操作面板接收按键、触摸等操作带来的信息,并将其转换成处理器能够处理的信息,再送给处理器140,显示屏130能接收处理器140发来的命令并加以执行。例如,操作面板接收到在其上或附近的操作后,传送给处理器140以确定用户输入,随后处理器140响应于用户输入,在显示屏130上提供相应的视觉输出。
处理器140是计算机101的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器120内的软件程序和/或模块,以及调用存储在存储器120内的数据,执行计算机101的各种功能和处理数据,从而对计算机进行整体监控。
计算机101还包括给各个部件供电的电源(比如电池),电源可以通过电源管理系统与处理器140逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗等功能。
图3为本申请实施例提供的一种游戏事件执行方法的流程示意图。该方法应用于运行游戏的设备,例如图2所示的计算机101,当然,该运行游戏的设备还可以为手机、平板电脑、游戏机等任何能够运行游戏的电子设备。如图3所示,该方法包括:
S310:确定监听到的新游戏事件。
对于新游戏事件,无论是用户的首次游戏操作,还是某一游戏事件的结算过程,运行游戏的设备都能够监听到当前的游戏事件,即新发生的游戏事件。
本步骤中,对监听到的新游戏事件进行确定,从而实现对动态的游戏事件的实时监听,以使后续的事件树能够表现出动态树的动态数据结构特征。
S320:根据新游戏事件动态地生成事件树的新事件节点。
其中,事件树为根据监听到的游戏事件动态地生成的树结构。需要说明的是,此处监听到的游戏事件与步骤S310中监听到的新游戏事件不同。步骤S310中的新游戏事件是当前新发生的游戏事件,而此处的游戏事件是监听到的所有游戏事件,当然其中也包括当前新发生的游戏事件。
因此,本实施例中的事件树的生成依据,是根据之前每次监听到的游戏事件而动态形成的节点。也可以理解为,是由发生的游戏事件来驱动事件树的建树过程,从而使事件树形成动态的事件树,使本实施例中的树结构为动态树结构。
S330:根据事件树执行构成事件树的事件节点所对应的游戏事件。
通过步骤S320中的事件树的结构而执行游戏事件,能够更加灵活的执行动态树结构的游戏事件,使游戏在运行过程中更加灵活。
通过采用树状的逻辑结构,并且以游戏事件作为节点,形成动态的事件树,相比于现有的状态机,提高了代码复用度,降低了代码耦合度,从而使游戏的运行过程具有更强的灵活性。
在一些实施例中,上述步骤S310,至少包括如下一种步骤:
(1)响应游戏操作命令,确定操作命令对应的新游戏事件。
(2)响应当前游戏事件处理,确定与当前游戏事件相关联的新游戏事件。
对于步骤(1)中的响应游戏操作命令,指的可以是针对玩家的每个操作而触发的新游戏事件,其中的新游戏事件可以是卡牌类游戏中的选择牌、舍弃牌、出牌、攻击目标对象、移动至目标地等各种游戏事件。
当然,该游戏操作命令也可以是某一个游戏事件的结算过程中的回调、中断处理。例如,事件树上的事件节点提供子节点挂接、回调处理、中断处理等操作,也就是游戏事件的结算过程中需要玩家互动的情况,比如需要玩家进行选择牌、选择目标等操作。相应的,事件树的对象能够提供事件处理函数注册、事件融合、流程中断管理等。
其中,子节点挂接指的是当前事件的结算过程中,产生了新的子事件,子事件并不直接在当前事件中结算,而是放置在当前节点的子节点中等待结算。子事件的结算,需要等当前事件节点的结算处理完之后,再根据事件树结算顺序依次进入结算。结算伤害事件时,触发了血量改变、力量改变的子事件,这些子事件会挂接在伤害事件的子节点上,等伤害事件结算完成后,再依次进行结算,实现先自身、后触发。
回调处理指的是单个事件的结算中,会在一些必要的节点插入一些程序调用,方便程序手动做一些处理。例如,抓牌事件,会在事件结算结束时回调,检查玩家的卡牌是否已经耗尽。再例如,出牌事件,会在事件结算前回调,检查玩家的法力值是否足够。
中断处理指的是事件结算的过程中,有时需要等待玩家的操作,将事件现场保存,等操作返回后,再继续结算的功能。这个功能较少用到,主要用于实现一些特殊技能中,如执行事件的过程中需要玩家主动选牌的效果,或其他需要与玩家互动的效果。
对于事件处理函数注册,指的是通过一个配置表,指定事件类型到回调函数的对应关系。这个配置表在配置事件树的时候传入树对象中,作为一份配置保存在树中,其定义了事件类型与回调函数的对应关系。
事件融合指的是一个大事件的结算中,可以包含其他小事件的结算。例如,回合开始事件的结算中,会有法力值回复事件结算。这种结算方式不同于子事件挂接,其是直接在回合开始的结算中立刻结算法力值回复,并将其触发的子事件挂接到回合开始事件的子事件中。
对于上述步骤(2)中响应当前游戏事件处理中的当前游戏事件,指的是正在结算的游戏事件,例如,攻击事件、加血事件等游戏事件。再者,对于步骤(2)中与当前游戏事件相关联的新游戏事件,指的是对当前游戏事件(如上述的攻击事件、加血事件等)进行观察的事件(如对应的攻击力+1、血量+1等)。
示例性的,玩家的每次战斗操作,都会生成一个根事件,然后从这个根节点开始进入事件结算流程,后续的所有逻辑都通过事件结算来驱动,不再人为的写任何逻辑流程。例如,玩家发起一次攻击操作时,先产生一个攻击事件,然后进入攻击事件的结算,结算的过程中,可能会进一步生成伤害事件、属性改变事件、死亡事件等等。
因此,通过该本步骤的具体监听过程,能够及时、实时且全面的监听到的当前新发生的游戏事件以及与当前新发生的游戏事件相关联的其它新游戏事件。
在一些实施例中,上述步骤S320,还可以包括如下步骤:
根据操作命令对应的新游戏事件建立事件树,并动态地生成事件树的根节点。
其中,操作命令对应的新游戏事件可以是针对玩家的操作而触发的新游戏事件,例如,选择牌、舍弃牌、出牌、攻击目标对象、移动至目标地等各种游戏事件。
本步骤中,建立以当前的新游戏事件为节点的事件树,以动态地生成事件树的根节点,使事件树形成动态结构的树,从而达到更加灵活的执行动态树结构中的游戏事件。
本实施例中,对于位于同一层事件节点对应的游戏事件,可以按照随机的顺序执行游戏事件,当然,也可以按照预设的顺序执行游戏事件。作为本实施例的一个优选方案,按照监听到的游戏事件的先后顺序(即,存储表存储的事件先后关系)执行游戏事件。例如,上述步骤S330,可以包括如下步骤:
根据监听到的游戏事件的先后顺序,执行位于同一层的事件节点。
本步骤中,对于事件树的横向方面,即对于位于同一层的事件节点,可以按照游戏事件的先后发生的顺序来执行,以使执行的顺序更加符合游戏事件发展的先后逻辑顺序,使游戏的运行过程更加自然、通畅。
本实施例中,对于位于不同层事件节点对应的游戏事件,可以按照优先搜索深度层的规律来执行游戏事件。例如,上述步骤S330,还可以包括如下步骤:
根据深度优先搜索的顺序,执行位于同一根节点下的事件节点。
本步骤中,对于事件树的纵向方面,即对于位于不同上下层的事件节点,按照深度优先的顺序进行执行。
通过使用树形结构来组织事件的联结,并使用深度优先的顺序处理事件树,实现一种组织结构来管理事件的联结关系,这样一方面自然的符合一般的逻辑理解,另一方面可以有更好的灵活性。
例如,在一个简单的战斗游戏情景中,战场上有目标A、目标B,其中,目标A有技能“受到伤害时增加1点力量”,目标B有技能“受到伤害时增加1点血量”,玩家操作目标A攻击目标B。此时的事件树结算顺序,如图4所示,图中的数字标号表示事件发生的时间顺序,首先A攻击B,然后,A、B受到伤害,之后,A、B血量更新,A力量更新,B血量更新。在这个过程中,整个顺序围绕事件树的结构,开发出一整套的方案、工具。
此外,游戏操作命令触发的新事件,是被挂接到当前事件的子节点中进行等待,而不是打断当前事件的结算过程。以使事件处理的流程能够实现“先自身、后触发”的效果,即进入一个事件的结算流程时,必须先处理完当前事件本身的逻辑,再处理由当前事件触发的其他事件。这样做能够保证事件的处理有整体性、一致性,不会被打断,且可以保证任何情况下,只要输入参数不变,其处理结果保证一致。所以本实施例中,在事件的处理过程中,其触发的新事件,会被挂接到当前事件的子节点中进行等待,而不会打断当前事件的结算过程。
再者,为了保证游戏逻辑的一致性以及严谨性,本实施例采用同时触发、依次结算的规则,即某个事件触发多条逻辑规则时,以当时的现场作为一致性的判断依据,而触发成功的多条规则在结算时根据触发顺序先后依次结算,即先结算的规则产生的结果会影响后结算规则的结算环境。
在一些实施例中,在步骤S320之后,还可以包括如下步骤:
将新事件节点嵌套至当前游戏事件的子节点容器中。
因此,事件类还能够支持嵌套,即当前事件可以处理嵌套事件的逻辑,并将其子节点挂接到当前事件的子节点容器中,从而提升游戏的执行运行效率。
在一些实施例中,一个新游戏事件至多造成一个游戏界面上的数值的变化。
需要说明的是,事件单元的粒度大小,会对开发有着重要的影响。粒度太大,会导致事件单元间的正交性弱、耦合多,不利于维护、扩展。粒度太小,可以带来更好的灵活性、扩展性,不过在实现简单需求时显得比较繁琐。
在实际应用中,可以根据具体需求来制定,也可以使用更小的粒度来拆分事件单元。由于小的事件单元可以通过组合形成更大的事件流程,反之则不行,本实施例中,采用更小的粒度来拆分事件单元。
为了实现当前事件的结算过程不会被打断,示例性的,在实际开发中也可以将玩法的逻辑拆分成多个基础的事件单元,并实现每个事件单元具体的处理函数。
例如,在卡牌类游戏中,战斗逻辑相当复杂,经过对战斗中的事件进行小粒度的拆分后,分出约30个事件单元,其中包括回合开始、回合结束、出牌、攻击、属性改变、卡牌移动等。
图5为本申请实施例提供的一种游戏事件编辑方法的流程示意图。其中,该方法应用于安装有游戏开发平台的设备(例如图2所示的计算机101),游戏开发平台预先配置有事件操作界面,事件操作界面配置有动态树结构的事件树,事件树包括多个事件节点。如图5所示,该方法包括:
S510:响应配置操作,配置观察映射表,观察映射表用于存储每个事件节点及其生成条件的映射关系。
示例性的,游戏开发平台预先配置有观察映射表,观察映射表用于存储每个事件及其触发条件的映射关系,以提高游戏开发过程中的运行效率。例如,在逻辑系统内设置一个观察映射表,用于存放所有事件类型,以及观察对应事件发生的对象列表,以此实现观察者模式。
需要说明的是,事件树中的根事件一般通过玩家操作产生,因此,根事件产生后,可以通过对观察者的通知使事件动态的逐层生成,这种事件驱动的形式可以减少不必要的开销,从而提高运行效率。
进一步的,在事件的基础上,还可以开发事件触发管理器和泛技能编辑器。其中,事件触发管理器基于上述的观察映射表,能够提供一套事件观察注册的机制。针对逻辑中的各类对象,都可以动态的观察特定的事件。当某个事件被处理时,将会通知到其观察映射表中的所有对象,进行事件的触发。在触发的过程中,会产生新事件,该新事件挂接到当前事件的子节点中,借此完成全数据驱动的逻辑链条。
其中,泛技能编辑器则用于面向游戏设计者,提供一套标准化且结构化的设置事件触发的工具和子事件生成的工具。泛技能编辑器除了能够用于技能编辑,也能够用于战斗规则编辑以及AI编辑。需要说明的是,编辑器产出的是一条条独立的规则(即事件),每一条规则能够被拆分为三个部分:触发条件、作用对象和作用效果。触发条件实际定义了该条规则在什么条件下生效,首先是在什么情况下注册观察对应类型的事件,然后在事件触发时,检查事件参数是否满足设定的条件。另外两个部分,即作用对象和作用效果,用于确定在规则生效时产生什么样的子事件。
S520:响应事件节点编辑操作,对观察映射表中的事件节点进行事件要素的编辑,事件要素包括触发条件、作用对象和作用效果。
通过编辑过程产出的是一条条独立的规则,即事件要素,本实施例中的每个事件都包括:触发条件、作用对象以及作用效果,三个事件要素。其中,触发条件定义了该条规则在什么条件下生效,即在什么情况注册观察对应类型的事件,以及事件触发时检查事件参数是否满足设定的条件。作用对象用于确定规则生效于何种单位,作用效果用于确定在规则生效时作用对象会发生的变化,也可触发新的子事件。
通过动态树结构的事件树,程序只需要定义游戏对象的状态,并设计好最基本的事件单元,就可以让策划通过编辑工具实现多变的逻辑功能,使得逻辑开发的效率有较大的提升。再者,通过将逻辑拆分为事件单元,并且以动态的树结构的形式组织起来,使得系统有很好的灵活性和适用性。
对于现有技术而言,逻辑单元的拆分决定了代码的复用性、扩展性;逻辑单元的组织影响其灵活性和效率。而目前的游戏逻辑的组织方式的代码耦合度较高,代码复用度较低,导致灵活性较低,不利于程序的扩展。
本实施例提供的游戏事件编辑方法可以作为一种基于树结构的通用性游戏逻辑组织方法,拥有简单的基础结构,使其易于在开发中使用,同时实现高复用、高扩展、高效率、高灵活性,以及具有很好的抽象性,易于泛化,并适用于多种应用场景。
因此,在产品后续的扩展中,程序员只需要开发新增的状态、事件,而游戏逻辑需求数量与事件种类数量的比值是阶乘级别的,所以只需要少量的开发工作,就可以让产品功能的发展空间有极大的扩展。因此,事件间的独立性使开发者只需要关注当前事件本身,这也减少了游戏开发过程的工作量。
本实施例中,通过将游戏逻辑从对象中分离出来单独考虑,即对象只负责状态的设置、更新,而将所有对象的逻辑剥离出来统一考虑,能够减少系统的耦合度与复杂度,以实现通用性强的逻辑组织架构,极大的提高逻辑开发的效率,降低项目开发工作的成本。
再者,本实施例中的事件树是一种树状的逻辑事件组织结构,单个独立玩法的逻辑组织完全基于事件,遵循事件处理的流程。因为如果在开发过程中部分基于事件,部分基于其他形式的要素,可能造成逻辑执行顺序与预期不一致,或者难以维护、调整。
在实际应用中,本实施例提供的事件树结构同时也能够适合用于AI的开发过程,例如卡牌游戏中的AI智能出牌。这使开发者可以利用同一套事件集合构建玩法逻辑和AI逻辑,较大程度的减少了重复的工作,且保证了两种工作的一致性,再者,底层基础、工具统一也减少了学习成本和维护成本。
下面以简单的卡牌游戏开发过程为例进行说明。
在使用本实施例提供的事件树结构进行游戏开发时,首先,根据游戏的运行流程定义、配置基本的事件:战斗开始、战斗结束、回合开始、回合结束、属性变化、卡牌移动、抓牌、出牌、攻击、死亡以及技能结算。然后,编辑事件的连接关系。
之后,在攻击、被攻击的卡牌上分别增加各方面的技能,例如,如下表所示的技能:
每次攻击+1力量 攻击 属性变化
受到伤害时玩家抓1张牌 属性变化 抓牌
在攻击操作产生后,事件树会根据战斗事件、技能的设定,自动完成树形结构的结算流程,图6示出了树形结构的结算流程示意图,图中的数字标号①至④表示事件发生的时间顺序。首先监听到了玩家1的操作【C1攻击C2】即为新游戏事件,然后根据该游戏事件生成了事件树的根节点,该游戏事件的附加效果是P1法力值-1。C1攻击达到了C1的技能的触发条件,所以触发了游戏事件【C1攻击力+1】,同时也触发了游戏事件【C2血量-1,C1血量-2】。C2受到伤害达到了C2的技能的触发条件,因此触发了游戏事件【玩家2抓1张牌】。
按同样的方式,可以通过技能和AI的编辑,完成复杂的、自动化的树形结构的生成以计算过程。
图7示出了较为复杂的事件树示例示意图。其中,方块表示事件,方块左边的数字标号为事件的触发顺序,右边的数字标号为事件的结算顺序,它是一个逐层生成的动态树结构,同层的节点时同时生成,但是结算则是按照深度优先搜索的顺序依次处理。
首先监听到了玩家1的操作【P1出牌C1】即为新游戏事件,其中C1为技能牌(旋风斩),然后根据该游戏事件生成了事件树的根节点,该游戏事件的附加效果是P1法力值-1。C1的效果触发了游戏事件【C2、C3、C4、C5血量-1】,同时达到了C5的技能的触发条件,触发了游戏事件【P1抓1张牌】,但根据深度优先搜索的顺序,该事件会在最后结算。C2受到伤害达到了C2的技能的触发条件,因此触发了游戏事件【C2复制出C6】;同时,C3血量-1造成了游戏事件【C3死亡】。然后触发了C3的亡语技能,产生游戏事件【C2、C3、C5、C6血量-1】,该游戏事件造成了游戏事件【C2、C4、C6死亡】。最后,触发了C4的亡语技能,产生游戏事件【P1弃1张牌】。
本实施例中,按照深度优先搜索的顺序依次处理事件树,实现利用一种组织结构来管理事件的联结关系,既符合一般的游戏逻辑理解,也可以具有一定的灵活性。
本申请实施例提供的一种游戏事件执行装置,应用于运行游戏的设备,如图8所示,游戏事件执行装置800包括:
监听模块801,用于确定监听到的新游戏事件;
节点生成模块802,用于根据新游戏事件动态地生成事件树的新事件节点,其中,事件树为根据监听到的游戏事件动态地生成的树结构;
执行模块803,用于根据事件树执行构成事件树的事件节点所对应的游戏事件。
在一些实施例中,监听模块801具体用于:
响应游戏操作命令,确定操作命令对应的新游戏事件;
响应当前游戏事件处理,确定与当前游戏事件相关联的新游戏事件。
在一些实施例中,节点生成模块802具体用于:
根据操作命令对应的新游戏事件建立事件树,并动态地生成事件树的根节点。
在一些实施例中,树结构为动态树结构。
在一些实施例中,执行模块803具体用于:
根据监听到的游戏事件的先后顺序,执行位于同一层的事件节点。
在一些实施例中,执行模块803具体还用于:
根据深度优先搜索的顺序,执行位于同一根节点下的事件节点。
在一些实施例中,该装置还包括:
挂接模块,用于将新游戏事件进行挂接,使根据新游戏事件动态地生成事件树的新事件节点的步骤,在当前游戏事件处理完毕之后进行。
在一些实施例中,该装置还包括:
嵌套模块,用于将新事件节点嵌套至当前游戏事件的子节点容器中。
在一些实施例中,一个新游戏事件至多造成一个游戏界面上的数值的变化。
本申请实施例提供的游戏事件执行装置,与上述实施例提供的游戏事件执行方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
本申请实施例提供的一种游戏事件编辑装置,装置应用于安装有游戏开发平台的设备,游戏开发平台预先配置有事件操作界面,事件操作界面配置有动态树结构的事件树,事件树包括多个事件节点;
如图9所示,游戏事件编辑装置900包括:
配置模块901,用于响应配置操作,配置观察映射表,观察映射表用于存储每个事件节点及其生成条件的映射关系;
编辑模块902,用于响应事件节点编辑操作,对观察映射表中的事件节点进行事件要素的编辑,事件要素包括触发条件、作用对象和作用效果。
本申请实施例提供的游戏事件编辑装置,与上述实施例提供的游戏事件编辑方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
本申请实施例还提供了一种机器可读存储介质,该机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现本申请实施例提供的上述游戏事件编辑方法以及游戏事件执行方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
最后应说明的是:以上所述实施例,仅为本申请的具体实施例,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

Claims (12)

1.一种游戏事件执行方法,其特征在于,所述方法应用于运行游戏的设备,所述游戏事件执行方法包括:
确定监听到的新游戏事件;
根据所述新游戏事件动态地生成事件树的新事件节点,其中,所述事件树为根据监听到的游戏事件动态地生成的树结构;
根据所述事件树执行构成所述事件树的事件节点所对应的游戏事件。
2.根据权利要求1所述的方法,其特征在于,所述确定监听到的新游戏事件的步骤,至少包括如下一种:响应游戏操作命令,确定所述操作命令对应的所述新游戏事件;响应当前游戏事件处理,确定与所述当前游戏事件相关联的所述新游戏事件。
3.根据权利要求2所述的方法,其特征在于,所述根据所述新游戏事件动态地生成事件树的新事件节点的步骤,包括:
根据操作命令对应的所述新游戏事件建立事件树,并动态地生成所述事件树的根节点。
4.根据权利要求1所述的方法,其特征在于,树结构为动态树结构。
5.根据权利要求1所述的方法,其特征在于,所述根据所述事件树执行构成所述事件树的事件节点所对应的游戏事件的步骤,包括:
根据监听到的游戏事件的先后顺序,执行位于同一层的事件节点。
6.根据权利要求1所述的方法,其特征在于,所述根据所述事件树执行构成所述事件树的事件节点所对应的游戏事件的步骤,包括:
根据深度优先搜索的顺序,执行位于同一根节点下的事件节点。
7.根据权利要求2所述的方法,其特征在于,所述响应当前游戏事件处理,确定与所述当前游戏事件相关联的所述新游戏事件的步骤之后,还包括:
将所述新游戏事件进行挂接,使所述根据所述新游戏事件动态地生成事件树的新事件节点的步骤,在所述当前游戏事件处理完毕之后进行。
8.根据权利要求7所述的方法,其特征在于,所述根据所述新游戏事件动态地生成事件树的新事件节点的步骤之后,还包括:
将所述新事件节点嵌套至所述当前游戏事件的子节点容器中。
9.根据权利要求1所述的方法,其特征在于,一个所述新游戏事件至多造成一个游戏界面上的数值的变化。
10.一种游戏事件执行装置,其特征在于,所述装置应用于运行游戏的设备,所述游戏事件执行装置包括:
监听模块,用于确定监听到的新游戏事件;
节点生成模块,用于根据所述新游戏事件动态地生成事件树的新事件节点,其中,所述事件树为根据监听到的游戏事件动态地生成的树结构;
执行模块,用于根据所述事件树执行构成所述事件树的事件节点所对应的游戏事件。
11.一种电子终端,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1至9任一项所述的方法的步骤。
12.一种具有处理器可执行的非易失的程序代码的计算机可读介质,其特征在于,所述程序代码使所述处理器执行所述权利要求1至9任一项所述的方法的步骤。
CN201910787440.9A 2019-08-23 2019-08-23 游戏事件执行方法及装置 Pending CN110478893A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910787440.9A CN110478893A (zh) 2019-08-23 2019-08-23 游戏事件执行方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910787440.9A CN110478893A (zh) 2019-08-23 2019-08-23 游戏事件执行方法及装置

Publications (1)

Publication Number Publication Date
CN110478893A true CN110478893A (zh) 2019-11-22

Family

ID=68553856

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910787440.9A Pending CN110478893A (zh) 2019-08-23 2019-08-23 游戏事件执行方法及装置

Country Status (1)

Country Link
CN (1) CN110478893A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111729316A (zh) * 2020-06-15 2020-10-02 北京智明星通科技股份有限公司 一种卡牌对战类游戏中的出牌推荐方法、系统及游戏终端
CN112827178A (zh) * 2021-01-29 2021-05-25 杭州电魂网络科技股份有限公司 一种技能实现的方法和系统
CN115328354A (zh) * 2022-08-16 2022-11-11 网易(杭州)网络有限公司 游戏中的交互处理方法、装置、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107115673A (zh) * 2017-04-27 2017-09-01 腾讯科技(深圳)有限公司 一种基于行为树的行为执行方法和装置
CN108579081A (zh) * 2018-03-28 2018-09-28 努比亚技术有限公司 基于游戏的事件处理方法、设备及计算机存储介质
CN109343913A (zh) * 2018-10-22 2019-02-15 竞技世界(北京)网络技术有限公司 一种游戏行为树控制方法
CN109684217A (zh) * 2018-12-25 2019-04-26 网易(杭州)网络有限公司 一种游戏检测的方法及装置、电子设备、存储介质
CN109876445A (zh) * 2019-01-11 2019-06-14 珠海金山网络游戏科技有限公司 一种基于行为树的高解耦引导方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107115673A (zh) * 2017-04-27 2017-09-01 腾讯科技(深圳)有限公司 一种基于行为树的行为执行方法和装置
CN108579081A (zh) * 2018-03-28 2018-09-28 努比亚技术有限公司 基于游戏的事件处理方法、设备及计算机存储介质
CN109343913A (zh) * 2018-10-22 2019-02-15 竞技世界(北京)网络技术有限公司 一种游戏行为树控制方法
CN109684217A (zh) * 2018-12-25 2019-04-26 网易(杭州)网络有限公司 一种游戏检测的方法及装置、电子设备、存储介质
CN109876445A (zh) * 2019-01-11 2019-06-14 珠海金山网络游戏科技有限公司 一种基于行为树的高解耦引导方法及系统

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111729316A (zh) * 2020-06-15 2020-10-02 北京智明星通科技股份有限公司 一种卡牌对战类游戏中的出牌推荐方法、系统及游戏终端
CN111729316B (zh) * 2020-06-15 2024-05-17 北京智明星通科技股份有限公司 一种卡牌对战类游戏中的出牌推荐方法、系统及游戏终端
CN112827178A (zh) * 2021-01-29 2021-05-25 杭州电魂网络科技股份有限公司 一种技能实现的方法和系统
CN115328354A (zh) * 2022-08-16 2022-11-11 网易(杭州)网络有限公司 游戏中的交互处理方法、装置、电子设备及存储介质
CN115328354B (zh) * 2022-08-16 2024-05-10 网易(杭州)网络有限公司 游戏中的交互处理方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN110478893A (zh) 游戏事件执行方法及装置
Tweedale et al. Innovations in multi-agent systems
CN105183445B (zh) 一种基于xml的游戏人工智能的可视化设计系统
WO2017148233A1 (zh) 状态控制方法和装置
JP6755527B2 (ja) モバイルゲームのためのデータ処理方法および装置
CN110392052A (zh) 一种区块链智能合约处理系统及方法
CN104133666B (zh) 确定人工智能行为的方法、装置及人工智能服务器
CN106294122B (zh) 一种标准的软件测试平台及其测试方法
CN108762768A (zh) 网络服务智能化部署方法及系统
CN108520316A (zh) 一种超限报警数据优化处理方法
CN104915245B (zh) 实现仿真系统与实际功能系统统一运行的集成系统及方法
Chaves et al. Hybrid metaheuristic for the assembly line worker assignment and balancing problem
CN107115673B (zh) 一种基于行为树的行为执行方法和装置
CN105847237A (zh) 一种基于nfv的安全管理方法和装置
CN113886026B (zh) 一种基于动态参数配置和过程监督的智能建模方法与系统
CN112347636A (zh) 一种基于Multi-Agent技术的装备保障仿真建模方法
CN101149680A (zh) 动态变更的、图形化配置的资源管理方法
CN114707404A (zh) 一种分布并行多智能体协同训练系统及方法
CN108255596A (zh) 一种执行定时任务的方法及系统
JPH04227544A (ja) 複雑な情報交換システムを通じるデータ流れの分析方法及び装置
CN112131112B (zh) 操作信息的获取方法和装置、存储介质及电子设备
CN113608751A (zh) 推理服务平台的运行方法、装置、设备及存储介质
CN115421847A (zh) 支持多引擎的研发运维平台和cicd流水线的管理方法及设备
CN115719147A (zh) 输电线路巡检数据处理方法、装置、平台
CN114281641A (zh) 物联管理平台监控方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20191122