下载 App

开发者日志#4】《星序》- 攻击逻辑:光线队列回放与碰撞判定

昨天 13:33
导言:
上期实现了星体的预警、音效和单根光线的测试。但一个星体不够,需要能够产生紧迫感的体验。
这次,我把之前丢进队列的光线按顺序取出来,让它们在玩家面前依次重放,并加上了真实的碰撞判定。小球终于体验到了被自己过去的轨迹“追杀”的感觉。
TapTap
本期进展:
完成队列回放机制:我用 Queue<RayRecord> 存储光线数据(起点位置、目标位置、音效索引)。当累计的光线达到 5 个时,自动触发一次“回放阶段”。每 0.6 秒从队列中取出一个,启用光线并播放对应音效,持续 1 秒后禁用并放回对象池。
加入音阶测试:为了降低纯视觉躲避的难度,我给每个发光体按顺序分配了对应的音效。回放时不仅能看到光线,还能听到一段有规律的旋律。
碰撞与反馈:给启用中的光线挂上了 BoxCollider2D(或射线检测),玩家小球碰到光线后会扣 1 点血,并伴随震动和短暂的闪烁提示。目前还没有写死亡,只是做了反馈测试。
状态重置优化:为了确保对象池取出的光线不携带上一次的残留状态,我彻底重置了 LineRenderer 的点位、颜色和音效播放器。不然上一波的尾巴偶尔会残留到下一波里。
问题与风险:
公平性受到严重挑战:我自己测试时发现,当多条光线连续射向之前记录的位置时,如果玩家刚好站在交叉位内,画面会瞬间变成“必死局”。我意识到,如果光线的发射频率和玩家的移动速度不匹配,这个游戏会变成纯粹的折磨。
“站桩不动”的终极解法:我尝试站在原地不动。结果发现,只要位置几乎不变,会导致产生的星体几乎会在同一个位置附近,那么发射的光线就不会交汇,就难以产生紧迫感。这几乎是这个设计的一个致命漏洞,必须在下期加入“必须移动的理由”(比如掉落能量球,或者短时间内移动接触一定数量的所有信标)。
音频同步问题:理论上音效和光线启用是同步的,但实际运行时,有时音效会重叠,或者稍微慢半拍,导致听感不如预期那么“带感”。音乐调度器还需要优化。
下期计划:
正式加入游戏循环:开始界面、失败条件(血量归零)、重新开始按钮。这部分我其实已经做了简单的 UI,是时候放出来了。
加入“必须移动”的机制:玩家不移动时会缓慢掉血,或者在地上随机生成需要接触的信标,逼迫玩家持续产生轨迹。
调整难度曲线:测试第一波回放 3 条光线、第二波 5 条光线时的玩家存活率,确定合适的发射间隔。
完善音频调度器,让回放过程更像一段完整的旋律。
【开发者日志#6】星序 - 模型就绪:模型实装、图鉴与得分系统截图
【开发者日志#6】星序 - 模型就绪:模型实装、图鉴与得分系统
导言: 上期把游戏的UI和核心循环跑通了,但满屏幕的纯色方块和圆圈实在有些“寒酸”。在第五篇日志的结尾,我提到已经在Blender里开始制作模型。 这次,终于到了把“占位符”全部删掉,换上真正美术资产的时候了。同时,为了增加重复游玩的动力,我还实装了图鉴和得分系统。 同时为游戏场景的星空背景特意在blender中制作了三渲二风格的星空天空盒hdr资产,以及游戏图标的制作。 本期进展: Blende
官方
1 赞
【开发者日志#5】星序 拼上外壳:UI、游戏循环与“信标”驱动力截图
【开发者日志#5】星序 拼上外壳:UI、游戏循环与“信标”驱动力
导言: 上期实现队列回放和碰撞后,我发现了一个致命漏洞:玩家站在原地不动,就不会产生新的发光体,等回放结束就彻底安全了。这显然不行。 在有了基本的底层机制后,现在开始搭建游戏的外壳:开始界面、血量UI、失败判定,以及——一个逼迫玩家在场上持续移动的理由。 本期进展: 正式的UI与游戏循环:这次我放出了之前藏了一段时间的UI系统。目前有简单的开始界面(按任意键开始)、游戏内的血量条、当前波次计数,以
官方
1 赞
【开发者日志#3】《星序 》- 轨迹采样与发光体预警机制截图
【开发者日志#3】《星序 》- 轨迹采样与发光体预警机制
导言: 上期把小球跑通了,确定了移动和冲刺的基础手感(虽然冲刺方向还没定死)。 这次,游戏最核心的机制终于要开始动工了:如何记录玩家的轨迹,生成使用简单的音效,并让星光在正确的时间、正确的位置闪烁。这一篇主要分享我在实现“轨迹采样”和“发光体预警”时踩过的坑。 本期进展: 确定了冲刺方向:综合了上期的风险,我最终决定还是采用“朝当前移动方向冲刺”。如果玩家没有按移动键,按空格则朝面朝方向(基于上一
官方
1 赞
【开发者日志#2】《星序》 - 先让小球动起来:2D原型与移动手感截图
【开发者日志#2】《星序》 - 先让小球动起来:2D原型与移动手感
导言:上次聊了核心想法:玩家移动产生发光体,发光体记录位置,之后回放成光线打自己。 这次开始动手。因为整个机制都建立在“玩家怎么动”上,所以我先做最底层的一步:2D场景和小球控制。 本期进展: 首先在Unity中创建了项目,并规划好了文件结构,在场景中创建了一些可能后续需要的空对象。 确定了 2D 俯视正交视角,搭建了一个纯色原型场景,用来测试移动和后续弹幕。 创建了玩家小球:Rigidbody2
官方
2 赞
【DevLog #1|聚光灯21天】《星序》—— 在弹幕里长出一段旋律
《星序》开发日志 #1|以微小规则,生长出独一无二的涌现旋律 作为新手中的新手,Unity 才自学半个月,就想来聚光灯 21 天挑战碰碰运气。 看到本次主题「涌现」,我构思了一套玩法。深色 2D 背景里,各色星光不断浮现,闪烁几下,再伴随对应音符射出光线掠过玩家。积攒一定数量星光后,它们会按顺序接连触发,依次亮起、播放音符并射出射线,玩家需要记住规律躲避。 最开始我设想的是一次性整体爆发,不过评估
官方
3 赞
00:45
开发者日志#7】星序 - 游戏落地:完整游戏上线截图
开发者日志#7】星序 - 游戏落地:完整游戏上线
导言: 上一期完成美术资产替换、图鉴与得分系统之后,视觉和收集框架已经落地。这次迭代重构了游戏 UI 布局,拓展了游玩模式,并且,《星序》现在正式开放试玩啦! 本期进展: UI 布局重构:重新调整游戏内 HUD、结算面板、图鉴弹窗的排布。旧版界面元素比较松散,容易遮挡游戏画面;本次缩小 UI 占比,分数、提示信息放在画面边角,最大程度不干扰玩家观察星光光线,同时制作了多模式选择主菜单。 多游戏模式
3 赞
1 回复
00:45
【开发者日志#7】星序 - 游戏落地:完整游戏上线截图
【开发者日志#7】星序 - 游戏落地:完整游戏上线
导言: 上一期完成美术资产替换、图鉴与得分系统之后,视觉和收集框架已经落地。这次迭代重构了游戏 UI 布局,拓展了游玩模式,并且,《星序》现在正式开放试玩啦! 本期进展: UI 布局重构:重新调整游戏内 HUD、结算面板、图鉴弹窗的排布。旧版界面元素比较松散,容易遮挡游戏画面;本次缩小 UI 占比,分数、提示信息放在画面边角,最大程度不干扰玩家观察星光光线,同时制作了多模式选择主菜单。 多游戏模式
官方
2 赞
开发者日志#6】星序 - 模型就绪:模型实装、图鉴与得分系统截图
开发者日志#6】星序 - 模型就绪:模型实装、图鉴与得分系统
导言: 上期把游戏的UI和核心循环跑通了,但满屏幕的纯色方块和圆圈实在有些“寒酸”。在第五篇日志的结尾,我提到已经在Blender里开始制作模型。 这次,终于到了把“占位符”全部删掉,换上真正美术资产的时候了。同时,为了增加重复游玩的动力,我还实装了图鉴和得分系统。 同时为游戏场景的星空背景特意在blender中制作了三渲二风格的星空天空盒hdr资产,以及游戏图标的制作。 本期进展: Blende
4 赞
【开发者日志#3】星序 - 轨迹采样与发光体预警机制截图
【开发者日志#3】星序 - 轨迹采样与发光体预警机制
导言: 上期把小球跑通了,确定了移动和冲刺的基础手感(虽然冲刺方向还没定死)。 这次,游戏最核心的机制终于要开始动工了:如何记录玩家的轨迹,生成使用简单的音效,并让星光在正确的时间、正确的位置闪烁。这一篇主要分享我在实现“轨迹采样”和“发光体预警”时踩过的坑。 本期进展: 确定了冲刺方向:综合了上期的风险,我最终决定还是采用“朝当前移动方向冲刺”。如果玩家没有按移动键,按空格则朝面朝方向(基于上一
2 赞
【开发者日志#4】《星序》- 攻击逻辑:光线队列回放与碰撞判定截图
【开发者日志#4】《星序》- 攻击逻辑:光线队列回放与碰撞判定
导言: 上期实现了星体的预警、音效和单根光线的测试。但一个星体不够,需要能够产生紧迫感的体验。 这次,我把之前丢进队列的光线按顺序取出来,让它们在玩家面前依次重放,并加上了真实的碰撞判定。小球终于体验到了被自己过去的轨迹“追杀”的感觉。 本期进展: 完成队列回放机制:我用 Queue<RayRecord> 存储光线数据(起点位置、目标位置、音效索引)。当累计的光线达到 5 个时,自动触发一次“回放
5 赞