Skip to content

Repository files navigation

旋刃竞技场 V2

旋刃竞技场 V2 是多人在线 2D 动作竞技游戏 sdcb/blade 的全新版本。

玩家通过移动、走位和旋转的刀刃与其他玩家对战,在竞技场中收集奖励、强化属性并争夺排行榜。V2 在保留原有玩法的基础上重构了整体架构,重点改善客户端流畅度、网络同步效率和服务端扩展能力。

V2 架构

  • 使用 C 实现与平台无关的模拟核心,集中处理移动、碰撞、战斗和状态同步。
  • 服务端通过原生动态库运行权威模拟,浏览器通过 WebAssembly 运行同一套核心。
  • 客户端支持本地预测和平滑校正,服务端保留最终裁决权。
  • .NET 10 服务端负责用户、房间、WebSocket、调度和 SQLite 持久化。
  • Next.js 前端负责界面、输入和 Canvas 游戏画面。

技术栈

模块 技术
模拟核心 C、CMake、Emscripten
服务端 ASP.NET Core、.NET 10、Native AOT、SQLite
原生桥接 C#、P/Invoke
前端 Next.js、React、TypeScript、Tailwind CSS、WebAssembly
测试 xUnit v3

项目结构

src/
├── blade_core/          C 模拟核心及 native/Wasm 构建脚本
├── Blade.Core.Native/   .NET 原生核心桥接
├── Blade.Server/        游戏服务端
└── Blade.FE/            Web 客户端
tests/
└── Blade.Core.Tests/    核心与桥接测试
scripts/                 前端和服务端构建脚本

Docker 快速启动

镜像默认监听 8080 端口,SQLite 数据保存在容器的 /app/data 目录。以下命令将该目录映射到当前目录下的 blade-v2-data,重新创建或升级容器时数据不会丢失。

Linux

mkdir -p ./blade-v2-data
docker pull sdcb/blade-v2:latest
docker run --detach \
  --name blade-v2 \
  --restart unless-stopped \
  --publish 8080:8080 \
  --mount type=bind,source="$(pwd)/blade-v2-data",target=/app/data \
  sdcb/blade-v2:latest

Windows PowerShell

$dataPath = (New-Item -ItemType Directory -Force .\blade-v2-data).FullName
docker pull sdcb/blade-v2:latest
docker run --detach `
  --name blade-v2 `
  --restart unless-stopped `
  --publish 8080:8080 `
  --mount "type=bind,source=$dataPath,target=/app/data" `
  sdcb/blade-v2:latest

启动后访问 http://localhost:8080

本地构建

当前构建脚本面向 Windows,需要提前安装:

  • .NET 10 SDK
  • Node.js 和 npm
  • CMake
  • 带有 C++ 工具链的 Visual Studio 2022
  • Emscripten SDK(构建 WebAssembly 时需要)

在仓库根目录执行:

# 构建 win-x64 原生核心
.\src\blade_core\scripts\build-win-x64.ps1

# 构建 Wasm 核心和前端,并将静态资源同步到服务端
.\scripts\build-fe.ps1

# 启动开发服务器
dotnet run --project .\src\Blade.Server\Blade.Server.csproj

默认开发地址为 http://localhost:55399

如需生成 win-x64 Native AOT 发布包:

.\scripts\build-server-aot-win-x64.ps1

发布结果位于 src\Blade.Server\bin\Release\net10.0\win-x64\publish\

测试

先构建 win-x64 原生核心,再执行:

dotnet test .\tests\Blade.Core.Tests\Blade.Core.Tests.csproj

许可证

本项目基于 MIT License 开源。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages