玩家指南
登录与账号
- 填写服务端提供的地址与访问密钥。
- 首次使用必须注册;测试环境可能提供 demo 账号。
- 忘记密码:通过服务端一次性验证码流程重置(有效期以服务端配置为准)。
大厅与房间
- 每个游戏分区固定 1–200 号房。
- 双击空房创建(可选 P1/P2、密码);双击等待房加入;对战中房间可观战。
- 关闭游戏窗口会立即离房。
对战与观战
- 新对手连接时双方核心复位,从第 0 帧重新选人;同一对手续关不强制复位。
- 观战端会追赶历史输入后跟随实时对局。
- 联机录像保存在服务端,可在个人中心回放,支持高级指令显示。
画面与输入
- 清晰度:自动 / 原生 / 2×–4×;默认平滑高清滤镜,保持宽高比。
- Tab 切换普通窗口与纯游戏全屏;Enter 打开/发送聊天。
- 支持键盘与手柄热插拔;组合键最多 10 组。
服务端部署
公网建议只跑服务端;玩家各自运行客户端连接。
- 放行 TCP
5188(HTTP API + WebSocket)与 UDP5190(Match Relay)。 - 启动时指定 Relay 对外可达的主机名或公网 IP,并保存生成的访问密钥。
- 管理后台路径
/admin/:注册登录审计、聊天、录像、公告与封禁(管理密钥与玩家访问密钥分离)。 - 生产环境应在反向代理上启用 HTTPS/WSS,并限制管理入口暴露面。
原型 HTTP 默认可能未强制 TLS。公网测试务必使用强访问密钥,并尽量用防火墙限制玩家来源 IP。
开发者
运行结构(简图)
Qt Desktop Client
├─ HTTP/JSON ──────── Platform Server :5188
├─ WebSocket ──────── Lobby Event Hub
├─ UDP ALNK/1 ──────── Match Relay :5190
└─ QLocalSocket ────── Emulator Host
├─ FBNeo libretro
├─ ZIP ROM(只读)
└─ 共享内存视频 / PCM / savestate
本地启动(示例)
# 主仓库根目录
pip install -r .\src\ArcadeLink.Client.Qt\requirements.txt
Set-ExecutionPolicy -Scope Process Bypass
.\start.ps1
# 可选:指定 ROM 目录
.\start.ps1 -RomDirectory 'E:\ArcadeRoms'
验收
dotnet build .\ArcadeLink.slnx
.\scripts\smoke-test.ps1
双机回归、观战与重连稳定基线请严格遵循主仓库文档,例如
docs/DUAL-PC-REGRESSION-BASELINE.md、
docs/QTCPP-V2-REJOIN-STABLE-BASELINE.md。
不要在未明确任务的情况下改动 spectator 主路径或默认开启 mid-resync。
ROM 与合规
- ROM 不会被复制进项目、上传服务端或随程序分发。
- FBNeo 核心受其项目许可证约束;请保留完整许可证文件。
- 游戏版权与 ROM 使用授权由最终用户自行负责。