本发明涉及网络
技术领域:
,更具体的说,涉及游戏场景管理方法与场景管理服务器。
背景技术:
:随着游戏行业不断发展,玩家用户对游戏的体验感受要求也越来越高。对mmorpg游戏而言,为了满足玩家数量大、交互性强等特点,同一区服可能存在多台游戏服务器,单台游戏服务器可能会承载着多个游戏场景,但由于服务器硬件、网络带宽等硬性条件限制,单台游戏服务器承载的最大人数和最大场景数是固定的。传统的游戏场景管理方法是采用静态的方式,将每台游戏服务器启动的场景预先设置好,虽然这种设置方式可以满足玩家的需求,但是,当一个场景中没有任何玩家时,该场景也会处于启用状态,并占用游戏服务器的场景资源,造成严重的资源浪费;而且,当某台游戏服务器预先设定的场景都是玩家容易聚集的场景时,那么这台游戏服务器负载会很高,甚至可能会造成该台游戏服务器负载过高而其他游戏服务器闲置的情况,从而严重影响了游戏服务器场景资源的利用率。然而,目前还并没有一种成熟的场景管理方案能够合理、有效地提高游戏服务器场景资源的利用率,避免场景资源浪费以及游戏服务器过载的问题。所以,目前迫切需要一种能够合理、有效提高游戏服务器场景资源利用率的技术方案。技术实现要素:有鉴于此,本发明提供了一种游戏场景管理方法与场景管理服务器,以解决目前游戏服务器场景资源利用率较低的技术问题。为实现上述目的,本发明提供如下技术方案:一种游戏场景管理方法,应用于场景管理服务器,所述场景管理服务器分别与多个游戏服务器之间具有通信连接,各游戏服务器中均具有场景资源;所述方法包括:接收客户端的场景登入请求,所述场景登入请求中携带有场景信息与用户数据;响应于所述场景登入请求,将所述多个游戏服务器中具有空闲场景资源数量最多的游戏服务器确定为目标服务器;所述空闲场景资源为处于空闲状态的场景资源;向所述目标服务器发送场景初始化指令,所述场景初始化指令中携带有所述场景信息与用户数据,所述场景初始化指令用于指示所述目标服务器根据所述场景信息与用户数据初始化目标场景。优选的,在所述向所述目标服务器发送场景初始化指令之后,所述方法还包括:将所述目标服务器的地址信息与所述目标场景的索引信息发送至所述客户端,所述地址信息用于指示所述客户端建立与所述目标服务器的通信连接,所述索引信息用于指示所述客户端登入所述目标场景。优选的,所述场景资源与游戏场景的场景类型之间具有对应关系,所述将所述多个游戏服务器中具有空闲场景资源数量最多的游戏服务器确定为目标服务器,包括:根据所述场景信息确定目标场景类型,所述目标场景类型为与所述场景信息相对应的场景类型;根据所述对应关系,将与所述目标场景类型相对应的场景资源确定为目标场景资源;将具有处于空闲状态的目标场景资源数量最多的游戏服务器,确定为目标服务器。优选的,所述场景管理服务器中包括负载信息表,所述负载信息表中记录有所述各游戏服务器中空闲场景资源的数量;所述将所述多个游戏服务器中具有空闲场景资源数量最多的游戏服务器确定为目标服务器,具体包括:根据所述负载信息表,将具有空闲场景资源数量最多的游戏服务器确定为目标服务器。优选的,所述客户端与预设游戏服务器之间具有通信连接,所述预设游戏服务器为所述多个游戏服务器中任一游戏服务器,所述接收场景登入请求包括:接收由所述预设游戏服务器转发的场景登入请求,所述场景登入请求是由所述客户端发送至所述预设游戏服务器的。优选的,在所述向所述目标服务器发送场景初始化指令之后,所述方法还包括:将连接切断指令发送至所述预设游戏服务器,所述连接切断指令用于指示所述预设游戏服务器切断与所述客户端之间的通信连接。优选的,所述方法还包括:接收任一游戏服务器发送的场景回收消息;响应于所述场景回收消息,更新所述负载信息表中所述任一游戏服务器中空闲场景资源的数量;其中,所述场景回收消息是,所述任一游戏服务器在释放由任一场景占用的场景资源后,向所述场景管理服务器发送的;所述任一游戏服务器是在监测到在预设周期内所述任一场景的用户人数始终为零时,释放由所述任一场景占用的场景资源的。优选的,所述方法还包括:为各游戏服务器分配预设数量的场景资源。优选的,所述场景类型有n种,n≥1;所述为各游戏服务器分配预设数量的场景资源包括:为各游戏服务器分配对应于每种场景类型的预设数量的场景资源。一种场景管理服务器,包括:请求接收模块,用于接收客户端的场景登入请求,所述场景登入请求中携带有场景信息与用户数据;目标确定模块,用于响应于所述场景登入请求,将所述多个游戏服务器中具有空闲场景资源数量最多的游戏服务器确定为目标服务器;所述空闲场景资源为处于空闲状态的场景资源;指令发送模块,用于向所述目标服务器发送场景初始化指令,所述场景初始化指令中携带有所述场景信息与用户数据,所述场景初始化指令用于指示所述目标服务器根据所述场景信息与用户数据初始化目标场景。从上述的技术方案可以看出,本发明提供的游戏场景管理方法及场景管理服务器,在接收客户端的场景登入请求后,将所述多个游戏服务器中具有空闲场景资源数量最多的游戏服务器确定为目标服务器,并向所述目标服务器发送场景初始化指令,使所述目标服务器根据所述场景信息与用户数据初始化目标场景。本发明技术方案,根据游戏服务器中空闲场景资源的数量,动态确定目标服务器来初始化目标场景,而并不是采用静态方式预先设置好的服务器来初始化目标场景,从而实现了游戏服务器之间的负载均衡,提高了游戏服务器中场景资源的利用率,避免了场景资源浪费以及游戏服务器过载的问题。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本申请实施例提供的游戏场景管理方法的一种流程图;图2为本申请实施例提供的游戏场景管理方法的另一种流程图;图3为本申请实施例提供的游戏场景管理方法的又一种流程图;图4为本申请实施例提供的游戏场景管理方法的又一种流程图;图5为本申请实施例提供的游戏场景管理方法的再一种流程图;图6为本申请实施例提供的场景管理服务器的一种结构示意图;图7为本申请实施例提供的场景管理服务器的另一种结构示意图;图8为本申请实施例提供的场景管理服务器的又一种结构示意图;图9为本申请实施例提供的场景管理服务器的又一种结构示意图;图10为本申请实施例提供的场景管理服务器的再一种结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本申请实施例的游戏场景管理方法,应用于场景管理服务器,所述场景管理服务器分别与多个游戏服务器之间具有通信连接,各游戏服务器中均具有场景资源。游戏场景通常包括游戏主城、各区域地图的重要场景以及副本、家园、战场等具体场景。用户根据自身需求,可以选择登入任一游戏场景进行游戏,游戏场景的使用需要占用游戏服务器中的场景资源。请参阅图1,图1为本申请实施例提供的游戏场景管理方法的一种流程图。如图1所示,所述方法包括:s101:接收客户端的场景登入请求;当用户想要登入某一游戏场景时,会通过客户端向场景管理服务器发送场景登入请求,相应地,场景管理服务器接收客户端的场景登入请求。所述场景登入请求中携带有场景信息与用户数据。场景信息用于表征用户想要登陆的游戏场景,如游戏场景的名称、场景类型和场景索引中的一种或多种;用户数据用于表征用户的相关信息,如用户的id、角色等级和/或用户权限等信息中的一种或多种。s102:响应于所述场景登入请求,将所述多个游戏服务器中具有空闲场景资源数量最多的游戏服务器确定为目标服务器;场景管理服务器与所述多个游戏服务器之间具有通信连接,能够实时获取到各游戏服务器中空闲场景资源的数量。所述空闲场景资源为处于空闲状态的场景资源。现有传统方案中,在启动游戏服务器前,会为游戏服务器中所有场景资源预先配置固定的游戏场景,并由预先配置的游戏场景永久占用相应的场景资源,即使游戏场景未被用户使用,也仍持续占用着场景资源,从而造成严重的资源浪费。本发明中,当有游戏场景占用某一场景资源时,该场景资源处于忙碌状态;当某一场景资源未被游戏场景占用时,则该场景资源处于空闲状态。也就是说,本发明游戏服务器中的场景资源是动态分配的,并不会被某一游戏场景永久占用,从而避免场景资源浪费,降低游戏服务器负载。在一示例中,所述多个游戏服务器包括服务器1、服务器2与服务器3,其中,服务器1的空闲场景资源数量为5个,服务器2的空闲场景资源数量为6个,服务器3的空闲场景资源数量为3个,则场景管理服务器响应于所述场景登入请求,将服务器2确定为目标服务器。目标服务器是为用户提供游戏场景的游戏服务器,相对于其他游戏服务器,目标服务器中空闲场景资源数量最多,因此,利用目标服务器为用户提供游戏场景,充分利用了目标服务器的场景资源,也不会造成其他游戏场景服务器的负载过重,实现了目标服务器与其他游戏服务器之间的负载均衡。s103:向所述目标服务器发送场景初始化指令。所述场景初始化指令中携带有所述场景信息与用户数据,所述场景初始化指令用于指示所述目标服务器根据所述场景信息与用户数据初始化目标场景。当场景管理服务器确定出目标服务器后,向所述目标服务器发送场景初始化指令,以使所述目标服务器为用户初始化目标场景。目标场景是指用户想要登入的游戏场景,目标服务器利用其场景资源初始化目标场景,则目标场景占用目标服务器中的场景资源。其中,目标服务器利用其场景资源初始化目标场景,实际上就是利用其场景资源加载该目标场景。在目标服务器初始化目标场景时,由于目标场景是为用户服务的,所以目标服务器还应根据所述场景登入请求中携带的场景信息与用户数据初始化目标场景,使初始化后的目标场景与所述场景信息以及用户数据相对应,符合用户需求。在一示例中,在所述向所述目标服务器发送场景初始化指令之后,所述方法还包括:s104:将所述目标服务器的地址信息与所述目标场景的索引信息发送至所述客户端。所述地址信息用于指示所述客户端建立与所述目标服务器的通信连接,所述索引信息用于指示所述客户端登入所述目标场景。在场景管理服务器向所述目标服务器发送场景初始化指令之后,目标服务器为用户初始化目标场景,同时,客户端还需要与目标服务器建立通信连接,才能登入目标服务器初始化的目标场景。因此,在该示例中,场景管理服务器在向所述目标服务器发送场景初始化指令之后,还会将所述目标服务器的地址信息与所述目标场景的索引信息发送至所述客户端,以供客户端根据所述地址信息建立与所述目标服务器的通信连接,并根据所述目标场景的索引信息,登入所述目标场景。其中,目标场景的索引信息具体可以是目标场景的id号。在其他示例中,客户端还可以采取其他方式获取目标服务器的地址信息与所述目标场景的索引信息,在此不做具体限定。本实施例提供的游戏场景管理方法,根据游戏服务器中空闲场景资源的数量,动态确定目标服务器来初始化目标场景,而并不是采用静态方式预先设置好的服务器来初始化目标场景,从而实现了游戏服务器之间的负载均衡,提高了游戏服务器中场景资源的利用率,避免了场景资源浪费以及游戏服务器过载的问题。请参阅图2,图2为本申请实施例提供的游戏场景管理方法的另一种流程图。本实施例中,所述场景资源与游戏场景的场景类型之间具有对应关系。游戏场景的场景类型可以只有一种或多种,每种场景类型都具有相应的场景资源。如图2所示,所述方法包括:s201:接收客户端的场景登入请求;所述场景登入请求中携带有场景信息与用户数据。其中,步骤s201与前述实施例中的步骤s101相类似,在此不再赘述。s202:根据所述场景信息确定目标场景类型;所述目标场景类型为与所述场景信息相对应的场景类型。在一示例中,场景登陆请求携带的场景信息中包括目标场景类型,或者,所述场景信息能够表征目标场景类型。即,场景登陆请求中携带的场景信息与目标场景类型相对应。例如,场景类型包括场景类型a、场景类型b与场景类型c,与场景登入请求中场景信息相对应的为目标场景类型为场景类型a。s203:根据所述对应关系,将与所述目标场景类型相对应的场景资源确定为目标场景资源;由于所述场景资源与游戏场景的场景类型之间具有对应关系,所以,在确定出目标场景类型后,根据该对应关系,能够确定出与所述目标场景类型相对应的目标场景资源。在一示例中,场景类型a对应场景资源a、场景资源b和场景资源c;场景类型b对应场景资源d和场景资源e;场景类型c对应场景资源f、场景资源g、场景资源h、场景资源i和场景资源j。该示例中,确定出目标场景类型为场景类型a时,根据场景类型a与场景资源a、场景资源b和场景资源c的对应关系,确定出目标场景资源为场景资源a、场景资源b和场景资源c。s204:将具有处于空闲状态的目标场景资源数量最多的游戏服务器,确定为目标服务器;在一示例中,所述多个游戏服务器包括服务器1、服务器2与服务器3,其中,服务器1中处于空闲状态的目标场景资源数量为5个,服务器2中处于空闲状态的目标场景资源数量为6个,服务器3中处于空闲状态的目标场景资源数量为3个,则场景管理服务器将服务器2确定为目标服务器。本实施判断各游戏服务器中处于空闲状态的场景资源的数量,具体是判断各游戏服务器中处于空闲状态的目标场景资源的数量,据此确定出目标服务器,能够保证相同场景类型下场景资源的负载均衡。其中,步骤s202-s204可以是响应于所述场景登入请求而执行的,也可用于实现前述实施例中的步骤s102。s205:向所述目标服务器发送场景初始化指令。所述场景初始化指令中携带有所述场景信息与用户数据,所述场景初始化指令用于指示所述目标服务器根据所述场景信息与用户数据初始化目标场景;其中,步骤s205与前述实施例中的步骤s103相类似,在此不再赘述。本实施例提供的游戏场景管理方法,基于不同的场景类型,根据游戏服务器中与场景类型相对应的空闲场景资源的数量,动态确定目标服务器来初始化目标场景,提高了场景资源分配的合理性,进一步实现了游戏服务器之间的负载均衡,提高了游戏服务器中场景资源的利用率,避免了场景资源浪费以及游戏服务器过载的问题。请参阅图3,图3为本申请实施例提供的游戏场景管理方法的又一种流程图。在本实施例中,所述场景管理服务器中包括负载信息表,所述负载信息表中记录有所述各游戏服务器中空闲场景资源的数量。如图3所示,所述方法包括:s301:接收客户端的场景登入请求;所述场景登入请求中携带有场景信息与用户数据。其中,步骤s301与前述实施例中的步骤s101相类似,在此不再赘述。s302:响应于所述场景登入请求,根据所述负载信息表,将具有空闲场景资源数量最多的游戏服务器确定为目标服务器;所述空闲场景资源为处于空闲状态的场景资源。在一示例中,所述负载信息表如下表1所示:表1负载信息表游戏服务器id场景资源总数空闲场景资源数量忙碌场景资源数量120173218153316115所述负载信息表可以采用如表1所示的表格,也可以采用其他形式的表格,还可以包含其他负载信息,在此不做限定。在该示例中,游戏服务器1的空闲场景资源数量为17,相较于其他游戏服务器,其空闲场景资源数量最多,所以,根据该负载信息表,将该游戏服务器1确定为目标服务器。s303:向所述目标服务器发送场景初始化指令。所述场景初始化指令中携带有所述场景信息与用户数据,所述场景初始化指令用于指示所述目标服务器根据所述场景信息与用户数据初始化目标场景。其中,步骤s303与前述实施例中的步骤s103相类似,在此不再赘述。在另一示例中,所述方法还可以包括:s304:接收任一游戏服务器发送的场景回收消息;所述场景回收消息是,所述任一游戏服务器在释放由任一场景占用的场景资源后,向所述场景管理服务器发送的;所述任一游戏服务器是在监测到在预设周期内所述任一场景的用户人数始终为零时,释放由所述任一场景占用的场景资源的。在具体示例中,各游戏服务器中可以分别设置心跳周期,在每个心跳周期内,各游戏服务器会分别遍历本游戏服务器中所有场景中的用户人数情况,如果在预设周期内,某一场景始终没有用户存在,则释放该场景占用的场景资源。例如,游戏服务器1具有场景资源a,此时场景资源a正在被游戏场景1所占用,当游戏服务器1监测到在30分钟内游戏场景1的用户人数始终为0时,释放游戏场景1占用的场景资源a,并向场景管理服务器发送场景回收消息,以通知场景服务器场景资源a已处于空闲状态。s305:响应于所述场景回收消息,更新所述负载信息表中所述任一游戏服务器中空闲场景资源的数量。当场景管理服务器接收到场景回收消息后,响应于所述场景回收消息,对负载信息表中相应游戏服务器的空闲场景资源的数量进行更新。在上例中,场景管理服务器在接收到游戏服务器1发送的场景回收消息后,更新负载信息表中游戏服务器1中空闲场景资源的数量。具体地,令负载信息表中游戏服务器1中空闲场景资源数量加1。若负载信息表中还包括忙碌场景资源数量,则同时令所述忙碌场景资源数量减1。本实施例提供的游戏场景管理方法,根据场景管理服务器的负载信息表,确定游戏服务器中空闲场景资源的数量,进而动态确定目标服务器来初始化目标场景,提高了游戏服务器之间的负载均衡的管理效率,并且,在游戏场景长时间无人使用时,释放相应的场景资源,实现了场景资源的动态回收,提高了场景资源的应用合理性,进一步避免了场景资源浪费以及游戏服务器过载的问题。请参阅图4,图4为本申请实施例提供的游戏场景管理方法的又一种流程图。在本实施例中,所述客户端与预设游戏服务器之间具有通信连接,所述预设游戏服务器为所述多个游戏服务器中任一游戏服务器。如图4所示,所述方法包括:s401:接收由所述预设游戏服务器转发的场景登入请求;所述场景登入请求是由所述客户端发送至所述预设游戏服务器的,所述场景登入请求中携带有场景信息与用户数据。预设游戏服务器实际上是指客户端预先连接或默认连接的游戏服务器,客户端通过预设游戏服务器,能够与场景管理服务器进行通信。s402:响应于所述场景登入请求,将所述多个游戏服务器中具有空闲场景资源数量最多的游戏服务器确定为目标服务器;所述空闲场景资源为处于空闲状态的场景资源。s403:向所述目标服务器发送场景初始化指令。所述场景初始化指令中携带有所述场景信息与用户数据,所述场景初始化指令用于指示所述目标服务器根据所述场景信息与用户数据初始化目标场景。其中,步骤s402-s403与前述实施例中的步骤s102-s103相类似,在此不再赘述。s404:将所述目标服务器的地址信息与所述目标场景的索引信息发送至所述客户端;所述地址信息用于指示所述客户端建立与所述目标服务器的通信连接,所述索引信息用于指示所述客户端登入所述目标场景。在一示例中,将所述目标服务器的地址信息与所述目标场景的索引信息发送至所述客户端,具体包括:将所述目标服务器的地址信息与所述目标场景的索引信息通过所述预设游戏服务器发送至所述客户端。由于预设游戏服务器与客户端已连接,所以场景管理服务器可以通过所述预设游戏服务器,将目标服务器的地址信息与所述目标场景的索引信息发送至所述客户端。s405:将连接切断指令发送至所述预设游戏服务器。所述连接切断指令用于指示所述预设游戏服务器切断与所述客户端之间的通信连接。场景管理服务器在将目标服务器的地址信息与目标场景的索引信息发送至所述客户端后,客户端就可以根据所述地址信息建立与所述目标服务器的通信连接,并根据所述目标场景的索引信息,登入所述目标场景,此时,客户端与预设游戏服务器之间的通信连接将失去存在的意义,所以,场景管理服务器将连接切断指令发送至预设游戏服务器,预设游戏服务器响应于所述连接切断指令,主动切断与所述客户端之间的通信连接,从而避免预设游戏服务器资源的不必要浪费。在一示例中,预设游戏服务器切断与所述客户端之间的通信连接后,还会清除客户端在预设游戏服务器中的残留数据,从而进一步提高游戏服务器资源的利用率。本实施例提供的游戏场景管理方法,客户端通过预先连接的游戏服务器,将场景登入请求发送指场景管理服务器,在场景管理服务器将目标服务器的地址信息与所述目标场景的索引信息通过客户端预先连接的游戏服务器发送至客户端后,指示客户端预先连接的游戏服务器切断与所述客户端之间的通信连接,释放了客户端预先连接的游戏服务器的资源,进一步提高了游戏服务器的利用率,避免了游戏服务器资源的浪费。请参阅图5,图5为本申请实施例提供的游戏场景管理方法的再一种流程图。如图5所示,所述方法包括:s501:为各游戏服务器分配预设数量的场景资源;在游戏服务器启动时,可以先为游戏服务器分配预设数量的场景资源。具体地,可以根据游戏服务器的负载能力来分配相应预设数量的场景资源。例如,当游戏服务器最多能够负载11个场景时,则为该游戏服务器分配11个场景资源。在一示例中,所述场景类型有n种,n≥1;所述为各游戏服务器分配预设数量的场景资源包括:为各游戏服务器分配对应于每种场景类型的预设数量的场景资源。由于场景资源与游戏场景的场景类型相对应,所以,在该示例中,还可以对应于各种场景类型,分游戏服务器分配相应的预设数量的场景资源。例如,游戏服务器1最多可以负载100兆(mbyte)的数据量,场景类型包括场景类型a和场景类型b,场景类型a对应的每一个游戏场景有20m的数据量,场景类型b对应的每一个游戏场景有10m的数据量,若以占用数据量最多的场景类型a为分配依据,则可以为游戏服务器1最多分配5个场景资源。若分别对应于各种场景类型来分配,可以根据游戏服务器1的历史使用情况,为场景类型a对应的场景资源分配60m的空间,为场景类型b对应的场景资源分配40m的空间,则,可以为游戏服务器1分配对应于场景类型a的最多3个场景资源,以及,对应于场景类型b的最多4个场景资源,从而为游戏服务器1最多分配7个场景资源。由此可见,为各游戏服务器分配对应于每种场景类型的预设数量的场景资源,能够为游戏服务器分配更多的场景资源,并提高场景资源分配的合理性。s502:接收客户端的场景登入请求;所述场景登入请求中携带有场景信息与用户数据;s503:响应于所述场景登入请求,将所述多个游戏服务器中具有空闲场景资源数量最多的游戏服务器确定为目标服务器;所述空闲场景资源为处于空闲状态的场景资源;s504:向所述目标服务器发送场景初始化指令。所述场景初始化指令中携带有所述场景信息与用户数据,所述场景初始化指令用于指示所述目标服务器根据所述场景信息与用户数据初始化目标场景。其中,步骤s502-s504与前述实施例中的步骤s101-s103相类似,在此不再赘述。本实施例提供的游戏场景管理方法,根据各游戏服务器的负载能力和具体情况,预先为各游戏服务器分配预设数量的场景资源,提高了游戏服务器之间的负载均衡的控制效果,提高了游戏服务器中场景资源的利用率,避免了场景资源浪费以及游戏服务器过载的问题。进一步地,为各游戏服务器分配对应于每种场景类型的预设数量的场景资源,能够为游戏服务器分配更多的场景资源,并提高场景资源分配的合理性。对应于游戏场景管理方法,本发明实施例还提供了相应的场景管理服务器。请参阅图6,图6为本申请实施例的场景管理服务器的一种结构示意图。本实施例的场景管理服务器,用于执行前述实施例的游戏场景管理方法,如图6所示,所述场景管理服务器包括:请求接收模块u101,用于接收客户端的场景登入请求。当用户想要登入某一游戏场景时,会通过客户端向场景管理服务器发送场景登入请求,相应地,请求接收模块u101接收客户端的场景登入请求。所述场景登入请求中携带有场景信息与用户数据。场景信息用于表征用户想要登陆的游戏场景,如游戏场景的名称、场景类型和场景索引中的一种或多种;用户数据用于表征用户的相关信息,如用户的id、角色等级和/或用户权限等信息中的一种或多种。目标确定模块u102,响应于所述场景登入请求,将所述多个游戏服务器中具有空闲场景资源数量最多的游戏服务器确定为目标服务器;场景管理服务器与所述多个游戏服务器之间具有通信连接,能够实时获取到各游戏服务器中空闲场景资源的数量。所述空闲场景资源为处于空闲状态的场景资源。目标服务器是为用户提供游戏场景的游戏服务器,相较于其他游戏服务器,目标服务器中空闲场景资源数量最多,因此,利用目标服务器为用户提供游戏场景,充分利用了目标服务器的场景资源,也不会造成其他游戏场景服务器的负载过重,实现了目标服务器与其他游戏服务器之间的负载均衡。指令发送模块u103,用于向所述目标服务器发送场景初始化指令。所述场景初始化指令中携带有所述场景信息与用户数据,所述场景初始化指令用于指示所述目标服务器根据所述场景信息与用户数据初始化目标场景。当场景管理服务器确定出目标服务器后,指令发送模块u103向所述目标服务器发送场景初始化指令,以使所述目标服务器为用户初始化目标场景。目标场景是指用户想要登入的游戏场景,目标服务器利用其场景资源初始化目标场景,则目标场景占用目标服务器中的场景资源。其中,目标服务器利用其场景资源初始化目标场景,实际上就是利用其场景资源加载该目标场景。在目标服务器初始化目标场景时,由于目标场景是为用户服务的,所以目标服务器还应根据所述场景登入请求中携带的场景信息与用户数据初始化目标场景,使初始化后的目标场景与所述场景信息以及用户数据相对应,符合用户需求。本实施例提供的场景管理服务器,根据游戏服务器中空闲场景资源的数量,动态确定目标服务器来初始化目标场景,而并不是采用静态方式预先设置好的服务器来初始化目标场景,从而实现了游戏服务器之间的负载均衡,提高了游戏服务器中场景资源的利用率,避免了场景资源浪费以及游戏服务器过载的问题。请参阅图7,图7为本申请实施例的场景管理服务器的另一种结构示意图。本实施例的场景管理服务器,用于实施前述实施例的游戏场景管理方法。本实施例中,场景资源与游戏场景的场景类型之间具有对应关系。游戏场景的场景类型可以只有一种或多种,每种场景类型都对应有不同的场景资源。如图7所示,该场景管理服务器包括请求接收模块u101、目标确定模块u102、指令发送模块u103,其中,目标确定模块u102包括:第一确定模块u1021、第二确定模块u1022和第三确定模块u1023。所述第一确定模块u1021,用于根据所述场景信息确定目标场景类型。所述目标场景类型为与所述场景信息相对应的场景类型。所述第二确定模块u1022,用于根据所述对应关系,将与所述目标场景类型相对应的场景资源确定为目标场景资源。所述第二确定模块u1023,用于将具有处于空闲状态的目标场景资源数量最多的游戏服务器,确定为目标服务器。本实施例提供的场景管理服务器,基于不同的场景类型,根据游戏服务器中与场景类型相对应的空闲场景资源的数量,动态确定目标服务器来初始化目标场景,提高了场景资源分配的合理性,进一步实现了游戏服务器之间的负载均衡,提高了游戏服务器中场景资源的利用率,避免了场景资源浪费以及游戏服务器过载的问题。请参阅图8,图8为本申请实施例提供的场景管理服务器的又一种结构示意图。在本实施例中,所述场景管理服务器中包括负载信息表,所述负载信息表中记录有所述各游戏服务器中空闲场景资源的数量。如图8所示,所述场景管理服务器除了包括请求接收模块u101、目标确定模块u102、指令发送模块u103之外,还包括消息接收模块u105和表格更新模块u106。所述目标确定模块u102,具体用于响应于所述场景登入请求,根据所述负载信息表,将具有空闲场景资源数量最多的游戏服务器确定为目标服务器;所述空闲场景资源为处于空闲状态的场景资源。所述负载信息表可采用如前述实施例中表1所示的表格,也可以采用其他形式的表格,还可以包含其他负载信息,在此不做限定。所述消息接收模块u105,用于接收任一游戏服务器发送的场景回收消息;所述场景回收消息是,所述任一游戏服务器在释放由任一场景占用的场景资源后,向所述场景管理服务器发送的;所述任一游戏服务器是在监测到在预设周期内所述任一场景的用户人数始终为零时,释放由所述任一场景占用的场景资源的。在一示例中,各游戏服务器中分别设置有心跳周期,在每个心跳周期内,各游戏服务器会分别遍历本游戏服务器中所有场景中的用户人数情况,如果在预设周期内,某一场景始终没有用户存在,则释放该场景占用的场景资源。所述表格更新模块u106,用于响应于所述场景回收消息,更新所述负载信息表中所述任一游戏服务器中空闲场景资源的数量。当场景管理服务器接收到场景回收消息后,响应于所述场景回收消息,对负载信息表中相应游戏服务器的空闲场景资源的数量进行更新。本实施例提供的场景管理服务器,根据场景管理服务器的负载信息表,确定游戏服务器中空闲场景资源的数量,进而动态确定目标服务器来初始化目标场景,提高了游戏服务器之间的负载均衡的管理效率,并且,在游戏场景长时间无人使用时,释放相应的场景资源,实现了场景资源的动态回收,提高了场景资源的应用合理性,进一步避免了场景资源浪费以及游戏服务器过载的问题。请参阅图9,图9为本申请实施例提供的场景管理服务器的又一种结构示意图。在本实施例中,所述客户端与预设游戏服务器之间具有通信连接,所述预设游戏服务器为所述多个游戏服务器中任一游戏服务器。如图9所示,所述场景管理服务器包括请求接收模块u101、目标确定模块u102、指令发送模块u103之外,还包括:信息发送模块u104与切换控制模块u107。所述请求接收模块u101,具体用于接收由所述预设游戏服务器转发的场景登入请求;所述场景登入请求是由所述客户端发送至所述预设游戏服务器的,所述场景登入请求中携带有场景信息与用户数据。预设游戏服务器实际上是指客户端预先连接或默认连接的游戏服务器,客户端通过预设游戏服务器,能够与场景管理服务器进行通信。所述信息发送模块u104,用于将所述目标服务器的地址信息与所述目标场景的索引信息发送至所述客户端。所述地址信息用于指示所述客户端建立与所述目标服务器的通信连接,所述索引信息用于指示所述客户端登入所述目标场景。在场景管理服务器向所述目标服务器发送场景初始化指令之后,目标服务器就可以为用户初始化目标场景,同时,客户端还需要与目标服务器建立通信连接,才能最终实现用户通过客户端登入目标服务器初始化的目标场景。因此,该示例中,场景管理服务器在所述向所述目标服务器发送场景初始化指令之后,还会利用信息发送模块u104将所述目标服务器的地址信息与所述目标场景的索引信息发送至所述客户端,以供客户端根据所述地址信息建立与所述目标服务器的通信连接,并根据所述目标场景的索引信息,登入所述目标场景。目标场景的索引信息可以是目标场景的id号。在一示例中,所述信息发送模块u104,具体用于将所述目标服务器的地址信息与所述目标场景的索引信息通过所述预设游戏服务器发送至所述客户端。由于预设游戏服务器与客户端已连接,所以场景管理服务器可以通过所述预设游戏服务器,将目标服务器的地址信息与所述目标场景的索引信息发送至所述客户端。所述切换控制模块u107,用于将连接切断指令发送至所述预设游戏服务器,所述连接切断指令用于指示所述预设游戏服务器切断与所述客户端之间的通信连接。场景管理服务器在将目标服务器的地址信息与目标场景的索引信息发送至所述客户端后,客户端就可以根据所述地址信息建立与所述目标服务器的通信连接,并根据所述目标场景的索引信息,登入所述目标场景,此时,客户端与预设游戏服务器之间的通信连接将失去存在的意义,所以,场景管理服务器将连接切断指令发送至预设游戏服务器,预设游戏服务器响应于所述连接切断指令,主动切断与所述客户端之间的通信连接,从而避免预设游戏服务器资源的不必要的浪费。在一示例中,预设游戏服务器切断与所述客户端之间的通信连接后,还会清除客户端在预设游戏服务器中的残留数据,从而进一步提高游戏服务器资源的利用率。本实施例提供的场景管理服务器,客户端通过预先连接的游戏服务器,将场景登入请求发送指场景管理服务器,在场景管理服务器将目标服务器的地址信息与所述目标场景的索引信息通过客户端预先连接的游戏服务器发送至客户端后,指示客户端预先连接的游戏服务器切断与所述客户端之间的通信连接,释放了客户端预先连接的游戏服务器的资源,进一步提高了游戏服务器的利用率,避免了游戏服务器资源的浪费。请参阅图10,图10为本申请实施例提供的场景管理服务器的再一种结构示意图。如图10所示,所述场景管理服务器包括请求接收模块u101、目标确定模块u102、指令发送模块u103之外,还包括资源分配模块u108。所述资源分配模块u108,用于为各游戏服务器分配预设数量的场景资源;在游戏服务器启动时,可以先为游戏服务器分配预设数量的场景资源。具体地,可以根据游戏服务器的负载能力来分配相应预设数量的场景资源。例如,当游戏服务器最多能够负载11个场景时,则为该游戏服务器分配11个场景资源。在一示例中,所述场景类型有n种,n≥1;所述资源分配模块u108,具体用于:为各游戏服务器分配对应于每种场景类型的预设数量的场景资源。由于场景资源与游戏场景的场景类型相对应,所以,在该示例中,还可以对应于各种场景类型,分游戏服务器分配相应的预设数量的场景资源。本实施例提供的场景管理服务器,根据各游戏服务器的负载能力和具体情况,预先为各游戏服务器分配预设数量的场景资源,提高了游戏服务器之间的负载均衡的控制效果,提高了游戏服务器中场景资源的利用率,避免了场景资源浪费以及游戏服务器过载的问题。进一步地,为各游戏服务器分配对应于每种场景类型的预设数量的场景资源,能够为游戏服务器分配更多的场景资源,并提高场景资源分配的合理性。本发明提供的游戏场景管理方法及场景管理服务器,根据游戏服务器中空闲场景资源的数量,动态确定目标服务器来初始化目标场景,而并不是采用静态方式预先设置好的服务器来初始化目标场景,从而实现了游戏服务器之间的负载均衡,提高了游戏服务器中场景资源的利用率,避免了场景资源浪费以及游戏服务器过载的问题。最后,还需要说明的是,在本文中,诸如第一和第一等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的硬件平台的方式来实现,当然也可以全部通过硬件来实施,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案对
背景技术:
做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本申请的限制。当前第1页12