下载 App

开发日记 — 2026年3月17日(周一) 节拍前夜 · 第49天

精华03/1833 浏览开发日记
今日概况
TapTap
今天做了什么
BUG-54 终结:TitleScreen 按钮宽度坍塌
跨了好几个会话的按钮宽度 bug 终于修了。根因是 Button:SetStyle\(\)
在 fontSize
变化时会隐式重算 width
,而此时 text=\&\#34;\&\#34;
导致宽度被压到 max\(64, 0\+32\) = 64
。修法很简单——SetStyle 后单独调一次 SetWidth。
真正的收获不是这个修复本身,而是过程中总结出的 debug-stuck-guard 规则:bug 修两轮不行就别继续猜了,加日志看数据。这条教训写进了 CLAUDE.md,以后应该能少走弯路。
DWP 二次挑战:从失败到成功
这是今天的主线。上次(迭代#037)DWP 实验以失败告终——Boot 阶段黑屏、占位纹理不可控、2D 图片密集型项目和 DWP 天然不兼容。但加载时间的问题还是得解决,所以换了个思路重来。
新方案的核心想法:不在 Boot 阶段搞事,而是把 LoadingScreen 做成正经的 UI Widget,用引擎自己的 NanoVG 上下文渲染,通过 cache:DownloadResources\(\)
主动拉取全部资源。下载没完成就不切屏,玩家永远看不到白色占位纹理。
下午 16:53 写完第一版,17:24 重写为 UI Widget 架构,17:32 修了 Web 端卡在 0% 的问题(手动驱动 OnUpdate + 快速完成跳过动画),到 18:51 完成了 v2 美化版。三个小时,四轮迭代,从概念到成品。
LoadingScreen v2 最终效果:
选卡背景图 + 暗色渐变遮罩 + 暗角聚焦
Logo 替代文字标题,带紫色微光晕
进度条六层渲染:阴影→暗色轨道→紫色渐变填充→顶部高光→流动光效→末端发光点
DrawingMachine 卷纹九宫格装饰边框
鼠标移动生成紫色光点粒子,点击产生涟漪扩散
DWP 兼容:nvgCreateImage 每 0.5s 尝试加载,纹理就绪前用纯 NanoVG 兜底
初始加载从 120MB 降到约 1.8MB(仅脚本),剩余资源在 LoadingScreen 期间后台下载。
TapTap
DWP 资源列表 UTF-8 修复
美化完没多久就发现新问题——ALL_RESOURCES 里的中文路径在某些环境下 UTF-8 编码损坏,导致资源匹配失败。花了一个小时做全量转义清理,顺便给下载失败加了显式报错,不再静默吞错。
文案镜像:game-texts.txt
晚上换个脑子,做了个一直想做的事:把游戏里散落在各处 Lua 文件里的文案全部镜像到game\-texts\.txt
。从 18 章扩展到 25 章,覆盖了乐器店、乐录、奖励、标题、通关、生涯、教学时停、新手指南、战斗界面等所有屏幕的文案。同时标记了已废弃的内容(TutorialModal、坚韧 tenacity 死代码),然后把对应的废弃代码也一并清理了——删了 TutorialModal 整个文件(118 行),移除了 RhythmEngineV2 和 BattleScreenV2 里残留的 tenacity 相关代码。
把 game-texts.txt 纳入了记忆文档体系的级联读取和自动同步清单,以后改文案时 AI 会自动同步。
深夜收尾:记忆文档全面审计
做了一件拖了很久的事:把源代码和记忆文档逐行对账。
上次认真同步文档大概是 v3.0 发布前后,之后连续做了模块化拆分、废弃代码清理、新控件开发,文档就一直没跟上。花了两个小时,把 97 个 Lua 文件的行数全部重新统计,和文档里记录的 81 个文件 / 32000 行逐一比对。
结果比预想的差距大:
  • 文件数 81 → 97(多了 16 个文件没被记录)
  • 总行数 32000 → 47500(差了一万五千行)
  • 版本号还停在 v3.1.1,实际已经是 v3.1.2
  • 敌人种类写着"5+1种",实际 EnemyData 里已经有 8 种了
  • 地图层数写着"15层",MapData 里已经是 18 层了
  • 屏幕注册数写着"8个",main.lua 里已经 10 个了
一项一项改完,主文档从 v2.6.0 更新到 v2.7.0。子文档(架构与系统、规范与历史)也检查了一遍,里面的旧数据都是历史快照,如实保留没动。
今天卡过的地方
LoadingScreen 第一版在 Web 端卡在 0% 不跳转。根因是 Web 平台资源已在 VFS 里,`DownloadResources` 的回调瞬间完成,但 LoadingScreen 的 OnUpdate 还没被调用过,`displayProgress_` 停在 0。修法:手动驱动一次 OnUpdate,加上快速完成时跳过动画直接切屏。
DWP 资源列表的 UTF-8 问题也费了点时间,240 条资源路径逐一检查。
文档审计比较顺利,没有技术卡点。唯一花了点时间的是判断子文档里的\"15层\"\"v3.0.0\"该不该改——最终确认它们是特定版本的历史记录,改了反而不准确。
数据
项目总代码量:47,744 行(104 个 Lua 文件)
版本跨度:v1.16.0 → v1.18.1(3 个版本)
迭代编号:#037、#040、#041
LoadingScreen 重写:\~580 行
game-texts.txt:25 章,约 1000 行文案镜像
清理废弃代码:删除 TutorialModal(118 行)+ tenacity 相关(约 40 行)
初始加载体积:\~120MB → \~1.8MB
文档审计:v2.6.0 → v2.7.0,修正 97+ 处差异
碎碎念
今天从下午干到凌晨,干了四件大事:BUG-54 收尾、DWP 翻盘、文案系统建立、记忆文档审计。每件单独拎出来都是一个完整的工作单元,一天全做完了,有种把待办清单一口气清空的爽感。
DWP 的故事挺有意思。上次的失败不是方向错了,是切入点错了。Boot 阶段搞 NanoVG 就是在和引擎的初始化时序较劲,注定不会顺利。换成 UI Widget 方案以后,所有东西都在引擎的正常生命周期里,一切顺理成章。有时候退一步换个角度,比死磕更有效率。
六层渲染的进度条是今天最满意的细节。加载屏是玩家看到的第一个画面,值得花功夫打磨。
深夜的文档审计不\"刺激\"——没有新功能、没有炫酷效果,就是把文档和代码对齐。但第50天了,代码从零写到快五万行,这种基础设施工作其实很重要,不然 AI 助手每次开会话都在用过时的信息做判断。
开发工具:TapTap Maker
项目起始日:2026-01-28
  (注:文档部分内容可能由 AI 生成)#开发日志 #节拍前夜
猜你想搜
taptap 制造开发日记
别再烧积分了!从每次 2000 到每次 50 的血泪经验截图
别再烧积分了!从每次 2000 到每次 50 的血泪经验
适用场景:所有在用 TapTap Code 开发游戏的小白 难度:★☆☆☆☆ 背景最近群里总有人"炫耀"一次操作花了几千积分,说实话这不是值得高兴的事——这是在告诉所有人你的开发方式有根本性问题。我也走过这条弯路,所以来说说怎么改。 积分消耗的本质是什么积分 = AI 处理的 token 数量 = 你发给 AI 的内容 + AI 回给你的内容所以烧积分的本质只有两种: 你让 AI 做了大量无效/重
精华
82 赞
23 回复
如何提升你游戏中的UI美术水平截图
如何提升你游戏中的UI美术水平
一、请为你的游戏挑选一款合适的字体 很多开发者没有注意到其实UI界面中最重要的元素是字体,一款合适的字体能给整个游戏的界面感官带来蜕变。 请看案例 那么如何挑选适合自己的字体呢? 我总结出了一些小经验可供参考: 黑体:通用 宋体:古风、武侠、修仙 楷体:古风、武侠、修仙 圆体:卡通、动漫、Q版 科技:科幻、未来、电子 顺手分享一个免费可商用字体网站: 当然 如果你不知道自己的游戏适合什么风格
精华
126 赞
44 回复
01:29
官方阅,申请积分计划2,希望官方继续支持我完成这款游戏,截图
官方阅,申请积分计划2,希望官方继续支持我完成这款游戏,
视频内容只是一部分, 本游戏耗时3个月,目前完成进度百分之80, 是生存游戏,进入修仙界,走剧情找到宗门加入, 这时游戏才是真正开始, 提升实力境界后就可以变强,获取功法法术法宝, @视频内是游戏里挑战妖族入侵一种主流玩法,游戏就是围绕着这个来进行, 还有很多地方可以战斗,获得资源修炼变强,比如去藏书阁学习功法, 去法宝楼抽法宝,每一个宗门数十个法宝抽取 去修仙界探索,获得各自的资源,可能遇见妖兽
1 赞
3 回复
01:13
【游戏自荐】《王朝崛起》——一个人做的2D骑马砍杀,但真的上头截图
【游戏自荐】《王朝崛起》——一个人做的2D骑马砍杀,但真的上头
略沙盒,玩法硬核,还在修bug,但真的上头 先声明:我不是托,是开发者自己来安利的。如果你喜欢《骑马与砍杀》那种从零拉起部队、跑商、招降将领、攻城叛变的玩法,那这款游戏大概率会对你的胃口。 一、这游戏玩什么? · 超大的2D沙盒地图:64座城市 + 128个村庄,四大势力割据,满地图的蛮族部落。· 动态世界 & AI:AI势力之间会自己宣战、结盟、叛变;武将忠诚度低了会自立为王,最多能冒出8个新势
13 赞
7 回复
开发日志(day2)坚持去做就是好的开始截图
开发日志(day2)坚持去做就是好的开始
今天主要是修复了一下昨天遇到的很多问题,闪帧;装备的等级没有随怪物等级参考;再次进入地下城,怪物状态竟然显示(已倒下);不会自动更换目标,导致会反复鞭尸;等很多的问题,不过通过昨天的经验,有效的向ai提出问题并且发送截图发给ai调试,也是把这些问题成功排除,甚至还有多余的free额度来生成新的内容。 新增的内容有返回城镇;返回主界面;中途退出地下城保留进入前的状态;完成地下城的面板结算;当然最有感
1 赞
1 回复
00:33
[游戏上新]史诗级大乱斗 多人动作联机截图
[游戏上新]史诗级大乱斗 多人动作联机
《史诗级大乱斗》 是一款多人联机大乱斗游戏,现已免费上线 TapTap,并支持 安卓 / iOS / PC 跨平台联机。 🎮 核心玩法 选择拥有独特技能的多位角色,在快节奏对局中配合多种主动道具,打出属于自己的大乱斗风格。 🎯 游戏模式 · 占领模式 · 团队模式 · 个人模式 🚀 持续更新 更多英雄、地图与玩法已在计划中,游戏将持续迭代。 今天带来部分基础玩法展示,游戏玩法请看视频,点击下方链接
4 赞
7 回复
游戏自荐《少女终焉契约》截图
游戏自荐《少女终焉契约》
之前玩放置类型的rpg游戏的时候我就在想,现在游戏的操作有的太过于繁琐了,有没有一款休闲一点的,想上线就上线,离线的时候角色能自动行动的游戏呢?感谢TapTap制造,我按照我的想法开发出了现在这款游戏。 一、故事背景和UI 游戏的故事背景是传统的异世界穿越故事,玩家被女神召唤到异世界,随后组建工会,招募美少女,打怪升级探索世界。所以我选择了更加二次元萌系画风的UI风格,主页为各个主要的功能,点开来
8 赞
3 回复
【UI教程】如何将已有的效果图应用为实际的UI界面截图
【UI教程】如何将已有的效果图应用为实际的UI界面
在经过了一些折腾和比较折磨的尝试后,我总算是摸清楚了嗒啦啦怎么把UI效果图转换为实际游戏中的UI组件,今天就给大家带来这部分的经验分享。 tips:1.本篇教程需要各位掌握最基本的ps使用,具体的操作部分我会大致讲解,但仍需各位自行学习ps的基本操作,部分可以由ai代劳的环节我会注明。 2.本篇教程需要在以我前两篇教程作为前置环节,请在阅读这两篇前置教程后再进行本篇教程内容的学习 在按照前
12 赞
5 回复
【游戏上新】从抓妖开始(RPG抓宠同屏联机)截图
【游戏上新】从抓妖开始(RPG抓宠同屏联机)
《从抓妖开始》上新:多人在线抓宠 RPG,捕捉、养成、打 Boss、摆摊交易都安排上了! 大家好,我正在 TapTap 制造里开发一款多人在线抓宠 RPG:《从抓妖开始》。 @蒜鸟 这次想和大家分享一下目前游戏已经做出的核心玩法,也欢迎大家来体验、反馈、提建议。 一句话介绍 《从抓妖开始》是一款以 抓宠养成、回合制战斗、装备锻造、世界 Boss、天梯竞技和玩家社交交易 为核心的多人常驻服 RPG。
7 赞
01:26
《霓虹幸存者》是一款霓虹科幻风格的轻量幸存者小游戏截图
《霓虹幸存者》是一款霓虹科幻风格的轻量幸存者小游戏
玩家将操控宇宙飞船,在不断逼近的敌潮中移动、闪避与战斗。击败敌人可以获得能量并升级武器,逐步形成导弹轰炸、激光穿透、浮游炮护航等不同战斗流派。 随着时间推进,敌人会以更密集的波次来袭,Boss 也会逐步登场。你需要在越来越危险的战场中不断强化火力,清空敌潮,尽可能生存到最后。 说两句题外话。我本来是一名菜鸡godot开发者,目前疯狂遇到瓶颈,项目重构了2次了。已经彻底丧失信心!但这次通过tapta
3 赞
2 回复