# 星线游戏技术概览

星线游戏当前源码实现一张带 WebGL 局部动态效果的视觉首页，提供暂停、关于和沉浸预览。它还不是可运行的网络游戏、VR游戏或游戏发行平台；页面图像属于视觉创作，不是黑洞物理模拟或观测视频。

## 入口与架构

代码指定入口为 `https://game.thestarline.cn/`。源码说明当前阶段提供本地预览，正式域名部署仍需独立确认。

站点使用 HTML、CSS、原生 ES modules 和 WebGL 1，无第三方前端运行依赖。构建需要 Node.js，静态预览可使用 Python，但正式页面运行不依赖 Python服务。

| 模块 | 职责 |
| --- | --- |
| `index.html`、`styles.css` | 页面内容、响应布局、操作控件与对话框 |
| `app.mjs` | 横竖屏资源选择、播放状态、沉浸模式与场景替换 |
| `scene.mjs` | WebGL 纹理、着色器、尺寸适配、帧循环与资源释放 |
| 两张主视觉 | 横屏和竖屏静态图像，同时承担动态失败时的展示 |

横屏与竖屏使用各自构图。动态着色器主要作用于吸积盘区域，人物与设备保持稳定，不能由此推断页面已生成三维世界、物理碰撞或玩家视角交互。

## 场景启动与生命周期

页面按视口方向选择图像及相应的构图参数，准备图像后创建场景。切换方向可能引发异步加载，控制器使用请求版本区分新旧结果；过期结果不会覆盖当前场景，弃用场景会释放资源。

渲染循环受播放状态、文档可见性和 WebGL上下文状态共同控制。页面隐藏或用户暂停时不继续正常绘制；恢复可见并满足播放条件后再启动。系统“减少动态效果”在初始状态和偏好变化时影响播放，保留清晰静态画面。

场景使用 ResizeObserver 或窗口尺寸变化后备处理画布变化。销毁时移除可见性、尺寸和 WebGL上下文事件监听，停止动画并释放资源，避免横竖屏反复切换积累后台循环。上下文丢失与恢复有专门分支；无法创建 Canvas/WebGL场景时仍可展示静态主视觉。

## 沉浸、暂停与关于

普通模式用 `cover` 铺满视口；沉浸预览隐藏品牌、文案和页脚，以 `contain` 展示完整图像，同时保留退出控制。背景界面使用不可交互状态并处理焦点，退出后恢复合适的操作位置。Escape可退出沉浸，打开关于对话框时优先处理对话框。

“沉浸”是页面显示模式，没有据此调用 WebXR、接入头显或取得摄像头、陀螺仪权限。关于窗口使用对话框行为，提供关闭与外部点击处理；暂停只控制视觉效果，不会暂停任何已连接的游戏服务器。

页面中的“在所在国家或地区未获得批准”是静态说明。代码不读取地理位置，也没有调用许可核验服务，不能把这句话解释成完成了用户定位或逐地区监管核查。

## 数据、权限与发布文件

当前没有账号、玩家资料、存档、房间、匹配、排行榜、道具购买、广告计费或支付 API；不会因为观看视觉页面而创建游戏账户。主要数据是公开图像、样式、脚本和当页运行状态，不包含服务端玩家数据库。

构建采用 10 个文件的显式白名单：页面、样式、两个运行模块、robots、sitemap、横竖屏主视觉、品牌标识和图标。历史 PNG、设计参考、验收资料与文档不会自动进入发布包。新增资源必须明确加入白名单，并确认用途和公开授权。

后续若增加游戏能力，应分别设计账户、玩法状态、服务端规则和真实设备交互。当前视觉场景可以独立演进，但不能作为网络游戏后端或支付能力的现成实现。

## 失败与验证边界

需要验证的场景包括不支持 WebGL、上下文丢失、图像加载失败、快速横竖屏切换、后台恢复、减少动态、触屏操作、窄屏布局和键盘关闭。语法检查与静态文件构建只能验证部分发布条件，不能替代浏览器效果、设备稳定性和正式上线检查。

资料依据 2026-10-23 源码整理。正式发布仍需完成目标浏览器、设备和域名验收。公开产品信息见 [官网](https://document.thestarline.cn/website/)，政策入口见 [法律中心](https://document.thestarline.cn/legal/) 与 [隐私中心](https://document.thestarline.cn/privacy/)。

## 源码依据

主要依据为 `game/README.md`、`index.html`、`styles.css`、`app.mjs`、`scene.mjs` 与 `build.mjs`。README中的本地预览记录与正式公网验收需分别判断。
