The embodiment of the present invention provides a method, device, electronic device and readable storage medium for processing game data. The scene object in the game scene is composed of at least one voxel, each voxel is a cuboid, and the voxel information of each voxel includes the upper and lower surface heights of the corresponding cuboid. The voxel information at each horizontal position is stored in the first array except the lower surface height of the first voxel, and the position of the voxel information at each horizontal position in the first array is stored in the second one-dimensional array. The scheme of the embodiment of the present invention can effectively reduce the storage space occupied by voxel information, and can effectively reduce the time complexity of voxel information search.
【技术实现步骤摘要】
游戏数据的处理方法、装置、电子设备及可读存储介质
本专利技术涉及数据处理
,具体而言,本专利技术涉及一种游戏数据的处理方法、装置、电子设备及可读存储介质。
技术介绍
随着用户对游戏品质需求的提升,MMORPG(MassiveMultiplayerOnlineRole-PlayingGame,大型多人在线角色扮演游戏)作为网络游戏中最重要的一种类型,也在潮流中不断的进化着。目前,MMORPG已经基本进入3D(3Dimensions,三维)时代,3D游戏的玩法不仅仅在地面,玩家可以在游戏中进行空中飞行、战斗等等。目前3D游戏通常有三种做法:一种是体素(Voxel),体素是3D空间的最小表示单位,类比于2D空间的像素;一种是多边形网格,该方式的缺点是查找效率较低,后台性能压力大;再一种是分层即多层网格,但该方式的缺点是地面以上很难划分层的界线,对于复杂建筑,在建筑层数较多时,如果完整的表示,需要大量阻挡图,内存占用太大。对于体素而言,在目前现有相关技术中,体素也因占用存储空间过大,导致难以普及。如何优化体素占用的存储空间,是推广体素应用急需解决的重要问题之一。专利 ...
【技术保护点】
1.一种游戏数据的处理方法,其特征在于,游戏场景中的场景对象由至少一个体素构成,每个体素为一个长方体,每个体素的体素信息包括对应的长方体的上表面高度和下表面高度;所述方法包括:生成游戏场景中的体素;将每个水平位置处除第一个体素的下表面高度之外的体素信息存储到第一数组中,将每个水平位置处的体素信息在所述第一数组中的位置存储到一维的第二数组中;其中,每个水平位置为游戏地图中水平面上的一块区域,每块区域的形状和大小为体素的上表面或下表面的形状和大小,垂直投影在同一水平位置上的体素为同一水平位置处的体素,每个水平位置处的第一个体素为上表面高度最小的体素。
【技术特征摘要】
1.一种游戏数据的处理方法,其特征在于,游戏场景中的场景对象由至少一个体素构成,每个体素为一个长方体,每个体素的体素信息包括对应的长方体的上表面高度和下表面高度;所述方法包括:生成游戏场景中的体素;将每个水平位置处除第一个体素的下表面高度之外的体素信息存储到第一数组中,将每个水平位置处的体素信息在所述第一数组中的位置存储到一维的第二数组中;其中,每个水平位置为游戏地图中水平面上的一块区域,每块区域的形状和大小为体素的上表面或下表面的形状和大小,垂直投影在同一水平位置上的体素为同一水平位置处的体素,每个水平位置处的第一个体素为上表面高度最小的体素。2.根据权利要求1所述的方法,其特征在于,若相邻的至少两个水平位置处的体素信息相同,所述将每个水平位置处的体素信息存储到一维的第一数组中,包括:只将所述相邻的至少两个水平位置处中的一个水平位置处的体素信息存储到所述第一数组中,并在所述第一数组中设置与所述一个水平位置对应的第一标记,所述第一标记用于标识所述相邻的至少两个水平位置处的体素信息相同。3.根据权利要求1或2所述的方法,其特征在于,所述生成游戏场景中的体素,包括:生成游戏场景中的原体素;将满足合并条件的原体素合并为一个体素,合并后的体素和未合并的原体素为游戏场景中的体素,所述合并条件包括:位于同一水平位置处且高度差小于设定高度的相邻的原体素,和/或,封闭的场景对象的同一水平位置处的原体素;其中,所述高度差是指相邻的原体素中高度较大的原体素的下表面与高度较小的原体素的上表面的高度差,合并后的体素的上表面高度为合并前高度较大的原体素的上表面高度,合并后的体素的下表面高度为合并前高度较小的原体素的下表面高度。4.根据权利要求3所述的方法,其特征在于,所述将满足合并条件的原体素合并为一个体素,合并后的体素和未合并的原体素为游戏场景中的体素,包括:对于每一个水平位置处的原体素,若相邻的原体素之间的高度差不小于所述设定高度,则生成一个反体素;其中,反体素的上表面为相邻的原体素中高度较大的原体素的下表面,反体素的下表面为相邻的原体素中高度较小的原体素的上表面;确定所生成的所有反体素中的连通反体素;其中,连通反体素是指与邻居反体素的交集高度差不小于所述设定高度的反体素,交集高度差是指两个反体素中高度较小的反体素的上表面高度与高度较大的反体素的下表面高度的差值,一个反体素的邻居反体素是指该反体素所在的水平位置的相邻水平位置处的反体素;将所有连通反体素作为原体素,生成新的反体素,新的反体素为游戏场景中的体素。5.根据权利要求1至4中任一项所述的方法,其特征在于,若游戏场景中的场景对象下方悬空,所述方法还包括:在场景对象下方距离场景最低可达高度第一设定距离的位置生成指定对象的体素,其中,指定对象的体素的体素信息不包括下表面高度,指定对象在游戏场景中不显示。6.根据权利要求5所述的方法,其特征在于,还包括:配置游戏场景中的玩家实际活动区域边界,其中,玩家实际活动区域的下边界位于游戏地图下边界以下第二设定距离处,第二设定距离不小于第一设定距离,游戏地图下边界的高度不大于场景最低可达高度;在游戏地图下边界下方的第一设定距离处生成所述指定对象的体素。7.根据权利要求1至6中任一项所述的方法,其特征在于,所述场景对象不包括水,若游戏场景中存在水,所述方法还包括:将游戏地图划分为多个地图块,并设置每个地图块的标识;根据存在水的地图块的个数,创建相应个数的二维的第三数组,每个第三数组用于存储对应的存在水的地图块中的每个水平位置处的水的高度;创建二维的第一指针数组,其中,第一指针数组的指针元素个数为所有地图块的个数,第一指针数组中的元素索引为地图块的标识,若地图块中不存在水,则对应的指针元素为设定值,若地图块中存在水,则对应的指针元素为地图块对应的第三数组的存储位置。8.根据权利要求1至7中任一项所述的方法,其特征在于,还包括:设置每个体素的第二标记,每个体素的所述第二标记用于标识八方向中每个方向上该体素的相邻体素是否可行走。9.基于权利要求1至8中任一项中所述方法的一种游戏数据的处理方法,其特征在于,包括:获取待加载游戏场景中的场景资源数据,所述场景资源数据包括所述待加载游戏场景中所有体素的体素信息;在内存中创建一维的第四数组和一维的第五数组;将所述待加载游戏场景中的每个水平位置处的所有体素信息加载到所述第四数组中,将每个水平位...
【专利技术属性】
技术研发人员:王杰,
申请(专利权)人:腾讯科技北京有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。