7 天、3kB:用自定义字节码虚拟机做一款像素着色器射击游戏
来源:laurent.le-brun.eu — 2026-08-12
📋 概述
作者为 Langjam Gamejam(7 天语言挑战赛)做了一个射击游戏:嵌入一个极简自定义字节码虚拟机,用全屏像素着色器渲染,最终成品是 3kB 的 Windows 可执行文件。字节码设计极其精简——只有 float32 一种类型,数组就是全部存储,只有‘更新数组单元’和‘跳转’两类语句。编译器用 F# 写、解释器用 C++ 写,并支持字节码与 GLSL 的实时重载迭代。
🔑 核心要点
- 7 天完成,成品 3kB 可执行文件,用 Crinkler 压缩。
- 字节码只有一种 float32 类型,无栈无寄存器无类型标记。
- 语句只有两类:更新数组单元与(条件)跳转。
- 支持字节码与 GLSL 实时重载,IDE 保存即生效快速迭代。
💡 金句
每个变量都对应 float 数组里的一个槽位,条件就是判断浮点数是否大于 0.5。
👍 0
👎 0
← 返回 Lobsters 首页