惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

小众软件
小众软件
MyScale Blog
MyScale Blog
N
News and Events Feed by Topic
IT之家
IT之家
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
有赞技术团队
有赞技术团队
T
The Blog of Author Tim Ferriss
The Cloudflare Blog
博客园 - 聂微东
Apple Machine Learning Research
Apple Machine Learning Research
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
美团技术团队
V
Visual Studio Blog
M
MIT News - Artificial intelligence
V
V2EX
博客园_首页
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Blog — PlanetScale
Blog — PlanetScale
F
Full Disclosure
H
Help Net Security
MongoDB | Blog
MongoDB | Blog
博客园 - 叶小钗
S
SegmentFault 最新的问题
博客园 - 三生石上(FineUI控件)
D
Docker
Engineering at Meta
Engineering at Meta
博客园 - Franky
aimingoo的专栏
aimingoo的专栏
Jina AI
Jina AI
N
Netflix TechBlog - Medium
宝玉的分享
宝玉的分享
大猫的无限游戏
大猫的无限游戏
人人都是产品经理
人人都是产品经理
云风的 BLOG
云风的 BLOG
博客园 - 司徒正美
I
InfoQ
G
Google Developers Blog
L
LangChain Blog
F
Fortinet All Blogs
博客园 - 【当耐特】
Hugging Face - Blog
Hugging Face - Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
WordPress大学
WordPress大学
A
Arctic Wolf
Martin Fowler
Martin Fowler
G
GRAHAM CLULEY
L
LINUX DO - 热门话题
C
Cisco Blogs
Y
Y Combinator Blog
罗磊的独立博客

机核

