跳到主要内容

PGOS Change Log

V0.33.1 (2025-07-09)

新功能:

  1. Friends

    • 获取潜在好友接口名由 GetPotentialPlayers 更新为GetPotentialFriends. 此接口用于获取潜在好友,支持分页检索,并且按共同好友数降序排列。

SDK Download LinkPGOS_SDK_V0.33.1

V0.33.0 (2025-06-30)

新功能:

  1. World

    • World Filter中增加Category(属性的类别):

      • 预定义属性: PGOS 目前支持两个预定义属性,其名称和数据源都是固定的:

        • PublishPlatform(发布平台): 玩家登录游戏的发布平台。示例值包括 “FAS”、“Steam”、“PlayStation”、“Xbox”、“Switch”、‘AppStore’、“GooglePlay ”等。

        • DeploymentZone(部署区域):开发者打算部署/放置 BattleSession 的目标区域。示例值包括 “cn_souch”、“ap_singapore”、‘eu_germany’、“na_east ”等。

      • 自定义属性: 自定义属性允许开发人员配置参数,包括名称、数据源、数据类型、默认值等。

  2. Friend

    • 添加 GetMutualFriendsCount API:您可以使用该 API 查询当前用户与其他用户之间的共同好友数量。该 API 支持批量查询:开发者可以在一个列表中指定多个玩家 ID(单个请求中最多可指定 20 个玩家 ID),响应将返回当前用户与每个指定用户之间的相互好友数。
  3. In-game Mail: 添加了两个 HTTP API:GetPlayerMailsByIDMarkAttachmentAsClaimed

    Economy

    • 允许为单个玩家设置store category虚拟时间

      • 全局配置

      时光机可在Store Category Schedule > Time Machine中配置。此处的配置将影响所有访问此商店类别的玩家。

      • 玩家配置

      时间机器也可为单个玩家配置,请在player detail page > Economy > Time Machine中配置。此配置仅适用于该玩家。

CLI Tools

SDK 下载链接PGOS_SDK_V0.33.0

V0.32.0 (2025-05-27)

新功能:

  1. 排行榜

  2. PgosSDK 配置

    为游戏服务器添加两个配置选项

    • title_region_id:指定服务器应访问的title region。此配置仅适用于未使用 PGOS DS Hosting 服务的服务器,而使用 PGOS DS Hosting 服务的在线 DS(部署在 PGOS 云环境中)和本地 DS(配置了本地部署 ID)均无需此配置。
    • ds_hosting_feature_enable:启用或禁用 PGOS DS Hosting 功能。如果未使用此功能,禁用它可以加快 SDK 初始化速度。“true”表示启用,“false”表示禁用。

CLI Tools

SDK 下载链接PGOS_SDK_V0.32.0

V0.31.0 (2025-05-12)

新功能:

  1. 玩家登录: 支持登录排队。玩家登录排队系统可确保在高流量时段(例如游戏发布、重大更新或高峰时段)平稳过渡登录流量高峰。此功能允许玩家逐步进入游戏,防止服务器过载,并确保玩家获得更流畅的体验,而不会让服务器一下子过载。
  2. 好友: 为了方便开发者进行测试,PGOS 允许开发者在门户网站上管理好友列表和黑名单
  3. 匹配: 在玩家属性的 partyAggregation 字段中新增 use_leader 参数,方便游戏将队伍数据存储在队长玩家数据中并传递给 PGOS。
  4. P2P 对战:支持主机迁移,当原host出现异常时,会自动从玩家中选择新的主机。
  5. 经济:支持获取部分物品栏数据。如果游戏中玩家拥有大量物品,您可以选择使用 GetInventoryWithFilter 按需获取部分物品栏数据。
  6. DevOps: 导入大区配置时,您可以选择所需的资源,不需要导入的所有配置。

修复问题:

  1. 同一个会华中出现重复 kick EventPlayerLogoutPGOS 事件
  2. 优化 OnWorldBattleSessionUpdated 事件

CLI 工具

  • 新增P2P 对战API:

    • create-p2p-placer
    • update-p2p-placer
    • list-p2p-placer
  • P2P 对局接口新增参数:

    • EnableHostMigration
    • HostHealthCheckingTimeout
    • NewHostSelectedTimeout
    • ElectionThresholdPercent

SDK升级说明:

为了解决 UE 插件的数据结构与第三方插件冲突的问题,我们在所有数据结构(客户端 SDK 类型为 PgosClient,服务器 SDK 类型为 PgosServer)中添加了 Pgos 前缀

  1. 蓝图增加了CoreRedirects,不需要修改。
  2. 对于 C++ 代码,我们将原始数据结构的名称放在命名空间 Pgos 中(对于客户端 SDK 类型,则放在 Pgos::Client 中;对于服务器 SDK 类型,则放在 Pgos::Server 中)。升级 SDK V0.31.0 时,需要添加使用命名空间 Pgos/Pgos::Client/Pgos::Server,其中使用了 Pgos 数据结构。

SDK 下载链接PGOS_SDK_V0.31.0

V0.31.0 (2025-05-12)

新功能:

  1. 玩家登录: 支持登录排队。玩家登录排队系统可确保在高流量时段(例如游戏发布、重大更新或高峰时段)平稳过渡登录流量高峰。此功能允许玩家逐步进入游戏,防止服务器过载,并确保玩家获得更流畅的体验,而不会让服务器一下子过载。
  2. 好友: 为了方便开发者进行测试,PGOS 允许开发者在门户网站上管理好友列表和黑名单
  3. 匹配: 在玩家属性的 partyAggregation 字段中新增 use_leader 参数,方便游戏将队伍数据存储在队长玩家数据中并传递给 PGOS。
  4. P2P 对战:支持主机迁移,当原host出现异常时,会自动从玩家中选择新的主机。
  5. 经济:支持获取部分物品栏数据。如果游戏中玩家拥有大量物品,您可以选择使用 GetInventoryWithFilter 按需获取部分物品栏数据。
  6. DevOps: 导入大区配置时,您可以选择所需的资源,不需要导入的所有配置。

修复问题:

  1. 同一个会华中出现重复 kick EventPlayerLogoutPGOS 事件
  2. 优化 OnWorldBattleSessionUpdated 事件

CLI 工具

  • 新增P2P 对战API:

    • create-p2p-placer
    • update-p2p-placer
    • list-p2p-placer
  • P2P 对局接口新增参数:

    • EnableHostMigration
    • HostHealthCheckingTimeout
    • NewHostSelectedTimeout
    • ElectionThresholdPercent

SDK升级说明:

为了解决 UE 插件的数据结构与第三方插件冲突的问题,我们在所有数据结构(客户端 SDK 类型为 PgosClient,服务器 SDK 类型为 PgosServer)中添加了 Pgos 前缀

  1. 蓝图增加了CoreRedirects,不需要修改。
  2. 对于 C++ 代码,我们将原始数据结构的名称放在命名空间 Pgos 中(对于客户端 SDK 类型,则放在 Pgos::Client 中;对于服务器 SDK 类型,则放在 Pgos::Server 中)。升级 SDK V0.31.0 时,需要添加使用命名空间 Pgos/Pgos::Client/Pgos::Server,其中使用了 Pgos 数据结构。

SDK 下载链接PGOS_SDK_V0.31.0

V0.30.0 (2025-03-20)

