EOS SDK Release Notes

에픽 온라인 서비스(EOS) SDK의 모든 업데이트에 대한 상세 정보입니다.

EOS SDK 개요

에픽 온라인 서비스(Epic Online Services, EOS) SDK를 에픽게임즈 개발자 포털(dev.epicgames.com/dev-portal)에서 다운로드합니다.

게임 클라이언트가 실행되는 플랫폼에 따라 EOS SDK의 여러 출시 버전을 비롯하여 다양한 유형의 SDK를 다운로드하여 사용할 수 있습니다.

  • Windows, OSX, Linux - C 및 C# EOS SDK.
  • 모바일 - iOS용 EOS SDK, Android용 EOS SDK
  • 콘솔 - C 및 C# 콘솔용 EOS SDK 다운로드.
    콘솔용 SDK 다운로드는 에픽게임즈와 플랫폼 저작권자로부터 승인받은 개발자만 이용 가능합니다.
    플랫폼 저작권자는 다음과 같습니다. Microsoft(Xbox One, Xbox Series X), Sony(PlayStation 4, PlayStation 5), Nintendo(Switch).
    콘솔용 SDK 다운로드 액세스 받기 및 관련 문서:
    • 개발자 포털(dev.epicgames.com/dev-portal)에서 플랫폼 저작권자로부터 콘솔 개발 액세스 획득을 신청하기 위한 지침을 참조합니다.
    • 플랫폼 저작권자로부터 승인받으면 eoshelp.epicgames.com에서 에픽 온라인 서비스를 위한 콘솔 개발자 요청 양식을 사용하여 에픽게임즈에 승인을 요청할 수 있습니다.

출시 노트

2022

1.15.4 - 2022년 11월 16일

안티 치트

  • 신규: AntiCheatServer 로그 출력을 개선하여 EOS_AntiCheatServer_SetClientNetworkState 에 대한 호출 관련 정보를 포함했습니다.
  • 신규: 게임 서버에서 안티 치트 서비스로 보내는 HTTP 요청의 수를 줄임으로써 안티 치트 서비스의 서버 성능을 개선했습니다. 이에 따라 서버가 방대한 규모의 플레이어를 지원할 수 있습니다.
  • 신규: AntiCheatServer 는 이제 게임에서 EOS_AntiCheatServer_LogPlayerDespawn 을 호출할 때 안티 치트 서비스에 더 많은 데이터를 전송합니다.
  • 버그 수정: 서버 부하가 높을 때 안티 치트 서비스가 게임 세션에서 플레이어를 부적절하게 내보내는 잠재적 문제를 수정했습니다.

인증

  • 버그 수정: SDK가 EOS 서비스로부터 구성을 받기 전에 EOS_Auth_VerifyIdToken 을 사용할 때, EOS_Auth_VerifyIdToken 이 유효한 ID 토큰에 대해 EOS_Auth_InvalidToken 을 반환하지 않습니다. EOS_Auth_VerifyIdToken 은 이제 구성을 기다렸다가 EOS_Success 를 반환합니다.

C# EOS SDK

  • 신규: C# EOS SDK는 이제 동일한 버퍼를 여러 번 고정하도록 지원합니다. 이는 퍼포먼스를 개선할 뿐 아니라 안티 치트 서비스에 의한 네트워크 메시지 암호화 및 암호 해제를 허용합니다.

연결

  • 버그 수정: SDK가 EOS 서비스로부터 구성을 받기 전에 EOS_Connect_VerifyIdToken 을 사용할 때, EOS_Connect_VerifyIdToken 이 유효한 ID 토큰에 대해 EOS_Connect_InvalidToken 을 반환하지 않습니다. EOS_Connect_VerifyIdToken 은 이제 구성을 기다렸다가 EOS_Success 를 반환합니다.

Ecom

  • 신규: 새 API인 EOS_Ecom_QueryEntitlementTokenEcomInterface 에 추가하여 권한 토큰을 쿼리합니다.

소셜 오버레이

  • 버그 수정: 플레이어는 이제 게임 세션 연결 방식과 무관하게 모든 플레이어의 프로필(Profile) 버튼을 보고 클릭할 수 있습니다. 예를 들어 에픽게임즈 스토어를 통해 게임 세션에 연결된 플레이어가 Steam을 통해 연결된 플레이어의 프로필(Profile) 버튼을 보고 클릭할 수 있습니다. 이전에는 서로 다른 게임 플랫폼을 통해 연결된 플레이어들이 서로의 프로필(Profile) 버튼을 볼 수 없었습니다.
  • 버그 수정: EOS_UI_ShowBlockPlayerEOS_UI_ShowReportPlayer 가 실패하는 문제를 해결했습니다. 이 문제는 플랫폼 플래그로 소셜 오버레이를 비활성화할 때 발생했으며, 이로 인해 SDK가 네트워크를 연결 해제된 것으로 잘못 탐지하는 문제가 발생했습니다.

로비

  • 버그 수정: 이제 플레이어의 로비가 동시 16개까지로 제한됩니다. 동시에 16개가 넘는 로비를 생성하려고 시도하면 EOS_LimitExceeded 오류 반응으로 이어집니다.

P2P

  • 신규: P2P는 이제 usrsctp 대신 dcSCTP SCTP 라이브러리 구현을 사용합니다. 이 변경 사항은 usrsctp 보안 문제를 해결하며 좋지 않은 네트워크 상황에서 반응성을 개선합니다.
    • 참고: 이 변경 사항은 이전 버전과 호환되지만, 보안 및 성능 향상을 위해 최신 SDK 버전으로 최대한 빨리 업그레이드하실 것을 권장합니다.
  • 버그 수정: 연결 중단 시 즉시 타임아웃되는 문제를 수정했습니다.

세션

  • 버그 수정: 이제 플레이어의 세션이 동시 16개까지로 제한됩니다. 동시에 16개가 넘는 세션을 생성하려고 시도하면 EOS_LimitExceeded 오류 반응으로 이어집니다.

통계

  • 버그 수정: EOS_Stats_IngestStat 에서 LocalUserIdTargetUserId 와 같아야 하는 제한을 제거했습니다. 즉 ingestForAnyUser 를 설정하는 클라이언트 정책을 활성화할 때 게임 클라이언트가 이제 모든 플레이어에 대한 플레이어 데이터를 업데이트할 수 있습니다. 예를 들면 게임 세션에서 P2P를 통해 연결하는 원격 플레이어와 로컬 플레이어입니다.

업그레이드 노트

로비

  • 버그 수정: 이제 플레이어의 로비가 동시 16개까지로 제한됩니다. 동시에 16개가 넘는 로비를 생성하려고 시도하면 EOS_LimitExceeded 오류 반응으로 이어집니다.

세션

  • 버그 수정: 이제 플레이어의 세션이 동시 16개까지로 제한됩니다. 동시에 16개가 넘는 세션을 생성하려고 시도하면 EOS_LimitExceeded 오류 반응으로 이어집니다.

지원 중단

안티 치트

  • 지원 중단: EOS_AntiCheatServer_RegisterClientOptions 에서 스트링 AccountId 파라미터 지원을 중단하고 이를 대체할 새로운 EOS_ProductUserId UserId 파라미터를 도입했습니다. 새 EOS_AntiCheatServer_RegisterClientOptions 파라미터에는 타이핑이 있습니다.
    • 참고: 게임 서버가 게임 클라이언트로부터 아직 EOS_ProductUserId 를 안전하게 수신하지 않은 경우 EOS 게임 서비스의 연결 인터페이스 EOS Connect ID Tokens 를 사용하여 EOS_ProductUserId 를 구할 것을 권장합니다.

EOS 코어

  • 지원 중단: 표준 EOS SDK 명명 규칙인 EOS_<system_type>_<function_name>_API_LATEST 에 맞게 일부 매크로를 지원 중단 및 대체했습니다. 영향을 받은 매크로에서 스트링 OPTIONS 를 제거했습니다. EOS_PLAYERDATASTORAGE_*_API_LATESTEOS_TITLESTORAGE_*_API_LATEST . 예를 들어 EOS_PLAYERDATASTORAGE_QUERYFILEOPTIONS_API_LATESTEOS_PLAYERDATASTORAGE_QUERYFILE_API_LATEST 가 됐습니다.
    • 참고: 지원 중단된 매크로는 이전 버전과의 호환을 위해 여전히 남아 있지만 이후 버전에서 제거될 것입니다. 이전 명명 규칙을 사용하는 지원 중단된 매크로를 새 명명 규칙을 사용하는 매크로로 대체할 것을 권장합니다.

플랫폼별

Sony PlayStation

  • 신규: Sony PS4 플랫폼 SDK 버전 10.008.001에 대한 버전 지원을 추가하고 Sony PS4 플랫폼 SDK 버전 9.508.001에 대한 지원을 유지했습니다.
  • 신규: Sony PS5 플랫폼 SDK 버전 6.00.00.38에 대한 버전 지원을 추가하고 Sony PS5 플랫폼 SDK 버전 5.00.00.33에 대한 지원을 유지했습니다.
  • 버그 수정: 음성 채팅을 활성화한 플레이어가 로비에 참가하거나 로비에서 떠날 때 PS5에서 실행 중이던 게임이 충돌하는 버그를 수정했습니다.