游戏性能旗舰最强之选,一加 Ace 6 至尊版国补到手价2999元起 6元钱自己更换电动车刹车线 《生化危机9:安魂曲》编剧Haris Orkin专访 摸金游戏?音乐游戏!暗区新赛季这把能弹的琴有何来历? 好评国产武侠SRPG《息风谷战略》免费DLC现已推出 | 机核 GCORES 碎片 《生化危机:安魂曲》将于5月实装首个免费更新内容 | 机核 GCORES 新锐东方游戏,谱写世界新章! 沉浸式恋爱视觉小说游戏《心象演算》免费试玩版现已正式上线 | 机核 GCORES 互动影游《代号三国:龙起》上线!穿越三国与曹操并肩、与佳人同行、与权谋博弈! 《老头收集梦想生活》,游戏酒桌会6,录音笔VOL.689 | 机核 GCORES 破界·共生——《白日梦:无限世界》五大核心游戏特点解析 价格已到史低,锐龙5 9600X/锐龙7 9700X正适合抄底 时间循环之旅即刻启程!《归环》一周目测试今日开启 热门在线韩游变魂游,洛奇衍生作能否打破“花瓶”魔咒? LG UltraGear evo 全新高端显示器系列:当“5K”遇见“AI”,不止强大,更懂热爱 反套路三国互动影游《代号三国:龙起》今日上线! 愿望单登记人数突破10万!备受瞩目的“女儿养成游戏” 《梦幻魔法公主》今日于Steam平台上线!限时八折优惠中 《黑神话:悟空》全球音乐会2026巡演将于4月29日12时开票 | 机核 GCORES “Snowguelike”生存肉鸽挖矿新作《蛙穿雪境》公布发售日期,5月7日正式上线 | 机核 GCORES 重塑移动办公、AI创作新境!全新华硕灵耀Air系列、ProArt 骁龙版震撼首发,创芯未来 均分88:《Saros》媒体评分汇总 | 机核 GCORES 上海烛龙公布合作遗迹探险游戏《吉时已到》首支预告片 | 机核 GCORES 首个独立游戏《萝薇日记》已上线Steam! 烛龙新IP《吉时已到》首曝,打造国内首款中式合作遗迹探险游戏 喜加一:《暗黑破坏神Ⅳ》国服现已开启限时免费领取本体活动 | 机核 GCORES 新版《生化危机》电影定于9月18日上映,官方网站现已上线 | 机核 GCORES 《冲就完事模拟器2》“星球大战”联动DLC正式宣布 | 机核 GCORES SteamController将于5月4日发售,售价99美元 | 机核 GCORES 事已至此,内存这么用也算省钱了,“2+1”非对称双通道应用实测 505游戏母公司现已收购《明末:渊虚之羽》IP | 机核 GCORES 基石 手动杂谈12|格斗游戏也能讲好故事 | 机核 GCORES I Love You Mr Snowball 我的向日葵小姐 会比GTA6先发售吗?最硬核的生存游戏《DAYZ》要推新DLC了 周记02:在2026遇到新怪谈 什么硬件,能让游戏Loading界面快速消失? | 机核 GCORES GadioSpec《百年风云世界杯》免费试听集 | 机核 GCORES 百年风云世界杯Vol.1丨足球崛起 | 机核 GCORES 100年前,一群人提前替我们经历了AI恐惧 | 机核 GCORES 《呼啸山庄》2026 ——一辆当代艺术的大卡车冲撞了我的大脑 手游《天穗之咲稻姬:日之香巡灵传》宣布将于7月27日停服 | 机核 GCORES 集结梦之队,征战世界杯,《最佳球会ONLINE》上线Steam 山水绝景随心拼 休闲建造游戏《千里山河录》Steam商店页公开 巫师帽、法袍、魔杖,为什么它们是影视、游戏里的法师必备三件套? 《无鞘信使》-第一章 复古风自动战斗肉鸽《终结之终结》Steam商店页面现已上线 电脑里有一款不破不立的MMO,录音笔VOL.688 | 机核 GCORES 《生化危机》30周年纪念周边发售,这次是真的“保护伞” 可靠耐用+AI全能,惠普战66 2025锐龙版深度体验 《时之书:无尽终章》关卡“大航海时代”全球首次公开 经典名作《乌龙派出所》改编经营模拟游戏《乌龙派出所~阿两的商店街物语~》正式宣布支持简体中文 明日开冲,解锁反套路三国互动影游《代号三国:龙起》即将上线 独立游戏《这是我的宝藏!》已发售~ 降低难度不是唯一解,无压力死亡也是好体验 Netflix官宣新片《普通人》:讲述韩国现代史上的权力风暴 《生化危机:安魂曲》全球销量现已突破700万份 《绝地鸭卫》PC版5月15日正式发售 亡妻回忆录?女性向情感叙事游戏《S-mail》现已正式发售 全新酷黑风格,酷睿Ultra 200S PLUS的高性价比搭档!七彩虹BATTLE-AX B860M-PLUS S WIFI7 V20 超级黑刃主板测评 胖狗 索尼发布了港台地区PS5产品价格调整公告,将于5月1日起实施 二次元怪猎+性感美女!《碧蓝幻想:无尽黄昏》开启Beta公测 这款怪谈类型中式恐怖游戏居然更新了?! 《百日战纪 -最终防卫学园-》改编漫画将于今年冬季开启连载 《如被附身,请致电我们》:匈牙利黑色幽默恐怖小说 《竹屿山房杂部卷五》(译文) 大树 超越引擎 摄影分享丨四月 碎片杂记vol.72 当老式FPS与老式动画技术碰撞出新时代的火花—《神探杰克鼠》 想做独游,如何避免首个项目就褒姒? 在线多人动作游戏《OCTOPinbs》将于5月12日上线Steam! 《酒鬼女神的酒诡》确定将于2026年登陆Steam 《CRYMELIGHT》将于11月5日(周四)正式发售!4月25日开始预购! 钢铁国度MKI部落Evolution,蛮兵部分 【钢铁国度】部落-Primal MK I,蛮兵部分 这是一个高中生用ai跑出来的作品,我自称他为物理神话 钢铁国度MKI部落Metamorphosis,蛮兵部分上 钢铁国度MKI部落Metamorphosis,蛮兵部分下 INDIE Live Expo于4月25日举办:首发9款新作,超200款独立游戏亮相 暗黑卡牌策略新作《魔忌:穷鼠啮狸》发布全新中文试玩版和发售预告片,4月30日正式上线在即 战锤40K长篇小说:变节者・苦难主宰(三)(全书完) 战锤40K长篇小说:变节者・苦难主宰(二) 战锤40K长篇小说:变节者・苦难主宰(一) 英语语言学习丨短语专题1:短语的特点 唯一的EVE战争 【少前同人】【M200】战术人形会梦见音乐会吗 【昏迷3】即将发售,前作主角悉数到场!“恶灵”宋老师化身可操控角色 业内人士:游戏公司“十有八九”使用生成式AI,包括卡普空 欢庆一周年:《光与影:33号远征队》全新纪念艺术图、超值折扣与免费更新同步上线 才刚刚开始呢 【抽奖】《星际卡车司机》推出免费大型更新,四折平史低折扣进行中 四人合作FPS游戏《佣兵猎手》抢先体验重大更新 1 现已上线 Raw Fury新作《深馅地牢 Deep Dish Dungeon》将于今秋加入 XGP 塔防幸存者游戏《魔怪来袭》推出首个 DLC 《饿狼传说:群狼之城》1周年纪念!新DLC“沃尔夫冈·克劳萨”今日参战 猫狗相伴 欢乐闯关 双人合作平台跳跃游戏《猫狗同行》上线Steam商店页 《同行:月球逃脱》(Together: Moon Escape)上线将于明日上线Steam
关于瓦片式地图的随机迷宫生成机制探索
战术小强 · 2023-07-13 · via 机核