新功能:

  1. 匹配:支持 规则集

  2. PGOS 提供以下功能,帮助游戏开发者构建 P2P 游戏:

    • P2P 匹配,考虑 NAT 类型的网络,以下是 规则集示例 供您参考
    • P2P 对战会话
    • P2P 连接
    • P2P 网络驱动程序
  3. DS Hosting:

    • FPgosHostingAPI::GetDeploymentInfo() API 中添加 title_region_id 字段,以便 DS 获取游戏区域信息。
    • 添加了 Load Status 字段,游戏可以通过 Machine Overload Setting 定义机器在何种状态下被视为 Overload
  4. Economy: 我们为非 production的 title region的商店类别提供了时间机器功能。此功能允许用户指定仅适用于特定商店类别的后端虚拟时间,方便验证过去或未来有效的商店类别计划。

  5. DevOps

  • 添加了 DS hosting 监控指标
    • machine_cpu_usage_avg
    • machine_cpu_usage_max
    • machine_cpu_usage_min
    • machine_memory_usage_avg
    • machine_memory_usage_max
    • machine_memory_usage_min
    • machine_network_traffic_in
    • machine_network_traffic_out
    • machine_network_packet_in
    • machine_network_packet_out
  • Prometheus exporter: 支持导出“过载”状态的机器的指标
  1. Portal: 允许开发人员编辑title region名称。

修复问题:

  1. 修复错误以确保最新的“OnWorldBattleSessionUpdated”事件和回调始终包含战斗会话的最新数据。

CLI Tools:

SDK 下载链接PGOS_SDK_V0.30.0

V0.29.0 (2025-01-17)

新功能:

  1. World:在 PGOS 控制台中列出用户所有的world服务战斗会话。

  2. DevOps:我们为 Prometheus Exporter 添加了 DS 和 VS 的数据指标。开发者可以导出这些指标并与 Grafana 结合,在监控面板上可视化显示。

  3. PGOS Audit:审计日志系统记录 PGOS 中的所有用户请求和服务器响应,帮助开发者排查错误并进行操作审计。

  4. P2P 匹配(即将于 4 月推出~):结合 P2P 网络和 ClientHosting,支持 P2P 战斗会话。

CLI Tools

Updated to V0.2.15

Upgrade SDK Note:

  • 重构一些结构::
    • FServerPlayerDesc -> FPlayerDesc
    • FServerBattleTeam -> FBattleTeam
    • FServerBattleSourceData -> FBattleSourceData

SDK 下载链接PGOS_SDK_V0.29.0

V0.28.0 (2024-12-05)

新服务:

  1. 工单系统 (Beta): 允许开发人员提交与PGOS服务相关的问题和技术问题的工单,并确保所有请求都被记录、优先处理并及时处理。

新功能:

  1. Player Auth: 添加了新的Add-on插件以支持 PlayStation、Xbox 和 NintendoSwitch 登录身份验证。

  2. Player Data: 支持导出玩家数据. image-20241204101527669

  3. Player Settings:

    • 新增昵称区分大小写配置,需要在创建大区时确认,大区创建后无法在网页上修改。
    • 修改玩家显示名称时增加冷却时间。image-20241127193111807
  4. DS Hosting:

    • 在门户的数据中心配置中添加了一个开关“Enable Placement”,以控制是否可以将战斗会话放置在该数据中心。 image-20241205161654712
    • 支持上传同一崩溃堆栈的多个DS crash core dump。
    • 在仪表板上添加了机器利用率趋势图、DS 利用率趋势图、战斗会话平均放置时间趋势图。
  5. World: 在bucket中添加了一个“Max Sessions Count”参数。

  6. Lobby: 添加了新的 API “QuickJoin”,支持通过Lobby自定义数据过滤搜索结果,并允许玩家找到Lobby并加入。

  7. Economy:

    • 在游戏内物品中添加了 StackLimit 功能,以限制物品的堆叠数量。
    • 支持游戏内物品的免费定价。
    • 添加了新的 APIBatchSetInstanceTagsBatchSetInstanceCustomDataBatchRevokeInstances
    • 支持商店类别轮换
  8. HTTP API: HTTP API 的 idempotency_token 有效期更改为 90 天。

  9. Virtual Server:

    • 我们新增了 VS Market,其中包含主流软件镜像和安装指南。这将使部署更加轻松快捷,并显著提高您的工作效率。
    • UE 插件的 API InvokeVirtualServer 支持二进制body and response。并且 FVirtualServerReq.bodyFVirtualServerResp.resp_body 的类型已从 FString 更改为 TArray<uint8>
  10. Leaderboard: 添加了新的接口GetFriendsRankingList支持查询好友排行榜列表

  11. System: 添加了新的API GetServerTime,支持以秒为单位获取服务器的当前UTC时间。

  12. PgosSDK: 除了已经提供的发布版本二进制文件之外,PgosSDK 还将提供适用于 Windows 和 Xbox 的调试版本二进制文件。

修复问题:

  1. 修复读取资源配置文件异常导致崩溃的问题。

Upgrade SDK Note

  1. PgosSDK:移除部分标记为弃用的 API。

    • FakeAccount 模块 API:RefreshTokenSwitchAccount 已被移除。
    • Friend 模块 API:BatchOpenIDToPlatformPlayerInfoBatchAccountIDToPlayerID 已被移除,可使用 PlayerProfile 模块中同名 API 替换。
  2. PgosSDK UE 插件:移除编辑器插件设置中的“服务器密钥 (Sever Secret Key)”配置选项。自 v0.27.0 起,游戏服务器无需配置 PGOS 密钥 (PGOS Secret Key)。

PGOS Tools: 更新 CLI APIs:

Added New CLI APIs

  • Economy Store Category Rotation

    • reset-store-category-rotation-schedule
    • modify-store-category-rotation-periods
    • list-store-category-rotation-periods
  • Virtual Server Log Collection

    • collect-virtual-server-logs
    • delete-virtual-server-log-collection
    • list-virtual-server-log-collection
    • describe-virtual-server-log-collection

Updated Parameters

SDK Download LinkPGOS_SDK_V0.28.0

提示

在 V0.28.0 中,以下 HTTP API 响应发生了变化:部分字符串类型字段调整为 int64 数字。旧版 PGOS SDK 兼容字符串和 int64;请在 VS 中修改 API 响应类型。否则,API 调用将失败。

