下载 App

# 《元素工坊》开发日志 #

10/0937 浏览
把地图做成可玩的场地,再放一只会拆你网的蜘蛛
> 本期两件事:重构熔岩竞技场的地图背景;上线第二位首领「冰渊蜘蛛」。
> 引擎:UrhoX | 平台:PC + 手机 | 日期:2026-10-09
【图 0:封面】
---
> **📌 发布前请替换图片链接**
>
> 正文里的 `【图 N】` 是占位符,请上传对应图片后替换为图片地址。图片文件都在 `assets/image/`:
>
> | 标记 | 文件 | 用途 |
> |---|---|---|
> | 【图 0】 | `devlog_06_cover.png` | 封面(1920×1080),放在正文最前 |
> | 【图 1】 | `devlog_06a_lava_turtle_map.png` | 熔岩竞技场地图分层拆解 |
> | 【图 2】 | `devlog_06b_ice_spider_boss.png` | 冰渊蜘蛛五阶段制作全流程 |
>
> 发布后请删掉本段说明。
---
## 先说清楚这游戏在玩什么
《元素工坊》没有普通攻击。你手里只有火、水、冰、风四种元素瓶,靠**改变环境**来击杀怪物。
核心信条一句话:
> **不要打败怪物 —— 让世界杀了它。**
第一位首领「熔岩巨龟」把这句话讲成了:它披着岩石护甲,免疫冰和风的直接伤害;你得先用火把它烤到过热,再用水让它骤冷,护甲才会碎裂,然后才有 12 秒的窗口去终结它。
这一期,我们把这套「环境即武器」的思路,往前推了两步。
---
## 一、熔岩竞技场:地图不是背景图,是玩法的一部分
### 之前的问题
最早的场地是纯矢量画的:几个同心圆、几条放射线、一堆色块。功能上没问题,但玩家看不出「火盆在死角」「水坑在中央低地」这些**地形意图**——它们本该是战术信息,却长得像装饰。
### 现在的做法
我们把地图拆成三层,而不是拍一张大图铺上去:
【图 1】
**① 外围熔岩层** —— 一张 1024² 的岩浆纹理,铺满场地之外,再加一圈「墙根热辉」(径向渐变,外圈透明)和两层缓慢升腾的热气。让岩浆看起来是从围墙底下渗出来的,而不是贴了张图。
**② 场地圆盘** —— 2560×1440,**透明背景 + 居中圆形场地**,圆盘只占画幅的 54%。这是关键:底图不是"一张画满整个屏幕的图",而是一个**道具**。
**③ 独立设施层** —— 火盆、水坑、风车、冰柱×2、木箱×2、石门,全部单独绘制、单独摆放。
### 为什么非要拆开
因为**美术不能决定判定**。
如果火盆被画死在底图里,那它的位置就变成了"一张图片上的像素",想调整位置就得重画整张底图,碰撞判定还得跟着改。拆成独立图层后,火盆的位置由一张布局表驱动:
```lua
CONFIG.Layout = {
    brazier  = { x = 355, y = 360 },   -- 左侧死角:唯一永久火源
    windmill = { x = 925, y = 360 },   -- 右侧死角:蒸汽驱动
    pool     = { x = 640, y = 360 },   -- 中央低地
    dripA    = { x = 455, y = 205 },   -- 冰柱A 固定落点
    ...
}
```
改玩法只改数字,美术不用动;换美术也不影响判定。**这一条在后来的开发里救了命**——因为第二位首领要复用同一个竞技场框架,如果当初画死了,就得整个重做。
### 一个小细节:锚点
圆形场地的圆心是 (640, 360),半径 330。底图上那个圆盘的直径,必须精确校准到 **697.5 设计像素**(半径 330 + 墙厚 16 + 一点余量)。
如果按"图片铺满屏幕"来画,圆盘会被放大两倍,冰墙直接溢出屏幕外——这个坑我们在做第二张地图时**真的踩了一次**,后面会讲。
---
## 二、冰渊蜘蛛:把「相反」做成一套设计方法
### 起点:怎么设计第二个 Boss
第一位是"火 + 厚重 + 慢 + 被动"。那第二位呢?
我们没从"再想一只什么怪物"开始,而是列了一张**对照表**——把巨龟的每个特征都翻过来:
| 维度 | 熔岩巨龟 | 冰渊蜘蛛 |
|---|---|---|
| 元素 | 火 / 热 | 冰 / 寒 |
| 形态 | 地面爬行、厚重 | 多足、轻盈 |
| 节奏 | 慢 → 破甲后**暴走变快** | 极快 → 断肢后**越打越慢** |
| 场地关系 | **规避**危险,被动等玩家 | **主动**织网,掌控场地 |
| 破绽所在 | **身体**(热→冷相变,碎壳) | **场地**(拆网,断肢) |
| 玩家心理 | 把危险送给它 | 先拆它的场,再拆它的身 |
这样设计有个好处:**玩家在巨龟关学到的所有经验,到蜘蛛关都必须反过来用**。同一套元素瓶,顺序反了、用法反了。
【图 2】
### 破绽链:烧网结 → 断肢 → 坠地 → 终结
蜘蛛悬在自己的冰丝网上,**打本体是没用的**——会被蛛网弹开,还溅你一身冰霜。
它真正的破绽在**网里**:
```
蜘蛛高悬网上,4 条腿各连一个网结
   ├─ 烧断网结 ──▶ 断腿 ──▶ 永久废掉那条腿的技能
   ├─ 冰/水打网结 ──▶ 「冰封加固」──▶ 暂时免疫火烧
   └─ 打本体 ──▶ 被弹开 + 溅射冰霜
断掉 3 条腿 → 失去支撑,坠地 → 10 秒内用火烤 / 用冰柱砸 → 终结
```
四条腿各绑一个技能:**突进冲刺 / 跳跃扑击 / 织冰网 / 分身幻影**。断哪条、先断哪条,是玩家的策略选择。
### 最难调和的一处矛盾
我们中途遇到一个设计冲突:
- 玩家想要的是「**全主动追击**」的压迫感——它应该追着你打
- 但"拆网"这个核心玩法,又要求它**挂在网上**
两者直接打架。最后我们想了个调和方案,个人觉得是这期最漂亮的一笔:
> **它的攻击,就是它的破绽。**
蜘蛛全程高速追击你,但每次要放技能前,**必须先用一条腿锚定到最近的网结蓄力**。锚定的一瞬间,冰丝会亮起来 0.6 秒——**这是唯一能烧断它的窗口**。
于是:
- 平时:它追着你打,你只能跑
- 它攻击时:冰丝亮起,你抓机会烧丝断腿
- **它越凶,破绽越多** —— 攻击越频繁,露出的窗口越密
这又和巨龟形成了对比:巨龟是**越打越快越难**,蜘蛛是**越凶越好打**。
### 最锋利的一刀:冰会帮倒忙
这是整个设计里我们最喜欢、也最"缺德"的一条:
> **冰和水不会伤害蜘蛛,反而会「加固」它的网。**
被冰/水命中的网结会结出厚冰壳,短时间内**免疫火烧**。
为什么这么设计?因为玩家在巨龟关练熟的全部肌肉记忆是——**"冰是杀招"**。到蜘蛛关,这个惯性会反过来咬他们一口。他们必须**戒掉冰瓶**,重新思考每种元素的用途。
当然,这是个双刃剑:新手可能误用冰瓶然后一脸懵。所以加固时会有明确的视觉反馈和文字提示("冰封加固——火烧不动了"),把这个坑变成**可学习的**,而不是**纯粹的惩罚**。
### 另一处:蜘蛛不规避危险,它主动布场
巨龟的 AI 会**规避**已点燃的火、燃烧的木箱——它怕热。
蜘蛛反过来:它**主动**在玩家脚下铺霜区,冻住地面让你打滑。它不躲,它掌控。
| 设施 | 巨龟关 | 蜘蛛关 |
|---|---|---|
| 火盆 / 裂隙 | 加热工具 | **命脉,必须保护** |
| 水坑 | 破甲冷源 | 蜘蛛的武器(冻地面) |
| 冰柱 | 融水取用 | 蜘蛛的弹药库 |
同一个竞技场框架,两套完全不同的用途。
---
## 三、制作过程中的三个真实坑
写开发日志最有价值的部分,其实是**踩坑**。这期有三个,都挺典型。
### 坑 1:新地图的圆盘溢出了屏幕
前面说过,巨龟关的底图是「透明背景 + 居中圆盘,占画幅 54%」。
做冰窟地图时,我们一开始忘了这个规格,直接让 AI 生成了一张**铺满整个画幅**的冰窟图。结果:圆盘被放大约 2 倍,冰墙和冰锥全部溢出屏幕外,整个场地看起来像是"贴歪了"。
对比一下就很清楚:
| ✗ 错误版本 | ✓ 修正版本 |
|---|---|
| 铺满画幅,圆盘溢出 | 透明底 + 居中圆盘,直径精确校准 |
**教训**:底图是"道具",不是"壁纸"。规格一旦定下,新地图必须严格对齐——这就是前面为什么要花力气把地图拆成三层。
### 坑 2:立绘姿态很好,但断了一条腿
生成蜘蛛立绘时,AI 给了两个候选。第二个候选姿态明显更好——八条腿展开、轮廓清晰。
但我们放大一看:**右侧向前伸出的那条腿,从中间断掉了**,末端是空的。
这个问题很隐蔽,缩略图完全看不出来,得放大逐条腿检查。重出之后,第二版八足完整连续,才敢用。
**教训**:AI 生成的素材**必须逐像素验收**,尤其是"数量正确"这类要求(几条腿、几根手指)——它最容易在这里出错。
### 坑 3:攻击动作的脚出画了
给蜘蛛做序列帧动画时,`attack` 那一组有一帧腿尖贴到了画布边缘,被切掉了一点。
根因是初始设置里"画布占比"(`content_ratio`)给的 0.6 太小,没给前伸动作留够空间。而**这个参数只能在初始化时设定,事后改不了**——想修就得把已经做好的三个动画全部重跑一遍。
权衡之后,我们选择先接受这点瑕疵:它在实际游戏里几乎看不出来,而重跑的成本(时间 + 生成额度)不划算。
**教训**:给"动作幅度大"的角色留画布空间,一开始就要给足。这个参数后期改不了,属于**一次性决策**。
---
## 四、动画与接入
蜘蛛最终做了三组序列帧:
(三组序列帧的关键帧对比见图 2)
- **idle** 24 帧(循环)—— 待机,八足撑地、躯干轻微起伏
- **walk** 12 帧(循环)—— 移动,八足交替爬行
- **attack** 23 帧(单次)—— 突进 / 扑击
游戏里由状态机驱动切换:突进和扑击时播 `attack`,移动时播 `walk`,其余播 `idle`;静止时冻结当前帧,避免角色原地"踏步"。
选人界面的卡片预览也换成了真实序列帧——之前是程序化画的圆点蜘蛛,和旁边巨龟卡片的规格不一致,看着很违和。现在两张卡片统一:地台 + 序列帧本体 + 技能名,只是巨龟配暖色火光,蜘蛛配冷色寒辉。
---
## 五、这一期做了什么(速览)
**熔岩竞技场**
- 地图重构为三层结构:外围熔岩层 / 场地圆盘 / 独立设施层
- 底图 2560×1440,锚点精确对齐判定圆心
- 设施位置全部由布局表驱动,美术与判定解耦
**冰渊蜘蛛(第二首领)**
- 全新冰窟场地:地热裂隙 / 寒潭 / 钟乳冰柱 / 冷风通道
- 破绽链:烧网结 → 断肢 → 坠地 → 多解终结
- 四个技能绑定四条腿,断肢永久失效
- 核心机制:攻击时锚定网结,露出 0.6 秒烧丝窗口
- 反直觉陷阱:冰 / 水会加固蛛网
- 6 张静态美术 + 3 组序列帧动画(idle / walk / attack)
---
## 写在最后
做完这两个 Boss,我们对「环境即武器」这条路的信心更足了。
同一个竞技场框架,只换设施用途和 Boss 逻辑,就能长出两套完全不同的打法:一个是**把危险送给它**,一个是**先拆它的场**。而玩家在两者之间,需要学的是同一套元素、相反的用法。
下一步我们想做的:把第三条路线(蜘蛛的"分身识破")打磨得更可读,以及……第三位首领。
> 如果你对这套设计有任何想法——尤其是"冰加固蛛网"这个陷阱你觉得是妙还是坑——欢迎在评论区聊聊。
**《元素工坊》开发日志 #6 完。**
---
*附:本期的两张详细技术拆解图*
《元素工坊》开发日志 #7截图
《元素工坊》开发日志 #7
把「能通关」推到「值得反复玩」 > 本期四件事:排行榜上线、工坊笔记、冰窟寒潮、以及一次把包体砍掉一半的排查。 > 引擎:UrhoX | 平台:PC + 手机 | 日期:2026-10-10 --- ## 先说清楚这一期在解决什么 前六期我们一直在做「玩法」:让「环境即武器」这个想法成立,把它做成两个完全相反的 Boss。 但打通之后,一个问题浮出来了:**玩家通关一次,为什么还要再玩?** 这一
官方
元素熔岩开发日志 #1:把攻击键删掉之后截图
元素熔岩开发日志 #1:把攻击键删掉之后
**日期:2026-10-08** 大家好,这是《元素工坊:熔岩巨龟》的第一篇开发日志。这是一款把"战斗"交给环境的动作解谜战斗 Demo:单关、封闭圆形竞技场、目标体验三到五分钟。 ## 一、第一个决定:不给玩家武器 做这个 Demo 的第一个决定,就是把攻击键从玩家身上删掉。 主角没有近战、没有射击、没有任何普通攻击。他手里只有火、水、冰、风四种元素瓶,数量是 2/2/2/1,用完就没了。而瓶
官方
# 《元素工坊》开发日志 #8:截图
# 《元素工坊》开发日志 #8:
把第三个 Boss 做完 > 这一期分两步走。10-12:给第三个 Boss 补上「能收场」的玩法收尾——战斗内可以认输, > 场地设施用完会自己回来。10-13:把整套美术装上——风蚀巨像、悬空神殿、场地机关, > 以及一个被美术「撑」出来的 UI 遮挡问题。 > 引擎:UrhoX | 平台:PC + 手机 | 日期:2026-10-12 ~ 10-13 【图 0:封面】#聚光灯GameJam开发者日志
官方
# 《元素工坊》开发日志 #9:截图
# 《元素工坊》开发日志 #9:
## 先说清楚这一期在解决什么 前八期我们一直在做**三个 Boss 关**。到上一期为止,三个 Boss 都穿上了正式的衣服,也有了体面的收场方式。 但做完之后有个问题浮上来:**Boss 关的对手是会反抗的**。它们会躲、会变招、会逼你读破绽链。这是它的深度,也是它的门槛——你一旦打不过,就只能反复打同一关,直到读懂那道题。 所以我们想要一个**不一样的地方**:低压力、可反
官方