前言:上周末和同组的朋友们一起参加了CiGA Game Jam 2023的活动,以TOUCH为主题制作了一款类似《魔塔》的冒险小游戏,除了一套简单的元素交互系统之外,游戏里的一大重点是自动化的随机地图生成算法,它保证了每一局游戏的地图都是独特的。

本文就是来探讨这个比赛项目中的随机地图生成算法机制的。

正文

地图是游戏中非常重要的一个组成部分,它有许多不同的类型和设计方法,地图设计的好坏往往直接影响着玩家的游戏体验。

而无论是哪种地图设计方法,其本质都离不开数学概念中的“图”,即一类用于表示多个节点间连接关系的数据结构描述,以及由此派生出的许多算法。

即便是现在的各种3A大作,第一人称射击,动作角色扮演,开放世界等等类型的游戏,它们的地图设计从抽象层面上来说,依然是最简单的图结构,无非就是图中的节点包含的内容更丰富,连接更复杂多变罢了。

撇开这些高端的地图不谈,仅就传统的2D游戏而言,它们的地图机制和设计方案相对来说是比较有限的,可以是预先画好的一整张大地图,也可以是大小地图结合,通过类似“进入地图点”的方式衔接。

而当地图的构成方式被限定在“瓦片式地图”这个狭窄的范围内之后,地图的设计方法也变得相对确定起来。

第一类别自然是最常见的一种,即手工设计地图,通过编辑器转化为数据保存下来,并在游戏中读取展示。

这种做法好处很多,地图设计感强,可玩性和地图机制的平衡性可以设计的很好,也基本不会出现地图BUG。

但缺点也很明显,投入工时多,内容固定,反复游玩时无法提供新鲜感。

与之相对的就是第二类别,算法自动生成地图,这种做法的好处和缺点与第一类正好相反,它的设计感不好做,可玩性和机制平衡性也难以设计,地图BUG可能出现。

好处则是实时生成,随机性强,新鲜感消退较慢。