HTTP API NameHTTP API URL变更字段 in Response
QueryBattleSessions/dsm/query_battle_sessionsbody.battle_sessions.created_time
body.battle_sessions.terminated_time
DescribeBattleSessionPlacement/dsm/describe_battle_session_placementbody.created_time
body.terminated_time
body.player_battle_sessions.created_time
body.player_battle_sessions.terminated_time
QueryPlayerBattleSessions/dsm/query_player_battle_sessionsbody.player_battle_sessions.created_time
body.player_battle_sessions.terminated_time
AddPlayersToBattleSession/dsm/add_players_to_battle_sessionbody.new_player_battle_sessions.created_time
body.new_player_battle_sessions.terminated_time
GetPlayerBattleRecord/dsm/get_player_battle_recordbody.battle_data_list.battle_created_time
GetFriendList/friend/get_friend_listbody.friend_info_list.created_time
GetPlayerStat/gamestat/get_player_statbody.latest_login_time
body.latest_logout_time
GetGroupMembers/group/get_group_membersbody.group_members.joined_time
body.muted_members.mute_created_time
body.muted_members.mute_expired_time
body.muted_members.joined_time
GetGroupInfo/group/get_group_infobody.group_info.created_time
GetItemInstanceInfo/inventory/get_item_instance_infobody.item_instances.created_time
body.item_instances.updated_time
body.item_instances.expired_time
GetRankingList/leaderboard/get_ranking_listbody.items.updated_time
GetRankItemPosInfo/leaderboard/get_rank_item_pos_infobody.item.updated_time
body.preceding_items.updated_time
body.subsequent_items.updated_time
GetPartyInfo/party/get_party_infobody.party_info.created_time
CheckPlayerDeletionStatus/player/check_player_deletion_statusbody.marked_time
GetPlayerDetail/player/get_player_detailbody.first_login_time
body.last_login_time
body.last_logout_time
body.total_time
body.cur_login_time
GetPlayerDetailByDisplayName/player/get_player_detail_by_display_namebody.first_login_time
body.last_login_time
body.last_logout_time
body.total_time
body.cur_login_time
BatchGetPlayerDetail/player/batch_get_player_detailbody.data.first_login_time
body.data.last_login_time
body.data.last_logout_time
body.data.total_time
body.data.cur_login_time
GetPlayerDetailListByDisplayName/player/get_player_detail_list_by_display_namebody.player_detail_list.first_login_time
body.player_detail_list.last_login_time
body.player_detail_list.last_logout_time
body.player_detail_list.total_time
body.player_detail_list.cur_login_time
BatchGetPlayerDetailListByDisplayNames/player/batch_get_player_detail_list_by_display_namesbody.player_detail_list.first_login_time
body.player_detail_list.last_login_time
body.player_detail_list.last_logout_time
body.player_detail_list.total_time
body.player_detail_list.cur_login_time
BatchGetPlayerDetailsByDisplayNames/player/batch_get_player_details_by_display_namesbody.player_detail_infos.displayname.first_login_time
body.player_detail_infos.displayname.last_login_time
body.player_detail_infos.displayname.last_logout_time
body.player_detail_infos.displayname.total_time
body.player_detail_infos.displayname.cur_login_time
GetPlayerBanInfo/player/get_player_ban_infobody.created_time
body.expired_time
QueryPlayersPunishItems/player/query_players_punish_itemsbody.punish_map.playerid.items.start_time
body.punish_map.playerid.items.deadline
GetTitleFileInfo/title/get_title_file_infobody.data.updated_time
body.data.file_size
GetAllOverallBanInfo/title/get_all_overall_ban_infobody.ban_info_list.ban_start_time
body.ban_info_list.ban_expire_time
body.ban_info_list.created_time
body.ban_info_list.updated_time
CreateECT/ect/create_ectbody.created_time
body.updated_time
body.actions.updated_time
GetPlayerUncompletedECTs/ect/get_player_uncompleted_ectsbody.ect_list.created_time
body.ect_list.updated_time
body.ect_list.actions.updated_time
CancelECT/ect/cancel_ectbody.created_time
body.updated_time
body.actions.updated_time
UpdateECT/ect/update_ectbody.created_time
body.updated_time
body.actions.updated_time
UpdateECTActions/ect/update_ect_actionsbody.created_time
body.updated_time
body.actions.updated_time
GetECTInfo/ect/get_ect_infobody.created_time
body.updated_time
body.actions.updated_time
GetPlayerCurrency/inventory/get_player_currencybody.currencies.amount
body.currencies.total_spend
body.currencies.created_time
GetPlayerMails/mail/get_player_mailsbody.mail_list.sent_time_stamp
GetStatItems/statistics/get_stat_itemsbody.round_start_time
body.round_end_time
body.items.updated_time
GetPersistentStatItems/statistics/get_persistent_stat_itemsbody.items.updated_time
UpdateStatItems/statistics/update_stat_itemsbody.items.latest_item.updated_time
GetCycleCurrentRound/statistics/get_cycle_current_roundbody.round_info_map.round_start_time
body.round_info_map.round_end_time

V0.27.1 (2024-10-11)

新功能:

  1. Web Console of DS Hosting: 允许用户在 Web 控制台页面上选择已激活的 DS 实例并进入他们的终端(Linux SSH 或 Windows RDP)。

image-20241011145147943

  1. Add-on: 适用于 ACE SDK 并提Add-on插件以启用敏感词过滤功能。

    image-20241011160419956

Fixed Bugs

  1. 修复本地DS中ActivateBattleSession调用提供服务器端口无效的问题。
  2. 修复使用镜像资源创建VS时,由于镜像未标记导致CI流程失败的问题。
提示
  1. 仅将后端和 Web 门户更新至 V0.27.1,开发者无需升级 PGOS SDK。

  2. 将门户上的Backend API/Title CLI 域移至详情页面。

    image-20241011161701107

V0.27.0 (2024-09-20)

新服务:

  1. Message Bus: 在游戏拥有自己的后台系统且仅使用 PGOS 部分服务(例如 DS 托管)的场景下,游戏后台可能需要与 DS或 VS通信,并接收 PGOS 事件。通常,DS/VS 可以通过公网直接与游戏后台通信。然而,这需要游戏后台拥有公网网关。此外,即使游戏后台已经拥有公网网关,游戏仍然需要进行一些适配工作。因此,PGOS 提供了一种名为消息总线 (Message Bus) 的即用型通信机制,用于支持与游戏后台服务进行数据交换。
  2. Eventual Consistent Transaction (ECT): ECT 用于跟踪游戏事务。当游戏需要执行包含多个有序操作的事务来修改玩家数据或库存时,游戏可以创建一个 ECT 实例来在后端(Game Server或VS)跟踪事务状态。
  3. Player Punishment: 玩家惩罚是指玩家在指定时间内无法使用某些功能。游戏会实施惩罚措施,以惩戒那些做出不良行为(例如作弊或辱骂他人)的玩家。游戏可以通过门户控制台或后端 HTTP API 管理(添加/撤销)玩家惩罚。玩家惩罚设有截止时间,到达截止时间后,惩罚将自动解除。