Microsoft Xbox

  • 신규: Microsoft GDK June 2022 QFE2(220602)에 대한 버전 지원을 추가하고 March 2022 QFE1(220301)에 대한 지원을 유지했습니다.

1.15.3 - 2022년 10월 6일

2022년 10월 6일부터 EOS SDK 출시 버전 1.15.3에 Xbox 및 PlayStation용 SDK에 대한 핫픽스가 포함됩니다.


1.15.3 - 2022년 9월 19일

출시 노트 및 업그레이드 노트

모바일

Android

  • 신규: 이제 Android SDK에는 두 가지 유형이 있습니다. 새로 추가한 Android SDK 타입은 스태틱이고 libc++_static.a 와 링크됩니다. 기존 Android SDK는 다이내믹이고 libc++_shared.so 와 링크됩니다.

    SDK 다운로드 시 두 가지 SDK 유형을 모두 다운로드할 수 있습니다. 두 SDK의 헤더 파일은 하나입니다.

    • 스태틱 바이너리는 ~/SDK/Bin/Android/static-stdc++ 에 있습니다.
    • 다이내믹 바이너리는 ~/SDK/Bin/Android/dynamic-stdc++ 에 있습니다.

    다음 경우에 스태틱 타입을 사용하세요.

    • UE5.1과 같은 게임 엔진이나 게임 엔진 라이브러리가 커스텀 신규 또는 삭제 연산자를 사용하는 경우. libc++_shared.so 에서 잘 지원되지 않습니다.
    • 게임이나 게임 라이브러리가 libc++_static.a 를 사용하는 경우. Android에서는 libc++_static.alibc++_shared.so 의 혼용이 지원되지 않습니다. 모든 코드와 라이브러리, 사용 중인 모든 서드 파티 항목이 libc++_static.a 와 링크되어야 합니다.

참고

  • 에픽 온라인 서비스 SDK 1.15.2 버전을 이미 다운로드해서 사용 중이고 게임에서 P2P를 사용하는 경우 최대한 빨리 SDK 1.15.2.1 버전으로 업데이트하시기 바랍니다.
  • 참고용으로 1.15.2 버전 출시 노트를 아래에 추가했습니다.

1.15.2.1 - 2022년 8월 30일

출시 노트

P2P

  • 버그 수정: 특정 상황에서 연결 후 피어 간의 P2P 연결 시간이 초과되는 1.15.2의 새로운 문제를 해결했습니다.

1.15.2 - 2022년 8월 26일

출시 노트

신규 기능

Mac에서 Apple Silicon 지원

  • 신규: SDK는 이제 Mac에서 Apple Silicon을 범용 dylib로 지원합니다.
    • 참고: 안티 치트는 현재 Apple Silicon을 지원하지 않습니다.

** 업데이트: 신규, 버그 수정, 개선, 지원 중단**

안티 치트

  • 신규: 이제 환경설정 파일 anticheat_integritytool.cfg 에서 플레이어의 머신에 허용되는 활성 게임 인스턴스의 최대 개수 등 게임 클라이언트 세팅을 환경설정할 수 있습니다.
  • 버그 수정: 프로젝트를 새 헤더로 리빌드하지 않고 SDK 1.15를 사용하는 경우 발생하던 EOS_AntiCheatClient_RegisterPeer 의 크래시를 해결했습니다.
  • 버그 수정: 이제 안티 치트 서버는 EOS 서비스 중단으로 인해 실패한 HTTP 요청을 다시 시도하지 않습니다. 플레이어가 게임 세션을 떠났을 때도 재시도하지 않습니다.
  • 버그 수정: SDK 1.15부터 Unix와 macOS에서 발생하던, 안티 치트 무결성 툴(Anti-Cheat Integrity Tool)이 잘못된 위치에 출력되는 버그를 수정했습니다. 이제 이전 SDK 버전에서처럼 EasyAntiCheat/Certificates 폴더 위치에 제대로 출력됩니다.
  • 버그 수정: 안티 치트 서비스가 비활성화되면 안티 치트 부트스트래퍼(Anti-Cheat Bootstrapper)가 더 이상 캐싱된 모듈을 로드하려고 시도하지 않도록 문제를 해결했습니다.
  • 버그 수정: 일부 macOS Monterey 시스템에 대한 SDK 초기화 시 크래시가 발생하는 문제를 해결했습니다.
  • 버그 수정: AMD Ryzen CPU를 탑재한 플레이어의 머신에서 안티 치트 부트스트래퍼가 지연되는 문제를 해결했습니다.
  • 버그 수정: 플레이어의 GPU가 2048×2048 크기를 초과하는 텍스처를 지원하지 않으면 안티 치트 부트스트래퍼가 초기화되지 않는 문제를 해결했습니다.
  • 버그 수정: 스플래시 화면이 대부분 흰색이거나 흰색 엘리먼트를 포함한 경우 안티 치트 부트스트래퍼의 유저 인터페이스가 잘 보이지 않는 문제를 해결했습니다.
  • 버그 수정: 안티 치트 부트스트래퍼와 최신 버전 Arch Linux 간의 호환성 문제를 해결했습니다. 이 문제는 Steam Deck에서 Proton을 사용하여 Windows용으로 컴파일된 게임을 실행하려 할 때도 영향을 미칩니다.
    • 수정 사항을 적용하려면, 이전 버전 start_protected_game.exe 를 이번에 출시된 패키지에 있는 새로운 파일로 교체하고 개발자 포털에서 게임의 최신 Linux 안티 치트 모듈을 출시하세요. 그 밖의 변경은 필요하지 않습니다.
  • 개선: 이제 안티 치트 부트스트래퍼의 바이너리(실행 파일)가 번들에 들어갔습니다. 이 실행 파일 번들은 다음을 의미합니다.
    • macOS 실행 파일 번들에 디폴트 아이콘을 추가했습니다. 이제 macOS와 Windows의 실행 파일 번들 아이콘이 동일합니다.
  • 개선: 안티 치트 부트스트래퍼가 더 이상 리소스를 플레이어 머신의 하드 디스크로 캐싱하지 않습니다.
  • 개선: 이제 Windows에서 안티 치트 부트스트래퍼가 게임 실행 파일 아이콘을 작업 표시줄에 표시합니다. ~/<game root>/EasyAntiCheat 디렉터리에 커스텀 아이콘을 추가하면 디폴트 아이콘을 덮어씁니다.
  • 개선: 이제 안티 치트 무결성 툴(Anti-Cheat Integrity Tool)에 더 많은 사용 샘플이 있습니다. anticheat_integritytool.exe --help 를 실행하면 볼 수 있습니다.

인증

  • 신규: 게임에서 EOS 오버레이를 비활성화하거나 EOS 오버레이가 설치되지 않은 경우, 인증 인터페이스는 플레이어가 시스템 브라우저로 로그인할 수 있게 합니다.
  • 버그 수정: 불안정한 네트워크에서 로그아웃 콜백이 여러 번 실행되고 성공 상태가 여러 번 반환되던 문제를 해결했습니다.

연결

  • 버그 수정: EOS_Connect_Login 이 UTF-8 문자를 최대 길이 제한인 32자까지 수용하지 못하는 문제를 해결했습니다.

EOS 코어

  • 신규: 이제 iOS 및 Android 샘플이 SDK 1.15의 정지/다시 시작 및 네트워크 연결/연결 해제 API 예시를 사용합니다.
  • 신규: 이제 EOS SDK를 사용하려면 Steamworks API가 필요합니다( EOS_IntegratedPlatform_Steam_Options ). Steamworks SDK 1.48 이상 버전에는 Steamworks API를 사용해야 합니다. 1.48 이전 버전의 Steamworks를 사용하면 Steam 통합이 작동하지 않습니다.
  • 버그 수정: 이제 EOS_Platform_Create 가 SDK 1.15 이전 헤더 파일을 올바르게 탐지하며, 모든 콘솔 플랫폼에서 디폴트 EOS_ENetworkStatusEOS_NS_Online 으로 취급합니다.
    • 이제: 모든 콘솔 플랫폼에서 디폴트 네트워크 상태가 오프라인입니다. 따라서 EOS_Platform_SetNetworkStatus 를 사용할 때 더 효과적으로 관리할 수 있습니다.
    • 이전에는: 콘솔 플랫폼에서는 EOS_Platform_Create 를 게임이 온라인 상태일 때만 호출해야 했습니다. 게임이 오프라인 상태일 때는 EOS_Platform_Release 를 먼저 호출해야 했습니다. SDK 1.15는 게임이 SDK 1.15 이전 헤더 파일을 사용하는 경우 이 방식을 유지하지 않았습니다. 이번 수정은 이 문제를 해결합니다.

