游戏开发论坛

 找回密码
 立即注册
搜索
查看: 72033|回复: 1

Eagle Island的渐进式地图设计思路

[复制链接]

1万

主题

1万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
32017
发表于 2017-6-7 15:43:54 | 显示全部楼层 |阅读模式
200.png

  文/阿斌

  如果你也喜欢rogue like,喜欢研究随机生成地图的算法,可以看一下Eagle Island 的开发者分享的这篇文章:

  渐进式地图设计思路。The theory behind beautiful procedural 2D worlds



  Eagle Island的世界地图类似Metroidvania,由很多随机生成的小地图(也称为房间)组成。这个游戏是一个横版的2d平台跳跃类游戏,所以本文主要介绍基于瓦片(tile)的小地图的生成方式。

  第一步,生成初始房间

  根据房间在大地图里的位置,留出入口和出口,然后在剩余位置填充边框。注意房间的尺寸可以任意尺寸,这样会比较自然。

201.png

  第二步,从角落开始填充凹型块(concave fillers)

  如图,角落里填充的块就是凹进去的形状。注意不要覆盖出入口。

202.png

  第三步,填充凸型块(convex fillers)

  如下图中粉色块就是凸型块。

  注意,尽量用算法而不是预先设计好的模板来生成这样的凸型块,不然玩家很容易发现重复的地形。

203.png

  第四步,填充悬浮块(floating fillers)

  如图中绿色块。

  这些块可以与之前填充好的块重叠,这样可以随机出各种形状的地形。

204.png

  第五步,测试路线。

  现在可以测试这个房间是否拥有一条完整的通线,如下图的白线就是从入口到出口的一条通道。

  如果不存在完整的通线,可以考虑挖一条出来,或者重复之前的步骤重新生成一个房间。

205.png

  第六步,测试路线的可行性。

  有通路不代表就可以走。

  下图中,左边的平台只能从左侧跳上去,不过不影响。而右边的平台就有问题了,玩家没法跳上去。

206.jpg

  第七步,修复路线

  下图中,青色块就是升起的地面,这样玩家就可以跳到刚刚没法跳上去的平台了。

207.png

  哒哒,完成!

  最后,填充图片,这样一个房间就完成了。

  对比一下,下图中的各个色块就是之前算法中各步骤中生成的。

208.png

209.png

  注:我并没有确认,他们是用这个算法在游戏中动态生成地图,还是基于这个算法设计了一个工具给关卡设计师用。不过,并不影响学习哈。

  欢迎关注我的公众号:阿斌的日常,一起开心做游戏。

3

主题

9

帖子

58

积分

版主

Rank: 7Rank: 7Rank: 7

积分
58
发表于 2017-7-2 09:56:29 | 显示全部楼层
补充一下:
1. 标题翻译错了哈:不应是“渐进式”应该是“程序化”,《一种程序自动生成地图的设计思路》
2. 试玩demo后,感觉这个游戏应该是实时生成地图的,因为经常读条

0

主题

1

帖子

15

积分

新手上路

Rank: 1

积分
15
发表于 2018-5-23 14:38:50
现代互联科技有限公司(www.4090.cn
佛山高防最高240G防御 韩国服务器 香港服务器最低仅需600元
销售专员:小武 QQ:177866919 TEL:18664443104
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2024-3-29 07:54

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表