乐于分享
好东西不私藏

FIRM_系统设计文档

FIRM_系统设计文档

FIRM

双体系架构·多客户端系统设计文档

DUAL-SYSTEM ARCHITECTURE·SYSTEM DESIGN DOCUMENTv1.0

文档版本

v1.0DRAFT

编制日期

2026-03

版权

© 2026 StarMeter Studio

1.系统概述

1.1核心设计理念

FIRM 是一款同时支持普通玩家日常游玩与正式赛事运行的双体系竞技游戏。整个系统不是开发两款独立游戏,而是在同一套底层核心之上,派生出两种主要运行形态:普通玩家体系与赛事体系。

与传统竞技游戏将赛事功能作为后期附加模块的做法不同,FIRM 从立项之初就将赛事架构纳入底层设计,赛事接口从第一行代码起就已预留。

1.2双体系定义

普通玩家体系

服务游戏日常生态,包括成长、探索、PVE、普通 PVP、装备购买、跑图等常规玩法

赛事体系

服务正式比赛场景,包括比赛专用客户端、观战与导播系统、裁判控制系统、赛事专用规则和大屏输出能力

1.3设计原则

·同一套核心,不做两款独立游戏——地图、角色、技能、物理、实体系统、同步协议尽量共用

·先做底层统一,再做上层分化——优先建立统一实体、状态机、事件、同步、权限模型

·赛事接口从一开始预留——赛事所需字段、状态和事件提前埋入底层,避免后期重构

·分阶段落地——先玩家端基础闭环,再逐步推进至完整赛事系统

1.4项目最终能力目标

·日常玩家可稳定进入游戏世界游玩

·正式比赛可由专用赛事系统驱动运行

·比赛过程可被裁判控制、导播切换、大屏播放

·普通玩法与赛事玩法共用底层核心,避免重复开发

·后续可扩展到完整的联机、赛事、回放、数据分析和转播体系

2.总体架构

2.1四层架构模型

L4运营管理层

管理员后台 · 赛事配置 · 账户权限 · 数据统计复盘(各端不共用)

L3功能端层

五大客户端各自的 UI 系统、相机系统、业务逻辑(各端不共用)

L2模式适配层

将同一底层核心切换为不同运行模式,加载对应 UI、权限、相机系统(各端共用)

L1共用核心层

实体系统 · 角色系统 · 技能系统 · 战斗判定 · 比赛状态机 · 网络同步 · 事件系统 · 权限模型(各端共用)

2.2五大客户端概览

普通玩家端player

完整日常游玩体验,探索成长 PVE 普通 PVP

赛事选手端tournament_player

精简版比赛专用端,状态完全由赛事系统控制

导播/观战端observer

赛事画面核心输出端,负责镜头观察、切换与合成

裁判控制端referee

比赛流程的唯一权威控制端,不负责主要画面输出

大屏展示端display

仅负责展示,接收导播最终画面,零控制权限

2.3权限矩阵

控制自身角色

普通玩家端 ✓ · 赛事选手端 ✓ · 导播端 — · 裁判端 — · 大屏端 —

查看全局信息

普通玩家端 — · 赛事选手端 — · 导播端 ✓ · 裁判端 ✓ · 大屏端 ✓

切换导播镜头

普通玩家端 — · 赛事选手端 — · 导播端 ✓ · 裁判端 — · 大屏端 —

控制比赛流程

普通玩家端 — · 赛事选手端 — · 导播端 — · 裁判端 ✓ · 大屏端 —

访问日常功能

普通玩家端 ✓ · 赛事选手端 — · 导播端 — · 裁判端 — · 大屏端 —

3.普通玩家体系

客户端标识

player

面向用户

游戏日常玩家

开发阶段

Phase 2 — 第一个可运行闭环产品

最小闭环

登录 → 进入地图 → 控制角色 → 战斗 → 结算/掉落 → 背包

3.1功能定位

FIRM 面向大众的基础生态入口,承载游戏日常内容体验。UI 面向个人视角,不展示全局赛事数据,不开放赛事控制入口,更强调沉浸感与操作反馈。