P2P

  • 신규: 내부 라이브러리의 스레드 동기화 차단으로 발생하는 EOS_P2P_SendPacket 의 퍼포먼스 문제를 해결했습니다.
  • 신규: EOS_P2P_ReceivePacket 은 새로운 패킷을 수신하기 위해 더 이상 EOS_Platform_Tick 을 호출할 필요가 없습니다.
  • 신규: EOS_P2P_SendPacket 에 새로운 필드를 추가했습니다. DisableAutoAcceptConnection 이라는 새 필드를 통해 패킷 전송 로직에서 연결을 자동으로 수락할 수 있습니다.
    • 이 옵션을 사용하는 경우 게임에서 항상 EOS_P2P_AcceptConnection 을 사용해 연결을 시작해야 합니다.
    • 이제 EOS_P2P_SendPacket 을 사용할 때 다음 두 가지 상황에서 오류가 발생하면 EOS_EResult::EOS_NoConnection 이 반환됩니다.
      • 원격 피어가 연결을 수락하지 않음
      • 원격 피어가 마지막으로 연결을 수락한 이후 연결이 종료됨
  • 신규: 연결 시 비치명적 연결 해제를 수신하는 함수 EOS_P2P_AddNotifyPeerConnectionInterrupted 를 추가했습니다. 이 함수가 연결 해제를 반환하면 다음 중 하나의 콜백이 실행되면서 게임에 연결 상태를 알립니다.
    • EOS_P2P_OnPeerConnectionEstablishedCallback - 연결이 재설정되었습니다.
    • EOS_P2P_OnRemoteConnectionClosedCallback - 재연결에 실패하여 연결이 종료되었습니다.

Ecom

  • 신규: EOS_Ecom_CatalogOfferReleaseDateEffectiveDate 를 추가했습니다.
  • 신규: Ecom 인터페이스에 신규 API 2가지를 추가했습니다.
    • EOS_Ecom_GetLastRedeemedEntitlementsCount 는 가장 최근의 EOS_Ecom_RedeemEntitlements 호출 중에 등록된 권한의 개수를 가져옵니다.
    • EOS_Ecom_CopyLastRedeemedEntitlementByIndex 는 등록된 권한 ID를 인덱스로부터 가져옵니다.
  • 버그 수정: EOS_Ecom_RedeemEntitlements 가 잘못된 권한 ID를 전달받으면, 더 이상 Success를 반환하지 않습니다.
  • 지원 중단: EOS_ECom_CatalogOffer 에서 PurchasedCount 필드의 지원을 중단했습니다.
    • 참고: PurchasedCount 필드를 사용하지 마세요.
    • 이제: PurchasedCount 필드의 값은 항상 0 입니다.
    • 이전에는: SDK 1.15.2 이전 버전에서 EOS 서비스는 오퍼에 대한 PurchaseLimit 을 구성하지 않은 한 값이 0PurchasedCount 를 전송합니다. 이 행동을 무기한 지원하지는 않을 예정이므로 이 값에 의존하지 마세요.

샘플

  • 신규: 이제 샘플 프로젝트에서 보안 강화를 위해 Steam 로그인에 Steam 암호화 애플리케이션 티켓 대신 Steam 인증 세션 티켓을 사용합니다.

세션 기반 매치메이킹

  • 버그 수정: EOS_Sessions_JoinSession 을 수정하여 더 이상 CompletionDelegate 를 여러 번 호출하지 않도록 하고 작업에 HTTP 재시도가 필요할 때 EOS_NotFound 를 반환하지 않게 했습니다.

플랫폼별

macOS

  • 버그 수정: macOS에서 개발자 인증 툴(Developer Authentication Tool)과 안티 치트 부트스트래퍼가 열리지 않던 문제를 해결했습니다.

콘솔 일반

  • 신규: 이제 콘솔용 EOS SDK가 콘솔 SDK의 출시 버전 2가지에 고정됩니다. 콘솔 SDK(예: Microsoft Xbox SDK, Sony PlayStation SDK 및 Nintendo Switch SDK)의 출시 버전 2가지는 다음과 같습니다.
    • 최신 출시 버전
    • 이전 출시 버전
    • 참고: 이 점은 모든 콘솔의 EOS SDK에 적용되고, 콘솔용 EOS SDK의 향후 모든 출시에 적용됩니다.
  • 버그 수정: 이제 EOS_Platform_Create 가 SDK 1.15 이전 헤더 파일을 올바르게 탐지하며, 모든 플랫폼에서 디폴트 EOS_ENetworkStatusEOS_NS_Online 으로 취급합니다. 이는 콘솔에서 하위 호환 문제를 해결합니다.

Sony PlayStation

  • 신규: PS4 SDK 9.008.001에 대한 버전 지원이 추가되었으며 PS5 SDK 4.000.00.31에 대한 지원이 유지되었습니다.

Nintendo Switch

  • 신규: Nintendo Switch SDK 14.3.0에 대한 버전 지원이 추가되었으며 Nintendo Switch SDK 13.3.2에 대한 지원이 유지되었습니다.

Microsoft Xbox

  • 신규: Xbox GDK 220301에 대한 버전 지원이 추가되었으며 Xbox GDK 211001에 대한 지원이 유지되었습니다.

1.15.1 - 2022년 7월 1일

출시 노트

참고 - Steam으로 게임을 쉬핑하는 경우:

  • C 또는 C#용 에픽 온라인 서비스 SDK 1.15 버전을 이미 다운로드해서 사용 중인 경우, C 또는 C#용 SDK 1.15.1 버전을 다운로드해서 대신 사용해야 합니다.
  • C용 SDK 및 C#용 SDK 1.15.1 버전에서는 Steam 인증 기능이 업데이트되었습니다. 콘솔용 SDK에는 영향이 없습니다.

**C용 SDK 및 C#용 SDK

인증

  • 지원 중단: EOS_ECT_STEAM_APP_TICKET 은 더 이상 EOS_Auth_Login 과 함께 사용할 수 없습니다. EOS_ECT_STEAM_SESSION_TICKET 을 대신 사용하세요.
    • 참고: 콘솔용 SDK에는 영향이 없습니다.

1.15 - 2022년 6월 16일

출시 노트

신규 기능

크로스 플레이

원활한 PC 크로스 플레이: 크로스 플레이(Crossplay)를 사용하여 Steam과 에픽게임즈 스토어의 플레이어와 매치메이킹 풀을 통합할 수 있습니다. 자세한 내용은 새로운 소식 문서를 참고하세요.

기존 기능, 신규, 버그 수정, 지원 중단 안티 치트

  • 신규: 이제 안티 치트(Anti-cheat) P2P 모드에서 PC와 콘솔 사용자 간의 크로스 플랫폼 플레이를 지원합니다.
  • 신규: 클라이언트 측 EOS_AntiCheatClient_PollStatusEOS_AntiCheatClient_AddNotifyClientIntegrityViolated 를 통해 액세스할 수 있는 콜백 함수로 교체했습니다.
  • 버그 수정: 플레이어가 탐지를 회피하여 부정행위에 사용할 수 있는 AntiCheatServer 관련 문제를 해결했습니다.
  • 버그 수정: 일부 macOS Monterey 시스템에 대한 SDK 초기화 시 크래시가 발생하는 문제를 해결했습니다.
  • 개선: 안티 치트(Anti-cheat) 게임플레이 데이터 기능에 대한 오류 로깅이 개선되었습니다.
  • 개선: 안티 치트(Anti-cheat) P2P 모드에 대한 오류 로깅이 개선되었습니다.
  • 지원 중단: EOS_AntiCheatClient_RegisterPeerOptions AccountID 의 지원이 중단되고, PeerProductUserId 로 대체됩니다.
  • 개선: 이제 안티 치트 부트스트래퍼의 바이너리(실행 파일)가 번들에 들어갔습니다. 이 실행 파일 번들은 다음을 의미합니다.
    • macOS 실행 파일 번들에 디폴트 아이콘을 추가했습니다. 이제 macOS와 Windows의 실행 파일 번들 아이콘이 동일합니다.
    • macOS에서 실행되는 게임을 더 많이 수정할 수 있습니다.
  • 알려진 문제: EOS SDK 1.15에 구현되어야 했던 안티 치트 툴의 변경 사항이 SDK에 포함되지 않아, EOS SDK 1.15.1에 배포될 예정입니다.
  • 알려진 문제: EOS SDK 1.15 라이브러리를 사용해서 EOS_AntiCheatClient_RegisterPeer 를 호출할 경우, 새로운 1.15 헤더로 게임을 다시 빌드해야 합니다. 그러지 않으면 게임이 크래시합니다.

인증

  • 신규(기존 기능에 영향을 주는 변경 사항): 이제 Windows에서의 EOS_LCT_AccountPortalEOS_LCT_ExternalAuth 로그인 타입에 게임과 함께 설치된 EOS 재배포 가능 구성 요소(EOS Redistributable)가 필요합니다.
  • 신규: 이제 SDK에서 부모의 동의를 검증할 수 있도록 지원됩니다. 나이가 어린 사용자에게는 에픽 계정이나 게임 내 데이터 공유에 대해 부모의 동의를 받아야 한다는 메시지가 표시될 수 있습니다.
  • 신규: 이제 SDK 패키지에는 Windows PC에서의 크로스 플레이(Crossplay)를 위한 EOS 재배포 가능 구성 요소(EOS Redistributable)에 사용할 EOS 부트스트래퍼(EOS Bootstrapper) 및 EOS 부트스트래퍼 툴이 포함됩니다.
  • 버그 수정: EOS_Connect_OnLoginStatusChangedCallback 이 로컬 사용자의 인증 세션이 만료되었다고 보고하지 않는 문제를 해결했습니다.
  • 버그 수정: EOS_P2P_QueryNATTypeEOS_Platform_Create 이후 매우 빠르게 호출되면 항상 실패하고 올바르지 않은 NAT 서버를 사용하는 문제를 해결했습니다.
  • 버그 수정: EOS_EResult::EOS_Auth_PersistentAuth_AccountNotActive 의 이름을 EOS_EResult::EOS_Auth_AccountNotActive 로 변경했습니다. Persistent 를 제거한 이유는 반환되는 에픽 계정 상태가 퍼시스턴트(EOS_LCT_PersistentAuth ) 로그인 타입으로 국한되지 않기 때문입니다.

