当前位置: 首页 > 专利查询>宋甫专利>正文

一种基于区块链的多人游戏同步方法、系统、介质及设备技术方案

技术编号:21645305 阅读:18 留言:0更新日期:2019-07-20 02:55
本发明专利技术涉及一种基于区块链的多人游戏同步方法、系统、介质及设备,该方法包括:参与者节点初始化自身的游戏状态;根据输入的游戏指令生成操作数据并发送到区块链网络中,由区块链网络打包写入数据块;从数据块中筛选出操作数据并按序放入操作队列;从操作队列中按序取出操作数据,并根据操作数据和当前游戏状态,执行预设游戏逻辑,得到下一个游戏状态,循环执行该步骤,直至本局游戏结束;根据最终的游戏状态得到本方声明的游戏结果并发送到区块链网络中。本发明专利技术由区块链负责游戏操作的收集、分发、共识;参与者节点负责所有的游戏逻辑推演和计算,利用区块链中数据的不可篡改性,保证了游戏结果的公开、公正,达到了开发成本和防作弊的统一。

A Synchronization Method, System, Media and Equipment for Multiplayer Games Based on Block Chain

【技术实现步骤摘要】
一种基于区块链的多人游戏同步方法、系统、介质及设备
本专利技术涉及区块链及游戏结合的领域,具体涉及一种基于区块链的多人游戏同步方法、系统、介质及设备。
技术介绍
市面上针对网络游戏连接同步的解决方案主要有以下两种方式:一种是中心化服务器做法,这种做法达到了防作弊的效果,但由于前后端语言不同。学习成本高,无法共用代码,并且游戏过程需要分成很多段,在客户端和服务器上拼接,思维割裂;另一种是帧同步方法,这种做法虽然开发简单,成本低,但需要依赖客户端来申明游戏的结果,后台对于客户端发出的作弊举报的处理机制是通过人工对被举报的比赛场次进行处理,但其情况不甚理想,大量的比赛都无法经过人工的审核,防作弊效果差。综合来看,现有的网络游戏连接同步的方法在开发成本和防作弊之间只能取其一,无法兼顾。
技术实现思路
针对上述技术问题,本专利技术提供一种基于区块链的多人游戏同步方法、系统、介质及设备。本专利技术解决上述技术问题的技术方案如下:一种基于区块链的多人游戏同步方法,包括:区块链网络中参与本局游戏的的参与者节点初始化自身的游戏状态;参与者节点根据输入的游戏指令生成与本局游戏相关的第一操作数据并发送到区块链网络中,由区块链网络中经过共识机制确定的节点将第一操作数据打包写入数据块;参与者节点在确认数据块出块后,从数据块中筛选出第一操作数据并按序放入操作队列;参与者节点从操作队列中按序取出第一操作数据,并根据第一操作数据和当前游戏状态,执行预设游戏逻辑,得到下一个游戏状态,循环执行该步骤,直至本局游戏结束;参与者节点根据最终的游戏状态得到本方声明的游戏结果并发送到区块链网络中,由区块链网络将游戏结果写入数据块。为实现上述专利技术目的,本专利技术还提供一种基于区块链的多人游戏同步系统,包括:包括多个区块链网络中参与本局游戏的的参与者节点,其中每个参与者节点包括:初始化模块,用于初始化自身的游戏状态;生成模块,用于根据输入的游戏指令生成与本局游戏相关的第一操作数据并发送到区块链网络中,由区块链网络中经过共识机制确定的节点将第一操作数据打包写入数据块;第一筛选模块,用于在确认数据块出块后,从数据块中筛选出第一操作数据并按序放入操作队列;第一执行模块,用于从操作队列中按序取出第一操作数据,并根据第一操作数据和当前游戏状态,执行预设游戏逻辑,得到下一个游戏状态,循环执行该步骤,直至本局游戏结束;发送模块,用于根据最终的游戏状态得到本方声明的游戏结果并发送到区块链网络中,由区块链网络将游戏结果写入数据块。本专利技术还提供一种计算机可读存储介质,包括指令,当指令在计算机上运行时,使计算机执行上述方法。本专利技术还提供一种计算机设备,包括存储器、处理器及存储在存储器上的并可在处理器上运行的计算机程序,处理器执行程序时实现上述方法。本专利技术的有益效果是:参与者节点从区块链网络分发的数据块中筛选操作数据,执行游戏状态推演,并将最终得到的游戏结果上传至区块链网络,即由区块链网络负责游戏操作的收集、分发、共识;各个参与者节点负责所有的游戏逻辑推演和计算,利用区块链网络中数据的不可篡改性,保证了游戏结果的公开、公正,达到了开发成本和防作弊的统一。附图说明图1为本专利技术实施例提供的一种基于区块链的多人游戏同步方法的流程图;图2为本专利技术实施例提供的另一种基于区块链的多人游戏同步方法的流程图;图3为本专利技术实施例提供的核心游戏循环示意图;图4为本专利技术实施例提供的一种基于区块链的多人游戏同步系统的结构框图;图5为本专利技术实施例提供的另一种基于区块链的多人游戏同步系统的结构框图。具体实施方式以下结合附图对本专利技术的原理和特征进行描述,所举实例只用于解释本专利技术,并非用于限定本专利技术的范围。图1为本专利技术实施例提供的一种基于区块链的多人游戏同步方法的流程图,如图1所示,该方法包括:S1、区块链网络中参与本局游戏的的参与者节点初始化自身的游戏状态;具体的,为了保证参与游戏的各个参与者节点的初始状态一致,首先需要初始化各个参与者节点的游戏状态。S2、参与者节点根据输入的游戏指令生成与本局游戏相关的第一操作数据并发送到区块链网络中,由区块链网络中经过共识机制确定的节点将第一操作数据打包写入数据块。具体的,游戏开始后,玩家通过鼠标、键盘等输入设备发出游戏指令,也可是自动化的程序发出游戏指令,由参与游戏的参与者节点根据该游戏指令生成的操作数据通过p2p网络对外被发送到区块链,经过区块链中的共识机制,被保存在一个确定的数据块中,再分发到接入区块链中的各个节点。其中,参与者节点在向区块链发送操作数据时,可以回合为单位,收集之后成批发送;也可以每次操作发生即发送。前一种情况下,可以更好的保证操作先后顺序;后一种情况下,由负责共识打包的节点确定哪些消息在哪个区块中,能够减少操作延迟。共识算法可采用例如Algorand、DPoS等现有算法实现。S3、参与者节点在确认数据块出块后,从数据块中筛选出第一操作数据并按序放入操作队列;具体的,操作数据中包含本局比赛的ID、参与者节点的公钥地址、游戏指令的序列化结果和参与者节点的私钥签名。其中,对游戏指令进行序列化指的是将游戏操作转换为可以存储或传输的形式的过程。可使用protobuf、json、xml等序列化方法;私钥签名是为了对操作数据进行背书,防止数据伪造、抵赖、冒充和篡改等问题。除上述必须的信息之外,操作数据中还可加入其他的信息以增强安全性.如变化值(例如区块哈希、区块高度等),以及加盐(salt)。由于数据块中可能包含有与本局游戏不相关的其他节点的操作数据,因此,该步骤中要根据本局游戏的ID和参与本局游戏的各个参与者节点的公钥地址,即可从区块链中筛选出与本局游戏相关的操作数据。具体的,可以是从数据块或数据块带来的事件通知中筛选操作数据,其中,事件通知是目前区块链的主流平台比如以太坊、Loom链当中存在的一种可能的数据通知手段。通过该步骤,可确保:此局游戏涉及的所有参与者节点都得到相同的block(数据块)集合;block(数据块)中有相同的操作数据,且操作数据顺序一致;每个操作数据都有玩家的数字签名作为背书;后续进行游戏仲裁时,游戏操作将保持不变。S4、参与者节点从操作队列中按序取出第一操作数据,并根据第一操作数据和当前游戏状态,执行预设游戏逻辑,得到下一个游戏状态,循环执行该步骤,直至本局游戏结束;具体的,在该步骤中,从操作队列中拿出当前的首个操作数据,并将操作队列中的此操作数据被去除,根据此操作数据,以及当前的游戏状态,执行游戏逻辑,得到下一个游戏状态,直到消耗完所有的操作数据后,等候下一个数据块的出块,并循环上述内容,直到触发游戏结束条件为止。S5、参与者节点根据最终的游戏状态得到本方声明的游戏结果并发送到区块链网络中,由区块链网络将游戏结果写入数据块。具体的,所有参与者节点将本地得到的游戏结果上传到区块链中,以确保其内容不被篡改。基于本专利技术实施例的一个游戏核心循环如图2所示。游戏开始后,玩家0和1各自通过鼠标、键盘等输入设备在节点0和节点1进行游戏操作的输入,操作数据通过p2p网络对外被发送到区块链,经过区块链中的共识机制,被打包保存在一个确定的数据块中,再分发到接入区块链中的各个节点。节点0和节点1各自从数据块中筛选与本局游戏相关的操作并放入各自的操作队列本文档来自技高网...