新功能

  1. World:

    • 支持多人离开世界: 玩家可以使用 InviteLeaveWorld API 邀请其他玩家离开指定的世界。
    • 在世界配置中添加 DS 审批:开发者可以选择 DS 审批策略来指定如何处理客户端的 JoinWorldBattleSession 请求。
      • 会话锁定时需要审批:只有直接加入锁定的世界战斗会话时才需要 DS 审批。
      • 所有会话加入请求都需要审批:所有来自 JoinWorldBattleSession 接口的加入请求都需要 DS 审批,无论世界战斗会话是否锁定。
      • 世界战斗会话 ID 重命名 & 区域已移至 BattleSessionInfo
  2. Matchmaking: Simulator支持模拟多模式匹配

  3. DS Hosting:

    • 优化了战斗会话放置策略](../manual/service_manual/ds_hosting/placers.html#1-battle-session-placement-strategy):PGOS 将根据战斗会话玩家到 DS 的延迟情况,选择最佳的 DS 实例来放置战斗会话。
    • 在 DS SDK 托管模块中新增 API GetDeploymentInfo,用于获取游戏服务器的部署详情,例如机器类型、region等。
    • 支持使用 CLI 配置本地Placer。
    • 在线 DS 无需配置服务器 secret_key。您可以从 PgosSDK UE 插件设置(DefaultGame.ini)或代码中移除服务器 secret_key,以防止其意外泄露。
  4. In-game mail: 支持发送全员邮件。

  5. Economy: 虚拟货币新增“最大余额”字段,限制玩家可获得的虚拟货币最大数量。

  6. Title File: 支持server-only属性,允许游戏指定某些文件只能从服务器获取其可下载的URL。

  7. Virtual Server:

    1. 现在,您可以使用 Docker 镜像在VS中部署大多数软件,例如 Prometheus 和 Grafana,以监控 PGOS 服务、数据库、您的VS以及任何其他您需要的软件。VS已成为一个完整的生态系统,可用于开发和部署几乎所有游戏后端服务器。VS应用市场即将发布,以帮助您更高效地安装我们或其他开发者共享的软件。
  1. 优化事件通知可靠性:
    • 新增OnPartyInfoUpdated事件:由于网络问题或其他原因导致长连接中断,服务器可能无法通过此连接通知客户端队伍信息的变更(例如玩家加入或离开队伍)。如果客户端长时间未察觉队伍信息的变更,可能会导致游戏功能异常。为了解决此问题,PGOS SDK 会在检测到长连接中断后定期(通常每 30 到 60 秒)获取最新的队伍信息,然后通过OnPartyInfoUpdated事件通知游戏。
    • Applicable to OnLobbyInfoUpdated as well.
  2. PGOS SDK 适配Nintendo SDK 18.3.2.

修复问题:

  1. Local Placer缺少 OnPlayerBattleSessionsTerminated 通知。
  2. 缺少 OnTitleRegionClosed 事件。

PGOS Tools: 更新 CLI APIs

Added New CLI APIs:

  • Local Placer
    • create-local-placer
    • delete-local-placer
    • list-local-placers

Update Parameters:

  • Added LaunchArgs parameter in the following APIs, default by [].

    • create-virtual-server
    • update-virtual-server
    • list-virtual-server
    • describe-virtual-server
  • Added JoinRequireDSApproval parameter in the following APIs, default by False.

    • create-world-config
    • update-world-config
    • list-world-config
    • describe-world-config
  • Added ServerOnly parameter in the following APIs, default by False.

    • create-title-file
    • list-title-file
    • describe-title-file
  • Added MaxDeposit parameter in the following APIs, default by 0.

    • list-virtual-currency

    • describe-virtual-currency

    • create-virtual-currency

    • update-virtual-currency

    • check-virtual-currency

    • import-virtual-currency

    • export-virtual-currency

  • Added PlacementRules parameter in the following APIs, default by []

    • create-placer
    • update-placer
  • Deleted BattlesessionPlaceTimeout parameter in the following APIs.

    • create-placer
    • update-placer

SDK Download LinkPGOS_SDK_V0.27

提示

预告:

以下 HTTP API 响应将在 V0.28.0 中发生变化:将一些字符串类型字段调整为 int64 数字。

HTTP API NameHTTP API URLChanged Fields in Response
QueryBattleSessions/dsm/query_battle_sessionsbody.battle_sessions.created_time
body.battle_sessions.terminated_time
DescribeBattleSessionPlacement/dsm/describe_battle_session_placementbody.created_time
body.terminated_time
body.player_battle_sessions.created_time
body.player_battle_sessions.terminated_time
QueryPlayerBattleSessions/dsm/query_player_battle_sessionsbody.player_battle_sessions.created_time
body.player_battle_sessions.terminated_time
AddPlayersToBattleSession/dsm/add_players_to_battle_sessionbody.new_player_battle_sessions.created_time
body.new_player_battle_sessions.terminated_time
GetPlayerBattleRecord/dsm/get_player_battle_recordbody.battle_data_list.battle_created_time
GetFriendList/friend/get_friend_listbody.friend_info_list.created_time
GetPlayerStat/gamestat/get_player_statbody.latest_login_time
body.latest_logout_time
GetGroupMembers/group/get_group_membersbody.group_members.joined_time
body.muted_members.mute_created_time
body.muted_members.mute_expired_time
body.muted_members.joined_time
GetGroupInfo/group/get_group_infobody.group_info.created_time
GetItemInstanceInfo/inventory/get_item_instance_infobody.item_instances.created_time
body.item_instances.updated_time
body.item_instances.expired_time
GetRankingList/leaderboard/get_ranking_listbody.items.updated_time
GetRankItemPosInfo/leaderboard/get_rank_item_pos_infobody.item.updated_time
body.preceding_items.updated_time
body.subsequent_items.updated_time
GetPartyInfo/party/get_party_infobody.party_info.created_time
CheckPlayerDeletionStatus/player/check_player_deletion_statusbody.marked_time
GetPlayerDetail/player/get_player_detailbody.first_login_time
body.last_login_time
body.last_logout_time
body.total_time
body.cur_login_time
GetPlayerDetailByDisplayName/player/get_player_detail_by_display_namebody.first_login_time
body.last_login_time
body.last_logout_time
body.total_time
body.cur_login_time
BatchGetPlayerDetail/player/batch_get_player_detailbody.data.first_login_time
body.data.last_login_time
body.data.last_logout_time
body.data.total_time
body.data.cur_login_time
GetPlayerDetailListByDisplayName/player/get_player_detail_list_by_display_namebody.player_detail_list.first_login_time
body.player_detail_list.last_login_time
body.player_detail_list.last_logout_time
body.player_detail_list.total_time
body.player_detail_list.cur_login_time
BatchGetPlayerDetailListByDisplayNames/player/batch_get_player_detail_list_by_display_namesbody.player_detail_list.first_login_time
body.player_detail_list.last_login_time
body.player_detail_list.last_logout_time
body.player_detail_list.total_time
body.player_detail_list.cur_login_time
BatchGetPlayerDetailsByDisplayNames/player/batch_get_player_details_by_display_namesbody.player_detail_infos.displayname.first_login_time
body.player_detail_infos.displayname.last_login_time
body.player_detail_infos.displayname.last_logout_time
body.player_detail_infos.displayname.total_time
body.player_detail_infos.displayname.cur_login_time
GetPlayerBanInfo/player/get_player_ban_infobody.created_time
body.expired_time
QueryPlayersPunishItems/player/query_players_punish_itemsbody.punish_map.playerid.items.start_time
body.punish_map.playerid.items.deadline
GetTitleFileInfo/title/get_title_file_infobody.data.updated_time
body.data.file_size
GetAllOverallBanInfo/title/get_all_overall_ban_infobody.ban_info_list.ban_start_time
body.ban_info_list.ban_expire_time
body.ban_info_list.created_time
body.ban_info_list.updated_time
CreateECT/ect/create_ectbody.created_time
body.updated_time
body.actions.updated_time
GetPlayerUncompletedECTs/ect/get_player_uncompleted_ectsbody.ect_list.created_time
body.ect_list.updated_time
body.ect_list.actions.updated_time
CancelECT/ect/cancel_ectbody.created_time
body.updated_time
body.actions.updated_time
UpdateECT/ect/update_ectbody.created_time
body.updated_time
body.actions.updated_time
UpdateECTActions/ect/update_ect_actionsbody.created_time
body.updated_time
body.actions.updated_time
GetECTInfo/ect/get_ect_infobody.created_time
body.updated_time
body.actions.updated_time
GetPlayerCurrency/inventory/get_player_currencybody.currencies.amount
body.currencies.total_spend
body.currencies.created_time
GetPlayerMails/mail/get_player_mailsbody.mail_list.sent_time_stamp
GetStatItems/statistics/get_stat_itemsbody.round_start_time
body.round_end_time
body.items.updated_time
GetPersistentStatItems/statistics/get_persistent_stat_itemsbody.items.updated_time
UpdateStatItems/statistics/update_stat_itemsbody.items.latest_item.updated_time
GetCycleCurrentRound/statistics/get_cycle_current_roundbody.round_info_map.round_start_time
body.round_info_map.round_end_time

V0.26.3 (2024-08-15)

New Features

  1. Economy:
  2. Party: added two backend HTTP party APIs: GetPlayersCurrentPartyIds and GetPartyInfo.
  3. Player Info: added two HTTP APIs: GetPlayerDetailListByDisplayName and BatchGetPlayerDetailListByDisplayNames.

PGOS Tools: Updated CLI APIs

Added New CLI APIs:

  • Title File
    • list-title-file
    • create-title-fil
    • delete-title-file
    • describe-title-file
    • create-title-file-folder
    • delete-title-file-folder
    • refresh-title-file-cache

Updated Fields :

  • Changed RulesetName to AssociatedRuleset in Matchaking APIs:

    • update-match-config
    • create-match-config
  • Changed GameProperty return value from String to JSON object in Matchaking APIs:

    • describe-match-config
    • list-match-config

Added New Parameters

  • Added CurrencyType, ResourceID in Economy APIs:

    • list-virtual-currency
    • describe-virtual-currency
    • create-virtual-currency
    • update-virtual-currency
    • export-virtual-currency
    • check-virtual-currency
    • import-virtual-currency
  • Added FailedItems in Economy APIs:

    • import-ingame-item
    • import-store
  • Added PayPlatform in Economy APIs:

    • export-store
    • check-store
    • import-store
    • list-store-item
    • describe-store-item
    • create-store-item
    • update-store-item

Deprecated APIs:

Mentioned in V0.25.1 (2024-05-31) Changelog and depracated the following APIs in V0.26.1:

  • export-economy-currency-json-content
  • import-economy-currency-json-content
  • export-economy-ingame-item-json-content
  • import-economy-ingame-item-json-content
  • export-economy-platform-item-json-content
  • import-economy-platform-item-json-content
  • export-economy-store-json-content
  • import-economy-store-json-content

:::

SDK Download LinkPGOS_SDK_V0.26.3

V0.26.0 (2024-07-02)

新功能

  1. 玩家鉴权: PGOS 适配多帐号绑定

  2. Lobby:

    • Lobby配置新增高级模式,允许配置多个队伍组,玩家可在lobby中选择加入指定组。组内位置选择将遵循lobby配置中的队伍选择策略。
    • 允许绑定灵活的Placer。您可以设置多种游戏模式,并为每种模式分配特定的Placer。发起战斗后,系统将根据Lobby提供的游戏模式绑定相应的Placer。
  3. World: 加入世界/战斗会话时支持加入邀请和确认机制,并且 OnWorldBattleSessionTransfer 事件已合并到 OnWorldBattleSessionUpdated 事件中,不再单独支持。

  4. Title Config Data: 它是一组用于整个游戏的Key Value对。它通常用于存储适用于整个游戏的配置数据,例如游戏region信息列表、游戏客户端版本控制数据等等。如果您使用 HTTP API 访问title file,请参阅规范 以查看 HTTP API 的验证方法。

  5. Title File: PGOS 提供了一个文件管理系统,用于管理整个游戏的文件。游戏客户端和游戏服务器可以访问游戏文件信息,游戏可以选择使用获取的 URL 下载文件。如果您使用 HTTP API 访问游戏文件,请参阅规范 以查看 HTTP API 的验证方法。

  6. Player Data:

  7. DS Hosting: 支持Fleet中的存储配置,允许游戏自定义Fleet中机器使用的存储大小。

    image-20240628145905895

  8. Economy: 添加新的 API GetStoreCategories 来获取制定的store categories.

  9. 崩溃改进:在崩溃详情中可以查看关联的战斗会话,在战斗会话详情中可以查看关联的崩溃。

  10. Virtual Server:

    • 将 CI/CD 描述、状态和错误信息公开到 CLI,请参阅 CLI 命令部分。

    • 支持在门户上创建 VS 存储

    image-20240702155556075

  11. Event: 增加 EventPlayerEventChannelAvailable

修复问题

  1. 首次 CI 执行失败后,VS无法重启。
  2. 部分Budle显示的价格折扣不正确。

更新 SDK 注意事项

  1. PgosSDK 不再支持pgos_game_config.ini/pgos_game_server_config.ini 。如果游戏当前使用这些配置文件,您可以将配置传输到 PgosSDK UE 插件设置代码

PGOS Tools

Updated CLI tool version to V0.2.11

提示

将 CLI 手册分为 Title CLI Command 和 Title Region CLI Command](../manual/cli_manual/command_reference.html)。

  • 如果您使用新的Title CLI Command,请将 CLI 工具更新至 V 0.2.11,并在配置中添加 title-id 字段,具体请参阅 教程文档

  • 如果您使用 CLI Http API,请参阅 规范,并使用相应的 CLI Http 域。

