制作星港守夜
把一张星港平台做成“采矿 → 建造与科技 → 抵挡六波敌人 → 保住核心”的合作防御游戏。本教程以随包的 Starhold.nvscene 为数值基准,逐项解释如何在 Studio 里重建与修改。
01 · 准备工程与素材
先完整解压 Studio 0.4.4。双击 Start-Studio.cmd,在工程菜单的本机工程中打开“星港守夜 · 防御 RPG”,F5 试玩一次:移动到矿点,按住 E,打开 Tab 商店,建造炮塔,再返回编辑。
制作自己的独立版本时,进入玩法系统 → 新建防御 RPG 样例。它会创建新的工程 ID,并填入下面要讲解的场景和系统。把工程名改成“我的星港守夜”并 Ctrl+S 保存。这样可以边对照完整案例,边逐项改造,而不是误覆盖发布地图。
如果希望练习手工搭建场景,可先在“工程 / File”新建空白工程,并按第 02–03 步添加几何;玩法数值仍需按照后续步骤配置。下面表格也是核对自动生成样例的检查表。
每完成一个页签,先“检查玩法配置”,再“应用到工程”。不要连续修改多个页签后忘记应用,直接关闭玩法编辑器。
02 · 搭建平台与四向布局
先建立 56 × 56 的主平台,再放十字通道、中心核心、四个边缘入口和四组资源/掩体。Y 接近 0 是地面,平台中心略低,避免地面遮住对象。
| 对象 | 几何 / 外观 | 位置 X,Y,Z | 缩放 X,Y,Z |
|---|---|---|---|
| Arena / 星港平台 | Cube | 0, -0.45, 0 | 56, 0.8, 56 |
| 核心 / 防守目标 | core 模型,或 Cylinder 占位 | 0, 0, 0 | 2, 1.5, 2 |
| 核心基座 | Cylinder | 0, -0.02, 0 | 5, 0.15, 5 |
| 补给商店 | shop 模型,或 Cube 占位 | -3, 0, -5 | 1, 1, 1 |
| 东、西入口 | Cylinder,关闭普通碰撞 | ±25, 0, 0 | 2, 0.12, 2 |
| 南、北入口 | Cylinder,关闭普通碰撞 | 0, 0, ±25 | 2, 0.12, 2 |
东西通道由 7 段组成,X 依次为 -24、-16、-8、0、8、16、24,位置 Y=-0.015、Z=0,缩放 (7.8, 0.08, 3.8)。南北通道交换 X/Z,Y=-0.013,缩放 (3.8, 0.08, 7.8)。可以复制后改坐标,不必逐个拖到大致位置。
矿点约位于 (7.961,0,6.052)、(-6.052,0,7.961)、(-7.961,0,-6.052)、(6.052,0,-7.961)。四个掩体约位于 (16.198,0,9.931) 的四次 90° 旋转位置,缩放 (3,2.5,3)。
完整 34 对象清单在参数对照。四根边界光柱属于装饰,不决定通关。当前通用玩法活动边界是预设平面范围,单纯把平台放大不会自动扩大运行区域。
检查点:从俯视角能看见中心核心、四个入口、四个矿点;核心与矿点之间留有可走通路。F 聚焦场景后,对象没有重叠埋进地面。
03 · 为场景对象赋予玩法组件
选择核心,向下滚动右侧属性面板,把游戏组件切换到 Core。入口设为 EnemySpawn,矿点设为 Resource、矿点资源为 ore,掩体设为 Obstacle,商店设为 Shop。
中心附近放一个用于定位的对象,选择后点击设为玩家出生位置,让玩家从核心南侧约 (0,0,-5) 出发。初始样例已经设好出生位置,可直接保留。
角色模型、武器与可建造炮塔由玩法运行器创建,不需要把所有敌人和建筑预先放进编辑场景。只要配置角色类型、建筑类型及入口即可。
检查点:F5 后按住 E 靠近矿点能获得晶矿;若只是看见晶体但不能采集,检查 Resource 和 ore,而不是先改模型。
04 · 设置全局与团队资源
在全局参数启用通用玩法,游戏名称填“星港守夜”。按照下表填写;开局资源到资源字典设置。
| 字段 | 值 |
|---|---|
| 玩家生命 / playerHealth | 120 |
| 玩家速度 / playerSpeed | 7 |
| 核心生命 / coreHealth | 650 |
| 建造范围 / buildRange | 19 |
| 采集间隔(秒) / mineInterval | 0.65 |
| 每次基础产量 / mineYield | 15 |
| 单矿点储量 / nodeCapacity | 180 |
玩家生命 120、核心生命 650。每次基础采集得到 15 晶矿,间隔 0.65 秒,每个矿点储量 180。四个矿点的基础总储量为 720;玩家接近矿点 3.2 米以内,按住 E 才会尝试采集。
资源字典保留一项:ID ore,名称“晶矿”,初始值 100。团队共用钱包、科技和解锁;不是每个玩家各领 100。
检查点:新开一局显示 100 晶矿,第一次有效采集后变为 115。复测要 F5 停止后重开,不能用已经花过资源的局来对照初始值。
05 · 配置两件武器与持握动画
在道具 / 攻击 / 动画中选择或添加 pulse、scatter。第一项是初始武器,不要给它设置尚未完成的前置科技。
| ID / 名称 | 伤害 | 间隔 s | 射程 | 弹匣 | 弹丸 | 换弹 s | 价格 ore |
|---|---|---|---|---|---|---|---|
| pulse / 星港 · 脉冲卡宾枪 | 22 | 0.18 | 24 | 24 | 1 | 1.25 | 0 |
| scatter / 裂光散射炮 | 19 | 0.7 | 15 | 8 | 5 | 1.65 | 90 |
pulse 的名称在随包成品中改成了“星港 · 脉冲卡宾枪”,新建样例的默认显示名可能是“脉冲卡宾枪”;ID 与行为相同。两件武器支付资源均为 ore,前置科技留空。
选择模型 Defense / carbine 与图标 carbine;pulse 模型本地旋转为 (0,180,0),缩放 1,偏移 (0,0,0)。后坐 0.16、摆动 0.04、换弹角度 38。scatter 使用 scatter 模型/图标,后坐 0.28,其余动画基准同样为摆动 0.04、换弹角度 38。
scatter 一次发射 5 颗弹丸,每颗基础伤害 19;“单次弹丸数”不是直接把一次命中伤害改成 95,实际取决于多少弹丸命中。射击间隔越小,射速越高。
检查点:F5 后 pulse 开局可用;消耗晶矿购买 scatter 后可用 1/2 切枪。R 换弹,观察模型朝向与后坐是否正确。模型问题到动画字段修正,伤害问题到数值字段修正。
06 · 定义三类敌人
进入角色 / AI,依次配置 crawler、spitter、brute。先写正确 ID,再核对数值。brute 可以复用 crawler 模型并放大,不需要再导入一个相同模型。
| ID / 名称 | AI | 生命 | 速度 | 伤害 | 攻击间隔 | 射程 | 警戒 | 奖励 / 经验 |
|---|---|---|---|---|---|---|---|---|
| crawler / 裂隙爬虫 | Chase | 65 | 2.8 | 8 | 1.1 | 1.6 | 7 | 12 / 15 |
| spitter / 晶刺投射者 | Chase | 95 | 1.9 | 12 | 1.6 | 7 | 12 | 18 / 22 |
| brute / 裂隙重装者 | Chase | 380 | 1.3 | 28 | 1.5 | 1.8 | 5 | 40 / 60 |
三者行为均为 Chase。crawler 使用 crawler 模型,spitter 使用 spitter 模型,brute 复用 crawler、模型缩放 1.6。spitter 开启远程攻击,攻击距离 7;其他两类为近战。奖励资源 ID 均为 ore。
这些是角色基础值。波次生命倍率会进一步改变当波敌人生命;运行器还会按当前波次调整敌人伤害,因此基础表不等同于每一波的最终实战数值。
检查点:暂时只保留第一波做短测,确认敌人从入口出生并移动;恢复六波配置后再做完整测试。只修改模型无法把近战敌人变成远程敌人。
07 · 配置四类建造物
在建筑 / 防御者填写下面四条记录。模型/图标分别选 wall、turret、defender、extractor;价格资源为 ore,示例的前置科技为空。
| ID / 名称 | 类型 | 价格 ore | 生命 | 伤害/产量 | 范围 | 间隔 s | 移动 | 占位 |
|---|---|---|---|---|---|---|---|---|
| wall / 合金路障 | Wall | 25 | 350 | 0 | 13 | 0.65 | 0 | 0.9 |
| turret / 哨戒炮塔 | Turret | 60 | 160 | 16 | 13 | 0.65 | 0 | 1.2 |
| defender / 巡游防御者 | Defender | 95 | 130 | 21 | 15 | 0.75 | 3 | 0.7 |
| extractor / 晶矿收集站 | Extractor | 65 | 100 | 8 | 1 | 6 | 0 | 1 |
Wall 负责阻挡,没有攻击;Turret 原地攻击;Defender 会在攻击范围相关条件下移动接敌;Extractor 定期生产资源。对收集站而言,“每次伤害 / 采集收益”表示一次产量,所以 8 配合间隔 6 表示每次生产 8 晶矿、冷却约 6 秒。
F5 后按 3–6 选择前四项建筑,左键放置,右键取消。建造落点按 2 米网格吸附;需在核心 19 米范围内,并避开核心近旁、矿点、入口、玩家、掩体和已有建筑。最多 40 个运行时建筑。
检查点:开局 100 晶矿足够造一个 60 晶矿的炮塔;合法位置应扣费并生成炮塔。非法落点不应扣钱。“此处无法建造”通常是位置条件,不是素材导入失败。
08 · 建立八项科技
数值字典保留 Damage、FireRate、Armor、Mining、Turret、Speed,初始值 0,上限 20。进入通用科技树,按表配置效果为 AddStat,支付资源为 ore。
| ID / 名称 | 效果 | 目标 | 价格 | 增量 | 全部前置 |
|---|---|---|---|---|---|
| damage1 / 强化电容 I | AddStat | Damage | 45 ore | 0.25 | 无 |
| damage2 / 强化电容 II | AddStat | Damage | 95 ore | 0.4 | damage1 |
| cadence / 高速循环 | AddStat | FireRate | 70 ore | 0.3 | 无 |
| mining / 共振采集 | AddStat | Mining | 40 ore | 0.6 | 无 |
| turrets / 防御网络 I | AddStat | Turret | 65 ore | 0.4 | 无 |
| turrets2 / 防御网络 II | AddStat | Turret | 110 ore | 0.6 | turrets |
| armor / 复合护甲 | AddStat | Armor | 50 ore | 0.5 | 无 |
| speed / 机动外骨骼 | AddStat | Speed | 50 ore | 0.2 | 无 |
两条链分别为 damage1 → damage2、turrets → turrets2。其他节点没有前置,开局资源足够即可研究。先研究 damage1 后,伤害加成为 0.25;再完成 damage2 后累加为 0.65,而不是把上一项替换掉。
护甲 0.5 对应当前公式 收到伤害 ÷ 1.5,不能解释为“免伤 50%”。Mining 0.6 将基础采集收益变成 15 × 1.6 = 24,仍受矿点剩余储量限制。
检查点:依赖图无循环;未买 damage1 时,damage2 不可研究;买完 damage1 后第二级解锁。研究一次后不能反复购买同一科技。
09 · 编排六波并配置胜负
进入生成器 / 波次,按下表顺序配置。生成间隔是相邻敌人的出生间隔,波前倒计时是开始该波前的准备时长。
| 名称 | 敌人 ID | 数量 | 准备 s | 生成间隔 s | 生命倍率 | 奖励 ore |
|---|---|---|---|---|---|---|
| 01 / 初次接触 | crawler | 8 | 28 | 1.8 | 1 | 40 |
| 02 / 裂隙潮涌 | crawler | 14 | 20 | 1.15 | 1.15 | 50 |
| 03 / 远程威胁 | spitter | 10 | 22 | 1.8 | 1 | 65 |
| 04 / 重装来袭 | brute | 6 | 22 | 2.6 | 1 | 80 |
| 05 / 裂隙风暴 | crawler | 27 | 22 | 0.7 | 1.8 | 100 |
| 06 / 最后的守夜 | brute | 12 | 25 | 2.2 | 1.5 | 150 |
总敌人数为 77。第 4 波 brute 的基础生命为 380、倍率 1;第 6 波倍率 1.5,因此生命基准为 570。结束当前波需要相应生成与战斗流程完成,不是倒计时结束就直接算过关。
在胜负 / 计时目标开启自动波次、全部波次后获胜、核心损毁判负;时间上限设 0;任务目标填“保护能源核心,完成全部波次。”。示例不需要额外 Win 事件规则,胜负由上述设置控制。
10 · 按三种路径验收
| 路径 | 操作 | 应看到的结果 |
|---|---|---|
| 开局与经济 | 新开局、采一次矿、造合法炮塔 | 资源从 100 按操作变化,未修改工程原始初值 |
| 正常通关 | 采矿、买科技、布置防御并完成六波 | 出现“目标达成 · 挑战成功” |
| 失败路径 | 新开局后不防守,观察核心耗尽 | 出现失败界面,能重新挑战或返回编辑 |
| 试玩隔离 | 玩到中途 F5,重新试玩 | 临时建筑和钱包重置,编辑场景保持原样 |
| 联机 | 发布后两人进入同一房间 | 看到共同核心、资源、科技与建造结果 |
通关时长受移动、命中、建筑位置和研究选择影响,不要把自动化测试速度当作新手的固定完成时间。先调出可通过的一局,再逐步提高数量、生命倍率或降低开局资源。
11 · 做一个自己的变体
练习 A:把第一波准备时间从 28 改为 40 秒,比较新手能否更从容地建炮塔。练习 B:给 turret 设置前置 turrets,让“防御网络 I”同时成为炮塔的建造门槛。练习 C:增加一个以 PlayerLevelUp 为事件、GrantResource 为动作的奖励规则。
每次只改变一类条件,记录旧值、新值和试玩结果。保持 ID 引用有效,再“检查 → 应用 → 保存 → 试玩”。
12 · 保存、分享与继续学习
完成后 Ctrl+S;给别人离线体验用导出可玩工程,联网共享则按试玩、导出与发布操作。接着学习晶矿远征,把同一套素材与系统改成没有自动防御波次的任务。