# Brisk Game Service Brisk 游戏服务端工程。 当前已实现模块: - 平台授时 `time` - 客户端初始化 `bootstrap` - 登录换票 `auth` - 玩家信息 `player` - 动态配置 `config` - 公告 `announcements` - 排行榜 `ranks` - 云存档 `archives` - 玩家空间 `spaces` - 管理后台认证、项目、配置、公告、排行榜、存档、玩家、空间、审计 - Worker 清理任务与基础限流 ## 当前核心模型 - 项目唯一标识只有 `game_key` - 项目级 `channel / platform` 已移除 - 初始化和动态配置只依赖 `game_key`,配置筛选只看 `client_version` - 平台授时接口不依赖 `game_key`,可直接匿名获取 UTC 服务器时间 - 登录模块单独处理第三方身份: - `login_provider`:如 `tap` - `login_user_id`:该登录平台返回的稳定唯一用户 ID - 服务端登录成功后返回内部: - `player_id` - `project_account_id` - `access_token` - 空间、排行榜后台筛选等模块支持直接使用 `login_provider + login_user_id` - 内部仍优先解析到 `player_id` 再执行业务查询,便于性能和统一索引 ## 本地运行 推荐使用 Docker Compose: ```bash copy .env.example .env docker compose up --build ``` 默认接口: - `GET /health` - `GET /api/ping` - `GET /api/client/time` - `GET /openapi.yaml` 开发环境默认账号: - 后台用户名:`admin` - 后台密码:`admin123456` - 后台操作员:`operator` - 操作员密码:`operator123456` ## 接入说明 - 平台授时: - 匿名接口 `GET /api/client/time` - 无需传 `game_key` - 返回 `server_time`、`server_unix`、`server_unix_ms` - 客户端初始化: - 必填 `game_key` - 可选 `client_version` - `device_id` 仅作透传与诊断辅助 - 客户端登录: - 必填 `game_key` - 必填 `login_provider` - `login_user_id` 与 `code` 二选一 - 可选透传 `nickname`、`avatar_url`、`profile_json` - 云存档: - 支持二进制文件上传/下载,适合直接存游戏存档 bytes - 玩家空间: - 主信息接口返回空间元数据 - 自定义空间内容通过独立二进制接口上传/下载 - 支持任意 bytes,兼容二进制、文本、JSON、protobuf、msgpack 等格式 - 空间点赞按 `Asia/Shanghai` 自然日计周期,同一玩家对同一空间每天最多记一次点赞 - 空间点赞相关接口返回累计点赞数 `like_count`、当日点赞数 `today_like_count`、当日是否已点赞 `liked_by_me` - 最近访问列表支持可选 `limit` 参数,默认 `50` 条,最大 `100` 条 ## 测试脚本 Windows PowerShell: ```powershell .\scripts\smoke-test.ps1 .\scripts\acceptance.ps1 -Tasks all -ManageStack .\\scripts\\acceptance.ps1 -Tasks space -ManageStack ``` ## 迁移 数据库迁移目录: - [0001_init.sql](/F:/OtherWork/BriskGameSerivce/internal/platform/db/migrations/0001_init.sql) - [0008_identity_and_config_simplification.sql](/F:/OtherWork/BriskGameSerivce/internal/platform/db/migrations/0008_identity_and_config_simplification.sql) - [0009_space_binary_content.sql](/F:/OtherWork/BriskGameSerivce/internal/platform/db/migrations/0009_space_binary_content.sql) - [0010_space_like_daily_cycle.sql](/F:/OtherWork/BriskGameSerivce/internal/platform/db/migrations/0010_space_like_daily_cycle.sql) 服务启动时会自动执行未应用迁移。 ## 根目录文档 - [Brisk API接口与示例文档.md](/F:/OtherWork/BriskGameSerivce/Brisk%20API%E6%8E%A5%E5%8F%A3%E4%B8%8E%E7%A4%BA%E4%BE%8B%E6%96%87%E6%A1%A3.md) - [Brisk Unity SDK接入文档.md](/F:/OtherWork/BriskGameSerivce/Brisk%20Unity%20SDK%E6%8E%A5%E5%85%A5%E6%96%87%E6%A1%A3.md) - [openapi.yaml](/F:/OtherWork/BriskGameSerivce/openapi.yaml) ## 目录说明 - `cmd/`:启动入口 - `internal/`:内部实现 - `deployments/`:部署配置 - `docs/`:历史设计文档与补充资料 - `scripts/`:脚本