Added New CLI APIs:

  • Title Config Data
    • list-title-config-data
    • create-title-config-data
    • update-title-config-data
    • delete-title-config-data
    • describe-title-config-data

Updated CLI APIs

  • Added InvitationTimeoutSeconds filed in world APIs:
    • create-world-config
    • update-world-config
    • describe-world-config
    • list-world-config
  • Added AdvancedMode, TeamsGroups, FlexiblePlacerMapping fields in Lobby APIs:
    • create-lobby-config
    • update-lobby-config
  • Added DeployStatus/DeployMessage filed in VS APIs:
    • list-virtual-server
    • describe-virtual-server

SDK Download LinkPGOS_SDK_V0.26.0

提示

Updated backend API dominion, please pay attention to updating the domain in the game configuration. The old domain will be deprecated on December 31st.

image-20240702192300731

V0.25.1(2024-05-31)

PGOS Services:

New Features

  1. Matchmaking post-processing: When PGOS completed matchmaking workflow, it supports using virtual server to inspect, adjust, and modify the matchmaking results, game side can determine the validity of the matchmaking results, change the matchmaking results, and re-queuing certain matchmaking tickets into the matchmaking queue to start re-matchmaking.
  2. Economy: Added player purchase limit of store item.
  3. Battle Service: Supported asynchronous invoke to the player battle session management APIs.
  4. Virtual Server:
    • Allowed to update virtual server image while VS stopped.
    • Added consuming item idempotency token in virtual server’s request data.
    • Added VS CI/CD tracing and optimized the status display of VS on the portal.
  5. PgosSDK : PgosSDK has adapted to Nintendo Switch SDK. Notes.

Fixed Bugs:

  1. The bucket-path is missing on LP DS.
  2. Failing idempotency test in subtract virtual currency in VS.
  3. Incorrect player battle session ID being reported for all additional players in party based matchmaking.
  4. Sometimes a battle session for a DS in an local placer goes into a "zombie" state after the DS terminates.

PGOS Tools: Updated CLI APIs

  1. Added New APIs

    • export-virtual-currency
    • check-virtual-currency
    • import-virtual-currency
    • export-ingame-item
    • check-ingame-item
    • import-ingame-item
    • export-platform-item
    • check-platform-item
    • import-platform-item
    • export-store
    • check-store
    • import-store
    • list-battle-session
    • describe-battle-session
    • list-battle-session-log-file
    • list-player-battle-session
  2. Added Parameters in APIs

    • API: create-match-config, update-match-config
      • Added parameters: PostProcessing, PostProcessingVirtualServer, it is used to support Virtual Server to inspect, adjust, and modify the matchmaking results
    • API: create-store-item, update-store-item
      • Added parameters: MaxPurchaseAmount, it is used to player purchase limit of store item
    提示

    We plan to deprecate the following APIs in V0.26 and suggest to use new APIs added in V0.25.1. Please pay attention to adapt to the protocol when using new APIs.

    • export-economy-currency-json-content

    • import-economy-currency-json-content

    • export-economy-ingame-item-json-content

    • import-economy-ingame-item-json-content

    • export-economy-platform-item-json-content

    • import-economy-platform-item-json-content

    • export-economy-store-json-content

    • import-economy-store-json-content

