目录
摘要1
一、高难多样性代码概况2
(一)高难代码简介2
(二)简述背景2
(三) 本文简述主要内容2
二、多样性代码的简述3
(一)代码的宏观简述3
1.敌人限制3
2.敌人属性4
(二)多样性代码特殊怪简述5
1.破坏型特殊怪5
2. 功能型特殊怪(常规)6
3. 功能型特殊怪(改变大小)7
三、多样性代码的攻略9
(一)代码设计的目的9
(二)明确目的后如何编写代码9
(三)编码时常见错误10
(四)编写精英化特殊怪11
(五)敌人不刷或者游戏闪退或无法正常游戏12
致谢14
参考文献15
摘要
随着深岩银河玩家水平的提升,现在少数玩家开始为了追求更高的难度需求通过深岩银河Custom Difficulty自定义难度代码 MOD写出高于官方五级难度的游戏代码。所以深岩银河高难泛指比官方五级难度更高的难度。主流分为多样性和非多样性,然后根据敌人的属性和数量倍数进行代码难度区分命名。具体综合难度因人而异。本文为了让更多的玩家了解深岩银河高难代码的制作和游玩注意事项,集合数位深岩银河代码高手一起写作。
关键词:自定义难度代码 ;高难 ;多样性
1、 高难多样性代码概况
(一)高难代码简介
高难代码是指通过深岩银河Custom Difficulty自定义难度代码 MOD写出的高于官方五级难度的游戏代码。主流分为多样性和非多样性代码。一般我们开房在房间名字里面写的如“5*2 60n”就是典型的非多样性高难代码,代表五级难度两倍敌人每份补给消耗60硝石;如果房间名字写的如“hard speedrun v1.6+”或者“Hazard 8-Nine Disater-1.7-4”就是典型的多样性高难代码,代表speedrun难度的1.6版本或者8-Nine难度的1.7.4版本。
(二)简述背景
深岩银河高难的游玩人数随着时间的发展有了很大的数量,但是会难度代码,或者说写的好的具有主流传播性质的高难代码数量较少,为了让更多的玩家能够更好的游玩高难或者对更好的制作高难代码,本文重点简述一下常规的思路。
(三) 本文简述主要内容
本文针对多样性代码的问题,制定出一套基于speedrun v1.6+为基础多样性代码的相关攻略,其主要简述了:
1. 简述了全局代码参数的调整说明
2. 简述了自定义特殊怪的参数说明
3. 简述了编写代码中可能遇到的相关问题与解答
二、多样性代码的简述
(一)代码的宏观简述
通过Custom Difficulty自定义难度代码编写的高难代码在宏观上可以在敌人的属性和数量等全局数据进行调整。(以hard speedrun v1.6+的参数为例)
1.敌人限制
"MaxActiveSwarmers": 小型单位敌人最大数量
"MaxActiveEnemies": 大型单位敌人最大数量
单位最大数量是刷潮时敌人同时存在的上限,这里不包括:大水母和母巢产生的单位。
"EnemyCountModifier": 敌人的数量倍数
敌人数量的倍数:一般1.5参数就是一倍,3就是两倍,4.5就是三倍,依次类推.(这是一个大概的参数,实际情况因个人代码为准)主要是和遭遇点数,固定单位点数,自然潮点数相乘后计算出最终敌人点数从而确定出现的敌人数量。
"EncounterDifficulty": 遭遇单位生成点数
遭遇单位生成点数是确定作为"遭遇"生成的敌人数量。当玩家接近洞穴中一个未探索的房间时,将生成一个遭遇生成。遭遇不包括固定单位。
"StationaryDifficulty": 固定单位生成点数
固定单位生成点数是确定会生成多少个固定位置的敌人。具体的固定单位为:
Spitballers(瘟疫吐珠), Brood Nexii(异虫母巢), Breeders(大水母)和Cave Leeches(洞穴水蛭)。
"EnemyWaveInterval":播报潮的时间间隔
播报潮的时间间隔是确定波次之间的时间间隔,以秒为单位。时间间隔越短压力越大,谨慎调整。
"EnemyNormalWaveInterval":自然潮的时间间隔
自然潮时间间隔是确定普通波次之间的时间间隔,以秒为单位。"普通波次"是指没有事件控制宣布的波次。
"EnemyNormalWaveDifficulty":自然潮生成点数
自然潮生成点数是确定普通波次中将生成多少敌人。
"EnemyDiversity": 敌人多样性-控制种类
敌人多样性-控制种类是确定可用于独特敌人类型的槽位数量。其不包括固定位置敌人和具有破坏性的敌人。但是各位自定义的特殊怪占据槽位数量的,多样性代码中增加的多样性敌人的种类在这确认。
2.敌人属性
"EnemyDamageResistance": 敌人的抗性
敌人的抗性是矮人攻击敌人时敌人的抗性,抗性越高伤害越低,就一般情况来说:五级1.5,六级1.75,七级2,八级2.25.九级2.5。(这是一个大概的参数,实际情况因个人代码为准)
"EnemyDamageModifier": 敌人的伤害系数
敌人的伤害系数是敌人攻击矮人的伤害系数,数值越高伤害越高,就一般情况来说:五级3.4,六级4,七级4.6,八级5.2,九级5.6。(这是一个大概的参数,实际情况因个人代码为准)
"SpeedModifier" 地面敌人移动速度修正
地面敌人的速度修正,敌人的移动速度,一般来说:五级1.2,六级1.3,七级1.4,八级1.5,九级1.6。(这是一个大概的参数,实际情况因个人代码为准)
"AttackCooldownModifier":敌人的攻击冷却修正
敌人攻击的速度和频率,一般来说:五级1.5,六级1.75,七级2,八级2.25,九级2.5。(这是一个大概的参数,实际情况因个人代码为准)
"ProjectileSpeedModifier":抛射物速度修正
敌人抛射物在空中传播的速度,一般来说:五级1.7,六级1.9,七级2.1,八级2.3,九级2.5。(这是一个大概的参数,实际情况因个人代码为准)
(二)多样性代码特殊怪简述
在多样性代码中,我们会通过自定义敌人的参数来设计独特的特殊怪用来丰富游戏在游玩中的乐趣和挑战。(看到一个特殊怪,先描述他的特殊代码,然后说明特异性,最后对策方法)
1. 破坏型特殊怪
"109": {
"Base": "ED_Spider_Tank_Mutated",
"CanBeUsedForConstantPressure": true,
"CanBeUsedInEncounters": true,
"DifficultyRating": 125,
"IdealSpawnSize": 1,
"MaxSpawnCount": 2,
"MinSpawnCount": 1,
"Rarity": 21,
"Scale": 2.4,
"Elite": true,
"PawnStats": {
"PST_ColdResistance": 0.97,
"PST_CorrosiveResistance": 1,
"PST_ElectricResistance": 1,
"PST_ExplosionResistance": 1,
"PST_FireResistance": 0.97,
"PST_InternalDamageResistance": 0.3,
"PST_KineticResistance": 0.5,
"PST_PhysicalResistance": 1,
"PST_PoisonResistance": 1,
"PST_RadiationResistance": 1,
"PST_MovementSpeed": 2,
"PST_DamageResistance": 3
}
},
辐射禁卫在6的伤害系数下放大尺寸,具有非常高的威胁。并且为了达成冲进去用大范围攻击威胁矮人的目的,提供了一个高额的移动速度和大体型来方便该怪突进到矮人的阵型中打散阵型。(注意高流速和速度虽然效果很好 但是会导致游戏卡顿。)
2. 功能型特殊怪(常规)
"112": {
"Base": "ED_Terminator",
"CanBeUsedForConstantPressure": true,
"CanBeUsedInEncounters": true,
"DifficultyRating": 80,
"IdealSpawnSize": 1,
"MaxSpawnCount": 1,
"MinSpawnCount": 1,
"Rarity": 18,
"Scale": 0.1,
"TimeDilation": 10,
"PawnStats": {
"PST_ColdResistance": -7,
"PST_CorrosiveResistance": -1,
"PST_ElectricResistance": -1,
"PST_ExplosionResistance": -1,
"PST_FireResistance": -0.97,
"PST_InternalDamageResistance": -1,
"PST_KineticResistance": -5,
"PST_PhysicalResistance": -1,
"PST_PoisonResistance": -1,
"PST_RadiationResistance": -1,
"PST_MovementSpeed": 5,
"PST_DamageResistance": 3
}
},
深渊复仇者具有快速挖掘且不会导致卡房的功能性,但是其大小却不影响挖地的范围。所以可以把复仇者的大小缩小(注意 请不要设置的太小 否则会造成打不中深渊复仇者的尴尬情况)来变成一个带语音警告(深渊复仇者会自带语音警告)但是不见踪影的隐秘控制型刺客,能莫名其妙抓住你队伍里落单的矮人使其倒地,从而具有非常高的威胁。
3. 功能型特殊怪(改变大小)
"无畏炮塔": {
"Base": "ED_FacilityTurret_Barrier",
"CanBeUsedForConstantPressure": true,
"CanBeUsedInEncounters": true,
"DifficultyRating": 120,
"IdealSpawnSize": 1,
"MaxSpawnCount": 1,
"MinSpawnCount": 1,
"Scale": 3.4,
"Rarity": 19,
"Elite": true,
"PawnStats": {
"PST_ColdResistance": 0.9,
"PST_CorrosiveResistance": 0.9,
"PST_ElectricResistance": 0.9,
"PST_ExplosionResistance": 0.96,
"PST_FireResistance": 0.6,
"PST_InternalDamageResistance": 1,
"PST_KineticResistance": 1,
"PST_PhysicalResistance": 1,
"PST_PoisonResistance": 1,
"PST_RadiationResistance": 1,
"PST_MovementSpeed": 2
}
},
推斥炮台的特性则与复仇者不同。由于推斥护盾的扩散是由炮塔本体的边缘决定的导致提高了大小生成在一些微妙位置的时候(比如推车生成在朵朵钻出来的隧道中间)其会让矮人无从下手,对阵型的破坏和对矮人的控制不亚于刚刚提到的复仇者,同时挡核弹更是一个好手。推斥护盾在高伤害系数的情况下,本身的伤害充足,推斥护盾移动速度不慢,一旦弹到矮人,被控制推开的矮人会吃到其他地面怪的补刀,击杀效果也堪称一绝。
三、多样性代码的攻略
(一)代码设计的目的
首先设计代码的时候要考虑多方面细节:
1.是否是为了削弱该代码表现突出的职业? 是否设计出来的敌人可以针对这个职业?或者针对某一个玩法?
案例:侦察的特殊火药由于其特殊的存活能力,将战斗拖到了Z轴。这就存在团队配合出现割裂问题。会玩的侦察能轻松的完成清图的任务并不再存在针对侦察的怪物也没有侦察适合一起战斗针对的怪物。那么此时该平衡的是拖长侦察的清图时长,例如提供锁定的狙击炮台(狙击炮台极难被躲避)来针对喷子跳打法,或者粉碎者,水母来针对喷子跳打法从而提高加速钩打法的登场率。当然也要注意,过多的粉碎者则会导致其手雷中回旋镖的登场率变高。
2 特殊怪的代码会不会因为流速过高导致主机卡E交互或者透底空降仓?
案例:一部分代码作者发现设计的虫子流速大于一定数值时,会导致透底空降仓,大量的流速怪不及时清理也会导致主机交互卡E的情况。设计时一定要考虑这个因素,高流速怪对应的血量要足够脆,防止大量囤积影响游戏流畅度。
3 是否有娱乐效果或者视觉效果,在代码里充当什么样的角色?
一般来说,大部分代码会添加有足够视觉效果的特殊怪来吸引游玩玩家的眼球。但是一部分特殊怪的设计目的是为了改变代码总体的节奏。注意这部分的特殊怪不像娱乐效果的特殊怪,如果这些特殊怪的设计失衡,会让整个代码平衡出现问题,从而导致玩家体验感降低。
(二)明确目的后如何编写代码
如果你是代码新手,可以使用“猫猫虫爱吃875小饼干”和“奇异魔法灯”提供“可视化CD代码平台”进行更简便的设计。其适配《深岩银河》游戏中名为Custom Difficulty(简称CD)的难度mod,目的是进行难度代码的可视化阅读和编写,增强矮人朋友们的高难游戏体验,降低代码学习和编写的难度。
如果你是老手有什么更好的设计方法呢?
个人一般的方法为:使用记事本或者JSON.代码编辑台(方便随时校对格式是否正确)。在编写好确认无误后复制进CD检查会不会报错。
(三)编码时常见错误
这里CD提示“Invalid JSON” 翻译是格式错误,当你写代码中缺少标点符号,或者标点符号错误时会提示,这个需要作者一行代码一行的代码检查,所以写代码的时候一定要注意细节。注意编写时是否会多了空格,回车,标点,错误使用中英文符号等格式错误
这里CD提示“Enemy Descriptors must be a map of enemy descriptors”
翻译是必须是地图上的怪(案例隐身刀锋:ED_Spider_Stinger蛭尾异虫),案例中的代码就是添加了地图上不存在的隐身刀锋导致代码出错。
还有一种错误,是代码新手容易出错的,这种错误是不会被JSON和CD检查出来,但是实践情况是错的地方,那就是引用时出现引用“ "SE-RivalBomb"”的错误,导致代码失效,这里的正确引用是“ "SE_RivalBomb"”。
(四)编写精英化特殊怪
在编写时注意该单位是否能精英化 "Elite": true如无法精英化的特殊怪,这里有精英化套娃的模版。(注意套娃的单位即命名的单位必须是可以精英化的单位)
案例:
"ED_Spider_ExploderTank": {
"Base": "ED_Spider_ShooterQueen",
"CanBeUsedForConstantPressure": true,
"CanBeUsedInEncounters": false,
"DifficultyRating": 75,
"IdealSpawnSize": 1,
"MaxSpawnCount": 1,
"MinSpawnCount": 1,
"TimeDilation": 6,
"Rarity": 15,
"Elite": true,
"Scale": 2.4,
"PawnStats": {
"PST_ColdResistance": -2,
"PST_CorrosiveResistance": 1,
"PST_DamageResistance": 3,
"PST_ElectricResistance": 1,
"PST_FireResistance": -4,
"PST_InternalDamageResistance": -20,
"PST_KineticResistance": -2,
"PST_PhysicalResistance": -15,
"PST_PoisonResistance": 1,
"PST_RadiationResistance": 1,
"PST_MovementSpeed": 0.5
}
},
之后还需将反过来套娃的单位加入游戏,
如果不想将套娃的单位添加进游戏,可以给予词条:"PST_DamageResistance": 300
反向套娃:
"ED_Spider_ShooterQueen": {
"Base": "ED_Spider_ExploderTank",
"DifficultyRating": 95,
"PawnStats": {
"PST_DamageResistance": 300
}
},
也可以给予一个特别高的稀有度数值或者生成点数防止刷出,但一旦刷出会占用特别多的点数影响平衡,故这种方法不推荐。
(五)敌人不刷或者游戏闪退或无法正常游戏
一个普遍存在的问题:为什么我设计的特殊怪代码丢进去后不刷出或者游戏闪退或无法正常游戏?
这方面有可能的原因:
案例:特殊怪点数为
"104": {
"Base": "ED_Halloween_Skull",
"CanBeUsedForConstantPressure": true,
"CanBeUsedInEncounters": true,
"DifficultyRating": 2000,
"IdealSpawnSize": 1,
"MaxSpawnCount": 1,
"MinSpawnCount": 1,
"Elite": true,
"Rarity": 1800,
而时间间隔潮的点数为:
"EnemyNormalWaveDifficulty": [
{
"weight": 1,
"range": {
"min": 1300,
"max": 1700
}
}
在这段代码中存在多个问题:
1.特殊怪占用点数过高甚至高于生成点数,如果期望刷出量是1 那么这一项也不推荐过低。可以看出,一波时间间隔潮最多(max:1700)点数才1700,可是特殊怪的点数却高达2000 "DifficultyRating": 2000,
2.稀有度数值过高时同样导致无法刷出 "Rarity": 1800, 如果期望刷出量是1 那么这一项也不推荐过低。
3.将原本无法精英化的单位进行错误的精英化,会导致刷出来的精英出现无敌。"Elite": true,
4.将无法添加至遭遇池子或固定点数池子的单位修改成:"CanBeUsedInEncounters": true,或者将无法进入恒压潮的(就如案例中的单位是活动万圣节头骨)单位修改成true(该项需为false)"CanBeUsedForConstantPressure": true,
这里需要说明一下关于占用点数的理解:
在代码里,你可以将你的视角代入到敌方单位然后把内容带到植物大战僵尸。池子点数就是你的阳光,你种植物(即刷敌方单位)是需要付出点数的,如果将大量点数购买没有用的植物(敌方单位)会导致没有多余的阳光购买其他有用的植物。
致谢
本教程主要目的是针对多样性代码的设计与平衡,让更多的玩家能够轻松设计并写出合理的多样性代码。在此特别鸣谢koncin与kevin,Coldplayer,j-c-meow等代码作者的帮助和交流。
参考文献
参考文献举例如下
[1] mirror1900. 深岩银河Custom Difficulty自定义难度指南. 2023年07月11日
[2] j-c-meow . 深岩银河高难多倍多样性代码 hard speedrun v1.6+.2024年04月25日
[3] 绫彩音风 . 深岩银河各类生物的代码注释,请配合Custom Difficulty模组的自定义怪物属性的功能食用. 2023年06月05日
[4] 奇异魔法灯、猫猫爱吃875小饼干. 可视化CD代码网页使用教程 2024.年3月17日
[5] Coldplayer. 为你的难度添加多样性生物的代码与教程.2022年
[6] Koncin. 深岩银河Custom Difficulty自定义难度Mod注释教程. 2022年10月28日