由此可以看出,算法生成地图这种方案更适合一部分开放世界或者RogueLike游戏。

基于瓦片式地图的生成算法有好几种,比如洞穴生成算法,迷宫生成算法和房间地图生成算法等,而接下来要介绍和讨论的是一种结合了迷宫生成和房间铺设两种机制的算法,用它能够生成一些同时具备多个房间和迷宫走廊的地图结构,很适用于RogueLike游戏。

它的基本思路就是按如下步骤生成迷宫地图:

  1. 选取房间

  2. 在房间外生成迷宫

  3. 用门连接所有迷宫走廊和房间

  4. 去除所有死胡同,留下单一的通路

对于第一步的“选取房间”,原作者采用了一个非常简单粗暴的方式,即随机选择房间的大小和位置若干次,如果随机出来的房间和其它已经选择好的房间没有重叠则将其选择出来,否则抛弃掉再来一次。

运行了一定次数的循环后便可以得到随机房间的分布。

这篇文章里提到了一种有些“特别”的房间生成算法,不同于常见的圆内随机取点加验证的方法,这种特别的生成方法借助了游戏引擎的物理系统的一些特性,它的操作方法大概描述如下:

  1. 通过圆内取点的方式随机生成一些房间,并且暂时不考虑它们相互重叠的问题。

  2. 给每个房间加上刚体和碰撞器

  3. 运行物理系统,此时这些房间会因为相互排斥而分离开来

  4. 在没有房间继续受到排斥后记录所有房间的当前位置即可

不得不说这一方案非常巧妙,但同时它的可实施性也确实不太高,尤其是在多线程快速生成地图的时候。

一个替代方案自然是手动模拟这个物理运算过程,比如采用AABB包围框算法不停遍历所有被选出来的房间并改变其坐标位置,直至所有房间都不再重叠为止。

至于在实际使用中如何选择,那就得看具体需求了。

有了生成好的房间,下一步就是在房间之外生成迷宫,由于这里并非是要生成真正意义上的迷宫,而是需要生成一些“通道走廊”来填充房间之外的区域,因此并没有采用一些经典的迷宫生成算法,而是采取了暴力开路的方式。

即遍历整个地图“内部”(也就是留出最外圈作为外墙)的每一个地块,如果发现它既不属于某个房间,也没有被打开,则从它开始选取任意方向“开路前进”,直至遇到房间墙壁或者地图外圈才转弯。

为了增加生成算法的多样性,在这个过程中加入一个随机“拐弯”的概率,即使没有遇到房间墙壁或者外圈,也会有一定概率发生拐弯。

到这里为止,地图里已经有了房间和房间外的“迷宫”,但这些区域都没有被连接到一起,因此下一步便是寻找可以用于连接的地块,将它们修改为“门”即可。

这一步算法的核心要点在于“分区”的概念,即将不同的房间以及“迷宫走廊”都标识成不同的“区域”,然后在区域的邻接点上选择可以作为“门”的地块。

分区过程类似泛洪,即从一个点出发进行遍历,给房间内的空地块和迷宫走廊都打上“标签”,计算结束后会得到一张“分区地图”,之后只要从这个分区地图上找到可用的邻接点作为门即可。

到这里其实地图的生成就可以说是结束了,有了分布在各处的多个房间,有了连接房间的走廊,最后的消除死胡同其实是个可选项,主要看游戏本身是否需要保留这些“错误道路”。

甚至还可以继续添加一些细节,比如将某些特定位置的走廊扩展成小房间,用来放置一些过渡性的摆设或者机制等。

总之,这一套地图生成机制适合于同时对房间和迷宫元素都有需求的情况,而且还能对它进行灵活的定制化改造,在制作RogueLike游戏时是值得考虑的一种地图生成方案。

附言:我们组正在做的游戏就打算采用这种地图生成的方案,欢迎大家来看看

名称:《边界迷航》

链接:https://www.gcores.com/games/102523