标签:工程实践
-
清算文件解析:交易所和结算公司下发的为什么至今还是定长文本
券商日终清算的第一道工序是解析中登和交易所下发的清算文件——2026 年了它们仍然是 GBK 编码的定长文本。这篇讲定长格式背后的工程原因、控制文件配套的校验设计,以及解析器怎么做到坏文件不拖垮整个清算批次。
-
场景切换的正确姿势:change_scene_to_file 的内部行为
change_scene_to_file 是同步拆旧建新——旧 current_scene 被立即摘除并释放,从物理回调里直接调会触发 locked 报错;这篇把 _change_scene 的每一步和延迟切换的正确写法讲清楚。
-
音频导入:WAV/OGG/MP3 的解码后端与循环点之谜
三分钟的音乐存 WAV 要 32 MB,存 OGG 只要 3.6 MB,但为什么循环音乐从来不用 MP3?这篇算清三种格式的数据量与解码成本,讲 stb_vorbis/minimp3 后端差异,以及循环点精度问题的物理根源。
-
自定义 ResourceFormatSaver/Loader:让引擎认一种新资源类型
想让 load() 直接读你的存档格式或关卡数据文件,就要实现一对 ResourceFormatLoader/Saver。这篇给一套可运行的存档格式代码,讲清加载链怎么把请求路由到你的 loader,以及缓存和递归加载两个坑。
-
纹理导入:VRAM 压缩格式的选择逻辑
PNG 再小也要解码成 RGBA8 上显存,VRAM 占用和磁盘体积是两回事。这篇算清 BC/ETC2/ASTC 的块压缩数学,讲 Godot 四种压缩模式的取舍,以及 export 时按平台选格式的具体配置。
-
资源热更新:导出后替换 PCK 的可行性边界
Godot 的 PCK 支持运行时挂载补丁包,load_resource_pack 一行就能把下载的资源盖进运行中的游戏。这篇讲补丁包的覆盖语义、ResourceCache 导致热更不生效的坑、脚本热更的限制,以及引擎不管的那半边商用方案。
-
模型导入:glTF/FBX 到 ImporterMesh 的转换与拆分策略
模型文件进 Godot 不是"加载"而是"翻译":glTF 走内置解析器,FBX 走 ufbx,最终都落成场景节点树加 ImporterMesh 资源。这篇讲导入管线的产物结构、mesh 与 scene 的拆分策略,以及单位/坐标系/材质三个默认就会踩的坑。