EOS 코어

  • 신규: Windows PC용 EOS_Platform_GetDesktopCrossplayStatus API를 추가했습니다. 에픽게임즈 스토어 외부에 배포하는 게임에 이 API를 사용하여 인게임 에픽 계정 로그인 오버레이가 즉시 사용 가능한지 검증할 수 있습니다.

  • 신규(기존 기능에 영향을 주는 변경 사항): 플랫폼 인터페이스(Platform Interface)에 아래 목록의 API를 추가했습니다. 이 API들은 게임이 정지되었다가 다시 시작될 때와 로컬 시스템의 네트워크 연결 상태가 변경될 때 SDK에 알리는 API입니다.

    다음 4개의 신규 API가 있습니다.

    • EOS_Platform_SetApplicationStatus
    • EOS_Platform_SetNetworkStatus
    • EOS_Platform_GetApplicationStatus
    • EOS_Platform_GetNetworkStatus
    • 이제 SDK가 올바르게 작동하려면 모든 게임에서 다음 2개의 Set API를 호출해야 합니다.
      • EOS_Platform_SetApplicationStatus
      • EOS_Platform_SetNetworkStatus

알려진 문제: 현재 iOS 및 Android 샘플에는 새로운 정지/다시 시작 및 네트워크 연결/연결 해제 API의 예시가 업데이트되지 않았습니다.

  • 신규: EOS_EApplicationStatusEOS_ENetworkStatus 의 타입을 추가했습니다.
  • 신규: 이제 게임 클라이언트가 포그라운드 상태로 다시 시작되면 SDK가 인증 토큰의 유효 기간을 백그라운드 상태로 소요된 시간에 기반해 업데이트합니다.
  • 신규: SDK 로그에서 표시명(Display Name)을 삭제했습니다. 플레이어의 개인 정보이기 때문입니다.
  • 신규: SDK 로그에서 지속 토큰(Continuation Token)을 삭제했습니다. 민감한 정보이기 때문입니다.
  • 신규: EOS_Ecom_QueryOwnership 을 EOS 서비스 요청 제한 50회에 맞추기 위해 해당 SDK의 제한을 32에서 50으로 업데이트했습니다.
  • 개선: EOS_GetVersion 이 반환하는 SDK 빌드 버전 스트링에 관련 플랫폼이 포함되도록 업데이트했습니다.

친구

  • 신규: EOS_Friends_SendInvite , EOS_Friends_AcceptInvite , EOS_Friends_RejectInvite 를 활성화했습니다. 게임에서 이 API를 호출하면 플레이어가 인게임에서 새 친구를 추가할 수 있습니다. 이전 SDK 버전에서는 이 API가 활성화되지 않았습니다.

로비

  • 신규: 새로운 알림 함수 EOS_Lobby_AddNotifyLobbyInviteRejectedEOS_Lobby_RemoveNotifyLobbyInviteRejected 를 추가했습니다.
  • 신규: 로비 인터페이스와 세션 인터페이스에 맞춰 커스텀 초대를 가져오는 EOS_CustomInvites_AddNotifyRejectedEOS_CustomInvites_RemoveNotifyRejected 함수를 추가했습니다.
  • 버그 수정: SDK의 음성 기능과 상호작용하는 플레이어에 관한 오류 메시지를 추가했습니다. 이제 플레이어를 찾을 수 없으면 오류 메시지가 보고됩니다.
  • 버그 수정: 이제 초대를 보낸 플레이어 기준으로 로비(Lobby) 초대를 식별할 수 있습니다. 이제 한 플레이어가 여러 친구의 로비에 초대받고 그중 하나를 수락하면, 소셜 오버레이(Social Overlay)가 수락하지 않은 나머지 초대를 모두 삭제합니다.

P2P

  • 버그 수정: EOS_P2P_QueryNATTypeEOS_Platform_Create 이후 매우 빠르게 호출되면 항상 실패하고 올바르지 않은 NAT 서버를 사용하는 문제를 해결했습니다.
  • 버그 수정: EOS_P2P_SendPacket 의 CPU 퍼포먼스 비용을 크게 줄였습니다.

플레이어 데이터 스토리지

  • 버그 수정: 플레이어 데이터와 타이틀 스토리지 파일의 읽기와 쓰기 플로에서 캐싱된 파일을 해싱하는 동안의 파일 읽기 퍼포먼스를 개선했습니다.

샘플

  • 버그 수정: EOS_UserInfo_CopyUserInfoOptions 가 올바른 API 버전 타입인 EOS_USERINFO_COPYUSERINFO_API_LATEST 를 사용하도록 수정했습니다.
  • 개선: Visual Studio의 디버그(Debug) 및 릴리즈(Release) 프로젝트 환경설정 빌드 디폴트를 Debug_SDLRelease_SDL 로 변경했습니다.
  • AuthAndFriends 샘플:
    • 커스텀 초대(Custom Invites) 대화창의 UI를 개선했습니다.
  • 음성 샘플:
    • 개별 플레이어의 오디오 볼륨 세팅 지원을 추가했습니다.

소셜 오버레이

  • 신규: 소셜 오버레이(Social Overlay)를 일시정지하는 EOS_UI_PauseSocialOverlay 와 소셜 오버레이가 일시정지되었는지 확인하는 EOS_UI_IsSocialOverlayPaused 를 추가했습니다.
    • 일시정지되었을 때는 소셜 오버레이가 표시되지 않습니다.
    • 토스트를 방지하고 플레이어의 경험 몰입을 일시적으로 유지하기 위해 컷씬 중에는 소셜 오버레이를 일시정지합니다.
  • 신규: EOS_UI_ShowBlockPlayerEOS_UI_ShowReportPlayer 를 추가했습니다. 소셜 오버레이(Social Overlay)에 플레이어를 차단하거나 신고하도록 요청하는 상태 업데이트를 전송하는 용도입니다.
  • 신규: 게임에서 소셜 오버레이(Social Overlay)가 전용 입력 모드인지 즉시 확인할 수 있는 EOS_UI_GetFriendsExclusiveInput 을 추가했습니다. 이전까지는 EOS_UI_OnDisplaySettingsUpdatedCallback 콜백을 사용하여 이 상태를 트래킹해야 했습니다.
  • 신규: 이제 소셜 오버레이(Social Overlay)에서 플레이어의 에픽 친구를 '모두' 보여줍니다. 플레이어가 현재 플레이하고 있는 게임을 플레이한 적 없는 에픽 친구도 표시됩니다.
  • 신규: 플레이어가 사용할 수 있는 다음 기능을 추가했습니다.
    • 에픽 친구 검색
    • 에픽 친구 관리: 친구 추가 및 제거, 친구에게서 받은 초대 수락 또는 거부, 보낸 친구 초대 취소
    • 에픽 친구 차단
    • 에픽 친구 신고
  • 신규: 이제 소셜 오버레이(Social Overlay)는 크로스 플랫폼 친구를 에픽 친구와 함께 보여줍니다. 에픽게임즈 스토어에서 게임을 실행하는 플레이어가 Steam에서 게임을 실행하는 친구를 확인할 수 있습니다.
  • 버그 수정: 이제 로비(Lobby)의 정원이 차면 초대(Invite) 버튼이 표시되지 않습니다.
  • 개선: 게임 상태가 변경되거나 네트워크 연결이 해제되면 소셜 오버레이(Social Overlay)가 숨겨집니다.

사용자 정보

  • 신규: DisplayNameSanitizedEOS_UserInfoEOS_UserInfo_ExternalUserInfo 에 추가했습니다. 게임이 삭제를 지원하는 플랫폼에서 실행 중일 때 삭제된 표시명(Display Name)이 포함됩니다.

보이스

  • 신규: 플레이어가 차단 목록에 추가되었거나 차단 목록에서 제거되었을 때 보고하는 EOS_RTC_ParticipantStatusChangedCallbackInfobParticipantInBlocklist 필드를 추가했습니다. 로비(Lobby)의 플레이어가 차단 목록에 있어서 음성이 들리지 않는 경우를 파악하는 용도입니다.
    • 참고: 자동으로 적용되는 내부 차단이며, 오버라이드할 수 없습니다.
  • 신규: 기존 볼륨 컨트롤을 확장하고 대체하는 오디오 볼륨 컨트롤을 위해 EOS_RTCAudio_UpdateParticipantVolume을 추가했습니다.
  • 버그 수정: RTC 스레드의 NoAffinityMask 세팅을 허용합니다.
  • 버그 수정: OSX의 오디오 입력 디바이스가 어떤 디바이스도 인식하지 못하던 문제를 해결했습니다.
  • 지원 중단: EOS_Lobby_AddNotifyRTCRoomConnectionChangedOptions 구조체의 LocalUserIdLobbyId 지원이 중단됩니다.

