CN106110656B - 在游戏场景计算路线的方法和装置 - Google Patents
在游戏场景计算路线的方法和装置 Download PDFInfo
- Publication number
- CN106110656B CN106110656B CN201610545167.5A CN201610545167A CN106110656B CN 106110656 B CN106110656 B CN 106110656B CN 201610545167 A CN201610545167 A CN 201610545167A CN 106110656 B CN106110656 B CN 106110656B
- Authority
- CN
- China
- Prior art keywords
- polygon
- polygons
- region
- point
- route
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000004364 calculation method Methods 0.000 claims description 32
- 238000000638 solvent extraction Methods 0.000 claims description 11
- 238000005192 partition Methods 0.000 claims description 4
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000010845 search algorithm Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 208000003028 Stuttering Diseases 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
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/40—Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
- A63F13/42—Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle
- A63F13/428—Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle involving motion or position input signals, e.g. signals representing the rotation of an input controller or a player's arm motions sensed by accelerometers or gyroscopes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- 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/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
- A63F13/355—Performing operations on behalf of clients with restricted processing capabilities, e.g. servers transform changing game scene into an encoded video stream for transmitting to a mobile phone or a thin client
-
- 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/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
- A63F13/358—Adapting the game course according to the network or server load, e.g. for reducing latency due to different connection speeds between clients
-
- 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/55—Controlling game characters or game objects based on the game progress
- A63F13/56—Computing the motion of game characters with respect to other game characters, game objects or elements of the game scene, e.g. for simulating the behaviour of a group of virtual soldiers or for path finding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- 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/50—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 details of game servers
- A63F2300/53—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 details of game servers details of basic data processing
-
- 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/50—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 details of game servers
- A63F2300/53—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 details of game servers details of basic data processing
- A63F2300/534—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 details of game servers details of basic data processing for network load management, e.g. bandwidth optimization, latency reduction
-
- 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/50—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 details of game servers
- A63F2300/53—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 details of game servers details of basic data processing
- A63F2300/538—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 details of game servers details of basic data processing for performing operations on behalf of the game client, e.g. rendering
-
- 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/64—Methods for processing data by generating or executing the game program for computing dynamical parameters of game objects, e.g. motion determination or computation of frictional forces for a virtual car
- A63F2300/646—Methods for processing data by generating or executing the game program for computing dynamical parameters of game objects, e.g. motion determination or computation of frictional forces for a virtual car for calculating the trajectory of an object
-
- 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/66—Methods for processing data by generating or executing the game program for rendering three dimensional images
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
- Instructional Devices (AREA)
Abstract
本发明的实施方式提供了一种在游戏场景计算路线的方法和装置。所述方法包括:将所述游戏场景划分为多个第一区域;根据游戏场景中的特征,将每个第一区域划分为若干个凸角多边形;将相邻的凸角多边形组合为多个第二区域;计算所述游戏场景中从第一点至第二点途经所述多个第二区域中的一组第二区域的第一路线;根据所述第一路线,计算从所述第一点至所述第二点途经所述一组第二区域中的一组凸角多边形的第二路线。
Description
技术领域
本发明的实施方式涉及通信领域,更具体地,本发明的实施方式涉及在游戏场景计算路线的方法和系统。
背景技术
本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
在游戏中,为了在游戏场景中寻找两个点之间可到达的最短路径,即自动寻路,服务器会针对游戏场景生成导航网格,导航网格可以是一种抽象数据结构,由一系列的二维凸角多边形组成,这些多边形用来表示游戏场景中人物可到达的区域。导航窗格可以是离线生成的,当服务器加载游戏场景时,可以同时将此游戏场景对应的导航网格加载到内存中,然后通过寻路算法查找合适的路径。当游戏场景越来越大时,导航网格也随之变大,导致服务器加载导航网格后需要消耗大量的内存,另一个方面导致需要遍历的节点增多,计算量非常大,使得自动寻路所需时间变长,增加服务器的性能消耗,且使游戏画面产生卡顿现象,难以向用户提供高质量的同步画面,也难以保证用户更好的体验。
发明内容
对于现有技术中的自动寻路方法和装置,当游戏场景越来越大时,导航网格也随之变大,导致服务器加载导航网格后需要消耗大量的内存,另一个方面导致需要遍历的节点增多,计算量非常大,使得自动寻路所需时间变长,增加服务器的性能消耗,且使游戏画面产生卡顿现象,难以向用户提供高质量的同步画面,这是非常令人烦恼的过程。
为此,非常需要一种改进的在游戏场景计算路线的方法和装置,显著减小服务器的内存消耗、减小所需的运算量、缩短了运算所需时间因而提高了运算效率,同时能够避免卡顿、呈现高质量的游戏场景。
在本上下文中,本发明的实施方式期望提供一种在游戏场景计算路线的方法和装置。
在本发明实施方式的第一方面中,提供了一种在游戏场景计算路线的方法,包括:将所述游戏场景划分为多个第一区域;根据游戏场景中的特征,将每个第一区域划分为若干个凸角多边形;将相邻的凸角多边形组合为多个第二区域;计算所述游戏场景中从第一点至第二点途经所述多个第二区域中的一组第二区域的第一路线;根据所述第一路线,计算从所述第一点至所述第二点途经所述一组第二区域中的一组凸角多边形的第二路线。
根据本发明的上述实施方式中的在游戏场景计算路线的方法,其中将所述游戏场景划分为多个第一区域包括:根据所述游戏场景的尺寸,将所述游戏场景划分为尺寸相等的多个第一区域;记录每个第一区域的顶点坐标。
根据本发明的上述任一实施方式中的在游戏场景计算路线的方法,其中所述游戏场景中的特征包括:所述游戏场景中的地理特征和/或人物特征。
根据本发明的上述任一实施方式中的在游戏场景计算路线的方法,其中根据游戏场景中的特征,将每个第一区域划分为若干个凸角多边形包括:根据所述游戏场景中的地理特征和/或人物特征,确定每个第一区域中的不可到达区域和可到达区域;将每个第一区域中的可到达区域划分为若干个凸角多边形。
根据本发明的上述任一实施方式中的在游戏场景计算路线的方法,其中根据游戏场景中的特征,将每个第一区域划分为若干个凸角多边形包括:根据所述游戏场景中的地理特征和/或人物特征,确定每个第一区域中所划分的凸角多边形的个数、每个凸角多边形的顶点的个数和/或每个凸角多边形的顶点的坐标。
根据本发明的上述任一实施方式中的在游戏场景计算路线的方法,还包括:根据每个凸角多边形的顶点的个数和/或每个凸角多边形的顶点的坐标,确定每个第一区域中与每个凸角多边形相邻的凸角多边形的列表。
根据本发明的上述任一实施方式中的在游戏场景计算路线的方法,其中将相邻的凸角多边形组合为多个第二区域包括:根据所确定的每个第一区域中与每个凸角多边形相邻的凸角多边形的列表,将每个第一区域中的相邻的凸角多边形组合为多个第二区域。
根据本发明的上述任一实施方式中的在游戏场景计算路线的方法,还包括:根据每个第二区域中所包含的每个凸角多边形相邻的凸角多边形的列表,确定与每个第二区域相邻的第二区域的列表。
根据本发明的上述任一实施方式中的在游戏场景计算路线的方法,还包括:根据每个第二区域中所包含的凸角多边形的坐标,计算每个凸角多边形的中心坐标;计算所包含的凸角多边形的中心坐标的平均值,作为所述每个第二区域的坐标。
根据本发明的上述任一实施方式中的在游戏场景计算路线的方法,还包括:根据所述第一点的坐标,确定所述第一点所属的第一区域、凸角多边形和第二区域;和根据所述第二点的坐标,确定所述第二点所属的第一区域、凸角多边形和第二区域。
根据本发明的上述任一实施方式中的在游戏场景计算路线的方法,其中计算所述游戏场景中从第一点至第二点途经所述多个第二区域中的一组第二区域的第一路线包括:根据所述第一点所属的第二区域、与所述第一点所属的第二区域相邻的第二区域的列表,根据所述第二点所属的第二区域、与所述第二点所属的第二区域相邻的第二区域的列表,以及每个第二区域的坐标,计算所述游戏场景中从第一点至第二点途经所述多个第二区域中的一组相邻的第二区域的第一路线。
根据本发明的上述任一实施方式中的在游戏场景计算路线的方法,其中根据所述第一路线,计算从所述第一点至所述第二点途经所述一组第二区域中的一组凸角多边形的第二路线包括:根据所述第一路线,所述第一点所属的凸角多边形、所述第二点所属的凸角多边形、与所述第一路线所途经的所述一组相邻的第二区域中的凸角多边形相邻的凸角多边形的列表,以及每个凸角多边形的中心坐标,计算从所述第一点至所述第二点途经所述一组相邻的第二区域中的一组相邻的凸角多边形的第二路线。
根据本发明的第二方面,提供了一种在游戏场景计算路线的装置,包括:第一划分模块,被配置为将所述游戏场景划分为多个第一区域;第二划分模块,被配置为根据游戏场景中的特征,将每个第一区域划分为若干个凸角多边形;组合模块,被配置为将相邻的凸角多边形组合为多个第二区域;第一计算模块,被配置为计算所述游戏场景中从第一点至第二点途经所述多个第二区域中的一组第二区域的第一路线;第二计算模块,被配置为根据所述第一路线,计算从所述第一点至所述第二点途经所述一组第二区域中的一组凸角多边形的第二路线。
根据本发明的上述实施方式中的在游戏场景计算路线的装置,其中所述第一划分模块包括:第一划分子模块,被配置为根据所述游戏场景的尺寸,将所述游戏场景划分为尺寸相等的多个第一区域;记录模块,被配置为记录每个第一区域的顶点坐标。
根据本发明的上述任一实施方式中的在游戏场景计算路线的装置,其中所述游戏场景中的特征包括:所述游戏场景中的地理特征和/或人物特征。
根据本发明的上述任一实施方式中的在游戏场景计算路线的装置,其中所述第二划分模块包括:第一确定模块,被配置为根据所述游戏场景中的地理特征和/或人物特征,确定每个第一区域中的不可到达区域和可到达区域;第二划分子模块,被配置为将每个第一区域中的可到达区域划分为若干个凸角多边形。
根据本发明的上述任一实施方式中的在游戏场景计算路线的装置,其中所述第二划分模块被配置为:根据所述游戏场景中的地理特征和/或人物特征,确定每个第一区域中所划分的凸角多边形的个数、每个凸角多边形的顶点的个数和/或每个凸角多边形的顶点的坐标。
根据本发明的上述任一实施方式中的在游戏场景计算路线的装置,还包括:第一列表确定模块,被配置为根据每个凸角多边形的顶点的个数和/或每个凸角多边形的顶点的坐标,确定每个第一区域中与每个凸角多边形相邻的凸角多边形的列表。
根据本发明的上述任一实施方式中的在游戏场景计算路线的装置,其中所述组合模块被配置为:根据所确定的每个第一区域中与每个凸角多边形相邻的凸角多边形的列表,将每个第一区域中的相邻的凸角多边形组合为多个第二区域。
根据本发明的上述任一实施方式中的在游戏场景计算路线的装置,还包括:第二列表确定模块,被配置为根据每个第二区域中所包含的每个凸角多边形相邻的凸角多边形的列表,确定与每个第二区域相邻的第二区域的列表。
根据本发明的上述任一实施方式中的在游戏场景计算路线的装置,还包括:第四计算模块,被配置为根据每个第二区域中所包含的凸角多边形的坐标,计算每个凸角多边形的中心坐标;第五计算模块,被配置为计算所包含的凸角多边形的中心坐标的平均值,作为所述每个第二区域的坐标。
根据本发明的上述任一实施方式中的在游戏场景计算路线的装置,还包括:第二确定模块,被配置为根据所述第一点的坐标,确定所述第一点所属的第一区域、凸角多边形和第二区域;和第三确定模块,被配置为根据所述第二点的坐标,确定所述第二点所属的第一区域、凸角多边形和第二区域。
根据本发明的上述任一实施方式中的在游戏场景计算路线的装置,其中所述第一计算模块被配置为:根据所述第一点所属的第二区域、与所述第一点所属的第二区域相邻的第二区域的列表,根据所述第二点所属的第二区域、与所述第二点所属的第二区域相邻的第二区域的列表,以及每个第二区域的坐标,计算所述游戏场景中从第一点至第二点途经所述多个第二区域中的一组相邻的第二区域的第一路线。
根据本发明的上述任一实施方式中的在游戏场景计算路线的装置,其中所述第二计算模块被配置为:根据所述第一路线,所述第一点所属的凸角多边形、所述第二点所属的凸角多边形、与所述第一路线所途经的所述一组相邻的第二区域中的凸角多边形相邻的凸角多边形的列表,以及每个凸角多边形的中心坐标,计算从所述第一点至所述第二点途经所述一组相邻的第二区域中的一组相邻的凸角多边形的第二路线。
根据本发明实施方式的在游戏场景计算路线的方法和装置,通过将游戏场景划分为多个第一区域并将每个第一区域划分为若干个凸角多边形,形成细粒度导航网格,再将相邻的凸角多边形组合为多个第二区域,形成粗粒度导航网格,允许在游戏场景中计算路线时,仅需要加载粗粒度导航网格来获得第一路线,再加载第一路线所途经的细粒度网格,来获得精确路线,显著减小了服务器的内存消耗、显著减小了所需的运算量、缩短了运算所需时间因而提高了运算效率,同时能够避免卡顿、呈现高质量的游戏场景。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
图1示意性地示出了根据本发明实施方式的在游戏场景计算路线的方法的流程示意图;
图2是根据本发明示例性实施例的游戏场景的示意图;
图3示意性地示出了根据本发明实施方式的在游戏场景计算路线的装置的示意图;
图4示意性地示出了根据本发明另一实施方式的在游戏场景计算路线的装置的示意图;以及
图5示意性地示出了根据本发明另一实施方式的在游戏场景计算路线的程序产品。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本发明的实施方式,提出了一种在游戏场景计算路线的方法和装置。
在本文中,需要理解的是,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
发明概述
本发明人发现,可以首先将游戏场景划分成多个第一区域,该多个第一区域可以是大小相等的区域;然后将每个第一区域划分为若干个凸角多边形,作为第一层导航网格,称为细粒度导航网格;将相邻的凸角多边形组合为多个第二区域,作为第二层导航网格,称为粗粒度导航网格;计算两点之间途经粗粒度导航网格中的第一路线;再加载第一路线上对应的细粒度导航网格,计算所述两点之间途经细粒度导航网格的第二路线,作为精确路径。这样,在较大游戏场景中的自动寻路,不仅能够减少导航网格的内存消耗,同时减少了寻路所需的时间和计算量。
在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。
示例性方法
下面参考图1来描述根据本发明示例性实施方式的在游戏场景计算路线的方法。
图1示意性地示出了根据本发明实施方式的在游戏场景计算路线的方法流程示意图。
在一些可能的实施方式中,游戏场景可以是基于游戏的情节而产生的画面,可以包括人物特征和/或地理特征等,游戏场景中的某些区域可以被设置为可到达区域,例如平地、房屋等区域,其他区域可设置为不可到达区域,例如山区、海洋等区域。可选地,路线可以是在游戏场景中从一个点至另一个点所途经的路线,可选地,所途经的路线可以是仅途经游戏场景中可到达区域的路线。
如图1所示,该方法100包括:S101、将所述游戏场景划分为多个第一区域;
在一些可能的实施方式中,其中步骤S101包括:根据所述游戏场景的尺寸,将所述游戏场景划分为尺寸相等的多个第一区域;记录每个第一区域的顶点坐标。
例如,对于尺寸为15000米×10000米的游戏场景,比如假设超大场景是15000米×10000米的一个空间,其中x轴范围为[0,15000],z轴范围为[0,10000],可以将该游戏场景划分为尺寸相等的多个第一区域,例如在xz平面上划分为150×100个大小相等的正方形区域,每个正方形区域的尺寸为100米×100米,例如图2所示的四个正方形区域,A-D区域。对于每个第一区域,如果不考虑y轴的范围(即游戏场景中的高度特征),则记录每个正方形左下角的顶点的x,z座标,用于区分每一个正方形区域在游戏场景中的位置。可选地,第一区域也可以是其他形状,例如长方形。
如图1所示,该方法100包括:S102、根据游戏场景中的特征,将每个第一区域划分为若干个凸角多边形。
在一些可能的实施方式中,所述游戏场景中的特征包括:所述游戏场景中的地理特征和/或人物特征。可选地,地理特征可以包括游戏场景中的平地、山区、海洋、房屋等特征。可选地,人物特征可以是由用户控制的对象,以代表用户在游戏场景中进行各种活动。
在一些可能的实施方式中,其中步骤S102包括:根据所述游戏场景中的地理特征和/或人物特征,确定每个第一区域中的不可到达区域和可到达区域;将每个第一区域中的可到达区域划分为若干个凸角多边形。
可选地,可以根据游戏场景中的地理特征或人物特征,或者根据地理特征和人物特征两者,来确定每个第一区域中的不可到达区域和可到达区域。可选地,人物特征可以包括在场景中行走的人物的高度、半径、可攀爬的斜坡最大角度、抬腿高度等特征值。可选地,地理特征可以包括人物所处场景的高度、宽度、深度或其他特征。例如,当游戏场景中的地理特征为高度为1.5米的门,对于高度为2米的人物,这个门所在的区域就是不可到达区域;比如人的半径是1米,而游戏场景中一个巷子的宽度是0.8米,那这个巷子所在的区域就是不可到达区域;比如,如果人物的可攀爬的斜坡最大角度是45度,对于角度是75度的一个峭壁,那这个峭壁所在的区域就是不可到达区域;比如,如果人物的抬腿高度是0.5米,对于每个台阶高度为0.7米的楼梯,那这个楼梯所在的区域就是不可到达区域。
可选地,游戏场景中的路线仅途经可到达区域,而不经过不可到达区域。因此,为了计算游戏场景中的路线,进一步将每个第一区域中的可到达区域划分为若干个凸角多边形,作为第一层导航网格,称为细粒度导航网格,例如将A区域中的可到达区域划分为凸角多边形a-g。
在一些可能的实施方式中,其中步骤S102包括:根据所述游戏场景中的地理特征和/或人物特征,确定每个第一区域中所划分的凸角多边形的个数、每个凸角多边形的顶点的个数和/或每个凸角多边形的顶点的坐标。可选地,如果当前的第一区域在游戏场景中比较平坦,比如平原,可以将凸角多边形的顶点个数设置为较多数量,如六边形;如果当前的第一区域在游戏场景中的地理特征比较复杂,比如高度变化比较剧烈的区域,为了记录这种高度的剧烈变化,可以将该第一区域划分为三角形。可选地,每个第一区域中凸角多边形的个数和顶点个数也可以是预先确定的,例如将凸角多边形的最大顶点个数设置为6,即每个多边形的顶点个数是3-6中的某一个值。
在一些可能的实施方式中,方法100还包括:根据每个凸角多边形的顶点的个数和/或每个凸角多边形的顶点的坐标,确定每个第一区域中与每个凸角多边形相邻的凸角多边形的列表。如图2所示,对于A区域中的多边形a,根据多边形a的顶点的个数和/或顶点的坐标可知,在A区域中不存在与其相邻的其他凸角多边形;对于A区域中的多边形b,根据多边形b的顶点的个数和/或顶点的坐标可知,在A区域中与多边形b相邻的凸角多边形包括多边形c、e;对于A区域中的多边形c,根据多边形c的顶点的个数和/或顶点的坐标可知,在A区域中与多边形c相邻的凸角多边形包括多边形b、d、e;对于A区域中的多边形e,根据多边形e的顶点的个数和/或顶点的坐标可知,在A区域中与多边形e相邻的凸角多边形包括多边形b、c、d,以此类推。
如图1所示,方法100包括步骤S103、将相邻的凸角多边形组合为多个第二区域。
在一些可能的实施方式中,步骤S103可包括:根据所确定的每个第一区域中与每个凸角多边形相邻的凸角多边形的列表,将每个第一区域中的相邻的凸角多边形组合为多个第二区域。
可选地,根据上述实施例中所确定的每个第一区域中与每个凸角多边形相邻的凸角多边形的列表,例如,在A区域中与多边形b相邻的凸角多边形包括多边形c、e,与多边形c相邻的凸角多边形包括多边形b、d、e,与多边形e相邻的凸角多边形包括多边形b、c、d可知,A区域中的相邻的凸角多边形包括凸角多边形b、c、d、e。类似地,A区域中的相邻的凸角多边形还包括凸角多边形f、g。由此,A区域可包括3个第二区域:多边形簇1,包括多边形b、c、d、e;多边形簇2,包括多边形a;以及多边形簇3,包括多边形f、g。同理,B区域可包括3个第二区域:多边形簇1,包括多边形a-d;多边形簇2,包括多边形g;以及多边形簇3,包括多边形e、f。C区域可包括3个第二区域:多边形簇1,包括多边形e;多边形簇2,包括多边形a-d;以及多边形簇3,包括多边形f。D区域可包括3个第二区域:多边形簇1,包括多边形b-e;多边形簇2,包括多边形a;以及多边形簇3,包括多边形f。
在一些可能的实施方式中,方法100还包括:根据每个第二区域中所包含的每个凸角多边形相邻的凸角多边形的列表,确定与每个第二区域相邻的第二区域的列表。在一些可能的实施方式中,每个凸角多边形相邻的凸角多边形的列表还可以包括每个凸角多边形的顶点的个数和/或每个凸角多边形的顶点的坐标,可以根据每个凸角多边形的顶点的个数和/或每个凸角多边形的顶点的坐标确定与每个第二区域相邻的第二区域的列表。可选地,当每个第二区域中的任意一个凸角多边形的任意两个顶点的坐标与另一个第二区域中的任意一个凸角多边形的两个顶点的坐标相同,则可以认为这两个第二区域中的凸角多边形相邻,那么两个第二区域是相邻的。
可选地,与每个第二区域相邻的第二区域的列表中可以包括与该第二区域同属于同一第一区域的第二区域,也可以包括与该第二区域属于不同一第一区域的第二区域。例如,如图2所示,对于A区域中的多边形簇1,与其相邻的第二区域的列表可以包括B区域的多边形簇1和多边形簇2和C区域的多边形簇3,则A区域的多边形簇1的相邻列表里有3条记录,分别是(B,1)、(B,2)、(C,3)。这样,通过将相邻的凸角多边形组合为多个第二区域,将细粒度导航网格简化成转化为粗粒度导航网格,使得游戏引擎加载游戏场景时将粗粒度导航网格加载到内存中,大大减少了需要记录的数据量,例如,仅需加载A-D区域中所有的多边形簇及其相邻的多边形簇的信息。
在一些可能的实施方式中,方法100还包括:根据每个第二区域中所包含的凸角多边形的坐标,计算每个凸角多边形的中心坐标;计算所包含的凸角多边形的中心坐标的平均值,作为所述每个第二区域的坐标。例如对于A区域中的多边形簇1,根据凸角多边形b-e的坐标分别计算每个凸角多边形的中心坐标,并根据凸角多边形b-e的中心坐标的平均值,作为A区域的多边形簇1的坐标。
如图1所示,方法100包括步骤S104、计算所述游戏场景中从第一点至第二点途经所述多个第二区域中的一组第二区域的第一路线。
在一些可能的实施方式中,方法100可以还包括:根据所述第一点的坐标,确定所述第一点所属的第一区域、凸角多边形和第二区域;和根据所述第二点的坐标,确定所述第二点所属的第一区域、凸角多边形和第二区域。例如,仍以图2为例,对于游戏场景中的S点和E点,根据S点座标的xz值计算出S点所属的A区域,可选地,可以加载A区域中的细粒度导航网格,计算S点所属的凸角多边形b,可以通过查找该凸角多边形b属于哪个多边形簇,来确定S点所属的多边形簇1;同理,根据E点座标的xz值计算出E点所属的D区域、可选地,可以加载D区域中的细粒度导航网格,计算E点所属的凸角多边形f,可以通过查找该凸角多边形f属于哪个多边形簇,来确定E点所属的多边形簇3。
在一些可能的实施方式中,步骤S104包括:根据所述第一点所属的第二区域、与所述第一点所属的第二区域相邻的第二区域的列表,根据所述第二点所属的第二区域、与所述第二点所属的第二区域相邻的第二区域的列表,以及每个第二区域的坐标,计算所述游戏场景中从第一点至第二点途经所述多个第二区域中的一组相邻的第二区域的第一路线。例如,对于A区域的多边形簇1中的S点和D区域的多边形簇3中的E点,根据S点所属的A区域的多边形簇1、与多边形簇1相邻的第二区域的列表,即(B,1)、(B,2)、(C,3),以及根据E点所属的D区域的多边形簇3、与多边形簇3相邻的第二区域的列表,即(B,1),计算所述游戏场景中从S点至E点途经的一组多边形簇的第一路线,即(A,1)->(B,1)->(D,3)。可选地,可以通过启发式搜索算法进行计算,在图形平面上从多个节点的路径计算出最低通过成本的算法,例如A*算法。
如图1所示,方法100包括步骤S105、根据所述第一路线,计算从所述第一点至所述第二点途经所述一组第二区域中的一组凸角多边形的第二路线。这样,通过首先在粗粒度导航网格中计算第一路线,再基于第一路线在细粒度导航网格中计算精确路线,可以显著减少服务器的计算量及内存的占用空间,大大减少了计算时间,提高了计算效率。
在一些可能的实施方式中,步骤S105包括:根据所述第一路线,所述第一点所属的凸角多边形、所述第二点所属的凸角多边形,以及与所述第一路线所途经的所述一组相邻的第二区域的中凸角多边形相邻的凸角多边形的列表,以及每个凸角多边形的中心坐标,计算从所述第一点至所述第二点途经所述一组相邻的第二区域中的一组相邻的凸角多边形的第二路线。
如图2所示,对于所述游戏场景中的S点和E点,第一路线途经的一组多边形簇为(A,1)->(B,1)->(D,3)。为了获得精确路线,加载(A,1)->(B,1)->(D,3)经过的细粒度导航网格,包括S点所属的A区域中的凸角多边形b(记录为A(b))、E点所属的D区域中的凸角多边形f(记录为D(f)),以及与第一路线所途经的多边形簇(A,1)、(B,1)、(D,3)中凸角多边形相邻的凸角多边形的列表,以及每个凸角多边形的中心坐标,计算从所述第一点至所述第二点途经所述一组相邻的第二区域中的一组相邻的凸角多边形的第二路线,即S->A(b)->A(e)->B(a)->B(b)->B(c)->D(f)->E。可选地,获得第二路线后,可以卸载已加载的细粒度导航网格,减少内存占用。
这样,通过将游戏场景划分为多个第一区域并将每个第一区域划分为若干个凸角多边形,形成细粒度导航网格,再将相邻的凸角多边形组合为多个第二区域,形成粗粒度导航网格,允许在游戏场景中计算路线时,仅需要加载粗粒度导航网格来获得第一路线,再加载第一路线所途经的细粒度网格,来获得精确路线,显著减小了服务器的内存消耗、减小了所需的运算量、缩短了运算所需时间因而提高了运算效率,同时能够避免卡顿、呈现高质量的游戏场景。
示例性设备
在介绍了本发明示例性实施方式的方法之后,接下来,参考图3对本发明示例性实施方式的在游戏场景计算路线的装置的示意图。
图3示意性地示出了根据本发明实施方式的在游戏场景计算路线的装置的示意图。如图3所示,该装置300可以包括:第一划分模块301、第二划分模块302、组合模块303、第一计算模块304,以及第二计算模块305。
在一些可能的实施方式中,游戏场景可以是基于游戏的情节而产生的画面,可以包括人物特征和/或地理特征等,游戏场景中的某些区域可以被设置为可到达区域,例如平地、房屋等区域,其他区域可设置为不可到达区域,例如山区、海洋等区域。可选地,路线可以是在游戏场景中从一个点至另一个点所途经的路线,可选地,所途经的路线可以是仅途经游戏场景中可到达区域的路线。
如图3所示,装置300包括:第一划分模块301,被配置为将所述游戏场景划分为多个第一区域;
在一些可能的实施方式中,其中第一划分模块301包括:第一划分子模块301A,被配置为根据所述游戏场景的尺寸,将所述游戏场景划分为尺寸相等的多个第一区域;记录模块301B,被配置为记录每个第一区域的顶点坐标。
例如,对于尺寸为15000米×10000米的游戏场景,比如假设超大场景是15000米×10000米的一个空间,其中x轴范围为[0,15000],z轴范围为[0,10000],第一划分子模块301A可以将该游戏场景划分为尺寸相等的多个第一区域,例如在xz平面上划分为150×100个大小相等的正方形区域,每个正方形区域的尺寸为100米×100米,例如图2所示的四个正方形区域,A-D区域。对于每个第一区域,如果不考虑y轴的范围(即游戏场景中的高度特征),则记录模块301B记录每个正方形左下角的顶点的x,z座标,用于区分每一个正方形区域在游戏场景中的位置。可选地,第一区域也可以是其他形状,例如长方形。
如图3所示,该装置300包括:第二划分模块302,被配置为根据游戏场景中的特征,将每个第一区域划分为若干个凸角多边形。
在一些可能的实施方式中,所述游戏场景中的特征包括:所述游戏场景中的地理特征和/或人物特征。可选地,地理特征可以包括游戏场景中的平地、山区、海洋、房屋等特征。可选地,人物特征可以是由用户控制的对象,以代表用户在游戏场景中进行各种活动。
在一些可能的实施方式中,其中所述第二划分模块302包括:第一确定模块302A,被配置为根据所述游戏场景中的地理特征和/或人物特征,确定每个第一区域中的不可到达区域和可到达区域;第二划分子模块302B,被配置为将每个第一区域中的可到达区域划分为若干个凸角多边形。
可选地,第一确定模块302A可以根据游戏场景中的地理特征或人物特征,或者根据地理特征和人物特征两者,来确定每个第一区域中的不可到达区域和可到达区域。可选地,人物特征可以包括在场景中行走的人物的高度、半径、可攀爬的斜坡最大角度、抬腿高度等特征值。可选地,地理特征可以包括人物所处场景的高度、宽度、深度或其他特征。例如,当游戏场景中的地理特征为高度为1.5米的门,对于高度为2米的人物,这个门所在的区域就是不可到达区域;比如人的半径是1米,而游戏场景中一个巷子的宽度是0.8米,那这个巷子所在的区域就是不可到达区域;比如,如果人物的可攀爬的斜坡最大角度是45度,对于角度是75度的一个峭壁,那这个峭壁所在的区域就是不可到达区域;比如,如果人物的抬腿高度是0.5米,对于每个台阶高度为0.7米的楼梯,那这个楼梯所在的区域就是不可到达区域。
可选地,游戏场景中的路线仅途经可到达区域,而不经过不可到达区域。因此,为了计算游戏场景中的路线,第二划分子模块302B进一步将每个第一区域中的可到达区域划分为若干个凸角多边形,作为第一层导航网格,称为细粒度导航网格,例如将A区域中的可到达区域划分为凸角多边形a-g。
在一些可能的实施方式中,其中第二划分模块302被配置为:根据所述游戏场景中的地理特征和/或人物特征,确定每个第一区域中所划分的凸角多边形的个数、每个凸角多边形的顶点的个数和/或每个凸角多边形的顶点的坐标。可选地,如果当前的第一区域在游戏场景中比较平坦,比如平原,第二划分模块302可以将凸角多边形的顶点个数设置为较多数量,如六边形;如果当前的第一区域在游戏场景中的地理特征比较复杂,比如高度变化比较剧烈的区域,为了记录这种高度的剧烈变化,第二划分模块302可以将该第一区域划分为三角形。可选地,每个第一区域中凸角多边形的个数和顶点个数也可以是预先确定的,例如将凸角多边形的最大顶点个数设置为6,即每个多边形的顶点个数是3-6中的某一个值。
在一些可能的实施方式中,装置300还包括:第一列表确定模块306,被配置为:根据每个凸角多边形的顶点的个数和/或每个凸角多边形的顶点的坐标,确定每个第一区域中与每个凸角多边形相邻的凸角多边形的列表。如图2所示,对于A区域中的多边形a,第一列表确定模块306根据多边形a的顶点的个数和/或顶点的坐标,确定在A区域中不存在与其相邻的其他凸角多边形;对于A区域中的多边形b,第一列表确定模块306根据多边形b的顶点的个数和/或顶点的坐标,确定在A区域中与多边形b相邻的凸角多边形包括多边形c、e;对于A区域中的多边形c,第一列表确定模块306根据多边形c的顶点的个数和/或顶点的坐标,确定在A区域中与多边形c相邻的凸角多边形包括多边形b、d、e;对于A区域中的多边形e,第一列表确定模块306根据多边形e的顶点的个数和/或顶点的坐标,确定在A区域中与多边形e相邻的凸角多边形包括多边形b、c、d,以此类推。
如图3所示,装置300包括组合模块303,被配置为将相邻的凸角多边形组合为多个第二区域。
在一些可能的实施方式中,所述组合模块303被配置为:根据所确定的每个第一区域中与每个凸角多边形相邻的凸角多边形的列表,将每个第一区域中的相邻的凸角多边形组合为多个第二区域。
可选地,根据上述实施例中第一列表确定模块306所确定的每个第一区域中与每个凸角多边形相邻的凸角多边形的列表,例如,在A区域中与多边形b相邻的凸角多边形包括多边形c、e,与多边形c相邻的凸角多边形包括多边形b、d、e,与多边形e相邻的凸角多边形包括多边形b、c、d,组合模块303确定A区域中的相邻的凸角多边形包括凸角多边形b、c、d、e。类似地,组合模块303确定A区域中的相邻的凸角多边形还包括凸角多边形f、g。由此,组合模块303确定A区域可包括3个第二区域:多边形簇1,包括多边形b、c、d、e;多边形簇2,包括多边形a;以及多边形簇3,包括多边形f、g。同理,组合模块303确定B区域可包括3个第二区域:多边形簇1,包括多边形a-d;多边形簇2,包括多边形g;以及多边形簇3,包括多边形e、f。组合模块303确定C区域可包括3个第二区域:多边形簇1,包括多边形e;多边形簇2,包括多边形a-d;以及多边形簇3,包括多边形f。组合模块303确定D区域可包括3个第二区域:多边形簇1,包括多边形b-e;多边形簇2,包括多边形a;以及多边形簇3,包括多边形f。
在一些可能的实施方式中,装置300还包括:第二列表确定模块307,被配置为:根据每个第二区域中所包含的每个凸角多边形相邻的凸角多边形的列表,确定与每个第二区域相邻的第二区域的列表。在一些可能的实施方式中,每个凸角多边形相邻的凸角多边形的列表还可以包括每个凸角多边形的顶点的个数和/或每个凸角多边形的顶点的坐标,第二列表确定模块307可以根据每个凸角多边形的顶点的个数和/或每个凸角多边形的顶点的坐标确定与每个第二区域相邻的第二区域的列表。可选地,当每个第二区域中的任意一个凸角多边形的任意两个顶点的坐标与另一个第二区域中的任意一个凸角多边形的两个顶点的坐标相同,则第二列表确定模块307可以确定这两个第二区域中的凸角多边形相邻,那么两个第二区域是相邻的。
可选地,与每个第二区域相邻的第二区域的列表中可以包括与该第二区域同属于同一第一区域的第二区域,也可以包括与该第二区域属于不同一第一区域的第二区域。例如,如图2所示,对于A区域中的多边形簇1,与其相邻的第二区域的列表可以包括B区域的多边形簇1和多边形簇2和C区域的多边形簇3,则A区域的多边形簇1的相邻列表里有3条记录,分别是(B,1)、(B,2)、(C,3)。这样,通过将相邻的凸角多边形组合为多个第二区域,将细粒度导航网格简化成转化为粗粒度导航网格,使得游戏引擎加载游戏场景时将粗粒度导航网格加载到内存中,大大减少了需要记录的数据量,例如,仅需加载A-D区域中所有的多边形簇及其相邻的多边形簇的信息。
在一些可能的实施方式中,装置300还包括:第四计算模块308,被配置为根据每个第二区域中所包含的凸角多边形的坐标,计算每个凸角多边形的中心坐标;第五计算模块309,被配置为计算所包含的凸角多边形的中心坐标的平均值,作为所述每个第二区域的坐标。例如对于A区域中的多边形簇1,第四计算模块308根据凸角多边形b-e的坐标分别计算每个凸角多边形的中心坐标,并第五计算模块309计算凸角多边形b-e的中心坐标的平均值,作为A区域的多边形簇1的坐标。
如图3所示,装置300包括第一计算模块304,被配置为计算所述游戏场景中从第一点至第二点途经所述多个第二区域中的一组第二区域的第一路线。
在一些可能的实施方式中,装置300还包括:第二确定模块310,被配置为根据所述第一点的坐标,确定所述第一点所属的第一区域、凸角多边形和第二区域;和第三确定模块311,被配置为根据所述第二点的坐标,确定所述第二点所属的第一区域、凸角多边形和第二区域。例如,仍以图2为例,对于游戏场景中的S点和E点,第二确定模块310根据S点座标的xz值计算出S点所属的A区域,可选地,可以加载A区域中的细粒度导航网格,计算S点所属的凸角多边形b,可以通过查找该凸角多边形b属于哪个多边形簇,来确定S点所属的多边形簇1;同理,第三确定模块311根据E点座标的xz值计算出E点所属的D区域、可选地,可以加载D区域中的细粒度导航网格,计算E点所属的凸角多边形f,可以通过查找该凸角多边形f属于哪个多边形簇,来确定E点所属的多边形簇3。
在一些可能的实施方式中,第一计算模块304被配置为根据所述第一点所属的第二区域、与所述第一点所属的第二区域相邻的第二区域的列表,根据所述第二点所属的第二区域、与所述第二点所属的第二区域相邻的第二区域的列表,以及每个第二区域的坐标,计算所述游戏场景中从第一点至第二点途经所述多个第二区域中的一组相邻的第二区域的第一路线。例如,对于A区域的多边形簇1中的S点和D区域的多边形簇3中的E点,第一计算模块304根据S点所属的A区域的多边形簇1、与多边形簇1相邻的第二区域的列表,即(B,1)、(B,2)、(C,3),以及根据E点所属的D区域的多边形簇3、与多边形簇3相邻的第二区域的列表,即(B,1),计算所述游戏场景中从S点至E点途经的一组多边形簇的第一路线,即(A,1)->(B,1)->(D,3)。可选地,可以通过启发式搜索算法进行计算,在图形平面上从多个节点的路径计算出最低通过成本的算法,例如A*算法。
如图3所示,装置300包括第二计算模块305,被配置为根据所述第一路线,计算从所述第一点至所述第二点途经所述一组第二区域中的一组凸角多边形的第二路线。这样,通过首先在粗粒度导航网格中计算第一路线,再基于第一路线在细粒度导航网格中计算精确路线,可以显著减少服务器的计算量及内存的占用空间,大大减少了计算时间,提高了计算效率。
在一些可能的实施方式中,第二计算模块305被配置为根据所述第一路线,所述第一点所属的凸角多边形、所述第二点所属的凸角多边形,以及与所述第一路线所途经的所述一组相邻的第二区域的中凸角多边形相邻的凸角多边形的列表,以及每个凸角多边形的中心坐标,计算从所述第一点至所述第二点途经所述一组相邻的第二区域中的一组相邻的凸角多边形的第二路线。
如图2所示,对于所述游戏场景中的S点和E点,第一路线途经的一组多边形簇为(A,1)->(B,1)->(D,3)。为了获得精确路线,第二计算模块305加载(A,1)->(B,1)->(D,3)经过的细粒度导航网格,包括S点所属的A区域中的凸角多边形b(记录为A(b))、E点所属的D区域中的凸角多边形f(记录为D(f)),以及与第一路线所途经的多边形簇(A,1)、(B,1)、(D,3)中凸角多边形相邻的凸角多边形的列表,以及每个凸角多边形的中心坐标,计算从所述第一点至所述第二点途经所述一组相邻的第二区域中的一组相邻的凸角多边形的第二路线,即S->A(b)->A(e)->B(a)->B(b)->B(c)->D(f)->E。可选地,获得第二路线后,可以卸载已加载的细粒度导航网格,减少内存占用。
这样,通过将游戏场景划分为多个第一区域并将每个第一区域划分为若干个凸角多边形,形成细粒度导航网格,再将相邻的凸角多边形组合为多个第二区域,形成粗粒度导航网格,允许在游戏场景中计算路线时,仅需要加载粗粒度导航网格来获得第一路线,再加载第一路线所途经的细粒度网格,来获得精确路线,显著减少减小了服务器的内存消耗、减小了所需的运算量、缩短了运算所需时间因而提高了运算效率,同时能够避免卡顿、呈现高质量的游戏场景。
示例性设备
在介绍了本发明示例性实施方式的方法和装置之后,接下来,介绍根据本发明的另一示例性实施方式的在游戏场景计算路线的装置。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
在一些可能的实施方式中,根据本发明的在游戏场景计算路线的装置可以至少包括至少一个处理单元、以及至少一个存储单元。其中,所述存储单元存储有程序代码,当所述程序代码被所述处理单元执行时,使得所述处理单元执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的在游戏场景计算路线的方法中的步骤。例如,所述处理单元可以执行如图1中所示的步骤S101、将所述游戏场景划分为多个第一区域;步骤S102、根据游戏场景中的特征,将每个第一区域划分为若干个凸角多边形;步骤S103、将相邻的凸角多边形组合为多个第二区域;步骤S104、计算所述游戏场景中从第一点至第二点途经所述多个第二区域中的一组第二区域的第一路线;步骤S105、根据所述第一路线,计算从所述第一点至所述第二点途经所述一组第二区域中的一组凸角多边形的第二路线。
下面参照图4来描述根据本发明的这种实施方式的在游戏场景计算路线的装置10。图4显示的在游戏场景计算路线的装置10仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图4所示,在游戏场景计算路线的装置10以通用计算设备的形式表现。在游戏场景计算路线的装置10的组件可以包括但不限于:上述至少一个处理单元16、上述至少一个存储单元28、连接不同系统组件(包括存储单元28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、图形加速端口、处理器或者使用多种总线结构中的任意总线结构的局域总线。
存储单元28可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32,还可以进一步只读存储器(ROM)34。
存储单元28还可以包括具有一组(至少一个)程序模块42的程序/实用工具40,这样的程序模块42包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
在游戏场景计算路线的装置10也可以与一个或多个外部设备14(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该在游戏场景计算路线的装置10交互的设备通信,和/或与使得该在游戏场景计算路线的装置10能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,在游戏场景计算路线的装置10还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与在游戏场景计算路线的装置10的其它模块通信。应当明白,尽管图中未示出,可以结合在游戏场景计算路线的装置10使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
示例性程序产品
在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在系统上运行时,所述程序代码用于使所述系统执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的在游戏场景计算路线的方法中的步骤,例如,所述系统可以执行如图1中所示的步骤S101、将所述游戏场景划分为多个第一区域;步骤S102、根据游戏场景中的特征,将每个第一区域划分为若干个凸角多边形;步骤S103、将相邻的凸角多边形组合为多个第二区域;步骤S104、计算所述游戏场景中从第一点至第二点途经所述多个第二区域中的一组第二区域的第一路线;步骤S105、根据所述第一路线,计算从所述第一点至所述第二点途经所述一组第二区域中的一组凸角多边形的第二路线。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
如图5所示,描述了根据本发明的实施方式的在游戏场景计算路线的程序产品50,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了在游戏场景计算路线的设备的若干装置或子装置,但是这种划分仅仅并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
Claims (18)
1.一种在游戏场景计算路线的方法,包括:
将所述游戏场景划分为多个第一区域;
根据游戏场景中的特征,将每个第一区域划分为若干个凸角多边形,具体包括:根据所述游戏场景中的地理特征和/或人物特征,确定每个第一区域中所划分的凸角多边形的个数、每个凸角多边形的顶点的个数和/或每个凸角多边形的顶点的坐标;
还包括:根据每个凸角多边形的顶点的个数和/或每个凸角多边形的顶点的坐标,确定每个第一区域中与每个凸角多边形相邻的凸角多边形的列表,
将相邻的凸角多边形组合为多个第二区域,包括:根据所确定的每个第一区域中与每个凸角多边形相邻的凸角多边形的列表,将每个第一区域中的相邻的凸角多边形组合为多个第二区域;
计算所述游戏场景中从第一点至第二点途经所述多个第二区域中的一组第二区域的第一路线;
根据所述第一路线,计算从所述第一点至所述第二点途经所述一组第二区域中的一组凸角多边形的第二路线。
2.根据权利要求1所述的方法,其中将所述游戏场景划分为多个第一区域包括:
根据所述游戏场景的尺寸,将所述游戏场景划分为尺寸相等的多个第一区域;
记录每个第一区域的顶点坐标。
3.根据权利要求1所述的方法,其中所述游戏场景中的特征包括:所述游戏场景中的地理特征和/或人物特征。
4.根据权利要求3所述的方法,其中根据游戏场景中的特征,将每个第一区域划分为若干个凸角多边形包括:
根据所述游戏场景中的地理特征和/或人物特征,确定每个第一区域中的不可到达区域和可到达区域;
将每个第一区域中的可到达区域划分为若干个凸角多边形。
5.根据权利要求1所述的方法,还包括:
根据每个第二区域中所包含的每个凸角多边形相邻的凸角多边形的列表,确定与每个第二区域相邻的第二区域的列表。
6.根据权利要求5所述的方法,还包括:
根据每个第二区域中所包含的凸角多边形的坐标,计算每个凸角多边形的中心坐标;
计算所包含的凸角多边形的中心坐标的平均值,作为所述每个第二区域的坐标。
7.根据权利要求6所述的方法,还包括:
根据所述第一点的坐标,确定所述第一点所属的第一区域、凸角多边形和第二区域;和
根据所述第二点的坐标,确定所述第二点所属的第一区域、凸角多边形和第二区域。
8.根据权利要求7所述的方法,其中计算所述游戏场景中从第一点至第二点途经所述多个第二区域中的一组第二区域的第一路线包括:
根据所述第一点所属的第二区域、与所述第一点所属的第二区域相邻的第二区域的列表,根据所述第二点所属的第二区域、与所述第二点所属的第二区域相邻的第二区域的列表,以及每个第二区域的坐标,计算所述游戏场景中从第一点至第二点途经所述多个第二区域中的一组相邻的第二区域的第一路线。
9.根据权利要求8所述的方法,其中根据所述第一路线,计算从所述第一点至所述第二点途经所述一组第二区域中的一组凸角多边形的第二路线包括:
根据所述第一路线,所述第一点所属的凸角多边形、所述第二点所属的凸角多边形、与所述第一路线所途经的所述一组相邻的第二区域中的凸角多边形相邻的凸角多边形的列表,以及每个凸角多边形的中心坐标,计算从所述第一点至所述第二点途经所述一组相邻的第二区域中的一组相邻的凸角多边形的第二路线。
10.一种在游戏场景计算路线的装置,包括:
第一划分模块,被配置为将所述游戏场景划分为多个第一区域;
第二划分模块,被配置为根据游戏场景中的特征,将每个第一区域划分为若干个凸角多边形,以及根据所述游戏场景中的地理特征和/或人物特征,确定每个第一区域中所划分的凸角多边形的个数、每个凸角多边形的顶点的个数和/或每个凸角多边形的顶点的坐标;
组合模块,被配置为将相邻的凸角多边形组合为多个第二区域;
第一计算模块,被配置为计算所述游戏场景中从第一点至第二点途经所述多个第二区域中的一组第二区域的第一路线;
第二计算模块,被配置为根据所述第一路线,计算从所述第一点至所述第二点途经所述一组第二区域中的一组凸角多边形的第二路线;
还包括:
第一列表确定模块,被配置为根据每个凸角多边形的顶点的个数和/或每个凸角多边形的顶点的坐标,确定每个第一区域中与每个凸角多边形相邻的凸角多边形的列表;
其中所述组合模块被配置为:
根据所确定的每个第一区域中与每个凸角多边形相邻的凸角多边形的列表,将每个第一区域中的相邻的凸角多边形组合为多个第二区域。
11.根据权利要求10所述的装置,其中所述第一划分模块包括:
第一划分子模块,被配置为根据所述游戏场景的尺寸,将所述游戏场景划分为尺寸相等的多个第一区域;
记录模块,被配置为记录每个第一区域的顶点坐标。
12.根据权利要求10所述的装置,其中所述游戏场景中的特征包括:所述游戏场景中的地理特征和/或人物特征。
13.根据权利要求12所述的装置,其中所述第二划分模块包括:
第一确定模块,被配置为根据所述游戏场景中的地理特征和/或人物特征,确定每个第一区域中的不可到达区域和可到达区域;
第二划分子模块,被配置为将每个第一区域中的可到达区域划分为若干个凸角多边形。
14.根据权利要求10所述的装置,还包括:
第二列表确定模块,被配置为根据每个第二区域中所包含的每个凸角多边形相邻的凸角多边形的列表,确定与每个第二区域相邻的第二区域的列表。
15.根据权利要求14所述的装置,还包括:
第四计算模块,被配置为根据每个第二区域中所包含的凸角多边形的坐标,计算每个凸角多边形的中心坐标;
第五计算模块,被配置为计算所包含的凸角多边形的中心坐标的平均值,作为所述每个第二区域的坐标。
16.根据权利要求15所述的装置,还包括:
第二确定模块,被配置为根据所述第一点的坐标,确定所述第一点所属的第一区域、凸角多边形和第二区域;和
第三确定模块,被配置为根据所述第二点的坐标,确定所述第二点所属的第一区域、凸角多边形和第二区域。
17.根据权利要求16所述的装置,其中所述第一计算模块被配置为:
根据所述第一点所属的第二区域、与所述第一点所属的第二区域相邻的第二区域的列表,根据所述第二点所属的第二区域、与所述第二点所属的第二区域相邻的第二区域的列表,以及每个第二区域的坐标,计算所述游戏场景中从第一点至第二点途经所述多个第二区域中的一组相邻的第二区域的第一路线。
18.根据权利要求17所述的装置,其中所述第二计算模块被配置为:
根据所述第一路线,所述第一点所属的凸角多边形、所述第二点所属的凸角多边形、与所述第一路线所途经的所述一组相邻的第二区域中的凸角多边形相邻的凸角多边形的列表,以及每个凸角多边形的中心坐标,计算从所述第一点至所述第二点途经所述一组相邻的第二区域中的一组相邻的凸角多边形的第二路线。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610545167.5A CN106110656B (zh) | 2016-07-07 | 2016-07-07 | 在游戏场景计算路线的方法和装置 |
US15/609,027 US10593110B2 (en) | 2016-07-07 | 2017-05-31 | Method and device for computing a path in a game scene |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610545167.5A CN106110656B (zh) | 2016-07-07 | 2016-07-07 | 在游戏场景计算路线的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106110656A CN106110656A (zh) | 2016-11-16 |
CN106110656B true CN106110656B (zh) | 2020-01-14 |
Family
ID=57283808
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610545167.5A Active CN106110656B (zh) | 2016-07-07 | 2016-07-07 | 在游戏场景计算路线的方法和装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10593110B2 (zh) |
CN (1) | CN106110656B (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106709974B (zh) * | 2016-12-20 | 2020-04-21 | 网易(杭州)网络有限公司 | 游戏场景绘制方法及装置 |
CN106964156B (zh) * | 2017-03-24 | 2020-10-27 | 腾讯科技(深圳)有限公司 | 一种寻路方法以及装置 |
CN106790224B (zh) * | 2017-01-13 | 2018-09-07 | 腾讯科技(深圳)有限公司 | 一种控制模拟对象寻路的方法及服务器 |
USD914734S1 (en) * | 2018-02-05 | 2021-03-30 | St Engineering Land Systems Ltd | Display screen or portion thereof with graphical user interface |
CN108619722A (zh) * | 2018-05-03 | 2018-10-09 | 网易(杭州)网络有限公司 | 竞速游戏的路线指示方法及装置 |
US10792568B1 (en) * | 2018-09-24 | 2020-10-06 | Amazon Technologies, Inc. | Path management for virtual environments |
CN109598777B (zh) * | 2018-12-07 | 2022-12-23 | 腾讯科技(深圳)有限公司 | 图像渲染方法、装置、设备及存储介质 |
CN109675316B (zh) * | 2019-01-08 | 2022-04-15 | 网易(杭州)网络有限公司 | 游戏场景图生成方法及装置 |
US11241621B2 (en) * | 2019-09-03 | 2022-02-08 | Square Enix Co., Ltd. | Non-transitory computer-readable medium and video game processing system |
JP2021037140A (ja) | 2019-09-04 | 2021-03-11 | 株式会社スクウェア・エニックス | ビデオゲーム処理プログラム、及びビデオゲーム処理システム |
CN110681156B (zh) * | 2019-10-10 | 2021-10-29 | 腾讯科技(深圳)有限公司 | 虚拟世界中的虚拟角色控制方法、装置、设备及存储介质 |
CN110917624B (zh) * | 2019-12-06 | 2024-01-23 | 珠海海鸟科技有限公司 | 路径确定方法、装置及设备 |
CN111135574B (zh) * | 2019-12-25 | 2023-04-07 | 网易(杭州)网络有限公司 | 游戏场景生成方法、装置、计算机可读介质及电子设备 |
CN111481931B (zh) * | 2020-04-13 | 2023-07-25 | 网易(杭州)网络有限公司 | 游戏中虚拟对象的寻路控制方法、电子设备及存储介质 |
CN111773687A (zh) * | 2020-06-30 | 2020-10-16 | 完美世界(北京)软件科技发展有限公司 | 地图寻路方法和装置、存储介质和电子装置 |
CN112190946B (zh) * | 2020-10-21 | 2024-07-09 | 网易(杭州)网络有限公司 | 一种游戏场景中的路径生成方法及装置 |
CN113144607B (zh) * | 2021-04-21 | 2024-07-09 | 网易(杭州)网络有限公司 | 游戏中虚拟对象的寻路方法、装置及电子设备 |
JP2023011071A (ja) * | 2021-07-11 | 2023-01-23 | 株式会社スクウェア・エニックス | プラン処理プログラムおよびプラン処理システム |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102074049A (zh) * | 2011-03-01 | 2011-05-25 | 哈尔滨工程大学 | 基于运动视点的大范围地形调度简化方法 |
CN104410661A (zh) * | 2014-10-21 | 2015-03-11 | 刘昊 | 一种基于地理位置的消息提醒方法、设备和工具 |
CN104867402A (zh) * | 2014-02-25 | 2015-08-26 | 高德软件有限公司 | 一种离线的逆地理编码的方法及其装置和终端设备 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050071306A1 (en) * | 2003-02-05 | 2005-03-31 | Paul Kruszewski | Method and system for on-screen animation of digital objects or characters |
DE112005003003T5 (de) * | 2004-12-10 | 2007-11-15 | Kyoto University | System, Verfahren und Programm zum Komprimieren von dreidimensionalen Bilddaten sowie Aufzeichnungsmedium hierfür |
CN101174278A (zh) * | 2006-11-03 | 2008-05-07 | 北京中电华大电子设计有限责任公司 | 交互版图工具中的最短路径实时查找算法 |
CN101241507B (zh) * | 2008-01-17 | 2011-09-14 | 腾讯科技(深圳)有限公司 | 一种地图寻路方法及系统 |
US20130321400A1 (en) * | 2012-06-05 | 2013-12-05 | Apple Inc. | 3D Map Views for 3D Maps |
CN103593546B (zh) * | 2012-08-17 | 2015-03-18 | 腾讯科技(深圳)有限公司 | 一种无动态阻挡网络游戏系统及其处理方法 |
CN103198234A (zh) * | 2013-04-25 | 2013-07-10 | 腾讯科技(深圳)有限公司 | 一种寻路方法和装置 |
CN104613976B (zh) * | 2014-08-26 | 2017-12-15 | 腾讯科技(深圳)有限公司 | 确定路径的方法及装置 |
CN104548597B (zh) * | 2014-12-26 | 2018-06-01 | 北京像素软件科技股份有限公司 | 导航网格的自动生成方法和装置 |
-
2016
- 2016-07-07 CN CN201610545167.5A patent/CN106110656B/zh active Active
-
2017
- 2017-05-31 US US15/609,027 patent/US10593110B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102074049A (zh) * | 2011-03-01 | 2011-05-25 | 哈尔滨工程大学 | 基于运动视点的大范围地形调度简化方法 |
CN104867402A (zh) * | 2014-02-25 | 2015-08-26 | 高德软件有限公司 | 一种离线的逆地理编码的方法及其装置和终端设备 |
CN104410661A (zh) * | 2014-10-21 | 2015-03-11 | 刘昊 | 一种基于地理位置的消息提醒方法、设备和工具 |
Also Published As
Publication number | Publication date |
---|---|
US10593110B2 (en) | 2020-03-17 |
CN106110656A (zh) | 2016-11-16 |
US20180012403A1 (en) | 2018-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106110656B (zh) | 在游戏场景计算路线的方法和装置 | |
US11270039B2 (en) | Road network generation | |
JP6828044B2 (ja) | ルート逸脱認識方法、端末、および記憶媒体 | |
US8824337B1 (en) | Alternate directions in hierarchical road networks | |
CN106964156B (zh) | 一种寻路方法以及装置 | |
US10288437B2 (en) | Routing with data version stitching | |
CN108229740B (zh) | 一种商圈边界的确定方法、装置、服务器及存储介质 | |
CN113240175B (zh) | 配送路线的生成方法、设备、存储介质和程序产品 | |
CN108303098A (zh) | 机器人路径规划方法及设备 | |
CA3163978A1 (en) | Region division with cell merging using spanning tree | |
CN114440916A (zh) | 一种导航方法、装置、设备及存储介质 | |
EP2589933B1 (en) | Navigation device, method of predicting a visibility of a triangular face in an electronic map view | |
CN116036604B (zh) | 数据处理方法、装置、计算机及可读存储介质 | |
US11057314B1 (en) | Method for automatic management of capacity and placement for global services | |
US10743142B2 (en) | Constructing a map of a physical space | |
CN111870954A (zh) | 一种高度图生成方法、装置、设备及存储介质 | |
KR100540899B1 (ko) | 지리 정보 데이터를 압축하는 방법 | |
CN112263836A (zh) | 虚拟场景的处理方法和装置以及存储介质 | |
CN113159356A (zh) | 路线规划方法、装置、终端设备及存储介质 | |
US11163715B1 (en) | CGRA accelerator for weather/climate dynamics simulation | |
US20240027223A1 (en) | Determining motion in indoor space using probabilistic representation of motion transition | |
CN116028679B (zh) | 一种数据处理方法、装置及设备 | |
CN115512065B (zh) | 一种基于分块化的大规模场景下实时地图构建方法和装置 | |
CN113485762B (zh) | 用可配置器件卸载计算任务以提高系统性能的方法和装置 | |
CN116989812A (zh) | 路径规划方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |