外观
PocketSurvival 小游戏服务器
PocketSurvival 是一套使用 C++ 编写的独立《生存战争》联机服务端。它不是旧联机版服务端的 C++ 移植,也不是 SurvivalcraftApi MP 分支。
当前完成度
截至 2026-07,PocketSurvival 尚未完工,不适合作为功能完整的通用生存服方案。目前主要用于起床战争等规则边界明确的小游戏服务器。部署前应自行测试目标玩法需要的世界、实体、背包、战斗和断线恢复功能。
与其他服务端的关系
| 项目 | 旧联机版服务端 | 插件联机版 | PocketSurvival |
|---|---|---|---|
| 主要语言 | C# | C# | C++ |
| 扩展基类 | ServerPlugin / AbstractProcessCmd | 以 SCAPI MP 分支为准 | IPlugin |
| 构建体系 | .NET | .NET | CMake + GCC/MinGW |
| 插件能否互装 | 否 | 否 | 否 |
| 当前定位 | 存量公共联机生态 | 后续发展方向 | 未完成的小游戏服务端 |
迁移插件时最多复用规则、数据结构和测试用例。事件注册、玩家对象、网络层、配置、持久化和编译产物都需要针对 PocketSurvival 重写。
仓库中可以学习什么
当前源码包含模块化的方块、实体、网络、认证和插件目录,并使用 libhv、EnTT、SQLiteCpp、mbedTLS、Lua 等组件。plugins/ 中可见起床战争、箱子锁、传送、反作弊和基础组件等实现;实际由顶层 plugins/CMakeLists.txt 启用哪些插件,应以固定提交为准。
小游戏服开发尤其要关注:
- 回合状态:等待、倒计时、运行、结算与场地重置;
- 队伍状态:分队、出生点、复活、装备和胜负判定;
- 资源状态:生成器、箱子、掉落物与重复开局清理;
- 异常恢复:玩家中途离开、服务端重启和回合数据残留;
- 权威判定:伤害、移动、方块操作与资源结算必须由服务端确认。
构建基线
仓库 README 当前要求 GCC 11+、CMake 3.20+,支持 Linux 和 Windows MinGW。常规 Linux 构建流程为:
bash
mkdir build
cd build
cmake ..
cmake --build . --parallelWindows 使用 MinGW 生成器:
powershell
cmake -S . -B build -G 'MinGW Makefiles'
cmake --build build --parallel 4这是开发构建入口,不代表当前提交已在你的系统或目标客户端上完成端到端验证。建议记录提交哈希、编译器版本、CMake 版本和客户端版本。
配置与认证
仓库使用 ServerSetting.json 控制登录模式;CheckLogin 为 false 时为游客模式,为 true 时使用 SCKey,并通过 ScKeyServerId、ScKeyServerName 绑定服务器。凭据和登录令牌不得提交到公开仓库。
部署前验收
- 用固定客户端完成单局完整小游戏流程。
- 测试满员、少人开局、玩家掉线和重新加入。
- 连续运行多局,确认场地、队伍和背包完全重置。
- 人为终止进程后检查数据是否可恢复。
- 在公网开放前完成端口、防火墙、认证和限流测试。
- 记录当前缺失功能,不把源码仓库中的接口名称等同于已经可用的玩法。
出现问题时应向 PocketSurvival Issues 提供提交哈希、系统、编译器、客户端版本、启用插件和复现步骤。