C# SDK

  • 신규(기존 기능에 영향을 주는 변경 사항):

    • 대부분의 레퍼런스 타입(클래스)을 값 타입(구조체)으로 변경하여 퍼포먼스를 크게 개선했습니다.
    • API 호출에서 옵션 구조체를 전달할 때는 ref 키워드를 사용해야 합니다.
    • 콜백에서 정보 구조체를 전달할 때는 ref 키워드를 사용해야 합니다.
    • 레퍼런스 타입(클래스)이 이제 값 타입(구조체)이 되었으므로, 옵션을 할당하고 API 호출에서 전달하는 방식에 따라 코드에 새로운 버그가 발생할 수 있습니다. 이 영역의 회귀 테스트를 권장합니다.
  • 신규: 이제 SDK는 ArraySegments 대신 byte[]를 사용하여 불필요한 데이터 복사를 방지합니다.

  • 신규: UTF-16이 UTF-8로 변환되는 경우를 줄이기 위해 Utf8String 클래스를 새로 추가했습니다.

  • 신규: 래퍼 코드에 대한 수정, 최적화, 개선을 추가했습니다.

  • 버그 수정: Win32와 macOS를 위한 다이내믹 바인딩 심볼 매핑(Dynamic Binding Symbol Mapping)을 추가했습니다.

개발자 인증 툴

  • 신규: 툴이 플레이어가 선택한 포트를 유지합니다. 이후에 다시 실행하면 이 포트가 UI에서 자동으로 선택됩니다.
  • 신규: 툴이 이전에 사용된 플레이어 크리덴셜을 기억하므로, 새로고침을 위해 플레이어가 로그인할 필요가 없습니다.
  • 버그 수정: 오랫동안 실행되면 툴이 플레이어 크리덴셜을 새로고침합니다.

라이브러리

  • 신규: openssl-1.1.1n을 업데이트했습니다.

업그레이드 노트

안티 치트

  • 크로스 플랫폼 플레이에서 P2P 모드를 사용하는 방법을 자세히 알아보려면 문서를 참고하세요.
    • 참고: 이 기능에서 인증이 제대로 작동하게 하려면 이 기능을 사용할 때 PC용과 콘솔 플랫폼용 SDK를 동시에 업데이트해야 합니다.

프로그래밍 업그레이드 노트

기존 인증 기능에 영향을 주는 변경 사항

  • 이제 Windows에서 EOS_LCT_AccountPortalEOS_LCT_ExternalAuth 로그인 타입을 사용하려면 EOS 재배포 가능 구성 요소가 설치되어 있고 EOS 부트스트래퍼로 게임을 실행해야 합니다.

기존 EOS 코어 기능에 영향을 주는 변경 사항

  • 이제 SDK가 올바르게 작동하려면 모든 게임에서 다음 2개의 Set API를 호출해야 합니다.
    • EOS_Platform_SetApplicationStatus
    • EOS_Platform_SetNetworkStatus
  • 플랫폼 인터페이스에 해당 API를 추가했습니다. 이 API들은 게임이 정지되었다가 다시 시작될 때와 로컬 시스템의 네트워크 연결 상태가 변경될 때 SDK에 알리는 API입니다.
    새로운 관련 API 2개를 선택적으로 사용하여 상태를 확인할 수 있습니다.
    • EOS_Platform_GetApplicationStatus
    • EOS_Platform_GetNetworkStatus

알려진 문제: 현재 iOS 및 Android 샘플에는 새로운 정지/다시 시작 및 네트워크 연결/연결 해제 API의 예시가 업데이트되지 않았습니다.

기존 C# SDK 기능에 영향을 주는 변경 사항

  • 대부분의 레퍼런스 타입(클래스)을 값 타입(구조체)으로 변경하여 퍼포먼스를 크게 개선했습니다.
  • 이제 API 호출에서 옵션 구조체를 전달할 때는 ref 키워드를 사용해야 합니다.
  • 이제 콜백에서 정보 구조체를 사용할 때는 ref 키워드를 사용해야 합니다.

보이스

  • 플레이어가 RTC(Real-Time Communication) 룸에 참가하면 실제 차단 상태가 해결되기 전까지 초기의 차단된 상태입니다. 여러 개의 차단 상태 알림이 있다는 의미입니다. ParticipantStatusEOS_RTCPS_Joined 로 설정되며, bParticipantInBlocklist 는 초기에 true로 설정되고 그 후에 실제 차단 상태로 업데이트됩니다.
  • EOS_Lobby_AddNotifyRTCRoomConnectionChangedOptionsLocalUserIdLobbyId 필드는 이제 지원이 중단됩니다.
    • 이제 등록된 콜백은 모든 로컬 사용자 및 로비(Lobby)에 대해 호출됩니다.
    • 게임에서 필터 적용을 수행해야 하는 경우, EOS_Lobby_RTCRoomConnectionChangedCallbackInfo 콜백 파라미터에서 LocalUserIdLobbyId 를 사용합니다.

플랫폼별

콘솔 일반

  • 버그 수정: EOS_RTC_XXX 함수가 유효해지기 전에 네트워크를 사용하려고 시도할 수 있는 문제를 해결했습니다. EOS_RTC_XXX 기능은 이제 EOS_HPlatform 네트워크 상태의 현재 값을 따릅니다.

Steam

  • 신규: 이제 네이티브 삭제를 지원하는 플랫폼에서 실행할 때 EOS_UserInfo and EOS_UserInfo_ExternalUserInfoDisplayName 필드에 대응하는 DisplayNameSanitized 가 있으며, 플랫폼의 삭제 또는 필터 적용 기능이 진행된 버전의 이름을 나타냅니다.
  • 버그 수정: 차단된 사용자에게 추가적인 친구 플래그를 사용하기 위해 Steam 친구 인터페이스를 업데이트했습니다.

Sony PlayStation

  • PS4 SDK 9.508.001 및 PS5 SDK 5.00.00.33으로 업데이트했습니다.

Nintendo Switch

  • Nintendo Switch SDK 13.3.2로 업데이트했습니다.
  • 지원 중단: EOS_Switch_InitializeOptionsOnNetworkRequested 콜백은 이제 지원이 중단되고, EOS_Platform_OnNetworkStatusChanged API로 대체됩니다.
  • 로비(Lobby)
    • 신규: 이제 EOS SDK는 온라인 매치메이킹에 적용할 수 있을 때 Nintendo Switch Online 멤버십 권한 요구를 따르고 자동으로 적용합니다.

Microsoft Xbox

  • Xbox GDK를 211001 버전으로 업데이트했습니다.
  • Xbox GDK 플랫폼에 EOS 개발자 인증 툴 지원을 추가했습니다.
    • 개발자 인증 툴의 타깃 IP 주소를 192.168.x.x, 10.x.x.x, 127.x.x.x, 172.16.x.x에서 172.31.x.x와 같은 로컬 IP나 이에 상응하는 IPv6 주소로 처리합니다.
    • 호스트명은 현재 지원되지 않습니다.
    • 이 기능은 개발 및 테스트 용도로만 사용하고, 실제 시나리오에서는 GDK의 자체 인증을 사용하여 사용자의 로그인을 지원해야 합니다. 이 기능은 소비자용 디바이스에서는 사용할 수 없습니다.
  • 버그 수정: Microsoft 서비스에 무제한 재삭제(re-sanitization) 호출을 보낼 수 있는 GDK 새니타이저(GDK Sanitizer)의 버그를 수정했습니다.

1.14.2-hf-2 - 2022년 7월 7일

참고 - Steam으로 게임을 제공하는 경우:

  • C 또는 C#용 에픽 온라인 서비스 SDK 1.14.2 또는 1.14.2-hf-1 버전을 이미 다운로드해서 사용 중인 경우, C 또는 C#용 SDK 1.14.2-hf-2 핫픽스 버전을 다운로드해서 대신 사용해야 합니다.
  • 1.14.2-hf-2 버전의 C용 SDK와 C#용 SDK에서는 Steam 인증 기능이 업데이트되었습니다. 콘솔용 SDK에는 영향이 없습니다.

출시 노트

**C용 SDK 및 C#용 SDK

인증

**C용 SDK 및 C#용 SDK

  • 지원 중단: EOS_ECT_STEAM_APP_TICKET 은 더 이상 EOS_Auth_Login 과 함께 사용할 수 없습니다. EOS_ECT_STEAM_SESSION_TICKET 을 대신 사용하세요.
    • 참고: 콘솔용 SDK에는 영향이 없습니다.

1.14.2-hf-1 - 2022년 2월 14일

참고: 이미 에픽 온라인 서비스 SDK 버전 1.14.2를 다운로드했다면, 안티 치트에 대한 문제 해결을 위해 해당 SDK 버전도 다운로드해야 합니다. 아래를 참고해 주세요.

출시 노트

안티 치트

  • 버그 수정: 안티 치트 부트스트래퍼(Anti-Cheat Bootstrapper)가 실행인자를 전달할 때 따옴표를 제거하는 문제를 해결했습니다.

1.14.2 - 2022년 2월 1일

출시 노트

