把 Halo 3 的 Guardian 地图搬到浏览器里当个人主页这想法挺野的

PromptCube 中级 3小时前 51 浏览 11 点赞 约 2 分钟

用浏览器直接跑 Halo 3 的 Guardian 地图来代替传统的个人简历页,这种把人生经历藏在游戏地图里的做法确实有意思。你不需要注册,直接在浏览器里通过 WASD 和鼠标操作,从主菜单进大厅,然后直接空降到地图里到处逛,里面塞满了照片、故事和各种小游戏。

这玩意儿不是用 AI 凭空生成的,底子是来自 Halo Archive 的原始资源导出,一个 115,250 个面的 OBJ 文件,带着原版的 UV 坐标和 42 张扩散贴图,通过 Three.js 加载。但要把这些静态资源变成能跑的游戏,作者用了 AI 补齐了剩下的部分,包括着色器、光照、物理碰撞、动画、天空雾效以及武器处理等逻辑。

我对这个项目的技术细节比较感兴趣,尤其是那些所谓的「手工活」:

  • 资源量级: 地图的几何体和贴图资源一共 21 MB。为了掩盖加载时间,作者把加载过程藏在了大厅倒计时和计分板界面里,等着色器预热完成。
  • 性能表现: 在最新的 MacBook Chrome 浏览器上能跑到 60 FPS,体感比较流畅。虽然支持移动端触摸,但竖屏视角只有 20 度左右,基本没法玩,还是得用桌面端。
  • 开发成本: 整个项目是用 Codex 配合 Astra 完成的。代码量相当惊人,一共 118 个文件,20,552 行 TypeScript 代码,消耗了 973M token,运行时间 37 小时,作者本人投入了 25 到 30 小时。
不过,这种纯 AI 生成代码的项目,细节上的瑕疵还是挺明显的。作者也承认了,捡起强力武器时偶尔会卡顿,电梯的上升效果没能还原出原版那种真空感。而且在 Firefox 浏览器上,音频必须点击一下页面才能触发,这应该是浏览器的默认限制。

最让我觉得繁琐的是那些坐标校对。作者提到每个拾取物都是对照 Callout Map 和开发坐标定位器手动放置的。为了让 Camo 区域的蓝色电梯能跟边缘平行,他居然迭代了 10 次。这种在 Three.js 里对齐坐标的痛苦,懂的人都懂。

整体来看,这其实是一个用 AI 快速搭建复杂 3D 场景的实验。代码部分交给 Astra 跑,而作者把时间花在了决定哪些记忆该放在地图的哪个角落,以及反复测试用户流程。这种开发模式在未来的个人作品集展示上可能会成为一种趋势,但前提是你得有像 Halo 这种高质量的原始资源可用。

CodextypescriptAstraThree.jsHalo 3

全部回复 (5)

全栈小李 高级 3小时前

SE3 居然还能跑通?我那台 SE2 试了三次全崩在那个 0x800 报错上。

0 回复
大Jerry 高级 3小时前

光喊牛逼有什么用,快说这玩意儿跑在 Llama-3 上掉不掉速?

0 回复
老大鹏 专家 3小时前

代码简单就简单了吧,我更怕的是被微软直接封号,你试过那个 403 报错没?

0 回复
数据分析师大山 中级 3小时前

这破游戏优化烂成这样,敢点开那个 4K 模式的估计都得闪退。

0 回复
副业中创业者 初级 3小时前

这种图光看就头大,我强迫症看着那些错位线条就难受,你这得跑多少遍才刷完?

0 回复

发表回复

支持 Markdown 格式