这个周末你打算做什么?
摘要
一位开发者描述了将《完美黑暗64》关卡移植到 noclip.website 的过程,强调了读取 N64 显示列表和重新实现渲染引擎的挑战。
<p>欢迎分享你这个周末的计划,甚至可以寻求帮助或反馈。</p>
<p>请记住,什么也不做也是完全可以的!</p>
查看缓存全文
缓存时间: 2026/06/26 10:07
# 这个周末在做什么?
来源:https://lobste.rs/s/dpctyb/what_are_you_doing_this_weekend
将《完美黑暗64》的关卡移植到 noclip\.website。
我已经完成了静态几何体与顶点光照的基础实现,这让我对这款游戏更加钦佩——他们通过切割面片并手动绘制顶点来呈现大量光照细节。我会确保保留一个禁用纹理的选项,这样大家都能欣赏到 Rare 的精湛工艺。
如果没有完整的反编译工程,这个移植根本不可能实现。当年游戏在加载资源时做了一些令人费解的设计——在不受限的硬件访问权限和紧张的预算下,你总得优化某些东西,结果就是 26 年后让人头疼。此外,N64 游戏并不以可解析格式存储模型,而是采用显示列表(display list),本质上就是直接调用图形芯片的原始 API。要读取这些模型,必须模拟芯片运行,而芯片的微代码由游戏本身提供。Rare 是少数使用自研微代码的工作室之一,由于顶点数据结构已改变,我无法复现现有的代码。
这是一个有趣的谜题:要将任何游戏移植到 noclip,都必须重新实现它的渲染引擎和数据层。如果再加上音效和玩法,那就是一款完整的游戏了。
相似文章
你这个周末打算做什么?
一位开发者分享了他这个周末的项目,即构建一种编译为WebAssembly的低级中缀语言,并提供了从上下文自动补全到前沿模型等AI编码工具的个人排名。
将我的3D点云渲染器移植到ZX Spectrum 48K上
一位开发者将3D点云渲染器移植到ZX Spectrum 48K上,通过Z80汇编优化达到每秒14帧,并创建了一个预计算版本,运行速度为每秒40帧。
将我的C游戏移植到WASM,这是我遇到的所有Bug
一位开发者分享了将C游戏移植到WebAssembly的经验,详细介绍了因32位与64位差异遇到的Bug,并提供了调试技巧。
你这周末打算做什么?
一位开发者正在打磨WordJoy,这是一款关于汉字部件的挂机解谜游戏,重点改善前期体验,提供更清晰的连击反馈和更快获取更高稀有度的部件。
像1993年那样制作图形
一位开发者详细介绍了如何构建《Catlantean 3D》——一款采用1993年时代图形技术(256色、320x240分辨率、手工制作资产、无人工智能)的第一人称射击游戏,计划在Steam上发布,重点讲解调色板渲染和资产创建。