Más contenido relacionado La actualidad más candente (20) 游戏地图自动生成2. 讲师介绍
• 姓名:林伟
• 昵称:小林子
• 性别:男
• 年龄: 19
• Id : skywind
• 格言:办公室就是我 di 家,电脑爱我我爱
ta
• 目标:游戏开发一块砖,哪里需要哪里搬
• EMAIL: weilin@corp.netease.com
3. 地图生成的五大认识误区
• 误区 1 :该算法只适用于 10 人以内的游戏。
• 误区 2 :自动地图生成效果不行,不如手工制作。
• 误区 3 :使用自动地图生成需大量改动引擎以及制作方式
。
• 误区 4 :我们的游戏已经开始开发了,来不及使用改技术
。
• 误区 5 :该算法不太科学,没见哪个主流网游使用。
8. 技术对比
• 传统技术基于传统 2D 游戏,难以 3D 化
• 新技术更加注重模仿 “自然状态”的各种规
律
• 传统技术需要大量图量单元用于拼接
• 新技术不需要大量图量单元进行拼接
17. Cellular Automata – 细胞自动机
浏览数组中每个格子
统计当前格子周围八个格子的“墙”的数量
如果墙数小于 X 值,就将当前格设为“地面”
如果墙数大于 Y 值,就将当前格设为“墙”
如果在 X-Y 之间,则当前格保持不变
实际生成中我们取 4-5 的模型
18. (插图) CA 处理后结果
• CA 处理结果如右图
• 同数组可以处理多次
• 现在我们有六块区域
• 此处需处理预设区域
• 出口等位置在此设定
• 剩下的就是连接它们
20. Battle in Space ( PKU-ACM 试题)
新游戏“ Battles in Space: Unification” (BSU) 在不久
的将来会发行:人类被分散到 N 个相互敌对的星
球上,玩家扮演某一星球的领主,使用外交与军
事技巧占领其余的星球。重构人类的新秩序。
特殊的“星际隧道”将两个星球连接在一起,使他们
可以进行交流,所有连接星球的隧道称为“地图”
当前开发者正致力于生成随即的星际地图,他们
将每两个星球是否相连用概率 p 来表示。。。。
27. 原地图生成
我们将前面 Cellular Automate 生成的类似细胞单元图,使用“自然连同图”算法
进行带噪声的直线连接,取区域中心作为结点位置。如果在画直线过程中不管
碰到目标区域或者非目标区域,都将其二者联合,重新计算可连通区域。最终
得到右边形似山洞的效果,我们称为“原地图”。
40. 中点位移修正法
• 先选择中点位移法生成任意给定大小的地形
• 将地形的高度压缩到 (0.1-0.4) 之间
• 整体高度增加 0.4 ,则处于( 0.5-0.8 )之间
• 按照原地图与地形大小的比例来划分
• 如果原地图某位置不是墙,那该区域平滑下降 0.4
• 用 (0.1-0.2) 之间的新地形和原地形作加法(避免路面太
平)
• 使用 Cellular Automata 将模型边角除去
• 使用平滑过滤器将模型平滑,最终导出高度图
41. 三维地形的 CA 处理
• 考虑地图上每个节点周围
26 个节点,数出周围 26
个节点中属于“山”的个数
N
• 如果 N 小于特定值,那把
该点删除
• 如果 N 大于特定值,那把
该点设置设置为山
55. 如何生成 / 放置 NPC?
1. NPC 生成 / 放置首要工作是参数模型抽象
2. 策划将给出 NPC 各项参数的范围批量生成
3. 评估地图各个区域的重要性
4. 根据路地图特点放置 NPC
本章只给出基本模型,具体游戏具体分析
56. NPC 简单模型
参 数 说 明
姓 名 将通过人名字典分别随机出姓与名并组合得到
性 别 随机生成
种 族 英雄、战士、德鲁伊、猎人之类的东西
等 级 根据给定范围生成
举 止 攻击,防卫,闲游,隐藏
范 围 怪物的活动范围,与格子计算
状 态 无意识,烦躁,怯懦,拼命
携 带 根据范围随机得到
57. 批量生成 NPC 需要指定什么?
参 数 说 明
数 量 生成多少个 NPC
第一种族 首要随机生成选择的种族
第一种族等级 范围值( 0-5 , 5-10 , 10-15 )或者具体值
第二种族 次要随机生成选择的种族
第二种族等级 同上
第三种族 最后随机生成选择的种族
第三种族等级 同上
总等级 所有 NPC 的等级合取值范围
总宝物 所有 NPC 携带的财富和
给定上述值后将根据种族与等级的范围批量生成 NPC
58. 网络资源
• René Vernon 的NPC模板:将 NPC 抽象为七个大类
别、二十七个小类别的方法。
• Jamis Buck 的NPC生成器:批量生成地牢游戏的
NPC 数据。
• NPC背景故事生成器:给定 NPC 的等级参数,它
将为 NPC 生成一段动人的背景故事。
63. 要素合成 – 增加游戏乐趣
• 将地图的轮廓提取出来,部署栅栏模型
• 在比较开阔的地方放置建筑或者标志
• 设置可打破的墙壁将某些支路封闭隐藏
• 在太阳经常照射的方向布置草模型
• 在开阔的区域布置少量树模型
• 在某些区域开辟山洞连接其他场景
• 单独处理 BOSS 的生成与放置