Web 运行环境
Vifu Web 运行环境会把已通过的游戏作为托管 iframe 内的静态浏览器资源加载。Vifu 负责宿主外壳、AI 伙伴桥接、认证上下文、发布清单,以及连接 Vifu Cloud 服务。游戏负责渲染、输入、规则,以及通过 Vifu SDK 暴露的安全状态。
公开项目页运行在 vifu.ai。Vifu-hosted 游戏 runtime entry page 和可执行 bundle 资源在生产环境运行在 runtime.vifu.ai,开发环境运行在 runtime-dev.vifu.ai。后端 API 仍然在 api.consenger.com 和 api-dev.consenger.com。
| 范围 | 要求 |
|---|---|
| 入口 | index.html 等 HTML 文件,或 Godot Web Export 入口。 |
| 资源 | 从构建输出出发的相对路径。 |
| 存储 | 可以使用浏览器存储,但游戏必须在没有远程状态时也能启动。 |
| 网络 | 首次渲染不应依赖第三方网络请求。 |
| AI 伙伴 | 通过 Vifu SDK 暴露可给 AI 使用的安全状态和游戏自有动作。 |
| 云端 | 平台服务通过 Vifu SDK 使用;首次渲染不应依赖自定义后端。 |
游戏应能在 iframe 中运行:避免顶层导航、弹窗依赖、绕过 SDK 访问父窗口,以及用原始 window.parent.postMessage(...) 做后端信号。
community / uploaded game 使用严格 sandbox iframe。公开游戏页不会给 allow-same-origin,所以游戏不应依赖稳定 origin storage 保存长期状态。 需要跨设备或平台存档时,使用 vifu.gameState。只有显式 allowlist 的 trusted first-party runtime 才能获得更宽的 iframe 权限。
安全边界
浏览器安全层各自负责不同问题:
runtime.vifu.ai把不可信 runtime code 和可信 Web shell / API origin 隔离开。- iframe sandbox 限制 runtime 可用的浏览器能力。
- runtime CSP 限制可执行脚本、资源类别和网络 origin。
- host bridge 默认拒绝,只授予已声明的平台能力。
- private project、runtime session、credits、AI、plugins、game state 仍由后端授权决定。
目前,可执行 bundle 资源从 runtime origin 加载。runtime data 和 media 仍留在 Vifu API origin,因为这些 endpoint 仍由 API 层拥有;后续如果通过 Runtime Gateway proxy 这些资源,就可以把 community runtime 的 connect-src 进一步收紧到 runtime origin。