我想尝试通过感觉编程来实现一个通常需要深入了解的demo场景。最终结果是实现了一个16KB大小的小型第一人称射击游戏。使用Fable 5 High进行初始规划,Opus 5.5 High进行实现、打磨和优化。游戏:你是盲人,身处地下。你的扫描仪发出三种频率的超声脉冲。脉冲会短暂地照亮墙壁和敌人,然后地图会恢复到一条淡淡的线。每个脉冲也会产生噪音,下面所有东西都通过声音来追踪。3个关卡,3种敌人类型加上一个boss,坑洞和桥梁,生成的音乐 优化技术: 关卡是一个64×64细胞网格,使用片段着色器(2D DDA)进行射线投射。这释放了约430字节,后来用来实现脉冲阴影,模拟AO和程序化的墙壁模式 每帧CPU都会重写一个浮点纹理(64×90RGBA32F)。它包含了细胞、敌人列表、脉冲、灯、HUD文本和字体位元。相机的俯仰角、仰角和宽高比都在一个glRects的纹理坐标上。零uniforms,零矩阵,一个绘制调用 敌人是由各个部分(圆形盒子和“肢体”段)组成的,签名距离场。每个部分占用7个字节,平滑合并并使用球体追踪。爬行者有六个连接的腿,实际上可以行走。近距离拍摄会很慢,所以每个部分都有一个边界球体,着色器可以跳过 x87代替SSE2,stdcall代替cdecl,内联函数关闭,使用300MB的Crinkler哈希表代替100MB *音乐是生成的。每个小节一个小的LCG会从调和进度中选择一个和弦,然后伴奏、低音和琶音会通过相同的合成器播放同样的效果 Platform:Windows 源代码和可执行文件:https://github.com/zTrojan/blind-sector
Vibe编写了一个16KB的FPS游戏作为实验
评论 (0)