单机为主的 3D 动作 Roguelite(绝区零/鸣潮式自由视角)· 房主联机 2~6 人 PvE · 二次元角色渲染 · Steam 首发
"Feel the impact, not the latency."
AsterNova 已按新栈重启(2026-08-31 重大定案:单机优先 + 房主联机):客户端 Godot 4.7.2(Steam/Windows 首发,Web 试玩 demo,Android 后置,渲染器全端 Compatibility),GDScript 模拟核心跑在游戏进程内(单机本地直调,联机时房主进程即权威端,2~6 人 PvE 合作;分层预测保动作手感;Steam 版联机走 Valve 免费中继,零自建服务器),画面为 二次元角色渲染(对标崩铁 / 原神 / 绝区零 / 终末地 / 鸣潮画风:toon ramp + SDF 面部阴影 + 描边 + 后处理,三档画质,渲染帧率 120 起步上不封顶),UI 走分界架构(菜单/设置 = React / 游戏 HUD = Godot)。原 Go 中心服务端基建封存为二期大型联机游戏起点资产。
- 📜 总蓝图 BLUEPRINT.md — 愿景、里程碑 M0-M4、验收节奏
- 🏗️ 技术架构 architecture.md — 技术栈定案、性能锚点、安全基线
- 🎨 美术风格圣经 STYLE.md — AI 资产管线的风格约束源
里程碑:M0 蓝图与仓库整理 ✅ → M1 渲染垂直切片(美术验证件)→ M2 战斗骨架 + Transport 抽象(GDScript 模拟核心单机可玩)→ M3 联机闭环(NAT 穿透)+ Windows exe 首发 → M4 ENet 升级 + 三档画质真机验证。
赛博珍珠白竞技场:Go 后端以 60Hz 裁决全部物理,客户端只做输入采集与快照插值——本地零预测、零作弊面。普攻命中 0.08s、拼刀 0.15s 的 Hit-Stop 卡肉,配合衰减式屏幕震动,把打击感做进引擎时间膨胀里。
三条铁律撑起整个系统:
- 房主权威(2026-08-31 翻转,原服务端权威思想延续)— GDScript 模拟核心跑 60Hz 固定步长(矢量 / 碰撞盒 / 状态机):单机 = 进程内直调;联机 = 房主进程为权威端广播快照,其余客户端上报输入、Lerp 插值渲染。二期可经 Transport 抽象整体切回中心服务器。
- UI 混合架构 — 大厅类界面(登录 / 主菜单 / 背包 / 设置)用 Web(一份 React 应用):Windows 走系统 WebView2、Android 走系统 WebView、Web 端就是 DOM 本身;战斗 HUD(血条 / 技能 / 小地图 / 飘字)归 Godot。战斗时 WebView 挂起,引擎独占渲染。
- 一套协议多端共享 —
game.proto以 backend 侧为源;传输层走可插拔 Transport 抽象(WS 先行,原生端 ENet UDP 后置)。
| Godot 4(v2,主客户端) | Web Shell | 一代 Godot(冻结) | |
|---|---|---|---|
| 状态 | M2 启动开发 | 现役(将演化为官网 + 托管壳) | 冻结为参考实现 |
| 目标平台 | Windows exe · Android APK · Web WASM | 浏览器 | Web WASM |
| 技术栈 | GDScript · 二次元角色渲染 · 三档画质 | Next.js 16 · React 19 · Zustand | GDScript · 自研零依赖 Protobuf |
| 目录 | asternova/client-godot-v2(规划) |
asternova/web-client |
asternova/client-godot |
Unity WebGL 客户端已归档(2026-08-30),历史可经
git log追溯。
压测(单机腾讯云实测,完整图表见 asternova/assets/)
| 指标 | 结果 |
|---|---|
| 60Hz Tick 稳定性 | 长尾稳定,无积压 |
| RTT | 局域网 <10ms · 公网 P95 <80ms |
| 满房间并发 CPU | 单核占用可控 |
大厅 /lobby 内置纯前端小游戏,零后端依赖,随官网保留作引流位:
立体三消 — 12 关闯关 4 连炸弹 · 5 连彩虹 · 连击 · 成就 · 双主题 · PWA 可安装 |
shoot-them-all — matter-js 物理弹幕 另有 lets-running · merge · nebula-survivor |
# Web 外壳(官网 / Arcade,现役)
cd asternova/web-client && npm install && cp .env.development .env.local && npm run dev
# Go 后端(❄️ 一期封存:二期大型联机起点资产,本节仅二期重启时参考)
# cd asternova/backend && docker compose up -d && go run main.go # :8081,PG+Redis,自动 migrate up一期为单机优先架构:游戏本体(client-godot-v2,M2 启动)单机直接可玩,无需起后端。
games/asternova/
├── docs/ # 蓝图三件套(BLUEPRINT / architecture / STYLE)← 开发决策锚点
├── web-client/ # Next.js 16 Game Shell + Arcade(现役,将演化为官网 + 托管壳)
├── backend/ # Go · Gin · WS · PostgreSQL(sqlc + golang-migrate) · Redis
├── client-godot/ # 一代 Godot 客户端(已冻结,见 FROZEN.md)
├── client-godot-v2/ # 新客户端(M2 启动)
└── assets/ # 共享静态资源
六仓经 git subtree add(保留完整历史)合并,原仓库归档只读,历史可在 git log 追溯。