안티 치트

  • 신규: 이제 안티 치트 부트스트래퍼(Anti-Cheat Bootstrapper)가 값이 파싱되는 .json 이름 지정을 지원합니다. 커스텀 .json 파일을 제공하려면 다음이 포함된 부트스트래퍼를 호출하세요. -anticheat_settings=Custom.json. 커스텀 파일은 이전과 동일한 디렉터리에 저장해야 합니다.
  • 버그 수정: Windows 사용자 이름에 ASCII가 아닌 문자를 사용한 사용자가 안티 치트 부트스트래퍼를 실행할 수 없는 버그를 수정했습니다.
  • 버그 수정: 안티 치트 부트스트래퍼가 실행인자를 전달할 때 따옴표를 제거하는 문제를 해결했습니다.
  • 버그 수정: 안티 치트 부트스트래퍼 로딩 창에서 Steam 오버레이가 초기화되는 문제를 해결했습니다.
  • 버그 수정: Fedora Linux에서 게임을 실행할 수 없는 안티 치트 버그를 수정했습니다.
  • 버그 수정: ASCII가 아닌 문자가 포함된 작업 디렉터리 경로를 사용하면 안티 치트 무결성 툴이 작동하지 않는 버그를 수정했습니다.
  • 버그 수정: AntiCheatServer 에서 메모리 누수가 발생할 수 있는 버그를 수정했습니다.
  • 버그 수정: 단일 게임 서버에 너무 많은 플레이어가 접속해 있거나 백엔드 연결이 불안정해 발생할 수 있는 크래시를 수정했습니다.
  • 안티 치트 무결성 카탈로그 파일의 레이아웃을 개선했습니다.
  • 이제 안티 치트 인터페이스의 ProtectMessageUnprotectMessage 함수를 모든 스레드에서 호출할 수 있으나 이는 스레드 세이프 방식이 아니며, 2개 이상의 스레드에서 동시에 호출하면 안 됩니다.
  • ProtectMessageUnprotectMessage 에 대한 에러 로그를 개선했습니다.

인증

  • 버그 수정: 서버의 클라이언트 ID와 다른 클라이언트 ID를 사용하는 게임 클라이언트가 수신한 토큰에 대한 EOS_Auth_VerifyIdToken 을 확인할 수 없는 버그를 수정했습니다.
  • 버그 수정: 게임 클라이언트가 EOS_Auth_VerifyIdToken 을 호출하지 못하는 버그를 수정했습니다.
  • 버그 수정: EOS_Auth_VerifyIdToken 이 만료된 토큰을 거절하지 않는 버그를 수정했습니다.
  • EOS_Auth_VerifyIdTokenCallbackInfoApplicationId , ClientId , ProductId , SandboxId , DeploymentId 및 외부 계정 정보를 호출자에게 반환하는 기능을 추가했습니다.

연결

  • 버그 수정: 매우 드문 경우를 제외하고 인증이 만료될 때 EOS_Connect_AddNotifyLoginStatusChanged 가 실행되지 않는 문제를 해결했습니다. 이제 인증이 만료되어 사용자가 로그아웃되면 등록된 콜백이 정상적으로 표시됩니다.
  • 버그 수정: 서버의 클라이언트 ID와 다른 클라이언트 ID를 사용하는 게임 클라이언트가 수신한 토큰에 대해 EOS_Connect_VerifyIdToken 을 확인하지 못하는 버그를 수정했습니다.
  • 버그 수정: 게임 클라이언트가 EOS_Connect_VerifyIdToken 을 호출하지 못하는 버그를 수정했습니다.
  • 버그 수정: EOS_Connect_VerifyIdToken 이 만료된 토큰을 거절하지 않는 버그를 수정했습니다.
  • EOS_Connect_VerifyIdTokenCallbackInfoClientId , ProductId , SandboxIdDeploymentId 를 호출자에게 반환하는 기능을 추가했습니다.

코어

  • 신규: 이제 문제 해결을 돕기 위해 실행 시 EOS SDK 버전 및 환경설정 정보를 로그 출력에 기록합니다.

Ecom

  • 버그 수정: EOS_Ecom_Transaction_CopyEntitlementByIndexEOS_Ecom_EntitlementCatalogItemId 를 정상적으로 채우지 않는 버그를 수정했습니다.

샘플

  • 버그 수정: 리더보드 - 만료되지 않도록 설정된 리더보드를 사용할 때 리더보드 샘플이 크래시하는 문제를 해결했습니다.
  • 버그 수정: 로그인 샘플(iOS/Android)의 인증 문제를 해결했습니다.

세션 기반 매치메이킹

이제 제재를 적용하는 세션을 생성할 수 있습니다. 제재를 받은 플레이어는 제재를 활성화한 후 생성된 세션에 참가하거나 등록할 수 없습니다. 자세한 내용은 제재 인터페이스를 참조하세요.

소셜 오버레이

  • 버그 수정: SDK 및 EOS 오버레이 사이의 커뮤니케이션 레이어가 매우 드물게 크래시하는 버그를 수정했습니다.

타이틀 데이터 스토리지

  • 다수의 에러 사례에 대한 로깅이 개선되었습니다.

프로그래밍 업그레이드 노트

안티 치트

  • 암호화/복호화가 실패하는 경우에 대한 로그 엔트리를 추가했습니다. 유효하지 않은 실행인자에 대한 오류 로그는 기존에도 있었습니다.

콘솔 전용

Nintendo Switch

  • 신규: Nintendo Switch Nintendo SDK 버전을 11.4.3에서 13.3.0으로 업데이트했습니다.

알려진 문제

안티 치트

  • 안티 치트 부트스트래퍼에 커스텀 아이콘이 포함되어 있으면, 아이콘이 가끔 흐리게 표시됩니다.
    • 이 문제는 다음 버전에 개선될 것입니다.

2021

1.14.1 - 2021년 11월 8일

출시 노트

신규 기능:

  • 커스텀 초대

    커스텀 초대(Custom Invites) 기능은 소셜 오버레이(Social Overlay) 및 에픽게임즈 런처의 초대 버튼과 프롬프트를 계속 활용하되 자체적인 그룹화 기술을 사용하려는 개발자를 위해 설계되었습니다.

    개발자는 다른 플레이어에게 전송하기 위한 임의의 스트링 페이로드를 제공하며, 이 페이로드는 직접적인 API 호출 또는 소셜 오버레이 초대 버튼을 통해 전송됩니다. 수신자 측 플레이어는 EOS 세션 및 로비에서와 동일한 소셜 오버레이 초대 수신(Invite Received) 프롬프트를 보게 되며, 원한다면 수신된 초대로 새로운 EOSSDK API 콜백을 트리거할 수도 있습니다.

  • AuthAndFriends 샘플에 CustomInvites UI 엘리먼트 및 함수 기능을 추가했습니다.

  • 초대 전송(Send Invite) 버튼을 누르면 초대 전송 대화창이 열리면서 사용자가 페이로드를 설정하고 타깃 사용자를 선택한 후 최종적으로 초대를 '전송'할 수 있습니다. 전송(Send) 버튼을 사용하는 대신 현재 초대를 수신할 수 있는 사용자 옆에 전송(Send) 버튼이 표시되는 오버레이를 열 수도 있습니다.

  • 초대를 수신하면 초대에 관한 세부 사항을 포함한 대화창이 나타나 수락(Accept)거절(Decline) 버튼을 표시합니다. 이 버튼은 최종적으로 성공(Success)/취소(Canceled) 결과로 FinalizeInvite 를 호출합니다.

안티 치트

  • 신규: 부트스트래퍼에 대한 상세 로깅 지원을 추가했습니다. -v 또는 --verbose 중 하나를 명령줄 실행인자로 전달하면 활성화됩니다.
  • 신규: 이제 부트스트래퍼가 Windows에서 커스텀 런타임 아이콘을 지원합니다. 커스텀 아이콘을 사용하려면 BootstrapperIcon.ico<작업_디렉터리>/_EasyAntiCheat/_ 디렉터리 아래에 넣으세요.
  • 버그 수정: 단일 게임 서버에 매우 많은 플레이어가 접속한 상태에서 실행할 때 발생하는 AntiCheatServer 백엔드 타임아웃 오류를 수정했습니다.
  • 버그 수정: 단일 게임 서버에 너무 많은 플레이어가 접속해 있거나 백엔드 연결이 불안정해 발생할 수 있는 크래시를 수정했습니다.
  • 버그 수정: AntiCheatClient PollStatus 함수의 아웃 파라미터 이름이 OutViolationType이 아닌 ViolationType으로 잘못 지정되는 문제를 해결했습니다.
  • 버그 수정: C# SDK에서 AntiCheatClient PollStatus 함수에 올바른 아웃 파라미터 마셜링이 없는 문제를 해결했습니다.
  • 버그 수정: 이제 부트스트래퍼가 Windows에서 코드 서명되었습니다.
  • 버그 수정: 이제 Settings.json 을 통해 정의된 실행파일 필드가 디렉터리를 타기팅할 경우 부트스트래퍼가 오류를 표시합니다.
  • 보안 강화

인증

  • 버그 수정: EOS_Auth_CopyIdToken이 EOS_ELoginCredentialType::EOS_LCT_AccountPortalEOS_ELoginCredentialType::EOS_LCT_DeviceCode 크리덴셜 타입을 사용하는 로그인에 ID 토큰을 제공하지 않는 문제를 해결했습니다.

연결

  • 새로운 EOS_EExternalCredentialType::EOS_ECT_EPIC_ID_TOKEN 크리덴셜 타입을 쓰는 에픽 계정 ID 토큰을 사용하는 사용자 인증 지원을 추가했습니다.
  • 지원되는 사용자 인증 제공자에 Amazon이 추가되었습니다.
  • 검증된 제품 사용자 ID와 연결된 외부 계정 정보를 반환하도록 EOS_Connect_VerifyIdToken 을 확장했습니다.
  • EOS_Connect_QueryProductUserIdMappingsOptions 구조체에 대한 헤더 주석을 전용 서버의 콜아웃 사용 사례로 업데이트했습니다.

