Sync 概念篇
Sync 概念篇
UOS Sync
Sync 服务是由 Unity 资深团队打造的数据同步服务,为您提供一站式、高并发、低延迟、可靠的游戏同步解决方案。
- 支持主流传输协议,如KCP(可靠UDP),WebSocket,UTP(Unity Transport Protocol)等,且允许不同客户端以不同的传输协议进行同步。
- 采用容器化云原生部署,动态缩扩容,即开即用,高效利用资源。
- 支持使用 Mirror、Netcode 或 FishNet 开发的的游戏无缝接入本服务。
服务模式
- 实时模式(Realtime): 支持房间内玩家间的去中心化信息同步。 了解 Realtime 接入方法
- 中继模式(Relay): 支持您使用主持人玩家 Host来处理游戏逻辑。如果您的游戏使用 Mirror,Netcode 或 FishNet,您可以使用 Sync Unity Package 进行集成。 了解 Relay 接入方法
房间(Room)
房间负责同步服务,我们的 SDK 会协助您的游戏客户端与房间连接和交互。我们预先配置了不同规模的房间等级供您选择。房间分为公开(Public)和私密(Private)。公开房间可以被您的每位游戏玩家访问,私密房间需要密码才能加入。
玩家(Player)
玩家即是您的游戏玩家,他们通过房间进行信息的同步。
事件(Event)
事件是 Sync 同步信息的载体,分为一般事件(Event)、缓存事件(Cached Event)和记事贴(Sticky Event)。
- 一般事件用于玩家之间的信息同步与共享,它是实时发送和接收的,不会被房间存储。发送者可以选择接收方范围,只有在接收范围内的玩家才会收到事件。
- 缓存事件用于记录里程碑事件,只有在每个玩家加入房间时,房间才会把之前所有的缓存事件按照时间顺序全部发送给他们。
- 记事贴用于玩家在房间服务内保存数据,数据以键值对(key-value)的形式保存。记事贴的范围(scope)分为 Room 和 Player。前者允许所有玩家读写,后者只允许创建者玩家读写。
群组(Group)
群组是同一房间内玩家的子集。群组内信息共享,组外无法读写组内的信息。根据您的游戏逻辑的需要,玩家可以订阅或退订群组。群组内的玩家在离开房间重新登录后,需要重新订阅群组。
服务调用(ServerCall)
在实时模式下,玩家客户端可以选择直接调用房主端上的方法(类似 RPC)。届时,房主端会收到 OnServerCall 事件。