feat(server): 添加游戏服务器框架 | add game server framework (#366)

**@esengine/server** - 游戏服务器框架 | Game server framework
- 文件路由系统 | File-based routing
- Room 生命周期 (onCreate, onJoin, onLeave, onTick, onDispose)
- @onMessage 装饰器 | Message handler decorator
- 玩家管理与断线处理 | Player management with auto-disconnect
- 内置 JoinRoom/LeaveRoom API | Built-in room APIs
- defineApi/defineMsg 类型安全辅助函数 | Type-safe helpers

**create-esengine-server** - CLI 脚手架工具 | CLI scaffolding
- 生成 shared/server/client 项目结构 | Project structure
- 类型安全的协议定义 | Type-safe protocol definitions
- 包含 GameRoom 示例 | Example implementation

**其他 | Other**
- 删除旧的 network-server 包 | Remove old network-server
- 更新服务器文档 | Update server documentation
This commit is contained in:
YHH
2025-12-28 12:23:55 +08:00
committed by GitHub
parent 41529f6fbb
commit b6f1235239
31 changed files with 2793 additions and 824 deletions

50
pnpm-lock.yaml generated
View File

@@ -1679,6 +1679,31 @@ importers:
specifier: ^1.11.0
version: 1.11.8
packages/framework/server:
dependencies:
'@esengine/rpc':
specifier: workspace:*
version: link:../rpc
devDependencies:
'@types/node':
specifier: ^20.0.0
version: 20.19.27
'@types/ws':
specifier: ^8.5.13
version: 8.18.1
rimraf:
specifier: ^5.0.0
version: 5.0.10
tsup:
specifier: ^8.0.0
version: 8.5.1(@microsoft/api-extractor@7.55.2(@types/node@20.19.27))(@swc/core@1.15.7(@swc/helpers@0.5.18))(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2)
typescript:
specifier: ^5.7.0
version: 5.9.3
ws:
specifier: ^8.18.0
version: 8.18.3
packages/framework/spatial:
dependencies:
tslib:
@@ -2100,6 +2125,31 @@ importers:
specifier: ^5.8.3
version: 5.9.3
packages/tools/create-esengine-server:
dependencies:
chalk:
specifier: ^5.3.0
version: 5.6.2
commander:
specifier: ^11.0.0
version: 11.1.0
prompts:
specifier: ^2.4.2
version: 2.4.2
devDependencies:
'@types/node':
specifier: ^20.0.0
version: 20.19.27
'@types/prompts':
specifier: ^2.4.9
version: 2.4.9
tsup:
specifier: ^8.0.0
version: 8.5.1(@microsoft/api-extractor@7.55.2(@types/node@20.19.27))(@swc/core@1.15.7(@swc/helpers@0.5.18))(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2)
typescript:
specifier: ^5.7.0
version: 5.9.3
packages/tools/demos:
dependencies:
'@esengine/fsm':