CN109550253A - 游戏加载方法、装置、存储介质、处理器及终端 - Google Patents
游戏加载方法、装置、存储介质、处理器及终端 Download PDFInfo
- Publication number
- CN109550253A CN109550253A CN201811438030.5A CN201811438030A CN109550253A CN 109550253 A CN109550253 A CN 109550253A CN 201811438030 A CN201811438030 A CN 201811438030A CN 109550253 A CN109550253 A CN 109550253A
- Authority
- CN
- China
- Prior art keywords
- user interface
- game
- interface view
- module
- message
- 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
Links
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/70—Game security or game management aspects
- A63F13/77—Game security or game management aspects involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/60—Generating 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
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/30—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by output arrangements for receiving control signals generated by the game device
- A63F2300/308—Details of the user interface
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/60—Methods for processing data by generating or executing the game program
- A63F2300/6009—Methods for processing data by generating or executing the game program for importing or creating game content, e.g. authoring tools during game development, adapting content to different platforms, use of a scripting language to create content
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- General Business, Economics & Management (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种游戏加载方法、装置、存储介质、处理器及终端。该方法包括:获取用户选取的游戏类型;加载预先配置的与游戏类型对应的模块组合,其中,模块组合中的每个模块包括:一个数据管理器和多个用户界面视图,数据管理器用于管理多个用户界面视图,多个用户界面视图中的每个用户界面视图用于在对应的显示区域内响应用户事件。本发明解决了相关技术中缺乏一种全新多APP模式支持方案,从而无法实现多款游戏集成化、游戏快速开发迭代、统一外围逻辑,集中游戏独有战斗逻辑的技术问题。
Description
技术领域
本发明涉及计算机领域,具体而言,涉及一种游戏加载方法、装置、存储介质、处理器及终端。
背景技术
目前,在相关技术中,通常在一个APP中只会运行一种类型游戏,例如:市场上流行的角色扮演类游戏、竞速类游戏、多人对战类游戏等APP都是采用在每个APP下运行一款游戏。在这种方案中,对于游戏的多样性扩展只能围绕游戏本身进行探索,由此极大地限制了APP的多样式发展。
考虑到棋牌类APP具有特殊性,因此,需要在同一款APP中运行诸多类型相似或者不同的游戏,其可以包括但不限于:各种地方斗地主、麻将、象棋、五子棋这些小游戏。由此可见,相关技术中缺乏一种全新多APP模式支持方案,以便能够解决多款游戏集成化、游戏快速开发迭代、统一外围逻辑,集中游戏独有战斗逻辑等问题中至少之一。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明至少部分实施例提供了一种游戏加载方法、装置、存储介质、处理器及终端,以至少部分地解决相关技术中缺乏一种全新多APP模式支持方案,从而无法实现多款游戏集成化、游戏快速开发迭代、统一外围逻辑,集中游戏独有战斗逻辑的技术问题。
根据本发明其中一实施例,提供了一种游戏加载方法,包括:
获取用户选取的游戏类型;加载预先配置的与游戏类型对应的模块组合,其中,模块组合中的每个模块包括:一个数据管理器和多个用户界面视图,数据管理器用于管理多个用户界面视图,多个用户界面视图中的每个用户界面视图用于在对应的显示区域内响应用户事件。
可选地,加载预先配置的与游戏类型对应的模块组合包括:在与游戏类型对应的游戏初始化运行时,将每个模块的数据管理器加载至内存中;获取用户事件,如果确定当前模块内已存在响应用户事件的用户界面视图,则将确定的用户界面视图加载至内存,或者,如果确定当前模块内尚未存在响应用户事件的用户界面视图但是多个用户界面视图中至少一个用户界面视图已注册对用户事件的监听,则通过当前模块内的数据管理器创建至少一个用户界面视图,并将至少一个用户界面视图加载至内存。
可选地,加载预先配置的与游戏类型对应的模块组合还包括:为至少一个用户界面视图中的每个用户界面视图分配对应的座位号,其中,座位号用于确定每个用户界面视图所归属的游戏玩家并处理用户事件。
可选地,每个模块内的多个用户界面视图相互独立接收外界数据,其中,接收数据的数据格式中所携带的字段包括:第一字段,用于表示每个用户界面视图对应的座位号;第二字段,用于表示每个用户界面视图的唯一标识;第三字段,用于表示每个用户界面视图接收到的数据内容;第四字段,用于表示每个用户界面接收到的是否为通过重新连接传输的数据。
可选地,每个模块内的数据管理器与多个用户界面视图之间以及多个用户界面视图相互间拒绝配置访问接口。
可选地,多个用户界面视图的数量由与游戏类型对应的游戏玩家数量确定。
可选地,在加载预先配置的与游戏类型对应的模块组合之前,还包括:分别为每个模块配置待处理的至少一个用户事件。
根据本发明其中一实施例,还提供了一种游戏加载装置,包括:
获取模块,用于获取用户选取的游戏类型;加载模块,用于加载预先配置的与游戏类型对应的模块组合,其中,模块组合中的每个模块包括:一个数据管理器和多个用户界面视图,数据管理器用于管理多个用户界面视图,多个用户界面视图中的每个用户界面视图用于在对应的显示区域内响应用户事件。
可选地,加载模块包括:加载单元,用于在与游戏类型对应的游戏初始化运行时,将每个模块的数据管理器加载至内存中;处理单元,用于获取用户事件,如果确定当前模块内已存在响应用户事件的用户界面视图,则将确定的用户界面视图加载至内存,或者,如果确定当前模块内尚未存在响应用户事件的用户界面视图但是多个用户界面视图中至少一个用户界面视图已注册对用户事件的监听,则通过当前模块内的数据管理器创建至少一个用户界面视图,并将至少一个用户界面视图加载至内存。
可选地,加载模块还包括:分配单元,用于为至少一个用户界面视图中的每个用户界面视图分配对应的座位号,其中,座位号用于确定每个用户界面视图所归属的游戏玩家并处理用户事件。
可选地,每个模块内的多个用户界面视图相互独立接收外界数据,其中,接收数据的数据格式中所携带的字段包括:第一字段,用于表示每个用户界面视图对应的座位号;第二字段,用于表示每个用户界面视图的唯一标识;第三字段,用于表示每个用户界面视图接收到的数据内容;第四字段,用于表示每个用户界面接收到的是否为通过重新连接传输的数据。
可选地,每个模块内的数据管理器与多个用户界面视图之间以及多个用户界面视图相互间拒绝配置访问接口。
可选地,多个用户界面视图的数量由与游戏类型对应的游戏玩家数量确定。
可选地,上述装置还包括:配置模块,用于分别为每个模块配置待处理的至少一个用户事件。
根据本发明其中一实施例,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述任意一项的游戏加载方法。
根据本发明其中一实施例,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述任意一项的游戏加载方法。
根据本发明其中一实施例,还提供了一种终端,包括:一个或多个处理器,存储器,显示装置以及一个或多个程序,其中,一个或多个程序被存储在存储器中,并且被配置为由一个或多个处理器执行,一个或多个程序用于执行上述任意一项的游戏加载方法。
在本发明至少部分实施例中,采用获取用户选取的游戏类型的方式,通过加载预先配置的与游戏类型对应的模块组合,该模块组合中的每个模块包括:一个数据管理器和多个用户界面视图,数据管理器用于管理多个用户界面视图,多个用户界面视图中的每个用户界面视图用于在对应的显示区域内响应用户事件,由此模块化机制不仅可以快速地搭建一款游戏,还可以确保游戏搭建的成功率;同时,采用模块化机制将一款游戏拆分为多个独立模块,从而减低开发难度、提高开发效率,进而解决了相关技术中缺乏一种全新多APP模式支持方案,从而无法实现多款游戏集成化、游戏快速开发迭代、统一外围逻辑,集中游戏独有战斗逻辑的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明其中一实施例的多应用模式前端设置示意图;
图2是根据本发明其中一实施例的游戏加载方法的流程图;
图3是根据本发明其中一实施例的消息处理方法的流程图;
图4是根据本发明其中一可选实施例的弱状态机示意图;
图5是根据本发明其中一实施例的消息处理方法的流程图;
图6是根据本发明其中一实施例的游戏加载装置的结构框图;
图7是根据本发明其中一可选实施例的游戏加载装置的结构框图;
图8是根据本发明其中一实施例的一种消息处理装置的结构框图;
图9是根据本发明其中一可选实施例的一种消息处理装置的结构框图;
图10是根据本发明其中一实施例的另一种消息处理装置的结构框图;
图11是根据本发明其中一可选实施例的另一种消息处理装置的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
棋牌类游戏通常具备如下特点:
特点一、高度重复,棋牌类游戏大致可以分为三类:麻将类、扑克类和字牌类;其中,麻将类游戏差异最小,麻将牌的内容和排序方式差别甚微。
特点二、多类型,一款游戏可以存在很多种模式,包括但不限于:休闲场、约牌房、比赛场、围观,不同类型之间仅存在少量模块差异或者模块表现形式存在少量差异。例如:针对地方斗地主金币场类型而言,地方斗地主金币场类型采用拟人化游戏玩家头像;针对地方斗地主积分场类型而言,地方斗地主积分场类型采用即时通讯软件用户头像;地方斗地主比赛类型缺少聊天模块。
特点三、规则差别大、表现统一,由于地区差异,不同游戏在同一个规则下,往往具有很强的地方特征,但是前端页面展示给游戏玩家的表现却都是一样的。例如:麻将胡结算规则,所有麻将基本胡流程和展现面板都是一致的,其区别仅在于:计算方式存在差异。
特点四、弱逻辑强交互,即主要逻辑都是设置在服务器端来完成,前端游戏展示很少参与逻辑部分。因此,游戏内所有流程统一由服务器下发,前端游戏展示的任何一个动作或者表现都是根据服务器下发的通知来完成的。
基于上述多项特点,可以在一款APP中集成多款不同类型游戏,将原有每个APP对应一款游戏进行集中化,以避免用户需要多次下载不同APP的繁杂操作。另外,多款APP统一处理外围逻辑(其可以分为如下两种:其一是与实际游戏内容关联度较低的逻辑,例如:金币存取、社交功能、活动功能;其二是与实际游戏内容关联度较高的逻辑,例如:解散房间、游戏玩家登录与登出、踢人功能、玩家互动),集中游戏独有战斗逻辑。这样,游戏研发人员只需要关注游戏本身内容,从而可以快速、集中处理游戏战斗,向游戏玩家提供统一的游戏体验和更好的游戏优化。
为了实现上述发明目的,图1是根据本发明其中一实施例的多应用模式前端设置示意图,如图1所示,通过设置统一控制(control)中心、统一场景(scene)中心和统一数据处理(data processing)中心,结合这三个中心分别构建模块化控制机制、弱状态机机制和消息管道机制,从而形成一套完整的棋牌多APP模式支持方式。
而且,通过设置公共房间底层,公共房间会为游戏提供一个最初的控制中心、统一场景中心和统一数据处理中心,全部子游戏都基于这三个中心开发,同时根据子游戏的特点,公共房间再进一步细分为公共麻将、扑克等框架,这些都是为了解决快速开发特定类型子游戏而进行开发的框架。
下面将分别针对模块化控制机制、弱状态机机制和消息管道机制做进一步地详细描述。
根据本发明其中一实施例,提供了一种模块化控制机制下的游戏加载方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
该方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,移动终端可以包括一个或多个处理器(处理器可以包括但不限于微处理器(MCU)或可编程逻辑器件(FPGA)等的处理装置)和用于存储数据的存储器。可选地,上述移动终端还可以包括用于通信功能的传输装置以及输入输出设备。本领域普通技术人员可以理解,上述结构描述仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比上述结构描述更多或者更少的组件,或者具有与上述结构描述不同的配置。
存储器可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的游戏加载方法对应的计算机程序,处理器通过运行存储在存储器内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的游戏加载方法。存储器可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输装置包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种运行于上述移动终端的游戏加载方法的流程图,图2是根据本发明其中一实施例的游戏加载方法的流程图,如图2所示,该方法包括如下步骤:
步骤S22,获取用户选取的游戏类型;
步骤S24,加载预先配置的与游戏类型对应的模块组合,其中,模块组合中的每个模块包括:一个数据管理器和多个用户界面视图,数据管理器用于管理多个用户界面视图,多个用户界面视图中的每个用户界面视图用于在对应的显示区域内响应用户事件。
通过上述步骤,可以采用获取用户选取的游戏类型的方式,通过加载预先配置的与游戏类型对应的模块组合,该模块组合中的每个模块包括:一个数据管理器和多个用户界面视图,数据管理器用于管理多个用户界面视图,多个用户界面视图中的每个用户界面视图用于在对应的显示区域内响应用户事件,由此模块化机制不仅可以快速地搭建一款游戏,还可以确保游戏搭建的成功率;同时,采用模块化机制将一款游戏拆分为多个独立模块,从而减低开发难度、提高开发效率,进而解决了相关技术中缺乏一种全新多APP模式支持方案,从而无法实现多款游戏集成化、游戏快速开发迭代、统一外围逻辑,集中游戏独有战斗逻辑的技术问题。
棋牌中的不同游戏存在较高的重复度,因此绝大部分内容是相同的或者同一款游戏内的不同类型玩法只存在部分差异。为此,在框架方面可以采用模块化机制。模块化机制不仅可以快速地搭建一款游戏,还可以确保游戏搭建的成功率。同时,采用模块化机制将一款游戏拆分为多个独立模块,从而减低开发难度、提高开发效率。此外,模块化机制还可以简化技术的实现过程。例如:牌桌快速恢复方案。
每个模块通常是游戏运行的特定组成单元,而只有在将全部模块组织在一起时,各个模块才能够发挥真正的作用。由于不同类型的游戏通常由不同模块组成,例如:比赛类型需要A模块,而围观类型可能需要的便是B模块。因此,通过加入类型匹配机制,才会快速迭代出不同类型游戏。
当游戏玩家选择一款特定游戏时,通常会先选择游戏类型,例如:回看、约牌房、比赛、金币场等类型。在确定游戏类型之后,便可以加载预先配置的与该游戏类型对应模块数据。例如:比赛类型的配置包括:赛前等待、配桌等待、晋级等待等内容;约牌类型的配置包括:计分板、二维码、反作弊等内容。
可选地,在步骤S24中,加载预先配置的与游戏类型对应的模块组合可以包括以下执行步骤:
步骤S241,在与游戏类型对应的游戏初始化运行时,将每个模块的数据管理器加载至内存中;
步骤S242,获取用户事件,如果确定当前模块内已存在响应用户事件的用户界面视图,则将确定的用户界面视图加载至内存,或者,如果确定当前模块内尚未存在响应用户事件的用户界面视图但是多个用户界面视图中至少一个用户界面视图已注册对用户事件的监听,则通过当前模块内的数据管理器创建至少一个用户界面视图,并将至少一个用户界面视图加载至内存。
在模块化机制中,抽象出layer和用户界面(UI)视图(view)两个概念。
例如,Coco2dx引擎中的layer,即层,是该引擎的一个基本概念。layer上通常包含屏幕上呈现的内容,例如:角色、背景,同时layer可以接收用户输入的事件,这些事件可以包括但不限于:基于触控屏的触摸、基于外部设备(例如,键盘)的输入、基于陀螺仪感测的用户操作。
区别于cocos2dx引擎中layer概念,在本发明的一个可选实施例中,layer是一个数据管理器,负责每个模块的创建、配置以及销毁功能。layer本身不负责UI工作,因此可以在游戏初次运行时,将所有模块layer全部加载到游戏中。通过layer控制view的生命周期。即,Layer会控制view的创建和销毁。而view则是模仿cocos2dx引擎中layer,直接继承其layer所有属性,并对其进行扩展。
在创建view(即,向用户展现特定内容)的过程中,同时会绑定其相应的布局文件self.__luaResource,因此每个view的创建,对CPU都存在一定消耗。
如上所述,layer对view会进行统一生命周期管理。针对view的创建时机,可以通过用时加载机制来实现。即,该view只有在实际使用时才会被加载到内存中。当加载一个view时,首先会确定当前模块内是否已存在响应用户事件的view,如果是,则将确定的view加载至内存。如果确定当前模块内尚未存在响应用户事件的view但是已注册对用户事件的监听,则通过layer创建该view,并将该view加载至内存。
可选地,在步骤S24中,加载预先配置的与游戏类型对应的模块组合还可以包括以下执行步骤:
步骤S243,为至少一个用户界面视图中的每个用户界面视图分配对应的座位号,其中,座位号用于确定每个用户界面视图所归属的游戏玩家并处理用户事件。
当每个事件(包括但不限于:用户登录房间、用户准备、用户离开房间、游戏开始、游戏发牌、用户开始出牌、用户结束出牌、游戏结算)下发时,框架都会检测view内是否已经监听到该事件。而只有监听到该事件,才会尝试加载view到内存中。同时,还会为每个view赋予一个seat概念(即座位号,表示游戏玩家在玩牌时所处的位置。假设4人游戏,那么seat的取值变为1至4。假设5人游戏,那么seat的取值变为1至5。在每个游戏玩家的seat取值确定之后,才能确定从哪个游戏玩家先发牌,哪个游戏玩家先出牌等游戏规则),即绑定view属于哪一个游戏玩家,进而通过seat对事件进行一次处理。
需要说明的是,每个view需要监听的事件数量有限,例如:用户准备view通常可用于监听用户准备、游戏开始、游戏结算三个事件。因此,对于监听到的其他事件通常不做处理。
可选地,每个模块内的多个用户界面视图相互独立接收外界数据,其中,接收数据的数据格式中所携带的字段包括:第一字段,用于表示每个用户界面视图对应的座位号;第二字段,用于表示每个用户界面视图的唯一标识;第三字段,用于表示每个用户界面视图接收到的数据内容;第四字段,用于表示每个用户界面接收到的是否为通过重新连接传输的数据。
layer和view通常负责接收数据,而除设置一些配置数据,例如:位置偏移等,不会产生交互数据。同时,还会采用如下格式接收数据:
function M:onPlayerIn(seat,uid,info,isFast)
其中,seat(即上述第一字段)表示该view的座位号,uid(即上述第二字段)表示该view的唯一编号,info(即上述第三字段)表示该view所接收的数据,其组织形式可以采用table形式,isFast(即上述第四字段)表示所接收到的数据是否为通过重新连接得到的数据,通过重新连接得到的数据用来恢复整个场景,这些数据通常可以包括但不限于:游戏玩家的财产信息、游戏玩家的出牌情况、游戏玩家的流水情况、其他游戏玩家个人资料。
可选地,每个模块内的数据管理器与多个用户界面视图之间以及多个用户界面视图相互间拒绝配置访问接口。
考虑到同一个游戏本身由多个模块组成,例如:手牌模块、操作按钮模块、定时器模块等,而为了严格限制这些模块之间不允许互相访问以及互相交换数据,因此,框架本身并不提供类似getModel这种访问其他模块接口。每个模块除了处理自身函数,接收外界数据时,通常不再参与其他模块之间的通信交流。由此确保每个模块的纯粹性和解耦性,进而在配置游戏模块时,不必担心模块之间的关联性。
可选地,多个用户界面视图的数量由与游戏类型对应的游戏玩家数量确定。
在一个模块中,通常包含1个layer和最多N个view,其中,N为游戏人数。layer负责本模块的统一管理,view负责具体表现。以游戏玩家名称模块为例,layer配置内容表示游戏玩家名称模块所采用的模块路径。view配置内容表示游戏玩家名称模块的一些属性,这些属性包括但不限于:布局文件路径、层等级、zorder顺序。
可选地,在步骤S24,加载预先配置的与游戏类型对应的模块组合之前,还可以包括以下执行步骤:
步骤S23,分别为每个模块配置待处理的至少一个用户事件。
在模块进行初始化工作之后,便保持静止状态,然后全部动作均需要在事件驱动下来执行。每个模块都会配置本身需要处理的事件,并将其余事件全部屏蔽掉。根据游戏不同通常都会定义一些特有消息,例如:游戏玩家登录消息、游戏玩家登出消息、游戏玩家准备消息。假设通过事件配置确定一个模块只处理这三个消息,那么如果该模块又另外接收到其他消息,则一律跳过不做处理,由此通过事件驱动机制可以加强对模块的管理。以牌桌的快速恢复方案为例,可以通过事件驱动机制来解决。当牌桌恢复时,会下发对应重连事件,而只要该模块通过事件配置确定需要处理该事件,那么该模块便可恢复到发生异常之前的正常状态。
另外,在本发明的一个可选实施例中,还特别引入了忽略销毁功能和自动适配iPhone X功能。
忽略销毁是一种游戏中场景还原技术。当游戏崩溃或者延迟时,需要还原当前场景,这时便可自动将旧模块全部销毁,重新绘制对应的新模块。但是,如果存在部分模块在立即销毁之后会导致游戏画面显示异常,则此时会为这类模块增加一种忽略销毁功能。例如:对于背景模块而言,如果立即销毁该背景模块并再次创建新的背景模块,则会发生闪烁问题,影响用户体验,因此需要为其增加忽略销毁功能。此外,考虑到近年来市场上出现一些移动终端的显示屏内,一些处在边缘角落的模块会被挡住,为此,需要将这些模块相应的移动一定距离,即自动适配iPhone X功能。
根据本发明其中一实施例,提供了一种弱状态机机制下的消息处理方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
该方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,移动终端可以包括一个或多个处理器(处理器可以包括但不限于微处理器(MCU)或可编程逻辑器件(FPGA)等的处理装置)和用于存储数据的存储器。可选地,上述移动终端还可以包括用于通信功能的传输装置以及输入输出设备。本领域普通技术人员可以理解,上述结构描述仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比上述结构描述更多或者更少的组件,或者具有与上述结构描述不同的配置。
存储器可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的消息处理方法对应的计算机程序,处理器通过运行存储在存储器内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的消息处理方法。存储器可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输装置包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种运行于上述移动终端的消息处理方法的流程图,图3是根据本发明其中一实施例的消息处理方法的流程图,如图3所示,该方法包括如下步骤:
步骤S32,接收来自于服务端的待处理消息;
步骤S34,从待处理消息拆分出多个动作;
步骤S36,在多个动作的驱动下执行对应的游戏操作。
通过上述步骤,可以采用接收来自于服务端的待处理消息以及从待处理消息拆分出多个动作的方式,通过在多个动作的驱动下执行对应的游戏操作,由此在框架方面弱化了状态机机制,去除状态由动作触发的概念,由状态驱动调整为由服务端接收到的消息中所拆分出的每个动作驱动,不仅可以简化整体游戏控制流程,而且还会使得游戏更加灵活,进而解决了相关技术中缺乏一种全新多APP模式支持方案,从而无法实现多款游戏集成化、游戏快速开发迭代、统一外围逻辑,集中游戏独有战斗逻辑的技术问题。
上述待处理消息可以对应于服务端向终端下发的事件。例如:服务端向终端发送一个游戏开始消息,其对应于服务端向终端下发游戏开始事件。
相关技术中所采用的状态机机制为:假设当前存在状态A、状态B和状态C,如果当前处于状态A,且此时接收到动作A,那么便可以将状态A调整为状态B,同时在只配置动作A的情况下,状态A只能接收动作A,其余动作一律抛出异常。这种状态机存在严格的状态切换,同时会配置严格动作表。
如上所述,棋牌游戏规则差别较大、表现差别较小和弱逻辑强交互的特点,游戏中通常将逻辑设置在服务端,客户端单纯负责接收并处理服务端发送的数据。因此,在框架方面弱化了状态机机制,去除状态由动作触发的概念。
可选地,在步骤S32,接收来自于服务端的待处理消息之前,还可以包括以下执行步骤:
步骤S30,获取用户选取的游戏类型;
步骤S31,加载预先配置的与游戏类型对应的模块组合,其中,模块组合中的每个模块包括:一个数据管理器和多个用户界面视图,数据管理器用于管理多个用户界面视图,多个用户界面视图中的每个用户界面视图用于在对应的显示区域内响应用户事件。
如上所述,在框架方面可以采用模块化机制。模块化机制不仅可以快速地搭建一款游戏,还可以确保游戏搭建的成功率。同时,采用模块化机制将一款游戏拆分为多个独立模块,从而减低开发难度、提高开发效率。每个模块通常是游戏运行的特定组成单元,而只有在将全部模块组织在一起时,各个模块才能够发挥真正的作用。由于不同类型的游戏通常由不同模块组成,例如:比赛类型需要A模块,而围观类型可能需要的便是B模块。因此,通过加入类型匹配机制,才会快速迭代出不同类型游戏。
当游戏玩家选择一款特定游戏时,通常会先选择游戏类型,例如:回看、约牌房、比赛、金币场等类型。在确定游戏类型之后,便可以加载预先配置的与该游戏类型对应模块数据。例如:比赛类型的配置包括:赛前等待、配桌等待、晋级等待等内容;约牌类型的配置包括:计分板、二维码、反作弊等内容。
在本发明的一个可选实施例中,layer是一个数据管理器,负责每个模块的创建、配置以及销毁功能。layer本身不负责UI工作,因此可以在游戏初次运行时,将所有模块layer全部加载到游戏中。通过layer控制view的生命周期。即,Layer会控制view的创建和销毁。而view则是模仿cocos2dx引擎中layer,直接继承其layer所有属性,并对其进行扩展。
可选地,在步骤S34中,从待处理消息拆分出多个动作可以包括以下执行步骤:
步骤S341,根据游戏类型确定待处理消息中包含的数据内容;
步骤S342,对数据内容进行拆分得到多个动作。
由于弱逻辑特性能够确保游戏的整体流程逻辑非常清晰,因此,在框架层面约束由统一控制器下发所有动作。控制器文件通常被称为XXXReader.lua,主要负责服务端数据接收、数据源处理和动作下发。数据源处理通常是指整合数据内容。这些内容包括但不限于:将数据排序、查找特定内容、对数据进行拆分等处理。动作下发,即前述用户事件(或称消息事件)。在通常情况下根据不同服务端消息下发不同的动作。例如:针对游戏玩家出牌服务端消息,其对应下发的动作包括但不限于:计时器重置动作、开始出牌动作、清空牌面动作。
可选地,在步骤S36中,在多个动作的驱动下执行对应的游戏操作可以包括以下执行步骤:
步骤S361,从模块组合内获取与多个动作中每个动作对应的模块;
步骤S362,在每个动作的驱动下,控制对应的模块执行与每个动作关联的游戏操作。
对于弱化之后的状态,从服务端接收到的消息中所拆分出的每个动作都将直接驱动模块,进而跳过状态驱动这一过程,由此一方面简化整体游戏控制流程,另一方面使得游戏更加灵活,直接由服务端驱动游戏进程。
图4是根据本发明其中一可选实施例的弱状态机示意图,如图4所示,以游戏玩家出牌场景为例,当服务端通知客户端的游戏玩家A出牌消息时,可以将该消息拆分成多个动作,包括:动作A(例如:计时器重置动作)、动作B(例如:开始出牌动作)、动作C(例如:清空牌面动作)等;其中,计时器重置动作会通知模块A(例如:计时器模块)重新计时,开始出牌动作会通知模块B(例如:操作按钮模块)是否需要显示以及显示方式,清空牌面动作会通知模块C(例如:牌面模块)将对应游戏玩家的牌面进行清空。
另外,尽管在游戏中弱化状态机机制,但是依然保留有最基本状态,这些状态包括:登出状态、登入状态、准备状态以及游戏中状态,进而根据这四种状态来判断游戏内牌桌的属性。
根据本发明其中一实施例,提供了一种消息管道机制下的消息处理方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
该方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,移动终端可以包括一个或多个处理器(处理器可以包括但不限于微处理器(MCU)或可编程逻辑器件(FPGA)等的处理装置)和用于存储数据的存储器。可选地,上述移动终端还可以包括用于通信功能的传输装置以及输入输出设备。本领域普通技术人员可以理解,上述结构描述仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比上述结构描述更多或者更少的组件,或者具有与上述结构描述不同的配置。
存储器可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的消息处理方法对应的计算机程序,处理器通过运行存储在存储器内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的消息处理方法。存储器可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输装置包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种运行于上述移动终端的消息处理方法的流程图,图5是根据本发明其中一实施例的消息处理方法的流程图,如图5所示,该方法包括如下步骤:
步骤S52,接收来自于服务端的待处理消息;
步骤S54,从待处理消息解析出多个子消息,并为多个子消息中的每个子消息配置时间信息,其中,时间信息用于确定每个子消息的处理顺序;
步骤S56,根据时间信息处理多个子消息,以执行每个子消息对应的游戏操作。
通过上述步骤,可以采用接收来自于服务端的待处理消息并从待处理消息解析出多个子消息的方式,通过为多个子消息中的每个子消息配置用于确定每个子消息的处理顺序的时间信息,以及根据时间信息处理多个子消息以执行每个子消息对应的游戏操作,在消息队列基础上实现更高层次的消息管道机制,通过为多个子消息中的每个子消息配置用于确定每个子消息的处理顺序的时间信息,来确保每条消息都可以很好地与相邻消息接进行关联,进而解决了相关技术中缺乏一种全新多APP模式支持方案,从而无法实现多款游戏集成化、游戏快速开发迭代、统一外围逻辑,集中游戏独有战斗逻辑的技术问题。
上述待处理消息可以对应于服务端向终端下发的事件。例如:服务端向终端发送一个游戏开始消息,其对应于服务端向终端下发游戏开始事件。
消息管道是在消息队列基础上的一种更高层次的实现。消息队列会简单地对消息进行压栈和出栈处理,没有对时间进行处理。即一条消息应该处理多久或者应该延迟多久才开始处理。为此,在总体框架方面重新设置为消息管道机制。
可选地,在步骤S52,接收来自于服务端的待处理消息之前,还可以包括以下执行步骤:
步骤S50,获取用户选取的游戏类型;
步骤S51,加载预先配置的与游戏类型对应的模块组合,其中,模块组合中的每个模块包括:一个数据管理器和多个用户界面视图,数据管理器用于管理多个用户界面视图,多个用户界面视图中的每个用户界面视图用于在对应的显示区域内响应用户事件。
如上所述,在框架方面可以采用模块化机制。模块化机制不仅可以快速地搭建一款游戏,还可以确保游戏搭建的成功率。同时,采用模块化机制将一款游戏拆分为多个独立模块,从而减低开发难度、提高开发效率。每个模块通常是游戏运行的特定组成单元,而只有在将全部模块组织在一起时,各个模块才能够发挥真正的作用。由于不同类型的游戏通常由不同模块组成,例如:比赛类型需要A模块,而围观类型可能需要的便是B模块。因此,通过加入类型匹配机制,才会快速迭代出不同类型游戏。
当游戏玩家选择一款特定游戏时,通常会先选择游戏类型,例如:回看、约牌房、比赛、金币场等类型。在确定游戏类型之后,便可以加载预先配置的与该游戏类型对应模块数据。例如:比赛类型的配置包括:赛前等待、配桌等待、晋级等待等内容;约牌类型的配置包括:计分板、二维码、反作弊等内容。
在本发明的一个可选实施例中,layer是一个数据管理器,负责每个模块的创建、配置以及销毁功能。layer本身不负责UI工作,因此可以在游戏初次运行时,将所有模块layer全部加载到游戏中。通过layer控制view的生命周期。即,Layer会控制view的创建和销毁。而view则是模仿cocos2dx引擎中layer,直接继承其layer所有属性,并对其进行扩展。
可选地,在步骤S54中,从待处理消息解析出多个子消息可以包括以下执行步骤:
步骤S541,根据游戏类型确定待处理消息中包含的数据内容;
步骤S542,对数据内容进行拆分得到多个动作;
步骤S543,按照多个动作将待处理消息拆分成多个子消息。
以接收到服务端发送的游戏结束消息为例,服务端发送游戏结束消息表示游戏结束。对于服务端而言,发送游戏结束消息可以在瞬间完成。然而,对于客户端而言,这个消息的处理过程可能需要经历金币流水动画、结算界面展示等一系列子消息处理过程,因此,整个消息处理过程可能会经历10余秒的时长。因此,需要从游戏结束消息所包含的数据内容拆分出多个动作,然后再由多个动作拆分出对应的子消息。
可选地,在步骤S54中,为多个子消息中的每个子消息配置时间信息可以包括以下执行步骤:
步骤S544,为多个子消息中的每个子消息添加管道头部,并为管道头部配置第一时长,其中,第一时长用于表示每个子消息从接收时刻至开始处理时刻所经历的时长;
步骤S545,为每个子消息添加管道尾部,并为管道尾部配置第二时长,其中,第二时长用于表示每个子消息从开始处理时刻至结束处理时刻所经历的时长。
在一个可选实施例中,每个消息通常包含以下内容:
(1)消息主体;
(2)消息内容;
(3)管道头部;
(4)管道尾部;
由此能够确保每条消息都可以很好地与相邻消息接进行关联。
尽管消息队列也可以实现相邻消息之间的连接关系,但是其只能实现一种简单地连接,会出现挤压情况。例如:在特定时刻接收到大量来自于服务端的消息,此时游戏由于执行先前提到的动作拆分操作,因此会产生大量动作,由此易导致各个动作之间发生混乱,很有可能造成诸如前一时刻还在通知游戏玩家出牌,转而后一时刻便可能通知整个游戏结束这种异常现象。
仍然以接收到服务端发送的游戏结束消息为例,需要为每条子消息都会设置一个管道头部时长和管道尾部时长,其分别表示本条子消息需要延时多久再触发以及处理时长。即,通过在管道头部设置的时长表示在接收到该消息之后,需要延时多久再触发;通过在管道尾部设置的时长表示该消息需要处理的时长。由此才能向游戏玩家提供良好、有序的用户体验,而不会像视频快进一般,造成游戏玩家对于游戏画面的切换应接不暇。
可选地,在步骤S56中,根据时间信息处理多个子消息,以执行每个子消息对应的游戏操作可以包括以下执行步骤:
步骤S561,当多个子消息中的第一部分子消息的第一时长和第二时长均为0时,立即执行第一部分子消息中每个子消息对应的游戏操作;
步骤S562,当多个子消息中除第一部分子消息之外的第二部分子消息的第一时长和第二时长中至少之一不为0时,则按照第一时长由小到大的顺序依次开始执行第二部分子消息中的每个子消息对应的游戏操作,并在第二时长的结束时刻达到时,结束执行每个子消息对应的游戏操作。
在本发明的一个可选实施方式中针对消息设置了两种机制。第一种机制表现为不会影响正常牌局流程,例如:聊天消息,此时可以将其设置为立即模式,这种消息会被立刻执行。因此,为了实现该目的,管道头部和管道尾部的时间设置均可以配置为0,其表示需要立即执行,该消息将不需要延迟处理。第二种机制表现为会影响正常牌局流程,例如:游戏开始、游戏发牌等消息,此时可以将其设置为非立即模式。因此,为了实现该目的,管道头部和管道尾部的时间设置中的至少之一为非0。此时,对于处于非立即模式的各个子消息将会按照管道头部设置的时长来安排每个子消息开始执行的起始时刻以及按照管道尾部设置的时长来确定每个子消息所需要执行的具体时长。
综上所述,本发明提供的上述各个实施例可以实现如下技术效果:
(1)将多种类型游戏可以统一集成在一个APP中,游戏玩家无需多次下载APP数据包,由此极大地增加了游戏玩家的游戏体验,同时还可以有效地缓解终端的内存压力。
(2)统一了非游戏战斗相关内容(即上述外围逻辑,其相当于游戏的外壳,该外壳并非是游戏的核心内容,但又必不可少。这些内容通常包括:游戏解散、踢人、金币存取、游戏玩家房间选择、活动掉转、比赛报名等)。如此,一方面可以实现多款游戏用户体验一致,另一方面极大地解放了制作人员的精力,使其专注游戏战斗逻辑设计和开发,因此,每款游戏的开发周期由原先的1到2个月缩短至1到2周。
(3)通过提供模块化机制、消息管道机制等内容,游戏在核心逻辑处理之后,可以将玩法拆分成多种模块,并将所有模块按照一定规律拼接成各种类型玩法,例如:比赛类型玩法、约牌房类型玩法等,从而实现一款游戏内多种游戏模式功能。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
在本实施例中还提供了一种游戏加载装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图6是根据本发明其中一实施例的游戏加载装置的结构框图,如图6所示,该装置包括:获取模块11,用于获取用户选取的游戏类型;加载模块12,用于加载预先配置的与游戏类型对应的模块组合,其中,模块组合中的每个模块包括:一个数据管理器和多个用户界面视图,数据管理器用于管理多个用户界面视图,多个用户界面视图中的每个用户界面视图用于在对应的显示区域内响应用户事件。
可选地,加载模块12包括:加载单元(图中未示出),用于在与游戏类型对应的游戏初始化运行时,将每个模块的数据管理器加载至内存中;处理单元(图中未示出),用于获取用户事件,如果确定当前模块内已存在响应用户事件的用户界面视图,则将确定的用户界面视图加载至内存,或者,如果确定当前模块内尚未存在响应用户事件的用户界面视图但是多个用户界面视图中至少一个用户界面视图已注册对用户事件的监听,则通过当前模块内的数据管理器创建至少一个用户界面视图,并将至少一个用户界面视图加载至内存。
可选地,加载模块12还包括:分配单元(图中未示出),用于为至少一个用户界面视图中的每个用户界面视图分配对应的座位号,其中,座位号用于确定每个用户界面视图所归属的游戏玩家并处理用户事件。
可选地,每个模块内的多个用户界面视图相互独立接收外界数据,其中,接收数据的数据格式中所携带的字段包括:第一字段,用于表示每个用户界面视图对应的座位号;第二字段,用于表示每个用户界面视图的唯一标识;第三字段,用于表示每个用户界面视图接收到的数据内容;第四字段,用于表示每个用户界面接收到的是否为通过重新连接传输的数据。
可选地,每个模块内的数据管理器与多个用户界面视图之间以及多个用户界面视图相互间拒绝配置访问接口。
可选地,多个用户界面视图的数量由与游戏类型对应的游戏玩家数量确定。
可选地,图7是根据本发明其中一可选实施例的游戏加载装置的结构框图,如图7所示,该装置除包括图6所示的所有模块外,还包括:配置模块13,用于分别为每个模块配置待处理的至少一个用户事件。
在本实施例中还提供了一种消息处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图8是根据本发明其中一实施例的一种消息处理装置的结构框图,如图8所示,该装置包括:接收模块21,用于接收来自于服务端的待处理消息;拆分模块22,用于从待处理消息拆分出多个动作;处理模块23,用于在多个动作的驱动下执行对应的游戏操作。
可选地,图9是根据本发明其中一可选实施例的一种消息处理装置的结构框图,如图9所示,该装置除包括图8所示的所有模块外,还包括:获取模块24,用于获取用户选取的游戏类型;加载模块25,用于加载预先配置的与游戏类型对应的模块组合,其中,模块组合中的每个模块包括:一个数据管理器和多个用户界面视图,数据管理器用于管理多个用户界面视图,多个用户界面视图中的每个用户界面视图用于在对应的显示区域内响应用户事件。
可选地,拆分模块22包括:确定单元(图中未示出),用于根据游戏类型确定待处理消息中包含的数据内容;拆分单元(图中未示出),用于对数据内容进行拆分得到多个动作。
可选地,处理模块23包括:获取单元(图中未示出),用于从模块组合内获取与多个动作中每个动作对应的模块;处理单元(图中未示出),用于在每个动作的驱动下,控制对应的模块执行与每个动作关联的游戏操作。
在本实施例中还提供了另一种消息处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图10是根据本发明其中一实施例的另一种消息处理装置的结构框图,如图10所示,该装置包括:接收模块31,用于接收来自于服务端的待处理消息;第一处理模块32,用于从待处理消息解析出多个子消息,并为多个子消息中的每个子消息配置时间信息,其中,时间信息用于确定每个子消息的处理顺序;第二处理模块33,用于根据时间信息处理多个子消息,以执行每个子消息对应的游戏操作。
可选地,图11是根据本发明其中一可选实施例的另一种消息处理装置的结构框图,如图11所示,该装置除包括图10所示的所有模块外,还包括:获取模块34,用于获取用户选取的游戏类型;加载模块35,用于加载预先配置的与游戏类型对应的模块组合,其中,模块组合中的每个模块包括:一个数据管理器和多个用户界面视图,数据管理器用于管理多个用户界面视图,多个用户界面视图中的每个用户界面视图用于在对应的显示区域内响应用户事件。
可选地,第一处理模块32包括:确定单元(图中未示出),用于根据游戏类型确定待处理消息中包含的数据内容;第一拆分单元(图中未示出),用于对数据内容进行拆分得到多个动作;第二拆分单元(图中未示出),用于按照多个动作将待处理消息拆分成多个子消息。
可选地,第一处理模块32还包括:第一配置单元(图中未示出),用于为多个子消息中的每个子消息添加管道头部,并为管道头部配置第一时长,其中,第一时长用于表示每个子消息从接收时刻至开始处理时刻所经历的时长;第二配置单元(图中未示出),用于为每个子消息添加管道尾部,并为管道尾部配置第二时长,其中,第二时长用于表示每个子消息从开始处理时刻至结束处理时刻所经历的时长。
可选地,第二处理模块33包括:第一处理单元(图中未示出),用于当多个子消息中的第一部分子消息的第一时长和第二时长均为0时,立即执行第一部分子消息中每个子消息对应的游戏操作;第二处理单元(图中未示出),用于当多个子消息中除第一部分子消息之外的第二部分子消息的第一时长和第二时长中至少之一不为0时,则按照第一时长由小到大的顺序依次开始执行第二部分子消息中的每个子消息对应的游戏操作,并在第二时长的结束时刻达到时,结束执行每个子消息对应的游戏操作。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,获取用户选取的游戏类型;
S2,加载预先配置的与游戏类型对应的模块组合,其中,模块组合中的每个模块包括:一个数据管理器和多个用户界面视图,数据管理器用于管理多个用户界面视图,多个用户界面视图中的每个用户界面视图用于在对应的显示区域内响应用户事件。
可选地,存储介质还被设置为存储用于执行以下步骤的计算机程序:
S1,接收来自于服务端的待处理消息;
S2,从待处理消息拆分出多个动作;
S3,在多个动作的驱动下执行对应的游戏操作。
可选地,存储介质还被设置为存储用于执行以下步骤的计算机程序:
S1,接收来自于服务端的待处理消息;
S2,从待处理消息解析出多个子消息,并为多个子消息中的每个子消息配置时间信息,其中,时间信息用于确定每个子消息的处理顺序;
S3,根据时间信息处理多个子消息,以执行每个子消息对应的游戏操作。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种处理器,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,获取用户选取的游戏类型;
S2,加载预先配置的与游戏类型对应的模块组合,其中,模块组合中的每个模块包括:一个数据管理器和多个用户界面视图,数据管理器用于管理多个用户界面视图,多个用户界面视图中的每个用户界面视图用于在对应的显示区域内响应用户事件。
可选地,在本实施例中,上述处理器还可以被设置为通过计算机程序执行以下步骤:
S1,接收来自于服务端的待处理消息;
S2,从待处理消息拆分出多个动作;
S3,在多个动作的驱动下执行对应的游戏操作。
可选地,在本实施例中,上述处理器还可以被设置为通过计算机程序执行以下步骤:
S1,接收来自于服务端的待处理消息;
S2,从待处理消息解析出多个子消息,并为多个子消息中的每个子消息配置时间信息,其中,时间信息用于确定每个子消息的处理顺序;
S3,根据时间信息处理多个子消息,以执行每个子消息对应的游戏操作。可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (17)
1.一种游戏加载方法,其特征在于,包括:
获取用户选取的游戏类型;
加载预先配置的与所述游戏类型对应的模块组合,其中,所述模块组合中的每个模块包括:一个数据管理器和多个用户界面视图,所述数据管理器用于管理所述多个用户界面视图,所述多个用户界面视图中的每个用户界面视图用于在对应的显示区域内响应用户事件。
2.根据权利要求1所述的方法,其特征在于,加载预先配置的与所述游戏类型对应的模块组合包括:
在与所述游戏类型对应的游戏初始化运行时,将每个模块的数据管理器加载至内存中;
获取所述用户事件,如果确定当前模块内已存在响应所述用户事件的用户界面视图,则将确定的用户界面视图加载至所述内存,或者,如果确定当前模块内尚未存在响应所述用户事件的用户界面视图但是所述多个用户界面视图中至少一个用户界面视图已注册对所述用户事件的监听,则通过所述当前模块内的数据管理器创建所述至少一个用户界面视图,并将所述至少一个用户界面视图加载至所述内存。
3.根据权利要求2所述的方法,其特征在于,加载预先配置的与所述游戏类型对应的模块组合还包括:
为所述至少一个用户界面视图中的每个用户界面视图分配对应的座位号,其中,所述座位号用于确定每个用户界面视图所归属的游戏玩家并处理所述用户事件。
4.根据权利要求1或3所述的方法,其特征在于,每个模块内的多个用户界面视图相互独立接收外界数据,其中,接收数据的数据格式中所携带的字段包括:
第一字段,用于表示每个用户界面视图对应的座位号;
第二字段,用于表示每个用户界面视图的唯一标识;
第三字段,用于表示每个用户界面视图接收到的数据内容;
第四字段,用于表示每个用户界面接收到的是否为通过重新连接传输的数据。
5.根据权利要求1所述的方法,其特征在于,每个模块内的数据管理器与多个用户界面视图之间以及所述多个用户界面视图相互间拒绝配置访问接口。
6.根据权利要求1所述的方法,其特征在于,所述多个用户界面视图的数量由与所述游戏类型对应的游戏玩家数量确定。
7.根据权利要求1所述的方法,其特征在于,在加载预先配置的与所述游戏类型对应的模块组合之前,还包括:
分别为每个模块配置待处理的至少一个用户事件。
8.一种游戏加载装置,其特征在于,包括:
获取模块,用于获取用户选取的游戏类型;
加载模块,用于加载预先配置的与所述游戏类型对应的模块组合,其中,所述模块组合中的每个模块包括:一个数据管理器和多个用户界面视图,所述数据管理器用于管理所述多个用户界面视图,所述多个用户界面视图中的每个用户界面视图用于在对应的显示区域内响应用户事件。
9.根据权利要求8所述的装置,其特征在于,所述加载模块包括:
加载单元,用于在与所述游戏类型对应的游戏初始化运行时,将每个模块的数据管理器加载至内存中;
处理单元,用于获取所述用户事件,如果确定当前模块内已存在响应所述用户事件的用户界面视图,则将确定的用户界面视图加载至所述内存,或者,如果确定当前模块内尚未存在响应所述用户事件的用户界面视图但是所述多个用户界面视图中至少一个用户界面视图已注册对所述用户事件的监听,则通过所述当前模块内的数据管理器创建所述至少一个用户界面视图,并将所述至少一个用户界面视图加载至所述内存。
10.根据权利要求9所述的装置,其特征在于,所述加载模块还包括:
分配单元,用于为所述至少一个用户界面视图中的每个用户界面视图分配对应的座位号,其中,所述座位号用于确定每个用户界面视图所归属的游戏玩家并处理所述用户事件。
11.根据权利要求8或10所述的装置,其特征在于,每个模块内的多个用户界面视图相互独立接收外界数据,其中,接收数据的数据格式中所携带的字段包括:
第一字段,用于表示每个用户界面视图对应的座位号;
第二字段,用于表示每个用户界面视图的唯一标识;
第三字段,用于表示每个用户界面视图接收到的数据内容;
第四字段,用于表示每个用户界面接收到的是否为通过重新连接传输的数据。
12.根据权利要求8所述的装置,其特征在于,每个模块内的数据管理器与多个用户界面视图之间以及所述多个用户界面视图相互间拒绝配置访问接口。
13.根据权利要求8所述的装置,其特征在于,所述多个用户界面视图的数量由与所述游戏类型对应的游戏玩家数量确定。
14.根据权利要求8所述的装置,其特征在于,所述装置还包括:
配置模块,用于分别为每个模块配置待处理的至少一个用户事件。
15.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至7中任意一项所述的游戏加载方法。
16.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至7中任意一项所述的游戏加载方法。
17.一种终端,其特征在于,包括:一个或多个处理器,存储器,显示装置以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述一个或多个程序用于执行权利要求1至7中任意一项所述的游戏加载方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811438030.5A CN109550253A (zh) | 2018-11-27 | 2018-11-27 | 游戏加载方法、装置、存储介质、处理器及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811438030.5A CN109550253A (zh) | 2018-11-27 | 2018-11-27 | 游戏加载方法、装置、存储介质、处理器及终端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109550253A true CN109550253A (zh) | 2019-04-02 |
Family
ID=65867794
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811438030.5A Pending CN109550253A (zh) | 2018-11-27 | 2018-11-27 | 游戏加载方法、装置、存储介质、处理器及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109550253A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111068305A (zh) * | 2019-11-28 | 2020-04-28 | 咪咕视讯科技有限公司 | 云游戏加载控制方法、装置、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1773518A (zh) * | 2004-11-10 | 2006-05-17 | 世嘉股份有限公司 | 网络游戏系统 |
JP2008178442A (ja) * | 2007-01-23 | 2008-08-07 | Konami Digital Entertainment:Kk | ゲーム端末、ゲームシステムおよびプログラム |
CN103914238A (zh) * | 2012-12-30 | 2014-07-09 | 网易(杭州)网络有限公司 | 一种实现界面上多控件整合的方法和装置 |
CN105373682A (zh) * | 2015-12-12 | 2016-03-02 | 长沙乐购网络科技有限公司 | 动漫游戏与虚拟仿真产品集成系统 |
CN105474248A (zh) * | 2013-06-20 | 2016-04-06 | 塔拉里亚斯特公司 | 用于促销与节目内容相关的项目的系统和方法 |
CN107261501A (zh) * | 2017-06-06 | 2017-10-20 | 网易(杭州)网络有限公司 | 游戏数值环境构建方法及装置 |
-
2018
- 2018-11-27 CN CN201811438030.5A patent/CN109550253A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1773518A (zh) * | 2004-11-10 | 2006-05-17 | 世嘉股份有限公司 | 网络游戏系统 |
JP2008178442A (ja) * | 2007-01-23 | 2008-08-07 | Konami Digital Entertainment:Kk | ゲーム端末、ゲームシステムおよびプログラム |
CN103914238A (zh) * | 2012-12-30 | 2014-07-09 | 网易(杭州)网络有限公司 | 一种实现界面上多控件整合的方法和装置 |
CN105474248A (zh) * | 2013-06-20 | 2016-04-06 | 塔拉里亚斯特公司 | 用于促销与节目内容相关的项目的系统和方法 |
CN105373682A (zh) * | 2015-12-12 | 2016-03-02 | 长沙乐购网络科技有限公司 | 动漫游戏与虚拟仿真产品集成系统 |
CN107261501A (zh) * | 2017-06-06 | 2017-10-20 | 网易(杭州)网络有限公司 | 游戏数值环境构建方法及装置 |
Non-Patent Citations (6)
Title |
---|
匿名: "Cocos2d-x里面如何实现MVC(二)", 《HTTPS://BLOG.CSDN.NET/LINYANG24/ARTICLE/DETAILS/77869659?OPS_REQUEST_MISC=&REQUEST_ID=&BIZ_ID=102&UTM_TERM》 * |
匿名: "Cocos2d-x里面如何实现MVC(六)", 《HTTPS://BLOG.CSDN.NET/》 * |
匿名: "波米棋牌游戏", 《HTTPS://V.QQ.COM/X/PAGE/O0198QTW991.HTML》 * |
匿名: "深入Cocos2d-x】使用MVC架构搭建游戏Four", 《HTTPS://BLOG.CSDN.NET/FYBING1986/ARTICLE》 * |
卢山: "《iOS编程基础与实践》", 31 August 2018, 北京:首都经济贸易大学出版社 * |
臧铁钢,朱海华: "《工程软件开发技术基础》", 31 January 2017, 中国铁道出版社 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111068305A (zh) * | 2019-11-28 | 2020-04-28 | 咪咕视讯科技有限公司 | 云游戏加载控制方法、装置、电子设备及存储介质 |
CN111068305B (zh) * | 2019-11-28 | 2023-10-20 | 咪咕视讯科技有限公司 | 云游戏加载控制方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107423015A (zh) | 游戏内容的同步显示方法和装置 | |
US9975045B2 (en) | System and method for providing speed-up quest offers to users during idle time | |
US10964169B2 (en) | Method and system for operating instances of a game | |
CN111898037B (zh) | 排行榜数据的更新方法、装置及服务器 | |
JP7031811B2 (ja) | 空間二元化を利用してスポーツゲームのプレイヤーキャラクタを育成する方法およびシステム | |
CN110109746A (zh) | 一种任务处理方法、装置、设备及介质 | |
CN109582389A (zh) | 消息处理方法、装置、存储介质、处理器及终端 | |
CN111013133A (zh) | 数据处理方法及装置 | |
CN108379834A (zh) | 一种信息处理的方法及相关设备 | |
US20100210349A1 (en) | Customized enhancement system | |
CN109550253A (zh) | 游戏加载方法、装置、存储介质、处理器及终端 | |
CN109614163A (zh) | 消息处理方法、装置、存储介质、处理器及终端 | |
CN108600341A (zh) | 一种业务节点分配方法、决策节点及服务器集群 | |
CN108837511A (zh) | 网络游戏中与npc人工智能交互的方法及系统 | |
CN114428921A (zh) | 资源预加载方法和装置、存储介质及电子设备 | |
CN106254520B (zh) | 一种资源竞争方法及服务器 | |
CN101196961A (zh) | 可即时运算系统资源的线上情境场景竞赛系统及其方法 | |
CN117046115B (zh) | 多模式游戏软件的执行方法 | |
CN107451061A (zh) | 游戏测试方法、装置、存储介质、处理器和服务端 | |
CN100528274C (zh) | 计算机游戏系统以及操作方法 | |
WO2024109314A1 (zh) | 虚拟对象的互动方法、装置、存储介质、电子设备及程序产品 | |
CN107480803B (zh) | 随机事件预测中的数据处理方法、装置和服务器 | |
TW202227175A (zh) | 虛擬物品資訊的發送方法及裝置、虛擬物品資訊的顯示方法及裝置、終端、電腦可讀存儲介質及電腦程式產品 | |
CN117180762A (zh) | 数据处理方法、装置、设备以及介质 | |
CN118416494A (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: 20190402 |