我的Roguelike开发:探索矿坑
矿坑的结构上来说,与昨天展示的洞穴非常相似。主要的区别是矿坑有多个层次或“楼层”。
这些楼层是随机生成的,但在一个游戏/存档中,矿坑是持久的。我的方法是每个矿坑都持有一个“FloorRecord”,用于存储楼层的数据:索引、生成种子、玩家是否访问过该楼层、哪些地砖被“发现”等。
当更改楼层时,过程如下:
-
我的LevelManager实例化一个新的矿坑场景
-
它查找适合的floor_record(或创建它,如果不存在)
-
生成器(重新)构建该楼层使用其(存储的)生成_seed
-
由于生成是可预测的,相同的楼层布局和楼梯根据种子重建
-
如果楼层有任何已发现的_tiles,则保存的已发现的_tiles被加载
-
上一个场景实例被丢弃
后续,FloorRecord还将包括对敌人、NPC、宝箱、物品等的引用。这将允许玩家像这样做:在第 2 楼放下一把剑,离开矿坑,做一些任务,后来回来,发现剑仍然在第 2 楼。
我可能会在将来实现的功能是“暂时的持久性”。即,如果玩家离开一天,剑仍然在那里。但是,如果他们离开一个月,剑就消失了——可能被一个矮人或一只巨蛤蟆拿走。
与洞穴一样,我基于以下算法生成我的生成算法:https://gameidea.org/2025/01/20/procedural-cave-generation-in-godot-2d/
评论 (0)