SDK Download LinkPGOS_SDK_V0.25.1

V0.25.0(2024-04-30)

新功能

  1. PgosSDK UE Plugin

    • 多 PIE 实例优化:引入 客户端 SDK 实例模式,并使用统一的 IPgosSDKCpp::Get() API 获取 SDK 实例,降低开发者管理 SDK 实例的复杂度(旧方式:IPgosSDKCpp + PgosClientSDKCppSubsystem)。新方式:在 IPgosSDKCpp::Get() API 中添加默认参数 (ULocalPlayer*)。

      如果您的游戏未使用 PgosSDK 的多 PIE 实例功能,则无需进行任何修改。

      static IPgosSDKCpp& Get(ULocalPlayer* LocalPlayer = nullptr);
    • IPgosSDKCpp::CreatePGOS() API 已移除 bool AutoDestroy 参数。如果您仍然需要该参数,可以使用 IPgosSDKCpp::GetPreCreateSettings().SetAutoDestroyPgosSDKForSingleton(bool AutoDestroy) 替代。

  2. Player Auth

    • LoginPGOS API 参数 FClientLoginPGOSParams 移除了 account id 字段:账户 id 不再需要开发者传入,PGOS 后端会从相关账户提供商处获取。
    • 在 Player Auth 中添加 Event Channel Status Changed EventEvent Channel作为 PGOS 后端向客户端发送事件通知(例如 chat_messages/friend_requests)的数据管道。在某些情况下,此事件可帮助游戏/玩家了解 PGOS/游戏服务降级的可能原因。
  3. Player Profile

    在门户控制台添加 玩家昵称设置

    • 在 PGOS 后台添加配置,以支持昵称唯一性。如果游戏要求昵称不能重复,请联系我们启用该配置。
    • 添加显昵称验证配置,包括字符长度验证、正则表达式验证等。

    企业微信截图_17141197747916

  4. Lobby

    Lobby Config中添加 Start Battle Condition :

    image-20240428160439911

    Lobby所有者调用 StartBattle 接口时的操作取决于Lobby成员的 Ready 标志:

    • All Ready Otherwise Waiting:全部就绪,否则等待。Lobby将进入 准备 阶段,等待未准备好的玩家准备就绪。当Lobby处于 准备 阶段时,切换队伍位置将导致Lobby回退到 等待 阶段。
    • All Ready Otherwise Error:全部就绪,否则出错。如果并非所有玩家都已准备就绪,Lobby所有者将收到错误消息。
    • Ignoring Ready Flag:忽略就绪标志。Lobby将直接进入 游戏 阶段,忽略 Ready 标志。

    The action when the lobby owner invokes the StartBattle interface depends on the Ready flag of lobby members:

    • All Ready Otherwise Waiting: The lobby will enter the Preparing stage, waiting for unready players to get ready. When the lobby is in the Preparing stage, switching the team slot will cause the lobby to fall back to the Waiting stage.
    • All Ready Otherwise Error: The lobby owner will receive an error if not all players are ready.
    • Ignoring Ready Flag: The lobby will enter the Playing stage directly, ignoring the Ready flag.
  5. Economy

  6. Virtual Server

    Add system preset Environment Variables.

    提示

    SUGGEST TO USE ENVIRONMENT VARIABLES TO GET STORAGE INFORMATION

    • We recommend using environment variables to obtain information on Virtual Server Storage, which can avoid hard coding and improve the maintainability of the code.
    • In future versions, we will hide the Virtual Server Storage information on the portal and only allow to access it through environment variables.
  7. Others

    • UE DS log collection optimization.

Fixed Bugs:

  1. Virtual Server build finding the wrong Dockerfile.
  2. PgosSDK occasionally crashes on shutdown in multiple PIE instances.
  3. Incorrect console warning log: "WARNING: GET SECRET_KEY FROM INI FILE SUCCESS! TO AVOID KEY LEAKS, SECRET_KEY SHOULD NOT BE CONFIGURED IN GAME RELEASE BUILDS IN PGOS_CONFIG.INI OR PGOS_SERVER_CONFIG.INI !!!", but the game did not do that.

Upgrade SDK Note

  1. The pay_platform field has been added to the parameters of the GetStore API. The GetStoreWithPlatform API has been deprecated, and you can use GetStore instead.
  2. The deprecated PurchaseStoreItem API has been removed. You can use CreateStoreOrder and CommitStoreOrder instead.
  3. This version of the Store has undergone significant changes. If you need to add or modify stores and store items on the portal, you will need to upgrade to the latest SDK [v0.25.0 and above]. If you don't need to make changes to the store on the portal for now, you can continue using the old version of the SDK. However, for a better experience, it is still recommended to upgrade to the new version.

PGOS Tools: Updated CLI APIs

  1. Lobby Config

    • Added new parameter StartBattleCondition in create-lobby-config API
    • Added new parameter StartBattleCondition in update-lobby-config API
    • Changed ConfigurationName to Name in below APIs
      • list-lobby-config
      • describe-lobby-config
      • delete-lobby-config
  2. Store Item

    Added new APIs:

    • list-store-item
    • describe-store-item
    • create-store-item
    • update-store-item
    • delete-store-item
    • enable-store-item
    • disable-store-item
  3. Store Item

    Added new APIs:

    • list-store-category
    • describe-store-category
    • create-store-category
    • update-store-category
    • delete-store-category
    • enable-store-category
    • disable-store-category
    • set-store-category-schedule
  4. Deprecated APIs

    • list-title-data
    • create-title-data
    • delete-title-data
    • update-title-data
    • export-title-data-json-content
    • import-title-data-json-content

SDK Download LinkPGOS_SDK_V0.25.0

V0.24.0(2024-03-29)

PGOS Services:

New Features

  1. Added joining and invite strategy to Party service

    Added two parametersjoin_strategy and invite_strategy in create party API:

    join_strategy controls how other players join the party

    EClientPartyJoinStrategyDescription
    PublicAny player can join the party, except for the player who is blocked by the leader.
    It's the default policy.
    OnlyFriendsOfLeaderOnly friends of the leader are allowed to join the party.
    OnlyFriendsOfMembersOnly friends of any member who are not blocked by the leader are allowed to join the party.
    OnlyInvitedOnly explicitly invited players who are not blocked by the leader are allowed to join the party.

    invite_strategy controls how the members of the party invite others.

    EClientPartyInviteStrategyDescription
    AllMembersCanInviteAll members of the party are allowed to invite other players to join the party.
    A player who is blocked by the leader or the inviting player can't be invited.
    It's the default policy.
    OnlyLeaderCanInviteOnly the leader is allowed to invite other players to join the party.
    A player who is blocked by the leader can't be invited.
  2. Added country code in EventPlayerLoginPGOS

  3. The store ID can be set by game, instead of automatically assigned by PGOS

  4. Build name and fleet name are not allowed to be modified after the creation

  5. Added comments for the secret key on the title setting page

    image-20240328152634719

  6. Added Events history on the Virtual server page to facilitate debugging

    image-20240328152455412

  7. Added Singapore zone on Tencent Cloud

  8. Matchmaking performance improvements and stability optimization

