iOS Game Center GKScore 上下文,如何编码信息?

iOS Game Center GKScore context, how to encode information?

我正在使用 Game Center 进行首次实施。我试图让玩家互相发出 GKScore 挑战。我的游戏包括以随机顺序玩一定数量的关卡。 (假设一个游戏有 9 个关卡,从 30 个可能的关卡中随机选择。)

发出挑战时,我需要能够包括挑战玩家玩过哪些关卡,以便接收玩家可以按相同的顺序玩这些相同的关卡。

我知道我可以包含一个 GKScore.context : UInt64 ,它会传回给我,但我无法弄清楚如何最好地编码我的关卡信息以便传递,我希望得到一些指示示例或其他 solutions/best 实践。

我知道我可以使用按位标志来编码 9 级游戏中应包含哪些级别,但我不确定如果这样做的话我还可以如何包含顺序。

我知道我可以使用 GKScore.context 生成随机 ID 号,将游戏信息上传到我的服务器,然后使用相同的标识符将其取回,但我真的不想向该游戏添加一个服务器组件,它应该 运行 完全在设备上。我不想要服务器负载,也不想要服务器代码维护。

在不依赖服务器组件的情况下,您使用了哪些其他选项来通过 GKScore.context 传输质询信息?

生成适合 64 位的随机值。使用它来为随机数生成器提供种子,并以您需要的任何顺序生成任何级别的数字。将种子保存为上下文。对于被挑战的玩家,从上下文信息中获取种子并使用相同的种子初始化您的随机数生成器。您将获得相同序列的 "random" 值,因此会获得相同顺序的相同级别数字。当必须交付挑战时,唯一的网络内容将通过 Game Center。