Skip to content
联机世界与服务器管理

PocketSurvival 小游戏服务器

PocketSurvival 是一套使用 C++ 编写的独立《生存战争》联机服务端。它不是旧联机版服务端的 C++ 移植,也不是 SurvivalcraftApi MP 分支。

当前完成度

截至 2026-07,PocketSurvival 尚未完工,不适合作为功能完整的通用生存服方案。目前主要用于起床战争等规则边界明确的小游戏服务器。部署前应自行测试目标玩法需要的世界、实体、背包、战斗和断线恢复功能。

与其他服务端的关系

项目旧联机版服务端插件联机版PocketSurvival
主要语言C#C#C++
扩展基类ServerPlugin / AbstractProcessCmd以 SCAPI MP 分支为准IPlugin
构建体系.NET.NETCMake + 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 . --parallel

Windows 使用 MinGW 生成器:

powershell
cmake -S . -B build -G 'MinGW Makefiles'
cmake --build build --parallel 4

这是开发构建入口,不代表当前提交已在你的系统或目标客户端上完成端到端验证。建议记录提交哈希、编译器版本、CMake 版本和客户端版本。

配置与认证

仓库使用 ServerSetting.json 控制登录模式;CheckLogin 为 false 时为游客模式,为 true 时使用 SCKey,并通过 ScKeyServerId、ScKeyServerName 绑定服务器。凭据和登录令牌不得提交到公开仓库。

部署前验收

  1. 用固定客户端完成单局完整小游戏流程。
  2. 测试满员、少人开局、玩家掉线和重新加入。
  3. 连续运行多局,确认场地、队伍和背包完全重置。
  4. 人为终止进程后检查数据是否可恢复。
  5. 在公网开放前完成端口、防火墙、认证和限流测试。
  6. 记录当前缺失功能,不把源码仓库中的接口名称等同于已经可用的玩法。

出现问题时应向 PocketSurvival Issues 提供提交哈希、系统、编译器、客户端版本、启用插件和复现步骤。

玩家共建文档 · 原版、插件版、联机版与插件联机版请注意区分