코어

  • 버그 수정: Mac에서 EGS 런처를 통해 실행된 빌드가 크래시하는 문제를 해결했습니다.
  • 지원되는 macOS 최소 버전이 10.14에서 10.12로 변경되었습니다.

로비

  • 버그 수정: 로비 생성/참여에 실패하면 활성 연결이 종료되면서 기존 로비가 전부 소멸되는 버그를 수정했습니다.

소셜 오버레이

  • 신규: CustomInvites 인터페이스를 추가하여 임의의 페이로드를 EOS 로비와 세션이 제공하는 것과 동일한 고수준 함수 기능으로 전송/수신할 수 있는 기능을 개발자에게 제공합니다.
  • 신규: AuthAndFriends 샘플에 CustomInvites UI 엘리먼트 및 함수 기능을 추가했습니다.
    • 초대 전송(Send Invite) 버튼을 누르면 초대 전송 대화창이 열리면서 사용자가 페이로드를 설정하고 타깃 사용자를 선택한 후 최종적으로 초대를 '전송'할 수 있습니다.
    • 초대를 수신하면 초대에 관한 세부 사항을 포함한 대화창이 나타나 수락(Accept)거절(Decline) 버튼을 표시합니다. 이 버튼은 최종적으로 성공(Success)/취소(Canceled) 결과로 FinalizeInvite 를 호출합니다.
    • 커스텀 초대 인터페이스: OnCustomInviteReceivedOnCustomInviteAccepted 콜백 정보에 Payload 를 파라미터로 추가했습니다.
  • 커스텀 초대 - EOS_CustomInvites_NotifyCustomInviteAccepted , EOS_CustomInvites_RemoveNotifyCustomInviteAccepted , EOS_CustomInvites_NotifyCustomInviteProcessed 를 추가했습니다.

콘솔 전용

Sony PlayStation

  • 신규: 이제 EOS SDK PlayStation 4 출시가 9.000 PlayStation 4 SDK를 타깃으로 합니다.
  • 신규: 이제 EOS SDK PlayStation 5 출시가 4.000 PlayStation 5 SDK를 타깃으로 합니다.

알려진 문제

안티 치트

  • 안티 치트 부트스트래퍼에 현지화가 일부 누락되어 있습니다
  • 안티 치트 부트스트래퍼가 열릴 때 Steam 오버레이가 자동으로 초기화됩니다
  • 안티 치트가 Fedora/Red Hat Linux에서 초기화되지 않습니다
  • Windows 사용자 이름을 ASCII가 아닌 문자로 지정한 사용자가 안티 치트 부트스트래퍼를 실행할 수 없는 경우가 있습니다
  • 일부 환경설정에 대하여 AntiCheatServer 에서 메모리 누수가 발생합니다.
  • 플레이어 수가 매우 많을 때 AntiCheatServer 가 크래시할 수 있습니다.

EOS 연결 및 EOS 인증

  • 서버와 게임 클라이언트 간의 클라이언트 ID 차이로 인해 EOS_Connect_VerifyIdTokenEOS_Auth_VerifyIdToken 이 실패합니다.
  • EOS_Connect_VerifyIdTokenEOS_Auth_VerifyIdToken 이 토큰 만료를 올바르게 확인하지 않습니다.
  • bIsServer가 true 설정된 상태로 SDK가 초기화된 경우에 한해, 게임 클라이언트가 EOS_Connect_VerifyIdTokenEOS_Auth_VerifyIdToken 을 사용할 수 없습니다.

1.14 - 2021년 9월 23일

출시 노트

신규 기능:

  • 프로그레션 스냅샷(계정 통합 서비스 프리뷰)
    • 계정 통합을 도입하기 위한 신규 기능을 추가했습니다.
    • 프로그레션 스냅샷(Progression Snapshots) 으로는 개발자가 사용자의 애플리케이션 진행상황에 관한 키/값 쌍을 저장할 수 있습니다. 이 정보는 사용자가 계정 진행상황을 병합할 때 선택을 돕기 위해 사용됩니다. 자세한 내용은 문서를 참고하세요.

안티 치트

  • 신규: Wine/Proton을 포함하는 Linux용 안티 치트 클라이언트 지원을 추가했습니다.
  • 신규: Intel 기반 Mac용 안티 치트 클라이언트 지원을 추가했습니다.
  • 버그 수정: 안티 치트 게임플레이 데이터 UnregisterClient 이벤트가 전송되지 않는 버그를 수정했습니다.
  • 버그 수정: EOS_AntiCheatServer_RegisterEvent 가 더 이상 이벤트 이름에 '.'를 허용하지 않습니다. 이전에는 이로 인해 백엔드에서 거부가 발생하면서도 명확한 오류가 표시되지 않았습니다.
  • 버그 수정: 안티 치트 게임플레이 데이터 UnregisterClient 이벤트가 전송되지 않는 내부 버그를 수정했습니다.
  • 버그 수정: 시스템 시계가 잘못된 순간에 업데이트될 경우 발생할 수 있는 안티 치트 문제를 해결했습니다.
  • 버그 수정: 안티 치트 클라이언트 모듈 테스트 워크플로가 올바르게 작동하지 않아 '연결 실패(connection failed)' 오류로 이어지는 문제를 해결했습니다.
  • 최종 파라미터 OutBytesWritten 이 정수에 대한 유효한 포인터이기만 하면 되도록 안티 치트 ProtectMessageUnprotectMessageAPI를 업데이트했습니다. 이전에는 정수를 출력 버퍼의 길이로 초기 설정해야 했습니다.
  • 안티 치트 ProtectMessageUnprotectMessage API 위치 파라미터의 이름을 더 명확하고 일관성 있게 변경했습니다.
  • DamagePositionEOS_AntiCheatCommon_LogPlayerTakeDamageOptions 에 추가하고 HitBoneId 의 지원을 중단했습니다. 이에 따라 히트 위치에 대해 더욱 정확한 정보를 제공합니다.
  • 이제 안티 치트 클라이언트 모듈은 샌드박스(Sandbox) 수준이 아닌 디플로이(Deployment) 수준에서 관리됩니다. 이로써 다른 EOS 서비스와의 일관성이 개선되었습니다. 이 버전의 SDK로 게임을 업데이트할 때는 EOS_AntiCheatTools 파일을 반드시 업데이트해야 합니다.
  • 안티 치트에 대해 EOS 연결(Connect) 디바이스 ID 인증 메서드는 지원되지 않습니다. 이 경우 새로운 결과 코드인 EOS_AntiCheat_DeviceIdAuthIsNotSupported 가 반환됩니다.

인증

  • 신규: 게임 서버, 온라인 백엔드, 기타 클라이언트가 다른 에픽 계정 사용자의 ID를 안전하게 검증할 수 있도록 새 API인 EOS_Auth_CopyIdToken , EOS_Auth_QueryIdToken , EOS_Auth_VerifyIdToken 을 추가했습니다. 게임이 기존의 EOS_Auth_CopyAuthTokenEOS_Auth_VerifyAuthToken API를 사용하는 경우, ID 토큰으로 전환하는 것을 고려해야 합니다.
  • 신규: * 로컬 사용자의 통합된 에픽 계정 상태를 탐지하는 API 지원을 추가했습니다. 이는 곧 출시될 에픽 계정 서비스 기능과 관련이 있습니다. 이 기능을 사용하면 별도의 여러 에픽 계정을 하나의 에픽 계정으로 통합할 수 있습니다.

연결

  • 신규: 게임 서버, 온라인 백엔드, 기타 클라이언트가 다른 EOS 사용자의 ID를 안전하게 검증할 수 있도록 새 API인 EOS_Connect_CopyIdTokenEOS_Connect_VerifyIdToken 을 추가했습니다.
  • 신규: 연결 ID 토큰의 관리를 위해 EOS_Connect_CopyIdToken , EOS_Connect_IdToken_Release , EOS_Connect_VerifyIdToken API를 추가했습니다. 자세한 정보는 연결 인터페이스 문서를 참고하세요.

Ecom

  • 신규: EOS_Ecom_CatalogOffer 구조에서 제공된 가격의 DecimalPoint 를 노출했습니다. 예를 들어 DecimalPoint가 '2', CurrentPrice64가 '12345'면 '123.45'가 됩니다.

오버레이 기술 플랫폼

  • 버그 수정: EOS_UI_AddNotifyDisplaySettingsUpdated 에 의해 추가된 후 티킹 전에 EOS_UI_RemoveNotifyDisplaySettingsUpdated 에 의해 제거된 알림 콜백이 호출되지 않습니다. 이전에는 한 번 호출되었으며, 게임이 일부 종속 상태를 해제한 경우 크래시가 발생할 수 있었습니다.

P2P

  • 이제 EOS_P2P_AddNotifyPeerConnectionEstablishedEOS_P2P_RemoveNotifyPeerConnectionEstablished 로 연결이 설정되었을 때 알림을 받을 수 있습니다.
  • 이제 EOS_P2P_ClearPacketQueue 를 사용하여 특정 원격 사용자에게 또는 특정 소켓으로 발신 중이거나 특정 원격 사용자 또는 특정 소켓으로부터 수신 중인 대기 패킷을 지울 수 있습니다.

