【饥荒】关于随机地图生成的方式
介绍世界的生成方式
原文
我注意到,几乎没有人知道如何在饥荒mod里建立新的地图,所以我想分享我的知识。如果在任何事情上我错了,请纠正我或给我信息.
- 介绍世界的生成方式
- 世界生成的组成是
- 第一部分 预制物和静态布局
- 第二部分房间与造型
- 第三部分任务锁和钥匙
- 世界生成的组成是
世界生成的组成是?
第一部分: 预制物和静态布局
中英对照
预制物 –> Prefabs
静态布局 –>Static Layouts
预制物是,额…. 就本文来言是在地图上最小的单位,你在世界上看到的所有东西都是有预制物组成的.本文不准备创建任何预制物,只有说明如何让预制物显示在地图上.
静态布局是一系列的预设物安照特定的布局显示在地图上,每一次生成静态布局都是相同的.例:猪王,传输机零件.它们每次出现都是相同的.
译者注:猪王四周围的方尖碑都是相同的位置.
这两部分合在一起是因为每次生成是都是相同的.
第二部分:房间与造型
房间是在生成地图时第一个开始随机生成的,它包含 contents (内容,包括预制与静态布局), tags(标签) values(地表).
房间的标签确定了这个房间的特殊性,而value确定了地表,你将会发现自己站在什么地表上.
contents 定义为一个表,包括下列变量,
变量名 | 介绍 |
---|---|
countstaticlayouts | 一个表,包括你想要在这个房间里的静态布局 |
countprefabs | 一个表,包括你想要在这个房间里的预制物 |
distributepercent | 一个小数,确定预设物分布的几率 |
distributeprefabs | 一个表,规定每个预设物的几率 |
prefabdata | 确定如何修改预制物 |
乍一看,distributeprefabs和 countprefabs 看起来是相似的,但实际上他们是作用于两个不同的时候的.
distributeprefabs 不需要为每个预设物设置特定的数量,当你需要他均匀分布时使用这个.
例:在森林里所有的树时均匀分布的,但是没有一个特定的数量.
countprefabs当你需要一个特定的数量时使用.
countstaticlayouts类似于countprefabs,当显然它是用于静态布局的.
prefabdata用于设置预制物的起始条件,例:树木是一级还是两级,蜘蛛洞穴一级两级?
当然,你应该不需要使用prefabdata来控制树木的生长状态,因为不使用的话,会随机生成树木,我想……没有人会喜欢一个树林里所有的树木都相同吧?但是,你应该使用prefabdata来控制蜘蛛洞穴的生成,比如全部是一级的.
造型是介于静态布局与房间中的一种,它是在生成地图时生成的,大小有点像静态布局,但是他的随机方式像房间.
第三部分:任务,锁和钥匙
一个任务有5个重要的组成部分:
变量名 | 描述 |
---|---|
Locks | 确定任务是如何连接到其他任务的. |
Keys | 另一半,确定两个任务是否可以连接到彼此 |
Rooms | 本质上,这个任务由什么组成 |
room_bg 和 background_room | 用来充填其它区域 |
当世界生成时通过各自的task,检查key和locks,将可以匹配的task联系起来。
key和locks 对应的列表可以在locksandkeys.lua里找到。
key和locks主要是用来保持平衡的。
Rooms是用来填充整个世界的,你应当定义一个特定数量的Room。相反的 room_bg 和 background_room, 用来填充剩余部分,它们的数量是随机的。
(未完待续)
【饥荒】关于随机地图生成的方式相关推荐
- 这些坑别踩!游戏随机地图生成开发经验分享
当时虽然简单实现了目的,但后来自己也感到世界地图的呈现并不十分完美,恐怕也就只值95分.为了精益求精且给自己找点事做,便想对大地图的呈现方式做些微调. 之前略有瑕疵的世界地图 为何选择2D? 素材好找 ...
- [Unity]Roguelike随机地图生成(一)
初步随机地图生成 基础房间生成 房间门的判断 基础房间生成 首先需要确定每次房间生成都是在上一个房间的哪个方向上生成,为此需要声明一个枚举值来记录上下左右四个方向 创建脚本RoomGenerator, ...
- 随机地图生成--自己的一次尝试
最近照着网上的元胞自动机随机地图生成算法自己尝试着写了一下,发现效果不是很满意 local count1 = Tile_map.CheckNeighborWall(i,j)--1层墙的数量 local ...
- 《Dead Cells》的随机地图生成
而对于平台动作(Platformer)类型的 Roguelike 来说,精妙的关卡设计显得更加重要了,于是大家也在考虑其它方式,比如预生成大量关卡模块再随机选择.整合,或者混合两种方式来做.预生成关卡 ...
- 一个简单的2DRoguelike游戏随机地图生成思路
首先我们要先明确一张Roguelike地图里包含的最基本元素是什么,我的理解是房间与通道.我们可以将一张地图抽象成是房间与房间通过通道来连接. 那么基于这个大前提,我的思路如下. 以图中红色格子为中心 ...
- 游戏随机地图生成方法
对于大多数的游戏来说,内容的消耗都是开发商非常棘手的问题,而随机生成地图的做法则大大增加了游戏的可重复性,并且可以丰富玩家的体验.最近,海外一名资深开发者在博客中分享了他做随机生成地图的方式,以下请看 ...
- 随机迷宫生成算法浅析
摘要 本文对随机迷宫生成进行了初步的研究和分析,并给出了两种不同的生成算法.最终的算法结合了图的深度优先遍历.通过对比两种算法之间,可发现,在实际问题中,结合了离散数学的方法往往非更有效率且效果更佳. ...
- 【大作业】基于MATLAB的PRM算法的路径规划设计(随机地图+GUI+源码+报告)
基于MATLAB的PRM算法的路径规划设计 下载链接: [Matlab期末大作业]基于MATLAB的PRM算法的路径规划设计(大报告+源代码+注释) 课题内容和要求 学会运用MATLAB 解决实际优化 ...
- unity c#《自己做游戏》之 设计一个可以生成复杂解密地图的随机地图系统 第一篇 设计地图规划,每日更新!!!
随机地图,或是随机地牢,有很多实现方式.目前比较流行的方法是使用随机房间+剖分三角形加 prime算法生成. 还有一种方式就是反解有权图.个人认为反接有权图布局逻辑更可控一些. 需求 随机生成地图,且 ...
最新文章
- python简单代码演示效果-演示python如何创建和使用一个简单的元类的代码
- python 点击按钮采集图片_python多线程采集图片
- 从CLI监视OpenJDK
- Flask爱家租房--订单支付(支付过程)
- arcgis字段计算器无法赋值_Arcgis空间连接工具的妙用
- linux input输入子系统分析《四》:input子系统整体流程全面分析
- Linux IPC POSIX 共享内存
- RailsCasts中文版,#15 Fun with Find Conditions 使用hash为查询条件以便生成正确语法的SQL查询...
- Excel-查找和引用函数
- Vue3 京东到家项目实战第一篇(首页及登录功能开发) 进阶式掌握vue3完整知识体系
- 春风十里不如你、与IPC的邂逅
- 最好的网络拓扑制作软件
- eoLinker-AMS接口管理系统 项目管理教程
- matlab显示.mat格式多光谱图像
- 史上最全最新前端面试题(不定期更新,有问题欢迎评论区对线)
- 访问认证(三):Bearer
- 跟我学AngularJs:AngularJs入门及第一个实例
- 爱了,爱了,一款拯救直男的开源神器!
- html表格线条粗细,css 细线表格 css制作table细线表格常用属性
- Fabric 1.0源代码分析(40) Proposal(提案)
热门文章
- 微信不显示王者荣耀连接服务器,王者荣耀省级不显示,王者荣耀不用微信怎么登录...
- 说完列表说字典,说完字典说集合,滚雪球学 Python
- s7五杀大数据英雄_S7入围赛战报:首个五杀!LYN击败GMB
- 面试总结-拉开2014校招的序幕
- 添加网络计算机名,windows10系统,更改计算机名后,网络中看不见自己的电脑了。...
- java实现远程控制
- 西科大 软件体系结构内容总结
- linux 查看磁盘分区格式
- 删除word中一段话的空格
- 【软件下载】换新电脑记录下下载的软件时所需地址