3.2核心功能模块

功能模块

说明

优先级

账户与登录

登录 · 注册 · 身份校验 · 本地缓存与自动登录

核心

玩家角色

角色资料 · 等级经验 · 装备栏 · 属性面板 · 技能配置

核心

地图与场景

进入地图 · 场景加载 · 区域切换 · 传送点管理

核心

战斗与交互

攻击 · 技能释放 · 受击反馈 · 击杀逻辑 · 掉落处理

核心

HUD / UI

血条 · 技能栏 · 背包 · 商店 · 小地图 · 任务提示 · 聊天

普通玩法

打怪升级 · Boss 抢夺 · 地图探索 · 普通 PK · 任务推进

4.赛事体系

4.1体系定位

赛事体系服务于正式对战、裁判控制和赛事输出。更重视公平性、稳定性、可控性,强依赖标准化事件流与状态机,不以个人沉浸体验为主,而以比赛运行与转播为主。

4.2赛事选手端

客户端标识

tournament_player

面向用户

正式比赛参赛选手

核心定位

精简版比赛专用端,日常功能关闭,比赛状态完全受赛事系统控制

开发阶段

Phase 3

功能模块

说明

优先级

赛事房间接入

只能进入指定赛事房间,读取比赛配置,绑定选手身份与队伍

核心

比赛规则加载

固定角色池 · 固定地图 · 固定资源规则 · 开始倒计时

核心

比赛状态联动

响应完整状态流:等待→倒计时→开始→暂停→恢复→结算

核心

精简 HUD

保留比赛计时、比分板和裁判公告,去除日常 UI

核心

操作日志

战斗操作事件实时上报,供赛后复盘与反作弊分析

断线检测

实时网络状态监测,异常事件自动上报至赛事服务端

4.3与普通玩家端对比

日常功能

普通玩家端:完整开放/赛事选手端:全部关闭

可进入区域

普通玩家端:全部地图/赛事选手端:仅指定赛事房间

HUD 内容

普通玩家端:完整日常 HUD/赛事选手端:精简比赛 HUD

角色选择

普通玩家端:自由选择/赛事选手端:固定角色池

状态控制权

普通玩家端:玩家自主/赛事选手端:100% 服务端下发

5.导播 / 观战端

客户端标识

observer

面向用户

赛事导播操作员、技术导播团队

核心定位

赛事画面核心输出端,负责观察、切镜、叠加信息,合成最终转播画面

开发阶段

Phase 4(最小版)/ Phase 5(完整版)

5.1核心功能模块

功能模块

说明

优先级

观战场景渲染

渲染整个比赛场景,加载所有选手实体,60fps 稳定输出

核心

自由飞行镜头

FreeFly Camera:导播手动控制,全场自由飞行视角

核心

选手跟随镜头

Follow Camera:锁定目标选手,自动跟随,平滑插值

核心

顶视全局镜头

TopDown Camera:俯视地图,显示双方整体战略态势

核心

导播切换面板

镜头源列表 · 当前输出 · 下一帧预览 · 一键切换

信息叠层系统

比分板 · 队伍 · 倒计时 · 暂停提示 · 击杀播报

自动导演接口

自动聚焦热点战斗,AI 辅助最优画面选取(后期扩展)

后期

5.2相机系统规格

FreeFly(自由飞行)

导播手动控制,WASD + 鼠标全场飞行 · 用途:全局态势,热点寻找 · 阶段:P4

Follow(跟随)

锁定选手,自动跟随,可调偏移与平滑度 · 用途:精彩追击,个人对决 · 阶段:P4

TopDown(顶视)

俯视固定高度,支持缩放,实时态势 · 用途:团战全局,关键节点 · 阶段:P4

LockOn(目标锁定)

自动聚焦最激烈战斗区域 · 阶段:P5

Director(自动导演)

基于事件优先级自动切换最佳画面,AI 辅助 · 阶段:后期

6.裁判控制端