Upgrade SDK Note

  1. TitleKVData is renamed to TitleRegionConfigKVData, such as:

    Old NameNew Name
    FPgosTitleAPI::GetTitleKVDataFPgosTitleRegionConfigDataAPI::GetTitleRegionConfigKVData
    FPgosTitleAPI::GetAllTitleKVDataFPgosTitleRegionConfigDataAPI::GetAllTitleRegionConfigKVData
    FTitleKVDataQueryResultFTitleRegionConfigKVDataQueryResult

    ❗❗❗ Note: When upgrading the PGOS plugin, Please delete the old \Plugins\PgosSDK\ directory first instead of directly overwriting it with the new PgosSDK directory. Otherwise, the remaining PgosClientTitleAPI.cpp & PgosServerTitleAPI.cpp files may cause compilation errors.

  2. The IPgosSDKCpp::CreatePGOS API has been added with a default parameter: void CreatePGOS(bool AutoDestroy = true)

    • If the AutoDestroy parameter is set to true (default value), the plugin will automatically attempt to DestroyPGOS during EndPIE and ShutdownModule, maintaining the previous behavior. That is, if the game wants to maintain its previous behavior, it does not need to change any code.
    • If the AutoDestroy parameter is set to false, the lifetime of PgosSDK will be completely controlled by the game. In this case, the plugin will never attempt to actively DestroyPGOS under any circumstances.

PGOS Tools

Updated the CLI APIs

  1. Title Region Config Data (Title Data Changed to Title Region Config Data)

    Added new APIs:

    • list-title-region-config-data
    • create-title-region-config-data
    • delete-title-region-config-data
    • update-title-region-config-data
    • export-title-region-config-data-json-content
    • import-title-region-config-data-json-content

    Deprecated APIs(Keep in V0.24,remove from V0.25)

    • list-title-data
    • create-title-data
    • delete-title-data
    • update-title-data
    • export-title-data-json-content
    • import-title-data-json-content
  2. Player KV Data Group (Player Group changed to Player KV Data Group)

    Added new APIs:

    • add-player-kv-data-group
    • update-player-kv-data-group
    • remove-player-kv-data-group

    Deprecated APIs(Keep in V0.24,remove from V0.25)

    • add-player-group
    • update-player-group
    • remove-player-group
  3. DS Hosting CVM Instance

    Added New APIs:

    • list-fleet-cvm-instance
    • list-fleet-cvm-instance-file
    • collect-fleet-cvm-instance-file
    • cancel-fleet-cvm-instance-file-collection
    • describe-fleet-cvm-instance-file-collection
  4. Economy Virtual Currency

    Added New APIs

    • list-virtual-currency
    • describe-virtual-currency
    • create-virtual-currency
    • update-virtual-currency
    • delete-virtual-currency
  5. Economy Ingame Item

    Added New APIs

    • list-ingame-item
    • describe-ingame-item
    • create-ingame-item
    • update-ingame-item
    • delete-ingame-item
  6. Economy Platform Item(Item Mapping Changed to Platform Item)

    Added New APIs

    • export-economy-platform-item-json-content
    • import-economy-platform-item-json-content

    Deprecated APIs(Keep in V0.24,remove from V0.25)

    • export-economy-item-mapping-json-content
    • import-economy-item-mapping-json-content
  7. Economy Store

    Added New APIs

    • list-store
    • describe-store
    • create-store
    • update-store
    • delete-store
提示

Advance Notice: there are significant changes to the fields and protocols for the following APIs in V0.25, we will deprecate them in V0.25 and provide new APIs

  • export-economy-store-item-json-content
  • import-economy-store-item-json-content
  • export-economy-store-category-json-content
  • import-economy-store-category-json-content

SDK Download LinkPGOS_SDK_V0.24

V0.23.2(2024-03-05)

Fixed Bugs:

  1. Fixed an occasional crash in the client SDK lobby module.
  2. Added friend‘s presence to player friend information
  3. Optimized notification events of world service
  4. The IOS library was not being found during the APP launch

SDK Download LinkPGOS_SDK_V0.23.2

V0.23.0(2024-02-02)

PGOS Service

New Features

  1. Matchmaking: Supported selecting multiple maps and multi-game modes at the same time when initiating matchmaking.

  2. Xbox Store Reconciliation: it allows games to synchronize items purchased by players from the Xbox store to PGOS and allows games to build an economy by selling PGOS-managed items using Xbox as the "payment processor"

  3. Lobby: Added configuration to control lobby joining, which can be modified by the lobby owner:

    • Free to join the lobby
    • Apply to join the lobby. A join request will be sent to the lobby owner, who can approve or reject the request.
    • Simplified lobby event data structure, no longer returns full lobby details in team updated and global/player data updated events.
  4. World: Added Equivalent Values filed in filter rules, which allows multiple sets of equivalent values for the attribute. The game can use this configuration to merge attribute values for which it does not wish to divert players into different buckets.

  5. Statistics: Added BatchGetStatCycleRoundInfo API to query the cycle end time.

  6. Friend:

  7. Added a new API FPgosBattleAPI::GetDSHostingLatencies to get the latency mapping from the client to the data centers of DS hosting.

  8. Added a new API FPgosPlayerAuthAPI::MyAuthTicket to facilitate player verification on the game server.

  9. Added multiplayer support for Unreal SDK: The PGOS SDK supports both multiple PIE instances in UE Editor and multiple local players in the game.

  10. Supports Virtual Server v2.0 in AWS Title Region.

  11. PGOS Prometheus Exporter: PGOS provides the PrometheusExporter to help the game import data metrics into Prometheus, then you can use Grafana to customize the alert rules and show a custom dashboard on the game side to monitor the API request or specific metrics.

  12. Added Roadmap on the portal.

Upgrade SDK Note

  1. To support the multiplayer support feature, each PGOS Client SDK instance appears as a Unreal LocalPlayerSubsystem. Therefore, PGOS related services can only work after the Unreal LocalPlayerSubsystem is ready. If the old PGOS-related code in game is not working, you may need to adjust the position of the CreatePGOS-related code.
  2. The FPgosFriendAPI::GetRecommendedPlayers and FPgosFriendAPI::GetPotentialPlayers APIs now include a parameter to specify the number of players to be returned.

SDK Download LinkPGOS_SDK_V0.23

PGOS Tools

New Features

  1. Supported using pip to install PGOS CLI python SDK.

Updated the CLI APIs

  1. Added the MultiRulesetEnabledMultiRulesets fields in below Matchmaking APIs

    • list-match-config
    • describe-match-config
    • create-match-config
    • update-match-config
  2. Added EquivalentValues field in below World APIs:

    • create-world-filter
    • list-world-filter
    • update-world-filter
    • describe-world-filter
  3. Added ResourceFileMD5MaxInstanceStrategy in the below Virtual Server APIs

    • create-virtual-server
    • list-virtual-server
    • update-virtual-server
    • describe-virtual-server

Added new CLI API

  1. Virtual Server

    • describe-virtual-server-env-vars
    • update-virtual-server-env-vars
  2. Task

    • list-task

    • create-task

    • update-task

    • delete-task

    • describe-task

    • execute-task

  3. Event

    • list-event
    • list-event-handler
    • describe-event-handler
    • create-event-handler
    • update-event-handler
    • delete-event-handler
  4. Player custom info

    • export-player-custom-info-definition
    • import-player-custom-info-definition

PGOS Tools Download Link:CLI V0.2.10

V0.22.1(2023-12-08)

New Features:

  1. Added JoinWorldBattleSession API in World service, which allows players to join a specified world battle session.
  2. Optimize Economy's API to support idempotency.
    • Client SDK: ConsumeInstance
    • Server SDK: GrantItemToPlayer, GrantCurrencyToPlayer
    • HTTP API: GrantItemToPlayer, GrantCurrencyToPlayer,SubtractPlayerCurrency
  3. Added event_custom_data parameter in Economy's API, which supports passing a game-defined value to PGOS virtual server event.
    • Client SDK: CreateStoreOrder, ConsumeInstance, OpenContainerInstance, RevokeInstance, SyncPlayerPlatformInventory, SyncSteamPurchase
    • Server SDK: GrantItemToPlayer, GrantCurrencyToPlayer
    • HTTP API: GrantItemToPlayer, GrantCurrencyToPlayer, SubtractPlayerCurrency, RevokeItemInstance

