寻路(一)【传奇游戏开发日记01】

生活中的寻路是这样的↓

游戏中的寻路是这样的↓

我们要绕开障碍物,才能到达终点

我知道没有什么问题是百度解决不了的,于是我搜索‘自动寻路’

终于找到了一个牛逼的算法:A星寻路

把地图分成很多个格子,每个格子里都有一个数字,0代表可走,1代表不可走(还可以2代表遮挡,3代表某某某),如下图所示↓↓

哪里可走哪里不可走,都记录在了一个int型的二维数组里。当然,用一维数组也可以,只要你定好原点和一个方向。

A星算法就是利用了这个数组,当玩家处于某个格子的时候,判断它身边的8个格子里的值,是否可走,可走就继续再寻找格子身边的格子,直到终点。

为了节省时间我直接借鉴(抄)过来了!

抄完后,就这样的↓

很简短(选了个代码最少的- -!)

测试了下,效果还不错

但是马上就发现问题了- -!

如果去终点的路径上怪物太多,距离太远,就会计算好久,卡住不动了- -!

我决定优化下(偷懒的方法- -!)

我发现问题在于格子太多了

比如下图这个城池↓

用计算器算了下,有28万个格子

难道是格子太多,增加了计算时间?

我决定减少格子

于是格子边长从0.5增加到了0.75

格子数少了16万

再测试下,,,还是一样

不行,格子数还要少! 但是...0.75已经是极限了,再改游戏体验就不好了

而且实际游戏中,障碍物会更多,因为怪物、玩家和宠物,是无法穿越的,会挡住你

更可恶的是它们还是一种会移动的障碍物

角色在事先规划好的路径上行走的时候,可能会被移动过来的怪物挡住了去路

我觉得单纯靠A星算法想节省时间不太容易!

毕竟走到很远的地方,如果地形太复杂,要计算的格子数确实是很多的

比如这张地图↓↓↓

根据算法,城中的格子应该都是要遍历一遍的,算下来有几万个格子吧!?

我整理了下需求,做任务不都是直接点下就传送过去吗?很少让他跑过去的吧!

而且,就算要跑,也可以配置固定的路点数组,就像新手教程一样,按着固定路径走就完事了,如果在跑的时候,路径上有怪物挡住了,再用A星算法绕开就可以了,距离不远,计算量也小,就不卡了。

但是,固定路径有一点不好,就是你必须先走到离你最近的那个路点上,然后才能按照之前定好的路径走,所以有时候走的不是最短距离,但是问题不大,为了游戏不卡,还是可以接受的。

我又打开了网页玩了下‘船新版本’,发现是可以穿越怪物的,这样就大大节省了计算量,是个优化的好方法。

同时还发现,所有人都在一条固定的路径上跑,也没见哪个玩家‘不走寻常路’,大家排成整齐的队列,你追我赶!这个大概就是上面提到的固定路径了。

还可以把地图做简单点,比如上图中的城池,就可以画4个城门。不然,只有一个城门的城池,当你要去城外的时候,就要绕一大圈。

暂时就这样了,最后具体是什么样,下次再更新吧。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 225,226评论 6 524
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 96,509评论 3 405
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 172,523评论 0 370
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 61,181评论 1 302
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 70,189评论 6 401
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 53,642评论 1 316
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 41,993评论 3 431
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 40,977评论 0 280
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 47,527评论 1 326
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 39,547评论 3 347
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 41,661评论 1 355
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 37,250评论 5 351
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 42,991评论 3 340
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 33,422评论 0 25
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 34,571评论 1 277
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 50,241评论 3 382
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 46,737评论 2 366