客户端标识

referee

面向用户

赛事裁判、赛事管理人员

核心定位

负责赛事控制,不负责主要画面输出,是比赛流程的唯一权威控制端

开发阶段

Phase 3(基础流程控制)/ Phase 5(完整版)

6.1核心功能模块

功能模块

说明

优先级

比赛流程控制

创建房间 · 开始 · 暂停 · 恢复 · 强制结束 · 重开比赛

核心

状态监控面板

当前比赛状态实时显示 · 在线玩家状态 · 掉线检测

核心

异常事件告警

玩家掉线 · 异常操作 · 连接中断事件自动告警

核心

事件日志查看

击杀日志 · 关键事件日志 · 裁判自身操作完整记录

选手队伍面板

队伍名单 · 选手身份 · 当前比分 · 实时存活状态

违规标记

标记违规行为,生成判罚记录(后期扩展)

后期

6.2比赛状态机控制流

START

当前状态:LOBBY / READY → 发送 match_started 事件,倒计时启动 → 转换至:COUNTDOWN

PAUSE

当前状态:RUNNING → 冻结所有实体,通知全端暂停 → 转换至:PAUSED

RESUME

当前状态:PAUSED → 解冻实体,比赛继续 → 转换至:RUNNING

END

当前状态:RUNNING / PAUSED → 强制结算,发送 match_finished 事件 → 转换至:FINISHED

RESET

当前状态:ANY → 清空状态,所有端返回大厅 → 转换至:LOBBY

7.大屏展示端

客户端标识

display

面向用户

现场观众、直播受众

核心定位

仅负责展示,零控制权限,接收导播端最终合成画面

开发阶段

Phase 4(基础版)/ Phase 6(完整赛级包装)

7.1核心功能模块

功能模块

说明

优先级

画面接收渲染

接收导播最终画面,实时稳定渲染输出,目标 60fps

核心

赛事视觉 UI

赛事主视觉包装 · 队伍名 · 比分板 · 计时器 · 状态栏

核心

暂停画面

比赛暂停时自动切换至等待视觉页,须有动态效果

核心

结算画面

比赛结束后展示胜者信息与完整数据统计页

核心

精彩回放

结束后自动回放赛中标记的精彩片段(后期扩展)

后期

7.2设计约束

控制权限

完全只读,无任何控制交互入口

驱动方式

画面内容完全由导播端驱动,大屏端本身不做逻辑判断

帧率目标

60fps 稳定输出,不允许卡顿掉帧

分辨率支持

支持 1080p,后期扩展至 4K

故障处理

画面丢失时自动切换至等待页面,禁止黑屏

8.底层核心设计

8.1实体系统

所有角色、技能对象、Boss、机关、占点、道具必须纳入统一实体管理,所有端共享同一份实体状态。

entityId

全局唯一实体标识符

entityType

实体类型(Player / NPC / Boss / Projectile / Objective / Item)

position

三维坐标(x, y, z)

rotation

朝向角度

velocity

当前速度向量

state

当前实体状态

ownerId

归属玩家 ID

teamId

归属队伍 ID

visible

是否对各端可见

active

是否处于激活状态

8.2比赛状态机

服务端是唯一权威状态源,所有客户端只接收状态并执行,不允许客户端自行修改状态。

LOBBY

大厅等待:比赛房间创建,等待选手进入 → 可转换至 READY

READY

准备就绪:所有选手已就位,等待裁判指令 → 可转换至 COUNTDOWN / LOBBY

COUNTDOWN

开始倒计时:比赛即将开始的读秒阶段 → 可转换至 RUNNING

RUNNING

比赛进行中:所有实体正常运行 → 可转换至 PAUSED / FINISHED

PAUSED

已暂停:裁判触发暂停,所有实体冻结 → 可转换至 RUNNING / FINISHED

FINISHED

已结束:比赛结束,触发结算统计流程 → 可转换至 RESULT / LOBBY

RESULT

结算展示:展示比赛结果与统计数据 → 可转换至 LOBBY / REPLAY