플레이어 데이터 스토리지

  • 버그 수정: 플레이어 데이터 스토리지(Player Data Storage)의 로컬 캐시에서 파일을 읽는 것이 현저히 느려질 수 있었던 문제를 해결했습니다.
  • 많은 오류 사례의 PlayerDataStorage 로깅을 개선했습니다.

현재상태

  • 버그 수정: 연결이 끊어졌을 때 현재상태 서비스가 상태 자동 업데이트를 계속 시도하던 문제를 해결했습니다.

샘플

  • 버그 수정: Mac과 Linux에서 리더보드 샘플 빌드를 수정하여 Makefile 에 누락된 AssetUtils.cpp 를 추가했습니다.

제재

  • EOS_Sanctions_PlayerSanctionTimeExpires 필드와 ReferenceId 필드를 추가했습니다. 이 정보는 EOS 개발자 포털에서 원래 볼 수 있었지만 SDK API를 통해서는 이용할 수 없었습니다.

보이스

  • EOS_RTC_SetSettingEOS_RTC_SetRoomSetting API를 노출했습니다.
    • DisableEchoCancelation 은 오디오 채널의 에코 제거 사용을 비활성화합니다. 디폴트 False
    • DisableNoiseSupression 은 오디오 채널의 노이즈 억제 사용을 비활성화합니다. 디폴트 False
    • DisableAutoGainControl 은 오디오 채널의 자동 게인 제어 사용을 비활성화합니다. 디폴트 False
    • 글로벌/룸별 DisableDtx 가 DTX 사용을 비활성화합니다. 디폴트 False

모바일

iOS

  • 버그 수정: iOS 14에서 URL 스킴의 유효하지 않은 문자로 인해 예외가 발생할 수 있었던 문제를 해결했습니다.

업그레이드 노트

안티 치트

  • SDK 1.14로 업그레이드할 때는 start_protected_game.exe , EasyAntiCheat_EOS_Setup.exe , anticheat_integritytool.exe 파일을 번들로 제공되는 EOS_AntiCheatTools zip 파일의 최신 버전으로 업데이트해야 합니다.
  • start_protected_game.exe 의 변경 사항:
    • 이전에 관련 Settings.json 에서 정의되었던 다음 세팅은 이제 지원되지 않습니다.
      • parameters: 이제 부트스트래퍼가 프로세스 시작 시에 제공된 모든 파라미터를 게임 프로세스에 전달하기 때문에 관련 세팅 파일은 이 기능을 제공하지 않습니다.
      • use_cmdline_parameters: 파라미터 필드가 제거되어 불필요하므로 제거했습니다.
      • working_directory: 이제 부트스트래퍼가 게임의 루트 디렉터리에 저장될 것으로 예상되어 제거했으며, 이는 모든 지원 플랫폼에 적용됩니다.
      • logo_position: 부트스트래퍼의 새로운 디자인이 위치 지정을 제한하기 때문에 제거했습니다.
      • hide_splash_screen: 부트스트래퍼의 내부 디자인이 변경되었기 때문에 제거했습니다.
      • hide_ui_controls: 부트스트래퍼의 내부 디자인이 변경되었기 때문에 제거했습니다.
  • Windows 게임에 대하여 Wine/Proton 지원을 활성화하려면 EOS 개발자 포털에서 Linux 모듈을 활성화해야 합니다. 자세한 내용은 EOS 개발자 문서를 참고하세요.

프로그래밍 업그레이드 노트

안티 치트

  • EOS_AntiCheatCommon_LogPlayerTakeDamageOptions 를 사용했다면 HitBoneId 대신 DamagePosition 필드를 설정하도록 업데이트해야 합니다. 이는 히트 위치에 대해 보다 정확한 정보를 제공합니다.

1.13.1 - 2021년 7월 27일

출시 노트

C# SDK

  • 버그 수정: C# 버전 7 이하와의 호환성 문제를 해결했습니다.
  • 버그 수정: iOS 환경설정 타깃을 수정했습니다.

로비

  • EOS_Lobby_LocalRTCOptions 파라미터의 이름을 무엇이 음소거되었는지 더 잘 설명하도록 bAudioOutputStartsMuted 에서 bLocalAudioDeviceInputStartsMuted 로 수정했습니다.
  • 버그 수정: 로비 업데이트 중에 나타나는 잘못된 경고를 삭제했습니다. 업데이트가 진행되는 동안 클라이언트는 백엔드보다 많은 어트리뷰트를 인식할 수 있습니다. 그래서 잘못된 '동기화되지 않음(out of sync)' 오류가 발생했습니다.
  • 버그 수정: EOS 플랫폼 생성 시 RTC 초기화 옵션이 지정되지 않았지만 로비에 RTC 룸 기능이 활성화되어 있을 때 발생하는 크래시를 해결했습니다. 이제 이 경우 EOS_InvalidRequest result 와 함께 로비 생성에 실패합니다.
  • 버그 수정: 로비 RTC 룸 기능을 사용할 때 늘 발생하던 잘못된 경고 문제를 해결했습니다.

플레이어 데이터 스토리지

  • EOS_PlayerDataStorage_QueryFile , EOS_PlayerDataStorage_QueryFileList , EOS_PlayerDataStorage_ReadFile 의 일부 오류 사례에 로깅을 추가했습니다.

프로그래밍 업그레이드 노트

로비

  • EOS_Lobby_LocalRTCOptions 파라미터 bAudioOutputStartsMuted 사용 시 이름을 bLocalAudioDeviceInputStartsMuted 로 변경해야 합니다.

콘솔 전용

Playstation®

  • 신규: PS5 SDK 버전을 3.00.00.27로 설정했습니다
  • 신규: PS4 SDK 버전을 8.508.001로 설정했습니다

Nintendo Switch

  • 버그 수정: 처음 P2P를 사용할 때 네트워크를 사용할 수 없었으면 P2P가 계속 네트워크를 사용할 수 없다고 착각하는 문제를 해결했습니다. 이제 네트워크가 다시 사용 가능해지면 P2P도 항상 올바르게 다시 시작됩니다.
  • 버그 수정: 네트워크를 사용할 수 없을 때 비동기 로비 API 콜의 타임아웃에 매우 긴 시간이 걸릴 수 있는 문제를 해결했습니다.

Xbox Series X|S

  • 버그 수정: Xbox Series X|S의 RTC 오디오 캡처 문제를 해결했습니다.

1.13 - 2021년 6월 21일

출시 노트

신규 기능:

  • 보이스(프리뷰 서비스): 에픽 온라인 서비스의 일부인 EOS 보이스 툴의 초기 출시 버전을 사용하면 서드 파티 솔루션을 사용하지 않고도 플레이어가 게임 내에서 친구나 팀원과 대화할 수 있습니다. 자세한 내용은 문서를 참고하세요.

안티 치트

  • Win32 대신 SDL에 의존하는 신규 버전을 사용할 수 있도록 이지 안티 치트 런처를 변경했습니다.

인증

  • 버그 수정: 추가 동의가 필요한 경우 EOS_Auth_Login 의 교환 코드 플로를 통해 크래시가 일어날 수 있는 문제를 해결했습니다.
  • 버그 수정: EOS_Auth_LinkAccount 에서 컨티뉴언스 토큰(Continuance Token) 핸들을 사용할 때 크래시가 일어날 수 있는 문제를 해결했습니다.

코어

  • 버그 수정: constexpr일 수 없는 열거형 클래스 비트 연산자 함수에서 constexpr 지정자를 제거했습니다.
  • EOS_Platform_Options CacheDirectory 파라미터에서 유효하지 않은 UTF8 문자에 대한 유효성 검사를 개선했습니다. 이제 유효하지 않은 문자가 발견되면 올바르게 플랫폼 인스턴스 생성에 실패합니다. 이렇게 실패하는 경우의 로깅이 추가되었습니다.

로비

  • 신규: 로비에 자동 리얼타임 커뮤니케이션(Real Time Communication, RTC) 룸 지원을 추가했습니다.
    • 이 기능을 활성화하면 로비 전용 RTC 룸의 생성, 룸에 대한 참여 및 연결 상태 유지가 자동으로 처리됩니다. 이 기능을 사용하려면 EOS 개발자 포털에서 createLobbyConference 보이스 권한을 활성화해야 합니다.
  • 신규: 이제 로비 생성 시 '로비 ID 오버라이드' 를 지정할 수 있습니다.
    • 값은 애플리케이션의 컨텍스트 내에서 보편적으로 고유해야 합니다.
  • 버그 수정: InviteId 가 null이거나 비어 있을 때의 EOS_Lobby_RejectInvite 로그 메시지를 수정했습니다.
  • 버그 수정: 이제 EOS_LobbySearch_SetTargetUserId 를 통해 다른 사용자를 검색하는 경우 최대 검색 결과 값을 사용합니다. 이전에는 하나의 검색 결과만 반환했습니다.

로비 샘플

  • 신규: 로비 샘플에 보이스 옵션을 추가했습니다.

플레이어 데이터 스토리지

  • 잘못된 파일 이름 또는 경로에 대한 오류 메시지를 개선했습니다.

타이틀 스토리지

  • 잘못된 파일 이름 또는 경로에 대한 오류 메시지를 개선했습니다.

모바일

iOS

  • 이제 iOS 바이너리가 비트코드 지원으로 컴파일됩니다.