洞窟类地牢生成

作者:MimicNix indienova 2021-04-25
这又是一片涉及洞窟类地牢生成方法的文章。

前言
最近在扩展地牢类型

首先实现的是洞窟类地牢


一、洞窟生成


具体的实现方法是采用元细胞自动机,因为看起来的效果最自然。

实现流程

  • 首先在地图上生成随机墙(45%)



  • 用元细胞自动机 45 规则迭代



  • 迭代 5 次




洞窟的雏形已经显现

但是地牢的所有位置都应该可以抵达。

有两种方法可以解决:

  • 填补小的空洞
  • 将较大的洞窟连通起来

流程:

  • 首先用 FillFlow 算法检测出所有连通区域
  • 计算所有区域面积
  • 只保留面积最大的几个,过小的洞直接填掉
  • 将剩下次一级的洞窟的中心点去比对最大洞窟区域的点,找一个最近的位置。
  • 然后再从这个位置找一个本洞窟最近的点,然后挖个通道过去

挖通道可以用直线,也可以用随机的趋势去走。

二、地牢的内容放置

1. 首先要考虑的是出入口

流程

对洞窟生成一张评分图

评分的依据是这个点周围 9*9 的格子中有多少个墙

上图中左上角就是地牢的评分图

越是冷色调,评分越高

随机挑选一个评分最高的位置放置入口

然后将这个点周围的区域评分清零(也就是变成红色)

然后在剩余最高评分的几个点中挑一个离入口最远的地方放置出口

然后再将出口地区周围评分清零

以后每次放置一个地牢元素后都要把该点周围的地区评分清零,避免地面元素过于聚拢

2. 接下来就是放置宝箱祭坛等元素

可以利用地牢出口的生成方法继续生成

但是有时候有些元素你会希望他们生成在角落中,这样就需要重新生成一张评分图

例如首先本格是空地,然后周围墙的元素越多评分越高。当然原本有墙的地方评分是 0

然后检测之前生成过的元素,将部分区域评分提高或者拉低

然后再利用这张评分图去放置你所需要的元素

3. 怪物陷阱的生成

同理,可以参考用评分图的方式去生成。

比如空旷地区评分较高,如果加上宝箱那就更高

部分群居的怪物还可以增加周围区域本类怪物生成的评分

通道地域(墙与地面 1:1 附近)或者宝箱周围陷阱的生成评分就高

大致效果就是这样(图上没显示怪物和陷阱)

本文旨在阐述地牢生成的思路和概念。

实现上有诸多细节,多与细胞自动机与图像处理算法有关。本人精力有限,这里就不多赘述。


来源:indienova
原文:https://indienova.com/indie-game-development/cave-dungeon-generation/
最新评论
暂无评论
参与评论

商务合作 查看更多

编辑推荐 查看更多