python开发的游戏生成_Dungeon generator 地牢游戏生成器

Dungeon Generator

Description

Dungeon generator that produces a 2D-array of different values that can be used to create a dungeon for a game. The script is written in Perl and generates a gif image of the dungeon.

The values used for the algorithm in the 2D array is the following:

1 = room

2 = road

3 = Flood fill, temporary used, not used in the resulting map (array).

4 = (not used)

5 = Player spawn (adds a position in the middle of a room)

6 = Boss spawn (adds a position in a room as far away as possible from player)

The image used in the script is just used to represent the actual dungeon. In a game, the 2D array would be used and the different values in the array would be parsed.

The result of the script can look like this: [dungeon.gif] dungeon.gif

The dungeon generator will be used in Qake voxel-engine that can be found here: https://www.assetstore.unity3d.com/#!/content/68150

And the result implemented in Qake voxel engine using the output from the script (though ported to C#) can look like this: [qake_dungeon.png] qake_dungeon.png

Run

perl genmap.pl && open dungeon.gif

Algorithm

The algorithm is very basic but produces very good random dungeons. The process is as follows.

Generate rooms of random sizes and make sure that they don't overlap and also got some distance between them.

Add doors in the middle of each room.

From each door, try to draw a road of a certain size outwards until it hits either a road or another room.

Flood fill each room of the map. Store the biggest flood filled map and remove the rest.

License

MIT License.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值