REPLAY

回放:回放历史比赛数据(后期功能)→ 可转换至 LOBBY

8.3事件系统

所有关键行为以标准化事件形式广播,各端按需订阅,确保各端状态一致。

match_created / started

比赛房间创建与正式开始

match_paused / resumed

比赛暂停与恢复(由裁判触发)

match_finished

比赛结束,携带最终比分与统计数据

player_joined / disconnected

选手进入或断线事件

player_killed / respawned

击杀与复活事件,导播端据此切镜

score_changed

比分变更,所有展示端同步更新

objective_captured

占点被夺取,携带队伍 ID 与占点 ID

boss_spawned / killed

Boss 刷新与击杀事件

8.4网络同步分层

高频同步

位置 · 朝向 · 动作 · 速度 — 每帧或接近帧率,保证战斗流畅

中频同步

血量 · Buff 状态 · 技能状态 · 占点进度 — 数据变化时推送

低频同步

队伍信息 · 比分 · 房间配置 · 玩家资料 — 变化时广播

9.核心文件结构规划

core/

engine · world · entity_manager · state_machine · event_bus · network_sync · permission_manager — 全项目共用底层核心

match/

match_core · match_room · match_rules · match_state · match_events · match_score — 比赛系统逻辑

player/

player_controller · player_ui · inventory · shop · quest — 普通玩家端专用

tournament/

tournament_loader · tournament_ui · tournament_state_bridge — 赛事选手端专用

observer/

observer_core · observer_camera · camera_follow · camera_freefly · broadcast_switcher — 导播端专用

referee/

referee_core · referee_panel · referee_actions — 裁判端专用

display/

display_core · display_overlay — 大屏端专用,只读

10.开发阶段规划

P1底层骨架

涉及:全端共用 · 任务:定义实体结构 · 状态机 · 事件系统 · 权限角色 · 同步协议 · 成果:底层协议文档 + 核心代码骨架

P2玩家闭环

涉及:普通玩家端 · 任务:登录 · 进入场景 · 角色控制 · 战斗 · 掉落 · 背包 · 成果:普通玩家端可独立跑通

P3赛事房间

涉及:选手端 + 裁判端 · 任务:房间创建 · 队伍分配 · 状态切换 · 倒计时 · 暂停 · 结算 · 成果:状态机跑通,裁判指令可控

P4最小观战

涉及:导播端 + 大屏端 · 任务:场景渲染 · 自由镜头 · 跟随镜头 · 玩家列表 · 比分板 · 成果:第一版赛事观战客户端成型

P5完整赛事

涉及:全赛事端 · 任务:镜头源管理 · 导播切换 · 完整裁判面板 · 击杀播报 · 成果:基础赛事闭环,可小规模演示

P6赛级增强

涉及:全端 · 任务:自动导演 · 回放缓存 · 精彩标记 · 大屏包装 · 数据统计 · 成果:具备赛级感,可作为正式项目展示

附录术语表

双体系

普通玩家体系与赛事体系并存,共用同一套底层核心

共用核心层(L1)

全项目所有端共享的底层系统,包括实体、状态机、事件、同步、权限

模式适配层(L2)

将同一底层核心切换为不同运行模式的中间层

实体系统

统一管理所有游戏对象的系统,entityId 为唯一标识

比赛状态机

描述比赛完整生命周期的有限状态机,服务端是唯一权威状态源

事件总线

所有关键游戏行为以标准化事件形式广播的系统,各端按需订阅

player

普通玩家端的客户端标识符

tournament_player

赛事选手端标识符,权限严格受限

observer

导播/观战端标识符,可查看全局,可切换镜头

referee

裁判控制端标识符,可控制比赛流程,最高赛事权限

display

大屏展示端标识符,只读,无任何控制权限

Phase N

开发阶段编号,P1–P6 代表六个递进开发阶段

FIRM·双体系架构系统设计文档v1.0·© 2026 StarMeter Studio

本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » FIRM_系统设计文档

猜你喜欢

  • 暂无文章