# Photon PUN 替代方案：回合制与休闲游戏

> PUN 2 已进入维护模式。哪些游戏需要 Fusion 或游戏服务器，哪些用带房间与匹配功能的托管 WebSocket 服务就够，以及各自的费用。

Source: https://hibira.io/zh-cn/topics/photon-pun-alternative
Updated: 2026-10-31

Photon 的文档写道，PUN 2 已进入维护（LTS）模式，只修复错误、不再增加新功能，并建议新项目考虑 Fusion 或 Quantum。这两者适合实时动作游戏。但很多 PUN 游戏不是这类：它们是卡牌、桌游、问答或派对游戏，玩家轮流行动，每秒几次更新就够了。这类游戏可以改用带房间和匹配功能的托管 WebSocket 服务取代 PUN，费用更低，也原生支持 WebGL。

## 你的游戏需要游戏服务器吗？

| 回合制与休闲游戏：WebSocket 服务就够 | 实时动作游戏：请保留游戏服务器 |
| --- | --- |
| 卡牌、桌游、益智与文字游戏 | 射击、格斗与竞速游戏 |
| 问答、猜谜、派对与画图游戏 | 玩家之间必须同步的物理运算 |
| 回合制策略与自走棋 | 以 tick 为单位的模拟、lockstep 或 rollback 网络同步 |
| 放在独立游戏服务器前面的大厅、匹配与聊天 | 单个玩家每秒超过 10 次更新 |
| WebGL 游戏，以及浏览器和 Unity 玩家同房 | 超过 100 位玩家的房间 |

WebSocket 服务运行在 TCP 上，没有 tick，只在玩家之间转发事件，不执行游戏逻辑。如果你的游戏属于右栏，Photon Fusion、Quantum 或专用服务器会更合适。

## PUN 2 游戏可以迁到哪里

| 选项 | 谁来运营 | 最适合 |
| --- | --- | --- |
| Photon Fusion 或 Quantum | Photon | 实时动作、tick 同步与预测；网络代码需要重写 |
| 自己部署的开源游戏服务器，例如 Nakama 或 Colyseus | 你 | 需要服务器权威逻辑，且你能自己运营和扩展服务器 |
| Hibira 搭配 Unity 包 | Hibira | 回合制与休闲房间、匹配队列、WebGL，以及和浏览器、Godot 玩家跨平台同玩 |

## 同样玩家数的费用

| 同时在线玩家 | Photon Public Cloud | Hibira |
| --- | --- | --- |
| 20 到 100 | 20 CCU 免费，仅限开发；100 CCU 一次付 95 美元，有效期 12 个月 | 免费套餐：100 个连接，可用于生产环境 |
| 500 | 每月 95 美元 | Hobby，每月 19 美元 |
| 1,000 | 每月 185 美元 | Starter，每月 39 美元 |
| 2,000 到 3,000 | 2,000 CCU 每月 370 美元 | Pro，3,000 个连接每月 89 美元 |

Photon 的数字取自 [PUN 价格页](https://www.photonengine.com/pun/pricing)与 [PUN 2 介绍](https://doc.photonengine.com/pun/current/getting-started/pun-intro)，查询日期 2026-10-31。Photon 每个 CCU 每月含 3 GB 流量。Hibira 按日计算你发送的消息，一个 client event 不论多少玩家收到都只算一条消息；免费套餐中，送达玩家的份数计入每月 2 GB 流量；从 Hobby 开始，广播送达不计次数。所有套餐的每日消息数、同时连接数和每月直连流量仍有上限。请见[价格页](https://hibira.io/zh-cn/pricing)。

## 迁移大概是什么样子

| PUN 2 | Hibira Unity 包 |
| --- | --- |
| `JoinRandomOrCreateRoom` | `HibiraQueue.Join`，指定人数、积分范围与条件 |
| `CreateRoom`、`JoinOrCreateRoom` | 在 `presence-room-` 频道上以 `HibiraRoom.Join` 加入，并设置容量 |
| `OnPlayerEnteredRoom`、`OnPlayerLeftRoom` | `room.MembersChanged` |
| `MasterClient` | `room.Host`：最早加入的玩家，离开时交给下一位 |
| `photonView.RPC`、`RaiseEvent` | `room.Channel.Trigger("client-…")` 与 `Bind` |
| `PhotonNetwork.Instantiate`、`PhotonView` | 没有对应功能：自己发送生成与状态事件 |

你的后端用应用的 secret 为每个房间和队列签名，所以玩家名称和积分来自你的服务器，而不是客户端。完整对照与每个步骤的代码，请见 [PUN 2 迁移指南](https://github.com/hibira-io/unity/blob/main/Documentation~/moving-from-photon-pun-2.md)。可以从 [Unity 指南](https://hibira.io/zh-cn/guides/unity)开始，浏览器玩家也能加入的房间请见[游戏大厅](https://hibira.io/zh-cn/use-cases/game-lobbies)。

## 常见问题

### PUN 2 要停止服务了吗？

Photon 的文档写道，PUN 2 已进入维护（LTS）模式：只修复错误、不加新功能，并建议新项目考虑 Fusion 或 Quantum。现有的 PUN 2 游戏仍可继续运行。

### 回合制游戏可以用 WebSocket 服务取代 Photon 吗？

可以，卡牌、桌游、问答、派对等回合制或休闲游戏都可以。房间、匹配、presence 和房内事件涵盖了 PUN 为这类游戏做的事。需要 tick 同步的实时动作游戏，仍然需要 Fusion、Quantum 或游戏服务器。

### Unity WebGL 版本可以用吗？

可以。Hibira 的 Unity 包在编辑器、桌面与移动设备，以及 WebGL 版本中都通过 WebSocket 连接，同一个房间也能从浏览器或 Godot 加入。
