96kb 是什么意思?为什么游戏和 demo 会追求这么小的体积

96kb 通常指最终可执行文件或游戏包的大小上限,而不是内存或显存限制。它常见于 demo scene(演示场景)和极小体积游戏竞赛:参赛者要在 64kb、96kb 这类容量内塞进完整的画面、音乐和交互。ZGameEditor 这类工具之所以被归入“96kb / 64kb”关键词,是因为它面向快速制作小体积游戏、demo 和屏保,能把程序体积压到很低。需要先说明:96kb 不是统一标准,不同比赛、不同平台对“算不算”有各自规则,具体以活动方说明为准。

96kb 限制的到底是什么

在极小体积开发里,限制对象通常是最终产物,例如:

  • Windows 下的 .exe 可执行文件
  • 某个平台的应用包
  • 提交给比赛的一个压缩包

它不限制:

  • 运行时占用的内存
  • 显存
  • CPU 或 GPU 性能
  • 屏幕分辨率

也就是说,程序可以运行时占用几百 MB 内存,但磁盘上的文件必须小于 96kb。这个区别是理解整个话题的关键。

为什么会有 64kb / 96kb 这类限制

这类限制来自 demo scene 的传统。早期 demo 团队在软盘、调制解调器传输等真实约束下比拼“用最小体积做出最震撼效果”,后来约束本身变成了竞技项目。常见的容量档位包括 4kb、64kb、96kb、256kb 等,数字越大,允许的表现越复杂。

96kb 常被当作 64kb 的“宽松版”:比 64kb 多出 32kb,足以加入更完整的音乐、更多纹理或更复杂的场景,同时仍属于极小体积范畴。不同活动的具体档位和规则差异很大,报名前应查阅该活动的官方说明。

小体积是怎么做到的

把程序压到 96kb,靠的不是单纯“少写代码”,而是几类手段组合:

手段 作用
依赖系统库 不打包自带运行库,直接调用操作系统已有的组件
资源压缩 纹理、音频、模型以压缩形式存储,运行时解压
过程生成 用代码或算法实时生成地形、纹理、音乐,而不是存成文件
程序压缩 对可执行文件本身做压缩(如打包器),运行时自解压
精简工具链 避免引入体积庞大的引擎或框架

ZGameEditor 属于最后一类:它本身面向小体积产出,生成的程序不依赖庞大的运行时,适合做小游戏、demo 和屏保。它的关键词里同时出现 96kb、64kb、game maker、demo maker、screensaver maker,说明其定位就是“用较小体积快速做出可运行作品”。

追求 96kb 时常见的失败点

  • 资源超标:一张未压缩的纹理或一段 WAV 音频就可能超过 96kb,必须压缩或改为过程生成。
  • 链接库过大:静态链接大型库会把体积迅速推高,需要改用系统库或裁剪依赖。
  • 平台限制:某些平台对可执行文件格式、签名或运行时组件有硬性要求,可能让“纯 96kb”无法实现。
  • 规则理解偏差:有的比赛只算主程序,有的算整个压缩包,还有的允许外部数据文件。算错范围会导致提交无效。
  • 调试成本:体积压到极限后,加一个功能就可能超限,需要反复权衡。

怎么判断自己该不该走这条路

如果你的目标是参加极小体积竞赛、学习底层优化,或制作对分发体积敏感的小工具,96kb 是值得挑战的目标。如果只是想做一款普通独立游戏,把体积压到 96kb 通常不是必要约束,反而会限制表现力和开发效率。选择前先确认:目标平台是否允许、比赛规则如何计算体积、以及你愿意为体积付出多少开发时间。

zgameeditor.org