retroarch 中文文档 下载 App

联机对战 Netplay GGPO 式回滚、最多 16 人联机

RetroArch Netplay 的特点

RetroArch 的联机对战叫 Netplay,核心特点:

前置条件

联机前需要确认:

条件检查方法
Core 支持序列化Netplay 质量高的核心都支持。不支持序列化的核心 Netplay 也能跑,但体验差
双方用相同的 ROMROM 校验值(CRC32)必须完全一致
双方用相同的 Core 版本尽量都从 Online Updater 更到最新
网络稳定推荐本地网络(同一 Wi-Fi 或网线)联机,远程联机延迟更高
路由器支持 UPnP开房间需要做端口映射(或手动配)

大厅配对(最简单)

Main Menu → Netplay Rooms(或标签栏里的 Netplay Rooms 标签):

加入别人开的房间

  1. 进 Netplay Rooms
  2. Refresh 刷新房间列表
  3. 浏览公开房间(显示主机名、游戏名、人数、地域)
  4. 选中一个房间按确认键加入
  5. 等主机确认后游戏自动加载,双方进入同一款游戏

自己开房间

  1. Netplay Rooms 里选 Start Netplay Host 或 Create New Netplay Room
  2. 游戏加载后会自动公告到大厅(其他人能搜到)
  3. 等待其他玩家加入

开房间需要路由器支持 UPnP(自动端口映射)。如果你的路由器不支持,进 Settings → Network 手动配 NAT 穿越或端口转发。

手动联机(更可控)

如果大厅找不到合适房间,或想控制更多参数:

Settings → Network → Netplay 里配置(主机和客户端分别配):

角色配置
主机(Server)设好 NAT Traversal(UPnP),从 Quick Menu → Netplay → Start Netplay Host 开房间
客户端(Client)设好 Server IP 地址,从 Quick Menu → Netplay → Connect to Netplay Host 加入

手动联机适合跨地域联机、或想控制端口的情况。

Netplay 工作原理(深度版)

理解原理对排查联机问题有帮助:

  1. 双方玩家各自在本地跑同一个游戏 Core
  2. 每帧输入通过网络发送给对方(带延迟)
  3. 双方的游戏状态可能暂时不同步
  4. 收到对方延迟输入后,双方同时回退几帧(用 libretro 序列化快照),用新输入重放
  5. 双方重新达到同步点

这个机制叫 replay-based synchronization(基于回放的同步),是 GGPO 团队的经典设计,RetroArch 用得很地道。

要求:

联机常见问题

问题原因解决
大厅列表刷新失败网络到大厅服务器不通换网络环境重试
开房间没人能加路由器没做端口映射手动配端口转发,或用同一局域网
联机中途不同步一方 ROM 或 Core 版本不同双方确认 ROM 校验值和 Core 版本一致
延迟明显远程联机、网络不稳定用局域网联机,或换网络
Core 不支持联机极少数 Core 不支持序列化换同主机其他 Core

联机实践建议