【技术保护点】
1.一种基于区块链的多人游戏同步方法,其特征在于,包括:区块链网络中参与本局游戏的的参与者节点初始化自身的游戏状态;所述参与者节点根据输入的游戏指令生成与本局游戏相关的第一操作数据并发送到所述区块链网络中,由所述区块链网络中经过共识机制确定的节点将所述第一操作数据打包写入数据块;所述参与者节点在确认数据块出块后,从数据块中筛选出所述第一操作数据并按序放入操作队列;所述参与者节点从所述操作队列中按序取出所述第一操作数据,并根据所述第一操作数据和当前游戏状态,执行预设游戏逻辑,得到下一个游戏状态,循环执行该步骤,直至本局游戏结束;所述参与者节点根据最终的游戏状态得到本方声明的游戏结果并发送到所述区块链网络中,由所述区块链网络将所述游戏结果写入数据块。

【技术特征摘要】
1.一种基于区块链的多人游戏同步方法,其特征在于,包括:区块链网络中参与本局游戏的的参与者节点初始化自身的游戏状态;所述参与者节点根据输入的游戏指令生成与本局游戏相关的第一操作数据并发送到所述区块链网络中,由所述区块链网络中经过共识机制确定的节点将所述第一操作数据打包写入数据块;所述参与者节点在确认数据块出块后,从数据块中筛选出所述第一操作数据并按序放入操作队列;所述参与者节点从所述操作队列中按序取出所述第一操作数据,并根据所述第一操作数据和当前游戏状态,执行预设游戏逻辑,得到下一个游戏状态,循环执行该步骤,直至本局游戏结束;所述参与者节点根据最终的游戏状态得到本方声明的游戏结果并发送到所述区块链网络中,由所述区块链网络将所述游戏结果写入数据块。2.根据权利要求1所述的方法,其特征在于,所述第一操作数据中包含游戏的ID、参与者节点的公钥地址、游戏指令的序列化结果和参与者节点的私钥签名。3.根据权利要求2所述的方法,其特征在于,所述参与者节点从数据块中筛选出与本局游戏相关的第一操作数据,具体包括:所述参与者节点根据本局游戏的ID和参与本局游戏的所有参与者节点的公钥地址,从数据块中筛选出与本局游戏相关的第一操作数据。4.根据权利要求1-3任一项所述的方法,其特征在于,在得到游戏结果之后,还包括所述参与者节点向所述区块链网络提交对本局游戏进行仲裁申请,所述区块链网络根据预设算法从各个节点中选择执行仲裁的仲裁者节点。5.根据权利要求4所述的方法,其特征在于,还包括:所述仲裁者节点从数据块中筛选出与执行仲裁的游戏相关的所有第二操作数据并按序放入操作队列;所述仲裁者节点从所述操作队列中按序取出所述第二操作数据,并根据所述第二操作数据和当前游戏状态,执行预设游戏逻辑,得到下一个游戏状态,循环执行该步骤...

【专利技术属性】
技术研发人员:宋甫
申请(专利权)人:宋甫
类型:发明
国别省市:北京,11

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

1