PGOS ToolsCLI V0.2.9

  1. Provided CLI HTTP API and developers can use any programming language to implement automated resource management.
  2. Adapted to Mac

PGOS SDKPGOS_SDK_V0.22.1

V0.22.0(2023-11-28)

New Service:

  1. World: World is an entity that players can join and leave freely and smoothly. It can be used to implement a variety of online gaming features. Typical application scenarios include:
    • A persistent and freely accessible gaming scene, such as a game lobby or game hub.
    • A large game that does not require complex matchmaking rules.

New Features:

  1. Steam Store Reconciliation: it allows games to synchronize items purchased by players from the Steam store to PGOS and allows games to build an economy by selling PGOS-managed items using Steam as the "payment processor"
  2. Supported Player Data Versioned attribute, and new SDK APIs:
    • Client SDK: GetMyVersionedKVData, SetMyVersionedKVData
    • Server SDK: GetPlayerVersionedKVData, BatchGetPlayerVersionedKVData, SetPlayerVersionedKVData, BatchSetPlayerVersionedKVData.
  3. Supported importing and exporting the configuration of Virtual server, Leaderboard, Statisitc, and Goals to other regions.
  4. Supported integrating Matchmaking without using PGOS DS hosting, games only get the matchmaking result and manage the battle session by themselves.
  5. Optimize the process of purchasing items in the store to support idempotency.
  6. Added a parameter round_end_time in the GetStatCycleInfo and BatchGetStatCycleInfo APIs.
  7. Added backend HTTP API to get battle sessions:
    • QueryBattleSessions
  8. Added backend HTTP API for group custom data
    • SetGroupTags
    • SetGroupGlobalCustomData
    • DelGroupGlobalCustomData
    • ClearGroupGlobalCustomData
    • BatchSetGroupPlayerCustomData
  9. Added FClientLogoutPGOSParams parameter in LogoutPGOS API, which supports a game-defined custom value pass to PGOS backend event:event_player_logout_pgos.

Upgrade Note

  1. PGOS SDK Adapted to UE 5.3

  2. Removed GME SDK (Voice feature) from PGOS SDK.

  3. Virtual Server V1 is not available anymore, please use Virtual Server V2.

  4. The parameter structure of the Player Profile API has changed due to the addition of the 'versioned' attribute, supplementary of error messages, and the optimization of the 'set' player data rule ( [Explanation]). PGOS V0.22 SDK adjusted the data structure related to player data.

    4.1 Input parameter structures:

    API NameInput OldInput New
    BatchIncrPlayerKVDataTArray<FServerPlayerKVDataIncrements>TArray<FPlayerKVDataGroup>

    4.2 Callback data parameter structures:

    API NameCallback Data OldCallback Data New
    GetOneOfMyKVDataFKVDataValueFOnePlayerKVData
    GetMyKVDataFGetPlayerKVDataRspFPlayerKVDataGroupWithFails
    SetMyKVDataFClientSetMyKVDataRspno callback data [Explanation]
    IncrOneOfMyKVDataFClientIncrOneOfMyKVDataRspFOnePlayerKVData
    IncrMyKVDataFClientIncrMyKVDataRspFKVDataGroup
    GetOneOfPlayerKVDataFKVDataValueFOnePlayerKVData
    GetPlayerKVDataFGetPlayerKVDataRspFPlayerKVDataGroupWithFails
    BatchGetPlayerKVDataFBatchGetPlayerKVDataRspFBatchPlayerKVDataGroupWithFails
    BatchGetPlayerPublicKVDataFBatchGetPlayerGroupKVDataRspFBatchPlayerKVDataGroup
    BatchGetPlayerGroupKVDataFBatchGetPlayerGroupKVDataRspFBatchPlayerKVDataGroup
    SetPlayerKVDataFServerSetPlayerKVDataRspno callback data [Explanation]
    BatchSetPlayerKVDataFServerBatchSetPlayerKVDataRspFBatchPlayerOperationResult
    IncrOneOfPlayerKVDataFServerIncrOneOfPlayerKVDataRspFOnePlayerKVData
    IncrPlayerKVDataFServerIncrPlayerKVDataRspFPlayerKVDataGroup
    BatchIncrPlayerKVDataFServerBatchIncrPlayerKVDataRspFBatchPlayerKVDataGroup

    Explanation: A player's KVData update operation either succeeds or fails in its entirety, so there will no longer be a failed_keys field in the callback data for the update operation. However, retrieving KVData operations is still allowed to be partially successful, which means that the callback data will still contain the failed_keys field.

PGOS ToolsCLI V0.2.8:

Renamed existing APIs:

  • Ruleset

    • find-match-rule-set-list -> list-match-ruleset
    • find-match-rule-set-by-name -> describe-match-ruleset
    • create-match-rule-set -> create-match-ruleset
    • delete-match-rule-set-by-name -> delete-match-ruleset
    • update-match-rule-set-by-name -> update-match-ruleset
    • publish-draft-match-rule-set -> publish-match-ruleset-draft
  • Match Configuration

  • find-match-config-list -> list-match-config

  • find-match-config-by-name -> describe-match-config

  • create-match-config -> create-match-config

  • delete-match-config-by-name -> delete-match-config

  • update-match-config-by-name -> update-match-config

  • update-match-config-status-by-name -> update-match-config-status

Added new APIs:

  • Lobby Configuration

    • create-lobby-config
    • list-lobby-config
    • update-lobby-config
    • describe-lobby-config
    • delete-lobby-config
    • update-lobby-config-status
  • World Filter

    • create-world-filter

    • list-world-filter

    • update-world-filter

    • describe-world-filter

    • delete-world-filter

  • World Configuration

    • create-world-config

    • list-world-config

    • update-world-config

    • describe-world-config

    • delete-world-config

  • Ingame Item Mapping

    • export-economy-item-mapping-json-content

    • import-economy-item-mapping-json-content

  • Goal

    • list-goal

    • describe-goal

    • create-goal

    • update-goal

    • delete-goal

    • list-pass-by-goal

    • update-passes-by-goal

    • list-tier-by-goal

    • describe-tier-by-goal

    • update-tiers-by-goal

    • update-tier

    • delete-tiers

    • create-tier

  • Schedule

    • list-schedule

    • update-schedule

    • publish-schedule

    • retire-schedule

    • create-schedule

    • describe-schedule

    • delete-schedules

  • Cycle

    • list-cycle

    • describe-cycle-by-name

    • describe-cycle-stat-items

    • describe-binded-cycles

    • bind-stat-to-cycle

    • unbind-stat-from-cycle

    • create-cycle

    • update-cycle

    • delete-cycle

  • Stat

    • list-stat

    • describe-stat

    • describe-persistent-stat-item

    • update-stat-key

    • delete-stat-key

    • describe-recent-stat-items

    • delete-stat

    • create-stat

    • update-stat

  • Leaderboard

    • describe-leaderboard

    • describe-leaderboard-by-name

    • list-ranking

    • list-ranking-by-key

    • create-leaderboard

    • update-leaderboard

    • delete-leaderboard

PGOS SDK:PGOS_SDK_V0.22.0


Change Log of Earlier Versions