Roguelike 开发小组

创建于:2016-04-16

创建人: eastecho

99 信息 1405 成员
Roguelike 开发的相关讨论

简述下我用C#进行生成随机地图的方式,看是否可行

wszz0218 2016-04-16

期望效果:类似贪婪洞窟那样的地图,使用墙壁图块和地板图块两种图块进行生产地图

1、先定义地图大小,长 x、宽y

2、使用墙壁图块遍历地图进行覆盖

3、挖房间,引用《房间和迷宫:一个地牢生成算法》中的做法,定义找房间的次数,根据次数进行找房间并且生成

4、在剩余的墙壁中进行区域划分,长和宽大于2的墙壁区域进行随机迷宫的生成

5、迷宫生成算法不知道怎么生成?求教

6、把这些区域间的边找出来,然后进行连接

7、删除死胡同

近期喜欢的会员

 
eastecho 2016-04-16

wszz0218 死胡同删除的算法文中有涉及

 
Hysteria 2016-05-26

我是贪婪洞窟的开发者,我们的地图生成规则很简单。

主要的思路:

  1. 在 w * h 的网格上,随机选择一点为起始点。
  2. 从起始点开始,从north, south, weast, east, 四个方向中随机选择一个方向,前进n步(1 <= n <= w || h),并将此次前进走过的所有点记作道路,前进的终点作为下次前进的起始点。
  3. 重复2步骤s次。
  4. 重新在所有走过的网格中,选出一点作为新的起始点,重复2、3步。
  5. 重复4步骤c次
  6. 遍历所有走过的点,将与该点周围的所有不为道路的点记作墙体

    以上,并且通过改变 w、h、n、s、c 众变量,就可以生成各种丰富的随机地图了。
 
Humble Ray 2016-05-26

Hysteria 是你们做的!有没有什么开发的故事可以说说啊?

 
eastecho 2016-05-26

Hysteria 赞!欢迎多交流啊~

 
Hysteria 2016-05-27

Humble Ray  哈哈,就是加班加得比较多,其他没啥特别的吧,可能是作为程序猿的我不善于发现。

 
Hysteria 2016-05-27

eastecho 我是来多向你们学习学习的。

 
zkkPaL 2016-06-12

Hysteria 那么宝箱以及怪物的生成是不是也简单的是宝箱扔路尽头,然后通向宝箱的路扔一些怪物呢?以及你对宝箱、怪物等这类地图元素的生成算法有什么见解呢?

 
Hysteria 2016-06-14

zkkpal 宝箱的生成,差不多就是这么简单,因为我们的宝箱其实在地形属性上,可以算作墙体。我使用了两种方式来生成宝箱,一种是随机找到领路的墙体变成宝箱,一种是在单格路径的镜头生成宝箱。至于见解,我相信我是没有什么特别独到见解的,有一点可以说道的就是,在生成这类地图元素时,可以根据网格来限制一定范围内出现的同种元素的数量,毕竟要做roguelike,随机性不能太差了不是。

 
MotionWalk Studios 2016-06-15

zkkpal

关于宝箱,我们采用的方法是这样的:

  1. 尽量靠墙生成宝箱
  2. 移除掉挡住门或者通道的宝箱;
  3. 生成少量在房间当中的宝箱;
  4. 检查生成的宝箱是否阻挡了通路。

宝箱内容:根据当前地牢的层级来放置一些属于该等级的宝物,然后随机放置很少量的高级一些的宝物,最后有小于或者等于 1% 的机率放置一个远超出当层等级的宝物。

敌人:我们则是以玩家出现点为圆心,按照半径不断增加能力渐强的敌人。然后放置高级一些的 BOSS,一般不会出现在玩家附近。

当然,方法很多,只是我们目前采用的一种方法,中间还会有很多细节的变化。

 

加入 indienova

  • 建立个人/工作室档案
  • 建立开发中的游戏档案
  • 关注个人/工作室动态
  • 寻找合作伙伴共同开发
  • 寻求线上发行
  • 更多服务……
登录/注册