Kaillera 联机客户端介绍 WinKawaks 在线对战协议
什么是 Kaillera
Kaillera(发音类似 "ki-lay-ra")是由西班牙程序员 Christophe Thibault 在 2001 年为街机模拟器开发的联机对战协议和配套的服务器/客户端软件。它的核心思路是:
- 客户端把每个玩家的按键输入序列发送给服务器
- 服务器把所有玩家的输入广播给所有客户端
- 每个客户端在本地模拟器上同时接收到所有玩家的按键,各自独立模拟游戏进程
- 只要所有客户端的模拟器版本、ROM 版本完全一致,模拟结果就是相同的——大家看到的是同一场对战
这种 Lockstep(同步锁步) 协议是早期模拟器联机的标准方案,区别于后来 MAME 的 MAMEhub(Peer-to-Peer)和 GGPO(回滚网络)。
架构
你的 WinKawaks → Kaillera 服务器 → 朋友的 WinKawaks
客户端 客户端
└──── 交换按键输入序列 ────┘
- WinKawaks 内置客户端:每个 WinKawaks 都自带 Kaillera 客户端(不需要额外下载)
- Kaillera Server:独立的服务器程序(
kaillerasrv.exe),需要单独下载 kaillera.zip 或 WinKawaks.full.zip - 两种模式:连接公网已有服务器 → 和陌生人/朋友对战;启动本地服务器 → 只和同局域网朋友对战
为什么是早期格斗对战的首选
在 2001-2005 年那段"模拟器黄金时代",格斗游戏玩家想要在线对战 KOF 98/2000,几乎只有 Kaillera 一个选择:
- 低延迟:局域网内几乎无延迟,拨号上网也能玩(因为只传按键序列,每个数据包才几十字节)
- 简单易用:WinKawaks 内置客户端,菜单一键启动
- 跨地区对战:公网有大量公共 Kaillera 服务器,随时可以和全世界的玩家组队
- 支持 Nebula:另一个当时流行的街机模拟器 Nebula 也用 Kaillera,两个模拟器的玩家可以在同一服务器上对战
局限性
Kaillera 协议设计得比较简陋,有几个先天性缺点:
- 不支持回滚:网络抖动时无法补偿,高延迟网络体验差
- 需要完全同步:所有玩家的 ROM CRC 必须完全匹配,否则模拟结果分叉,两边画面不一样
- 服务器单点:所有客户端必须连接同一个服务器,服务器挂了全挂
- Windows 时代产物:没有跨平台客户端,服务器也只能跑在 Windows 上
现在 GGPO、Parsec 等新一代解决方案已经淘汰了 Kaillera,但 WinKawaks 至今仍内置这个客户端,社区里还有怀旧玩家在用。
支持的游戏
Kaillera 对 WinKawaks 支持的所有游戏都能联机,但格斗游戏是主力军:
- 拳皇全系列(KOF 94-2003)
- 侍魂全系列
- 饿狼传说全系列
- 月华剑士全系列
- 街头霸王 Alpha 全系列
- Marvel vs Capcom 全系列
- 合金弹头(多人合作)
- 三国志、恐龙新世纪等横版(多人合作)
只要游戏支持本地多玩家,理论上都能 Kaillera 联机。