本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
GAMEPERF05-BP02 将对延迟不敏感的计算任务移至异步工作流程
在优化游戏性能时,请务必记住,只有客户端和游戏后端之间的某些交互必须以同步方式执行。你应该从玩家体验的角度考虑每个功能,并确定某些交互是否需要同步通信,这是阻塞和资源密集型的,或者这些功能是否可以以异步方式实现。在实现网络调用时,请使用异步、非阻塞的方法。此外,还应将游戏后端配置为通过将任务卸载到队列并在可能的情况下优先考虑对客户端的快速响应,从而高效地执行工作。
在未建立这种最佳实践的情况下暴露的风险等级:高
实施指导
例如,玩家会话结束时更新排行榜可以异步实现,这样客户端就无需等待排行榜更新完成。取而代之的是,在游戏客户端上异步实现此功能,并考虑设计您的后端服务以将这些类型的操作推送到队列中,例如 Amazon SQS。使用此架构,将您的后端配置为接受请求,将其排入 SQS,这有助于持久存储用于异步处理的消息,并及时回复客户端。排行榜更新完成后,后端可以向游戏客户端发送更新,以便更新玩家对排行榜的视图。
或者,玩家只需访问游戏的排行榜屏幕即可检索最新数据,后端可以向您的后端发出 Web 请求,从缓存中检索最新数据。
实施步骤
-
确定客户端与后端的交互是否需要同步通信;尽可能采用异步、非阻塞的方法来优化资源使用。
-
使用 Amazon SQS 来卸载非关键任务,例如排行榜更新。
-
允许客户端异步获取更新的数据,例如按需或通过后台更新检索最新的排行榜数据。