下载 App

开发日志3#

5 小时前9 浏览综合
一、项目基线
编组为 6 节,单节车长 19.5 米,车宽 2.80 米,总长 117 米。轨顶高度统一为 ballastHeight 减 0.15 再加 railHeight,也就是 0.30 减 0.15 加 0.176,等于 0.326 米。线路共 4 条,分别是地铁 1 号线 11.0 公里、地铁 2 号线环线 15.0 公里、地铁 3 号线跨江 19.2 公里、机场快线 21.8 公里。可驾驶车型三款,B 型地铁(银青涂装)、蓝翼机场快线、赤羽都市快线。坐标系使用 Y-up 左手系,+X 向右、+Y 向上、+Z 向前,长度单位是米。所有可调参数集中在 core/Config.lua,玩法代码只读不写。
二、上一轮已交付(背景)
一是列车外观真实化,包含曲面车头、弧形车顶、空心客室与驾驶室、独立车门、转向架与车轮、受电弓、双屏操纵台。二是连续滑动视角,驾驶视角支持鼠标拖动与手机滑动连续转头,松手保留观察角,R 键与 Home 键明确复位。三是外部环绕视角,外部视角真正绕车改变相机位置,使用 urhox-libs/Camera/ThirdPersonCamera 库。四是车库 3D 预览,可拖动缩放的真实 3D 预览,另外有独立的外观设定图展示,设定图不是 3D 模型。五是三款可驾驶车型,各有车头曲面样式与涂装。
三、本轮需求(用户反馈原文要点)
用户原话是:列车有的地方不灵敏,语音播报会有一些卡顿的效果,列车头没有轨道,地铁地底下的那个视角隧道可以往上提高一些,这个地铁也可以在地面上跑,也可以在隧道里面跑,游戏大厅几个页面字体给他规划好,不要有溢出。
拆解为六项:操作与滑动观察不灵敏;语音播报卡顿、断句、重复插播;车头前方与全编组下方没有轨道;地下隧道观察空间局促;地面、隧道、高架需要连续运行;大厅各页面文字溢出。
四、逐项实现
4.1 连续 3D 轨道,新增 world/Track.lua
问题根因是轨道原本挂在隧道环境根节点下,露天段整棵环境被禁用时,钢轨跟着消失。方案是让轨道独立成段池,按材质合批成 5 个 geometry,分别是轨头、轨腰轨底、轨枕、扣件、道床。每段 10 米,按 2 米线路采样摆放短钢轨与道床。轨枕间距 0.625 米,按全局里程格点生成,段边界不重复。轨距 1.435 米是两轨头内侧净距,轨头宽 0.075 米,所以轨头中心 X 坐标是正负 (1.435+0.075)/2,等于正负 0.755 米。环池按 modulo 回收,只重建被回收的段,不每跨段重建全池。
4.2 地面、隧道、高架连续切换
core/Route.lua 里 IsTapTapr 的判据,从旧的 y 减 groundY 大于 6,改为 y 大于等于 groundY 减 0.05,贴地即判为露天。world/Tunnel.lua 与 world/Surface.lua 改为按段自身里程判断地上地下,不再按车头禁用整棵环境根,洞口同屏可以同时有露天前部与地下尾部。world/Surface.lua 废弃整块大地面板,改按露天段生成左右地形,路基降到轨道下方不盖住轨顶。
4.3 隧道观察空间
隧道净半宽设为 7.60 米,净高设为 9.60 米,这是面向观车空间的宽松设计,不是真实工程断面。接触线固定 5.16 米,独立于顶板,抬高隧道不会让受电弓失去接触。自由环绕默认距离 20 米,FOV 62,不再贴近车头。
4.4 操作灵敏度
改动文件是 world/CameraRig.lua 与 ui/TouchControls.lua。灵敏度从 0.11 提高到 0.16 度每系统逻辑像素。PointerUp 会消费最终坐标,修复低帧率下最后一次 Move 缺失导致的丢段。惯性年龄阈值从 80 毫秒放宽到 160 毫秒,Cancel 不补位移。牵引拉杆的 LeverPointerUp 会先按 Up 的最终 Y 更新档位。
4.5 语音播报
改动文件是 core/Announcer.lua、core/AudioScene.lua、core/Sfx.lua。
卡顿根因已经确证:超速提醒每 6 秒重播一次,而现有双语语音长度已经超过 6 秒。中文 2.533375 秒加英文 3.932 秒,等于 6.465375 秒,超过 6 秒。所以下一次提醒会截断上一句英文。
修复方式是改成完整状态机,状态为 idle、zh、segment-gap、en、subtitle,同类 pending 去重,冷却从完整结束时刻开始算。暂停改用 PauseSoundType(SOUND_VOICE) 与 ResumeSoundType,真正冻结播放位置,不再用 SetGain(0) 假静音。运行期只取缓存,不再每帧解码或加载。29 个 WAV 文件,24kHz、16bit、单声道,总共约 4.153 MiB,配置了预下载组 audio_ready。
4.6 列车渲染合批,新增 world/TrainBatch.lua
同材质三角形真正拼接为单个 geometry,保留 UV、法线、切线。一期按车厢内区域分桶,二期把门叶四块门板合一。组件数从 1863 降到 457,同时保留 6 节车、48 个旋转轮、92 个门叶、双驾驶室屏幕以及各自动态材质。
4.7 大厅文字布局
ui/Theme.lua 统一了字号角色,包含 brand、page、title、body、small、button 等,以及 lineHeight。ui/Common.lua 的 Text 明确 width、自然换行、minHeight 撑高,按钮按真实 MeasureTextWidth 定宽。各页面标题与徽章分槽,KV 键值独立分列,低高度主菜单与加载页可滚动。ui/Widgets/RouteMap.lua 的自绘站名改用实际字形 bounds,分左右标签栏加引线,先画点线后画字。
五、关键问题与根因
第一,露天钢轨消失,根因是轨道挂在隧道根节点下随环境被禁用,修复方式是轨道独立成段池。
第二,贴地被判成地下,根因是 y 减 groundY 大于 6 的判据过严,改为达到地表即露天。
第三,洞口整片闪换,根因是按车头状态切换整棵环境,改为按段自身里程分类。
第四,露天被巨大灰面遮挡,根因是 Node:SetEnabled(false) 不会隐藏子节点上的渲染组件,环境段改用 SetDeepEnabled。
第五,超速播报自截断,根因是语音 6.46 秒大于 6 秒重播间隔,改为去重加完整结束冷却。
第六,外挂视角穿隧道墙,根因是按车头判断地下但眼位在后方,改为按实际眼位所在段夹断面。
第七,低帧率丢末段输入,根因是 Up 携带的最终坐标未被消费,改为 PointerUp 先消费最终位置。
其中第四条是引擎已知陷阱,已经记录在 engine-docs/gotchas/index.md:Component:IsEnabledEffective() 只检查直接父节点,不递归检查祖先节点。
六、验证记录(本地离屏 Runtime)
_metro_validate 覆盖轨道、环境、相机、合批、门动画,共 268 项断言,PASS,错误 0。
_audio_validate 覆盖序列、冷却、暂停、设置、无输出边界,共 60 项断言,PASS,错误 0。
_train_validate 覆盖三车型车库预览与真实驾驶入口,共 75 项断言,PASS,错误 0。
_ui_dynamic_validate 覆盖切线路残留与车库滚底,在 800x400 与 960x600 两种尺寸下各 48 项断言,PASS,错误 0。
全工程 LSP 诊断 Error 0。正式入口 main.lua 官方 build 成功,运行无 Lua、资源、引擎错误。临时验收脚本已从 scripts/ 移出归档,不进入正式产物。
七、性能数据(同机位同分辨率对照)
无合批基线:StaticModel 1863 个,numBatches 1458,三角形 133766。
合批后:StaticModel 457 个,numBatches 1259,三角形 136778。
诚实结论:组件数下降约 75%,但绘制批次只下降约 13.5%。组件数不等于帧率,手机实际帧率需要真机回测,不能以组件减少来宣称 FPS 提升。
八、遗留与未验证项
一是手机真机未验收,帧率、触控手感、多指缩放都需要真机回测。
二是音频只做了逻辑与 mock 验证,实际听觉效果,也就是是否仍有细碎卡顿,未做真机听测。
三是 UI 截图检查覆盖有限,横向溢出检查不包含字形内部与全部动态换内容场景。
四是大厅密集站名在极小屏下仍建议真机目视确认。
九、本轮结论
六项反馈均已实现,并有本地离屏断言覆盖,正式构建通过。所有体感类指标,包括帧率、手感、听感,都保留真机回测空间,不做过度承诺。#聚光灯gamejam开发者日志
别再烧积分了!从每次 2000 到每次 50 的血泪经验截图
别再烧积分了!从每次 2000 到每次 50 的血泪经验
适用场景:所有在用 TapTap Code 开发游戏的小白 难度:★☆☆☆☆ 背景最近群里总有人"炫耀"一次操作花了几千积分,说实话这不是值得高兴的事——这是在告诉所有人你的开发方式有根本性问题。我也走过这条弯路,所以来说说怎么改。 积分消耗的本质是什么积分 = AI 处理的 token 数量 = 你发给 AI 的内容 + AI 回给你的内容所以烧积分的本质只有两种: 你让 AI 做了大量无效/重
精华
74 赞
23 回复
<消金法则>10.17更新公告截图
<消金法则>10.17更新公告
本次更新对肉鸽模式的后期体验、系统功能以及整体 UI 视觉进行了全面优化,并接入了多项实用功能。以下是本次更新的简要内容: 一、 优化玩法数值 新增肉鸽后期递增机制:随回合数推进,移动步数消耗与分数获取倍率将同步递增,挑战与收益并存。 优化升级曲线:重新调整了肉鸽模式的升级经验计算公式,成长节奏更平滑。 二、 新增系统功能 接入 TapTap 成就系统:游戏内成就现已与 TapTap 平台打通。 新
1 赞
03:06
为了不被斩杀,我只能做到这些了截图
为了不被斩杀,我只能做到这些了
之前一直申请不到计划3,之前说太花哨,后面说体量完成度不足,在我一番小作文下,编辑终于给了我解答,什么原生质感,玩家开局体验啥的。 本来计划2也够用,准备以后再优化了,结果计划2赠送的积分要砍半了,学生党实在消费不起,于是只能再冲一波计划3了 从周六中午到现在一天半时间,优化了一遍角色卡,战斗卡,还有抽卡界面,优化了新手教程,该说不说确实比之前要舒服些。 前半部分为新版,后半部分为旧版。 明天再次
44 赞
9 回复
【观沧海】开发者日志 04截图
【观沧海】开发者日志 04
各位晚上中午早上好呀, 今天实现了以下几个内容的搭建 更新了加载页面,感谢美术老师的产出 重新调整了海面的显示效果,尤其是不同的海相运动下的不同效果 更新了一天时间循环系统 更新了游戏内的按钮排版 完善了游戏的流程,预计明天发布,可以试玩 #聚光灯gamejam开发者日志 #观沧海
1 赞
开发者日志,1截图
开发者日志,1
开发者日志 一、大厅界面调整 恢复原来的两行三列实景卡片布局,保留六个功能入口。 修复手机横屏下第二排卡片被底栏遮挡的问题,并适配安全区。 保留“继续上次”、地铁币余额、车库和任务等现有功能,没有更换界面风格。 二、地下隧道修复 修复隧道墙面和顶板朝向错误,避免从内部看到外部天空。 进入地下后关闭蓝天白云和天光,保留灯带及局部照明。 环境切换根据实际镜头位置判断,避免车头已经出洞、车尾镜头仍在地下
3 赞
2 回复
【重启绿洲】开发日志02|美术篇:荒漠植物图鉴解析截图
【重启绿洲】开发日志02|美术篇:荒漠植物图鉴解析
#聚光灯gamejam开发者日志 #发现好游戏 #游戏日常 各位新玩家好,欢迎来到荒漠。 书接上回:沙漠,只是因为缺水吗?我们会顺着这个问题,讲讲游戏里地块属性是怎么设计的;再带大家认全八种荒漠植物,说说它们各自的效果和用途;最后聊聊永远让人操心的天气与灾害。 一、沙漠,只是因为缺水吗? 很多人第一反应是:沙漠等于缺水。这个答案只对了一半。 降水稀少确实是荒漠的底色,但真正让生命寸步难行的,是缺
1 赞
开发日志#2截图
开发日志#2
一、本轮目标 沿线房屋上色,去掉通体惨白 单股道改双股道,配双站台、双列车 到终点后可倒车返回,并再次前进 修复终点弹窗无法退出的死锁 二、场景与世界 world/Platform.lua:导出双线横断面常量 AI_LANE_OFFSET=-5.6、CORRIDOR_CENTER_X=-2.8、TUNNEL_HALF_WIDTH=10.4;Get() 支持左侧站台 world/Track.lua:
2 回复
TapTap制造新手攻略③截图
TapTap制造新手攻略③
✨系列攻略: ①零基础入门,快速做出第一个Demo ②提示词写法、节约额度、基础预览使用 ③【本期】游戏立项规划,拒绝项目烂尾 ④预告:UI设计与美术素材工作流 很多小伙伴看完前两期,已经可以用嗒啦啦生成游戏界面。 但绝大多数人都会遇到同一个难题:脑子里想法天马行空,一股脑丢给AI全部生成。到最后系统堆得杂乱臃肿,BUG越修越多,项目直接烂尾搁置。 本期不讲报错、不教改代码,聊聊动手做游戏
7 赞
开发日志3#截图
开发日志3#
第一轮 枪械音效独立化 问题 原有枪声区分度低,实际游玩时枪械音效不明显;十款枪里只有霰弹枪单独配置了音效,其余九枪共用同一份步枪音。 改动 为十款枪械分别制作独立开火音与独立装填音,共 20 份正式音效。 覆盖枪械:失衡者(霰弹枪)、巡逻者(突击步枪)、寒星(狙击枪)、静线(精准步枪)、火花(手枪)、铁幕(机关枪)、夜宴(汤姆逊)、炼狱(加特林)、天棱(激光枪)、雷诏(电枪)。 规格:44.1k
1 赞
【开发日志 5|涌现:让鸟"自己飞起来"】截图
【开发日志 5|涌现:让鸟"自己飞起来"】
涌现是这次 GameJam 的主题,也是我做这款游戏的起因。前四篇讲了蛋、孵化和鸟舍,这一篇回到天上——鸟群本身。 boids 三条规则日志 1 里介绍过:分离、对齐、内聚。做鸟群编辑页时,我给自己定了一条原则:玩家编辑的不是"鸟群的走位",而是"每一种鸟的性格"。 群性来自现实。麻雀在城市公园里成群,苍鹭在湿地独来独往,猛禽单独巡飞——这是鸟类学的事实。所以模拟里每种鸟的感知半径、邻居数、转弯速
1 赞
2 回复