Skip to content

Latest commit

 

History

261 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AsterNova

AsterNova

单机为主的 3D 动作 Roguelite(绝区零/鸣潮式自由视角)· 房主联机 2~6 人 PvE · 二次元角色渲染 · Steam 首发

"Feel the impact, not the latency."

在线试玩(旧版) · AsterForge


🚀 重启与路线图(2026-08 定案)

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 中心服务端基建封存为二期大型联机游戏起点资产。

里程碑:M0 蓝图与仓库整理 ✅ → M1 渲染垂直切片(美术验证件)→ M2 战斗骨架 + Transport 抽象(GDScript 模拟核心单机可玩)→ M3 联机闭环(NAT 穿透)+ Windows exe 首发 → M4 ENet 升级 + 三档画质真机验证。

战场(一代战绩,新栈保留后端核心)

AsterNova 竞技场

赛博珍珠白竞技场:Go 后端以 60Hz 裁决全部物理,客户端只做输入采集与快照插值——本地零预测、零作弊面。普攻命中 0.08s、拼刀 0.15s 的 Hit-Stop 卡肉,配合衰减式屏幕震动,把打击感做进引擎时间膨胀里。

架构

AsterNova 架构

三条铁律撑起整个系统:

  1. 房主权威(2026-08-31 翻转,原服务端权威思想延续)— GDScript 模拟核心跑 60Hz 固定步长(矢量 / 碰撞盒 / 状态机):单机 = 进程内直调;联机 = 房主进程为权威端广播快照,其余客户端上报输入、Lerp 插值渲染。二期可经 Transport 抽象整体切回中心服务器。
  2. UI 混合架构 — 大厅类界面(登录 / 主菜单 / 背包 / 设置)用 Web(一份 React 应用):Windows 走系统 WebView2、Android 走系统 WebView、Web 端就是 DOM 本身;战斗 HUD(血条 / 技能 / 小地图 / 飘字)归 Godot。战斗时 WebView 挂起,引擎独占渲染。
  3. 一套协议多端共享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 单核占用可控

Arcade · 休闲矩阵

大厅 /lobby 内置纯前端小游戏,零后端依赖,随官网保留作引流位:

三消游戏

立体三消 — 12 关闯关

4 连炸弹 · 5 连彩虹 · 连击 · 成就 · 双主题 · PWA 可安装

RTT 压测

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 启动)单机直接可玩,无需起后端。

Monorepo

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 追溯。


AsterForge · asterforge.top · 鄂ICP备2026015662号-1

About

AsterNova — server-authoritative realtime multiplayer arena. 60Hz frame sync · Go backend · Web/Unity/Godot clients · monorepo

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages