在我的游戏中,雪并不是你走过的纹理,而是一种记住你过去所在的地方的表面。 我将整个房间的雪区域都整合到一个大型覆盖表面中,然后将其视为画布:每次玩家走一步都会留下一个小贴纸,留下一个痕迹,直到你走到那里。 因为所有东西都在一个表面上,我几乎不用付出额外的努力。 水和水洼都可以清晰地从雪中切割出来,而整个场景在房间之间转换时都能幸免,所以如果你再次通过一个区域,你的旧痕迹仍然在那里等着你。 我最满意的部分是边缘。 一块扁平的印记看起来像是一块贴纸,所以我将雪通过一个小着色器处理,目标是我的印记绘制的颜色,并在每个印记的顶部画一个单独的黑色像素。 这一行阴影是整个秘密:它使每个印记看起来像被压入雪中,带有一小块被移动的粉末的光线。 这花费我几乎没有什么,仅仅是一对纹理读取每个像素,但这就是区别“地面上有一个标记”和“有人刚刚走过这里”,而这个小小的深度就是卖点。 在内部,每个贴纸、血迹、脚印、自行车轨迹、弹壳、所有东西都生活在一个紧密的系统中,我很自豪。 相反于每个标记都.spawn一个对象(这将在战斗变得混乱时立即使帧率下降),我将每个贴纸压缩到十二个字节的原始缓冲区中:位置、哪个贴纸、颜色、透明度和就这些。 从那里我保持一个单一的顶点缓冲区,随着每个贴纸被添加,一个本机程序静悄悄地追加一个单独的四边形到它,没有重建,没有每个顶点脚本调用,基本上是免费的。 当我达到限制时,我不像旧版本那样清空屏幕,而是将屏幕向前滚动并重用最旧的贴纸,因此你永远不会真正意识到存在限制,地面就一直记录了最后几千件发生的事情的滚动历史。 因为整个系统实际上就是一个字节缓冲区,因此将一个房间的贴纸保存到磁盘上就像简单地将缓冲区直接输出一样,这就是为什么你的脚印仍然存在当你走回去。 如果你想关注这个游戏,可以在这里找到:Itch.io 或 Steam
精致雪花贴纸特效
评论 (0)