Google은 개발자에게 WebRTC 버전(M102 이전)의 취약점에 대해 알렸습니다. 영향, 해결 방법 및 업데이트는 여기에서 확인할 수 있습니다.
에픽 온라인 서비스(EOS)는 엔진에 구애받지 않는 시스템으로, 다음과 같은 다양한 크로스 플랫폼 온라인 기능을 제공합니다.
플레이어 중심 기능:
업적
리더보드
상업적 기능:
게임 내 구매
소셜 기능:
음성 채팅
친구 목록
온라인 서브시스템 에픽 온라인 서비스(OSS EOS) 플러그인으로 언리얼 엔진 프로젝트에서 EOS를 사용할 수 있습니다. 온라인 서브시스템 에픽 온라인 서비스(Online Subsystem Epic Online Services, OSS EOS) 플러그인을 사용하면 EOS SDK와 직접 상호작용하기 위한 코드를 작성하지 않아도 게임에서 에픽 온라인 서비스와 상호작용할 수 있습니다. 이 기능을 사용하려면 EOS 데브 포털에 제품을 등록하고 환경설정한 후, 몇 가지 플러그인을 활성화하고 환경설정하여 OSS 인터페이스를 통해 EOS 기능을 노출해야 합니다.
제품 등록 및 환경설정 정보를 포함한 에픽 온라인 서비스에 대한 자세한 내용은 에픽 온라인 서비스 개발자 문서를 참조하세요.
EOS 플러그인 개요
OSS EOS 플러그인은 온라인 서브시스템(Online Subsystem, OSS) 플러그인을 기반으로 합니다. 온라인 서브시스템 플러그인은 공통 인터페이스로 다양한 온라인 서비스에 액세스할 수 있는 범용 플러그인입니다. OSS EOS 플러그인은 EOS SDK를 통한 커뮤니케이션을 플러그인에 통합하여 특정 기능이 에픽 온라인 서비스에서 사용 가능하도록 구현하는 방식으로 OSS 플러그인을 확장합니다. 이 페이지는 다음과 같은 OSS EOS 플러그인 기능을 다룹니다.
필요에 따라 OSS EOS 플러스(OSS EOS Plus) 플러그인을 사용하여 OSS EOS 플러그인을 확장할 수 있습니다. EOS Plus는 'EOS + 베이스 플랫폼'이라는 의미로, Steam이나 콘솔 플랫폼 등의 기타 플랫폼을 EOS와 결합합니다. EOS와 기타 플랫폼을 결합할 경우 자동 세션 미러링 등의 부가적인 기능이 제공됩니다. EOS 플러스(EOS Plus)는 에픽 계정 서비스(EAS)를 이용하든 안 하든 사용할 수 있습니다.
EOS 플러스 사용 시기
에픽게임즈 스토어에서 게임을 출시하는 경우, OSS EOS 플러그인을 사용하고자 할 것이며 EOS Plus는 사용하지 않아도 됩니다. 기타 플랫폼에서 게임을 출시하는 경우에는 OSS EOS 플러그인과 더불어 OSS EOS Plus 플러그인을 사용하게 됩니다. 그러나 이 가이드에 예외가 존재할 수도 있습니다. 이 페이지를 읽고 프로젝트를 위한 최적의 플러그인 조합이 무엇인지 결정해 보세요.
EOS SDK에는 특정 플랫폼을 미러링하는 기능이 존재하지 않지만 온라인 서브시스템 EOS Plus는 일시적인 솔루션으로서 해당 기능을 구현합니다. EOS Plus 기능은 네이티브 EOS SDK 지원이 사용 가능하게 되면 이로 대체될 예정입니다. EOS Plus는 기능의 범위가 제한되는 베타 기능입니다.
OSS EOS 사용 방법
에픽 디벨로퍼 커뮤니티의 OSS EOS 플러그인 코스에서는 언리얼 엔진 프로젝트에서 OSS EOS를 사용하는 과정을 안내합니다.
구성
에픽 온라인 서비스에 제품 등록하기
에픽 개발자 리소스 문서는 에픽게임즈 스토어(EGS), 에픽 온라인 서비스, 키즈 웹 서비스(KWS) 및 관련 툴에 대한 리소스를 제공합니다. OSS EOS 플러그인을 활용하려면, 먼저 에픽 온라인 서비스로 제품을 등록해야 합니다. EOS에 제품을 등록하려면 에픽 데브 포털로 이동하여 시작 단계에 맞춰 진행하세요. 특히 이 가이드에서는 시작 단계(Get Started Steps) 1단계의 제품 등록에 대해 설명하고 있습니다. 제품 등록 시 제공되는 정보는 나중에 언리얼 엔진에서 OSS EOS 플러그인을 환경설정할 때 필요합니다.
언리얼 엔진은 EOS SDK 사본으로 배포되므로, 언리얼 엔진에 포함된 EOS SDK 버전을 사용하고자 한다면 EOS SDK를 별도로 다운로드하지 않아도 됩니다. 다른 버전의 EOS SDK를 사용하려면, 시작 단계 2단계의 지침에 따라 원하는 버전의 EOS SDK를 다운로드하세요. 원하는 버전의 EOS SDK를 다운로드한 다음에는, EOS SDK 업그레이드하기 문서에서 언리얼 엔진에서 사용하는 EOS SDK를 업그레이드하는 자세한 방법을 확인하고 지침에 따라 진행하면 됩니다.
EOS SDK를 업그레이드하는 경우, 업그레이드에 필요한 업데이트에 대해서는 EOS SDK 출시 노트를 참조하시기 바랍니다.
OSS EOS 플러그인 활성화
프로젝트에서 EOS를 사용하려면 언리얼 엔진에서 OSS EOS 플러그인을 활성화해야 합니다. OSS EOS 플러그인을 활성화하려면 다음 단계를 따릅니다.
편집(Edit) > 플러그인(Plugins)으로 이동합니다. 플러그인 브라우저(Plugin Browser)가 열리면 활성화하려는 플러그인을 검색할 수 있습니다.
플러그인 브라우저에서 온라인 서브시스템 EOS(Online Subsystem EOS) 플러그인을 찾아서 활성화합니다.
온라인 서브시스템 EOS는 에픽 온라인 서비스용 온라인 서브시스템 플러그인을 구현합니다. OSS EOS 플러그인을 활성화하면 다음 추가 플러그인들이 기본적으로 활성화되어 있습니다.
EOS 플러스
EOS를 다른 플랫폼과 결합합니다.
EOS 셰어드(EOS Shared)
EOS SDK의 초기화 및 종료를 담당합니다.
기본적으로 OSS EOS의 종속 항목으로 활성화됩니다.
EOS 음성 채팅(EOS Voice Chat)
EOS를 통한 음성 채팅을 지원합니다.
원하는 플러그인을 활성화한 후에는 프로젝트에서 사용하도록 환경설정해야 합니다. 일부 환경설정 단계를 진행하려면 제품을 EOS에 등록한 뒤 받은 제품 관련 설정이나 식별자가 필요합니다. 이러한 플러그인은 에픽 데브 포털에서 확인할 수 있습니다.
OSS EOS 플러그인 환경설정하기
계속 진행하려면 다음을 완료해야 합니다.
OSS EOS 플러그인을 환경설정하려면 다음 단계를 따릅니다.
툴바에서 편집(Edit) > 프로젝트 세팅(Project Settings)을 클릭합니다.
플러그인(Plugins) > 온라인 서브시스템 EOS(Online Subsystem EOS)로 이동합니다.
이미지를 클릭하면 확대됩니다.
EOS 세팅
이 세팅은 EOS 플랫폼 전용 환경설정 관련 세팅입니다. 자세한 내용은 EOS_Platform_Options 데이터 구조체에 대한 EOS API 레퍼런스 페이지를 참조하세요. 다음 표는 각 EOS 세팅에 대해 설명합니다.
| 세팅 | Description |
|---|---|
캐시 디렉터리(Cache Dir) | 임시 EOS 데이터를 저장하는 디렉터리입니다. Windows에서 디폴트 위치는 |
디폴트 아티팩트 이름(Default Artifact Name) | 이 아티팩트 이름은 명령줄 실행인자를 통해 전달된 아티팩트가 없는 경우에 사용됩니다. 명령줄을 통해 아티팩트 이름을 전달하지 않는 경우, 이 이름과 아래에 정의된 아티팩트 이름(Artifact Name)이 일치해야 합니다. |
틱 예산(밀리초)(Tick Budget in Milliseconds) | 이 세팅은 EOS_Platform_Tick을 반환하여 EOS 작업이 게임을 차단하지 않도록 방지합니다. 자세한 내용은 EOS_Platform_Create에 대한 에픽 온라인 서비스 문서를 참조하세요. |
오버레이 활성화(Enable Overlay) | 오버레이를 활성화하거나 비활성화합니다. 일부 오버레이는 특정 플랫폼에 국한될 수 있습니다. 예를 들어 전자상거래 오버레이는 에픽게임즈 스토어에 출시되는 타이틀에만 유효합니다. |
소셜 오버레이 활성화(Enable Social Overlay) | 소셜 오버레이는 친구, 업적, 추가 인증 단계와 관련된 정보를 표시합니다. 다른 오버레이를 활성화한 채로 이 오버레이만 비활성화할 수 있습니다. 이 세팅은 오버레이 활성화가 꺼져 있으면 적용되지 않습니다. |
에디터 오버레이 활성화(Enable Editor Overlay) | 언리얼 에디터에서 오버레이를 활성화하거나 비활성화합니다. |
타이틀 스토리지 태그(Title Storage Tags) | 타이틀 데이터 스토리지의 여러 파일을 쿼리할 때 사용합니다. 자세한 내용은 에픽 온라인 서비스 문서에서 타이틀 스토리지 인터페이스 페이지의 태그로 여러 파일 쿼리하기를 참조하세요. |
타이틀 스토리지 읽기 청크 길이(Title Storage Read Chunk Length) | EOS_TitleStorage_OnReadFileDataCallback의 단일 콜백이 읽을 최대 데이터 양(바이트)을 설정합니다. 자세한 내용은 에픽 온라인 서비스 문서에서 타이틀 스토리지 인터페이스 페이지의 파일에 액세스하기를 참조하세요. |
아티팩트 | 에픽게임즈 스토어는 단일 제품에 여러 아티팩트를 지원합니다. 예를 들어 여러분의 제품에 개발, 테스트, 소비자용 출시 버전의 내부 아티팩트를 각각 다르게 할 수 있습니다. 이 배열은 이름이 지정된 아티팩트별 세팅을 포함합니다. 배열에 아티팩트가 하나 이상 있어야 하며, 디폴트 아티팩트 이름(Default Artifact Name) 값은 배열 엘리먼트 중 하나의 이름과 일치해야 합니다. 이러한 세팅에 대한 자세한 내용은 아래의 아티팩트 세팅 섹션을 참조하세요. |
아티팩트 세팅
아티팩트 세팅에는 EOS 개발자 포털에서 등록한 제품에 대한 세팅이 포함되어 있습니다. 여기서 환경설정한 아티팩트 세팅은 EOS 개발자 포털에 등록된 제품의 세팅과 일치해야 합니다. EOS 데브 포털에 내 제품 설정이 있습니다.
아티팩트 세팅을 편집하는 단계는 다음과 같습니다.
EOS 세팅(EOS Settings) 섹션의 아티팩트(Artifacts) 옆에 있는 엘리먼트 추가(Add Element) 버튼을 클릭합니다. 그러면 EOS 세팅 아티팩트(EOS Settings' Artifact) 배열에 새로운 엘리먼트가 생성됩니다.
이 새 아티팩트의 세팅을 커스터마이징하려면 새로 생성된 배열 엘리먼트 옆의 화살표를 클릭합니다. 이것이 배열의 첫 번째 엘리먼트라면 이름이 Index[0]으로 명명됩니다.
다음 표는 사용 가능한 아티팩트 세팅에 대해 설명합니다.
| 세팅 | Description |
|---|---|
아티팩트 이름(Artifact Name) | 에픽게임즈 스토어에서 출시하는 경우, 이 아티팩트 이름은 데브 포털에 있는 스토어 세팅의 아티팩트 ID와 일치해야 합니다. 에픽게임즈 스토어에서 실행하지 않는 경우, 어떤 스트링이든 될 수 있습니다. 이는 |
클라이언트 ID | 제품의 클라이언트 ID(Client Id)입니다. 이 ID의 처음 세 문자는 |
클라이언트 암호(Client Secret) | 클라이언트 ID 검증에 사용하는 클라이언트 암호입니다. |
제품 ID(Product ID) | EOS SDK는 이 ID로 귀하의 제품을 식별합니다. |
샌드박스 ID(Sandbox ID) | 아티팩트는 이 ID 값이 포함된 샌드박스에 포함됩니다. 에픽게임즈 스토어에서 퍼블리싱하지 않는 경우 제품은 하나의 샌드박스만 가질 수 있습니다. 여러 샌드박스를 사용 중인 경우, |
디플로이 ID(Deployment ID) | 타기팅하는 디플로이 ID입니다. 디플로이 ID는 아티팩트마다 다릅니다. 예를 들어, |
클라이언트 암호 키(Client Encryption Key) | EOS 서비스에 업로드할 때 데이터를 암호화하는 64바이트 16진수 스트링입니다. 이 암호화 키는 다른 세팅과 달리 EOS에서 관리하지 않으며, 귀하의 제품 세팅에도 저장되지 않습니다. 해당 키는 귀하의 게임에 고유하며, 사용자 데이터 보호를 위해 에픽게임즈에 알려지지 않습니다. 플레이어 및 타이틀 데이터 스토리지의 데이터를 암호화하는 용도입니다. 플레이어 또는 타이틀 데이터 스토리지를 사용하지 않는다면, 디폴트 암호 키(64바이트)로 |
EOS 플러스 세팅
이 플러그인을 사용하려면, 먼저 데브 포털에서 지원하려는 각 플랫폼마다 제품을 등록하고 환경설정해야 합니다. 각 플랫폼 버전별 EOS SDK마다 지원하는 플랫폼의 기능을 사용하는 방법을 버전별로 자세히 안내합니다.
EOS Plus 플러그인을 사용하기 전, EOS Plus 로그인 세팅 및 크로스 플레이 세팅을 환경설정해야 합니다.
EOS 플러스 로그인 설정
다음 표는 EOS Plus 로그인 세팅에 대해 설명합니다.
| 세팅 | Description |
|---|---|
EOS 로그인에 에픽 계정 사용(계정 연동 필요)(Use Epic Account for EOS login (requires account linking)) | 이 옵션을 활성화하면 OSS EOS 플러그인이 플랫폼별 인증 토큰을 사용하여 사용자를 해당 에픽 계정에 자동으로 로그인합니다. |
EOS 연결 API를 사용하여 제품 사용자 ID(PUID)를 생성 및 연동하고 EOS 게임 서비스를 사용(Use EOS Connect APIs to create and link Product User IDs (PUIDs), and use EOS Game Services) | 이 옵션이 활성화된 경우 EOS 연결 API를 사용하여 크로스플레이를 위한 계정을 연동합니다. |
크로스플레이 세팅
다음 표는 크로스 플레이 세팅에 대해 설명합니다.
| 세팅 | Description |
|---|---|
EOS에 통계 미러링(Mirror Stats to EOS) | 이 옵션을 활성화하면 EOS 플러스는 모든 통계(Stats) 정보의 복제본을 OSS EOS 플러그인에 전송합니다. |
EOS에 업적 미러링(Mirror Achievements to EOS) | 이 옵션을 활성화하면 EOS 플러스는 모든 업적(Achievement) 데이터의 복제본을 OSS EOS 플러그인에 전송합니다. |
크로스플레이 세션 사용(Use Crossplay Sessions) | 해당 세팅은 크로스 플랫폼을 사용하는 네트워크 게임을 플레이할 때 필요합니다. 또한 EOS 세션 인터페이스를 기본 세션 인터페이스로 설정합니다. |
EAS에 현재상태 미러링(Mirror Presence to EAS) | EOS 플러스 플러그인이 현재상태(Presence) 데이터도 OSS EOS 플러그인에 전송할지 여부를 결정하는 옵션입니다. 현재상태 데이터는 에픽 계정 서비스를 사용할 때만 이용할 수 있습니다. |
EOS 플러그인을 위한 엔진 환경설정
개발자 포털에서 제품을 설정하고 플러그인의 환경설정을 완료하고 나면 몇 가지 세팅을 환경설정해야 합니다. DefaultEngine.ini 같은 엔진 환경설정 계층구조에서 이러한 플러그인을 환경설정할 수 있습니다.
OSS EOS 환경설정 세팅
프로젝트의 DefaultEngine.ini 파일에 다음 환경설정 세팅을 추가합니다.
온라인 서브시스템 EOS 플러그인이 프로젝트에서 사용하도록 활성화되어 있는지 확인합니다.
C++[OnlineSubsystemEOS] bEnabled=true프로젝트의 온라인 서비스에서 EOS를 디폴트 플랫폼으로 설정합니다.
C++[OnlineSubsystem] DefaultPlatformService=EOS넷 드라이버를 지정합니다.
C++[/Script/Engine.Engine] !NetDriverDefinitions=ClearArray +NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="/Script/SocketSubsystemEOS.NetDriverEOSBase",DriverClassNameFallback="/Script/OnlineSubsystemUtils.IpNetDriver") +NetDriverDefinitions=(DefName="DemoNetDriver",DriverClassName="/Script/Engine.DemoNetDriver",DriverClassNameFallback="/Script/Engine.DemoNetDriver")EOS의 피어 투 피어 소켓 기능을 플레이어가 호스팅된 매치에 사용합니다. 이 세팅은 선택 사항입니다.
C++[/Script/SocketSubsystemEOS.NetDriverEOSBase] bIsUsingP2PSockets=true
다음은 위에 설명된 모든 OSS EOS 환경설정 세팅입니다.
[OnlineSubsystemEOS]
bEnabled=true
[OnlineSubsystem]
DefaultPlatformService=EOS
[/Script/Engine.Engine]
!NetDriverDefinitions=ClearArray
+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="/Script/SocketSubsystemEOS.NetDriverEOSBase",DriverClassNameFallback="/Script/OnlineSubsystemUtils.IpNetDriver")
+NetDriverDefinitions=(DefName="DemoNetDriver",DriverClassName="/Script/Engine.DemoNetDriver",DriverClassNameFallback="/Script/Engine.DemoNetDriver")
에픽게임즈 런처에서 타이틀 실행하기
에픽게임즈 런처에서 타이틀을 실행하는 경우, 에픽게임즈 스토어(EGS)가 실행하는 모든 에픽 앱 및 에픽 샌드박스 쌍에 대해 엔진 환경설정 파일 계층구조에 환경설정 항목을 추가해야 합니다. 프로젝트 세팅 또는 엔진 환경설정의 디폴트 아티팩트 이름과 아티팩트 이름이 에픽 온라인 서비스 데브 포털의 아티팩트 이름과 일치해야 합니다.
EGS에서 타이틀을 출시하는 경우, 디폴트 아티팩트 이름이 무시됩니다. EGS는 항상 대신 사용하는 -epicapp 명령줄 실행인자를 전달합니다. 기본 아티팩트 이름은 -epicapp가 전달되지 않는 다른 스토어에서 배포할 때 유용합니다.
EOS 플러스 환경설정 세팅
EOS와 다른 온라인 플랫폼 간의 크로스플레이를 구현하도록 프로젝트를 환경설정하려면 프로젝트의 DefaultEngine.ini 파일에 다음 환경설정 세팅을 추가합니다.
온라인 서브시스템 EOS Plus 플러그인이 프로젝트에서 사용하도록 활성화되어 있는지 확인합니다.
EOS 플러스 플러그인을 사용하면 EOS와 다른 온라인 서비스를 함께 사용할 수 있다는 점을 기억하세요.
C++[OnlineSubsystemEOSPlus] bEnabled=true
디폴트 플랫폼 온라인 서비스를 EOS Plus로 변경합니다.
이렇게 하면 EOS와 다른 플랫폼 서비스를 함께 사용하고 있다고 엔진에 알려줍니다. 또한, 사용하려는 부가적인 네이티브 플랫폼 온라인 서비스를 추가합니다. 이 예시에서는 Steam으로 설정되어 있으나, 콘솔 온라인 서비스를 포함하여 어떤 온라인 서비스로 설정하든 관계없습니다.
C++[OnlineSubsystem] DefaultPlatformService=EOSPlus ; Add your additional platform online services below NativePlatformService=Steam
디폴트 OSS와 호환되는 넷 ID 타입이 무엇인지 커뮤니케이션합니다.
EOS 및 EOS 플러스가 기본 OSS인 경우에만 이렇게 설정하면 됩니다.
C++[/Script/OnlineSubsystemUtils.OnlineEngineInterfaceImpl] +CompatibleUniqueNetIdTypes=EOS +CompatibleUniqueNetIdTypes=EOSPlus
EOS 및 EOS Plus 클라이언트 간의 커뮤니케이션을 지원합니다.
예를 들어, Steam과 같은 다른 온라인 플랫폼으로 로그인하여 EOS 세션을 호스팅하는 EOS 플러스 플레이어가 있고, EOS(EOS 플러스 아님) 클라이언트가 전자의 EOS 세션에 참여하는 상황이라고 가정해 보겠습니다. 순수 EOS 클라이언트는 EOS Plus 넷 ID가 EOS로 올바르게 라우팅되고 EOS 넷 ID로 비직렬화되도록 해야 하므로 이러한 매핑이 필요합니다. 이
MappedUniqueNetIdTypes환경설정은 이전 단계의 환경설정과 같은 환경설정 섹션에 추가됩니다.C++[/Script/OnlineSubsystemUtils.OnlineEngineInterfaceImpl] MappedUniqueNetIdTypes=(("EOSPlus","EOS"))
다음은 위에 설명된 모든 EOS Plus 환경설정 세팅입니다.
[OnlineSubsystemEOSPlus]
bEnabled=true
[OnlineSubsystem]
DefaultPlatformService=EOSPlus
NativePlatformService=Steam
[/Script/OnlineSubsystemUtils.OnlineEngineInterfaceImpl]
+CompatibleUniqueNetIdTypes=EOS
+CompatibleUniqueNetIdTypes=EOSPlus
OSS EOS가 아티팩트를 찾는 방법
시작 시 OSS EOS에 사용할 특정 아티팩트를 선택하려면, 언리얼 엔진 명령줄을 통해 엔진 환경설정에 지정된 아티팩트를 찾거나 특정 아티팩트를 디폴트로 지정하는 여러 가지 세팅을 지정해야 합니다. UE 5.5부터는 명령줄에서 샌드박스 ID와 디플로이 ID(-epicsandboxid 및 -epicdeploymentid 실행인자를 통해 전달)로서 전달되는 모든 값을 항상 사용합니다. 전에는 이러한 값을 아티팩트 환경설정 배열에서 일치하는 항목을 조회하는 데만 사용했습니다. 환경설정 배열에서 어떤 아티팩트 항목이 발견되더라도 명령줄 샌드박스 및 디플로이 ID는 항상 사용됩니다.
이 동작은 다음 단계를 통해 간략하게 살펴볼 수 있습니다.
선호도가 높은 순서대로
ArtifactName을 다음 값으로 정의합니다.-EOSArtifactNameOverride=<...>-EpicApp=<...>엔진 환경설정의
DefaultArtifactName
선호도가 높은 순서대로
SandboxId를 다음 값으로 정의합니다.-EpicSandboxIdOverride=<...>-EpicSandboxId=<...>지정되지 않음
선호도가 높은 순서대로
DeploymentId를 다음 값으로 정의합니다.-EpicDeploymentIdOverride=<...>-EpicDeploymentId=<...>지정되지 않음
SandboxId와DeploymentId가 지정된 경우,ArtifactName,SandboxId,DeploymentId모두 일치하는 아티팩트를 검색합니다.4단계가 실패하거나 실행되지 않았지만
SandboxId는 지정된 경우,ArtifactName및SandboxId와 일치하는 아티팩트를 검색합니다.5단계가 실패하거나 실행되지 않은 경우,
ArtifactName과 일치하는 아티팩트를 검색합니다.6단계가 실패한 경우, 빈
ArtifactName이 있는 아티팩트를 검색합니다.7단계가 실패한 경우, 아티팩트를 찾을 수 없으므로 오류를 보고합니다.
아티팩트 발견 시
선호도가 높은 순서대로
SandboxId에 다음 값을 사용합니다.지정된 경우, 2단계의 값을 사용합니다.
4~7단계 중 하나에서 찾은 아티팩트 항목의 값을 사용합니다.
선호도가 높은 순서대로
DeploymentId에 다음 값을 사용합니다.지정된 경우, 3단계의 값을 사용합니다.
4~7단계 중 하나에서 찾은 아티팩트 항목의 값을 사용합니다.
환경설정 아티팩트 배열에서 특정 ArtifactName, SandboxId, DeploymentId 조합에 특정 아티팩트 항목을 제공할 수 있습니다. 이는 각 조합마다 ClientId 및/또는 EncryptionKey를 다르게 하려는 경우에 유용합니다. 반면에 항상 사용하려는 ClientId를 설정하려면 환경설정 아티팩트 배열의 단일 아티팩트 항목에 빈 ArtifactName을 제공하면 됩니다. 그러면 위의 동작이 항상 아티팩트 이름이 비어 있는 아티팩트를 강제로 사용합니다.
로그인
온라인 ID 인터페이스에서 로그인 프로세스를 시작하는 메서드는 두 가지입니다.
자동 로그인: 로컬 사용자 번호를 전달해야 합니다.
로그인:
FOnlineAccountCredentials오브젝트를 사용해야 합니다.
다음 섹션은 OSS EOS에서 자동 로그인 또는 로그인을 사용하여 사용자를 로그인하도록 하는 방법에 대해 설명합니다.
OSS EOS로 로그인
이 로그인 방법을 사용하려면 유효한 로컬 사용자 번호를 제공하는 것 외에도 FOnlineAccountCredentials 오브젝트를 전달해야 합니다. 이 클래스에는 3개의 항목이 있습니다.
유형(Type)
ID
토큰
로그인 방법
이 3개의 필드는 값에 따라 OSS EOS가 어떤 인증 메서드를 사용할지 가리킵니다. 다음 섹션은 사용 가능한 여러 인증 유형을 설정하는 각 방법의 예시를 제공합니다.
AccountPortal
개발자
ExchangeCode
AccountPortal
Type:
AccountPortalId:
Token:
계정 포털(Account Portal)은 EOS 개발자 인증 툴(Dev Auth Tool)이 필요 없고 애플리케이션을 에픽게임즈 런처에서 실행할 필요도 없으므로 가장 범용적인 로그인 방법입니다.
이 메서드의 경우, EOS SDK 버전 1.15 이상을 사용 중이라면 로그인 호출 실행 시 게임 오버레이 UI가 나타납니다. 게임 오버레이가 활성화되어 있지 않은 경우에는 브라우저 창이 열립니다. 사용자는 메시지가 나타나면 에픽 계정 정보를 입력해야 합니다. 사용자가 에픽게임즈에 이미 로그인한 경우, 사용자는 요청되는 제품의 액세스 범위를 수락해야 합니다.
크리덴셜이 사용자에 의해 게임 내 오버레이 UI나 브라우저에서 제공되기 때문에, Id 또는 토큰을 제공할 필요가 없습니다.
개발자
Type:
DeveloperId:
localhost:<PORT>PORT는 개발 인증 툴에 지정된 포트입니다.
Token:
<CREDENTIALS_NAME>CREDENTIALS_NAME은 개발 인증 툴에 지정되어 있습니다.
개발자 메서드는 데스크톱 플랫폼에서 OSS EOS로 개발할 경우 권장되는 메서드입니다. 이 메서드는 Dev Auth 툴을 실행하지 않아도 됩니다. 개발자 인증 툴에 대한 자세한 내용은 에픽 온라인 서비스 사이트의 다음 문서를 참조하세요.
개발 인증 툴을 설정한 다음에는 위에 표시된 대로 FOnlineAccountCredentials 오브젝트의 Id 및 Token 필드를 채워야 하므로 사용하는 포트(Port) 및 크리덴셜 이름(Credentials Name)을 기억해 두어야 합니다. 로그인 호출이 실행되면 해당 로그인 메서드가 실행되며 사용자에게 에픽게임즈 계정 정보 입력을 요구할 것입니다. 사용자가 에픽게임즈에 이미 로그인한 경우, 사용자는 요청되는 제품의 액세스 범위를 수락해야 합니다. 이 단계는 사용자가 처음 로그인할 때만 발생합니다.
ExchangeCode
Type:
ExchangeCodeId:
Token:
<EXCHANGE_CODE><EXCHANGE_CODE>는 에픽게임즈 런처에서 제공합니다.
교환 코드 메서드는 에픽게임즈 런처에 의해 제공되는 교환 코드가 필요하므로, 애플리케이션이 에픽게임즈 런처에서 실행될 때만 사용해야 합니다. 이 메서드는 Dev Auth 툴을 실행할 필요가 없으며, 게임의 출시 버전에서 사용해야 합니다.
에픽게임즈 런처가 교환 코드 토큰을 제공하기 때문에 Id나 토큰을 제공하지 않아도 됩니다.
로그인 성공
세 가지 메서드 중 하나가 성공적으로 완료될 경우, 로그인 프로세스에서는 필요한 EOS 알림 서비스(로그인 상태, 친구, 현재상태 업데이트, 인증 새로고침)를 전부 등록하고 종료하며, 다음과 같은 등록된 델리게이트를 트리거합니다.
OnLoginComplete: 로그인 성공 여부와 새로 인증된 사용자의UniqueNetId가 포함된 파라미터입니다.OnLoginStatusChanged: 이전 로그인 상태와 현재 로그인 상태, 새로 인증된 사용자의UniqueNetId가 포함된 파라미터입니다.
OSS EOS로 자동 로그인
온라인 서브시스템 EOS에서 자동 로그인 메서드를 사용하려면, 시작 시 게임의 실행 파일에 추가 명령줄 실행인자를 전달해야 합니다. 이러한 실행인자는 일반적인 경우 로그인 방법에 전달되는 FOnlineAccountCredentials 오브젝트의 세 필드에 해당합니다.
위 로그인의 파라미터는 다음과 같은 명령줄에 대응합니다.
| FOnlineAccountCredentials 변수 | 명령줄 실행인자 |
|---|---|
|
|
|
|
|
|
로그인 방법
이 섹션은 이전 섹션에서 설명한 로그인 메서드 3개에 모두 필요한 파라미터의 예시를 포함하고 있습니다.
AccountPortal
-AUTH_TYPE="accountportal"개발자
-AUTH_TYPE="developer" -AUTH_LOGIN="localhost:<PORT>" -AUTH_PASSWORD="<NAME_IN_DEV_AUTH_TOOL>"이 명령줄의 실행인자는 다음과 같습니다.
<PORT>는 개발자 인증 툴에서 환경설정한 포트입니다.<NAME_IN_DEV_AUTH_TOOL>은 개발자 인증 툴에서 선택한 크리덴셜 이름입니다.
ExchangeCode
-AUTH_TYPE="exchangecode" -AUTH_PASSWORD="<EXCHANGE_CODE_FROM_LAUNCHER>"이 명령줄의 실행인자는 다음과 같습니다.
<EXCHANGE_CODE_FROM_LAUNCHER>는 에픽게임즈 런처의 교환 코드입니다.
외부 계정 크리덴셜을 사용한 로그인 흐름
이 섹션은 외부 계정을 사용하는 OSS EOS 로그인 흐름을 설명합니다. 외부 계정으로 로그인하려면 EOS Plus를 활성화해야 합니다.
에픽 계정 서비스와 연결 인터페이스(EOS_Connect)가 모두 활성화된 경우, Steam과 같은 EOS가 아닌 외부 플랫폼의 계정 크리덴셜을 사용하여 EOS_Auth_Login이 호출됩니다. 이 로그인이 유효하지 않은 사용자 오류(EOS_InvalidUser)로 실패하면, EOS_Auth_LinkAccount가 호출됩니다. 이 호출은 사용자가 웹 브라우저 또는 유저 인터페이스 오버레이를 통해 에픽게임즈 계정에 로그인하라는 메시지를 표시합니다. 이 로그인은 사용자의 에픽게임즈 계정을 EOS가 아닌 외부 계정에 연결합니다.
계정 연동 프로세스에 대한 자세한 내용은 아래의 알려진 문제를 참조하세요.
에픽 계정 서비스는 활성화되어 있지 않지만 연결 인터페이스는 활성화된 경우, 외부 계정 크리덴셜을 사용하여 EOS_Connect_Login이 호출됩니다.
인증 인터페이스(EOS_Auth)와 연결 인터페이스 모두에 ID 제공자 환경설정이 필요합니다. 원하는 외부 플랫폼을 사용하려면 EOS 프로젝트 개발자 포털의 ID 제공자 목록에 해당 외부 플랫폼을 추가합니다. ID 제공자에 플랫폼을 올바르게 환경설정했다면, EOS 인증이 성공적으로 완료되고 모든 EOS 게임 피처에 대한 액세스가 잠금 해제됩니다. 자세한 내용은 ID 제공자 관리에 대한 에픽 개발자 리소스 문서를 참조하세요.
외부 계정 로그인을 사용하려면 EOS Plus를 활성화해야 합니다.
에픽 계정 서비스 사용하기
이 세팅을 활성화한 경우, 크로스 플랫폼 사용자 ID 사용하기(Using Cross Platform User IDs)도 활성화된 것처럼 로그인 프로세스를 계속 진행합니다. 외부 인증 토큰은 로그인 방법에 필요한 크리덴셜 세트에 추가되며, EOS는 EOS_Auth_Login 메서드를 호출하여 인증을 시도합니다.
인터페이스
이 섹션은 온라인 서브시스템 EOS 플러그인에서 구현되는 인터페이스에 대한 추가 정보를 제공합니다. 각 인터페이스에 대한 자세한 정보는 온라인 서브시스템 문서를 참고하시기 바랍니다. OSS EOS 플러그인은 다음 EOS SDK 인터페이스를 지원합니다.
지원되는 인터페이스
| OSS EOS 인터페이스 | EOS SDK 인터페이스 | Description |
|---|---|---|
사용자 업적을 잠금 해제하고 상태를 확인합니다. | ||
아이템을 구매하고 해당 아이템의 소유권을 검증합니다. | ||
유저 인터페이스 오버레이를 표시합니다. | ||
로그인 및 로그아웃을 포함하여 사용자 계정을 검증합니다. | ||
순위표를 생성하고 가져옵니다. | ||
친구들에게 현재 활동을 알립니다. | ||
세션 기반 매치메이킹을 관리합니다. | ||
친구 목록에 플레이어를 추가하거나 제거합니다. 친구 목록을 가져옵니다. | ||
통계(Stats) | 사용자 통계를 수집하고 쿼리합니다. | |
타이틀 파일(Title File) | 클라우드에서 암호화된 타이틀 데이터를 다운로드합니다. | |
사용자 디스플레이 정보에 액세스합니다. |
세션
버킷 ID
OSS EOS 세션에서 BucketId는 세션 검색을 위한 최상위 게임별 필터링 정보입니다. 세션 BucketId에 대한 자세한 내용은 세션에 대한 EOS 문서를 참조하세요.
FOnlineSessionSettings::Settings에 추가된 커스텀 어트리뷰트를 사용하여 프로젝트에 필요한 어떤 값으로든 BucketId를 설정할 수 있습니다. 설정하려면 프로젝트 코드에 다음을 추가하세요.
SessionSettings.Settings.Add(OSSEOS_BUCKET_ID_ATTRIBUTE_KEY, FOnlineSessionSetting(FString(TEXT("BUCKET_ID_PLACEHOLDER")), EOnlineDataAdvertisementType::ViaOnlineService));설명은 다음과 같습니다.
BUCKET_ID_PLACEHOLDER는 사용하려는 버킷 ID입니다.
이 커스텀 BucketId도 비슷한 방식으로 모든 세션 검색 매개변수에 추가해야 합니다.
통계(Stats)
통계 이름
OSS EOS는 모든 통계 이름(Stats Name)을 EOS로 전달하기 전에 대문자로 바꿉니다. EOS 개발자 포털에서 프로젝트를 환경설정할 경우, OSS EOS와 호환되도록 모든 통계 이름을 대문자로 바꾸세요.
알려진 문제
계정 연동
로그인 프로세스 도중 계정 연결은 현재 Steam 플랫폼에서만 진행할 수 있으며, 다른 플랫폼에서 로그인을 시도하면 다음 인증 오류가 로그에 기록됩니다.
LogEOSSDK: Warning: LogEOS: Error response received from backend. ServiceName=[OAuth], OperationName=[TokenGrant], Url=[<Redacted>], HttpStatus=[400], ErrorCode=[errors.com.epicgames.account.oauth.authorization_pending], NumericErrorCode=[1012], ErrorMessage=[The authorization server request is still pending as the end user has yet to visit and enter the verification code.], CorrId=[...]해당 기능은 향후 릴리즈에서 이용할 수 있게 될 예정입니다. 한편, 에픽게임즈 계정 세팅(Account Settings)의 연결(Connections) 섹션에 있는 계정(Accounts) 탭을 통해 수동으로 계정을 연동할 수 있습니다.
연동 프로세스에 사용된 에픽 계정이 OSS EOS로 로그인하기 섹션에 설명된 대로 애플리케이션 액세스 범위를 허용해야 하며, 그렇지 않으면 로그에 다음과 같은 기타 오류가 표시됩니다.
LogEOSSDK: Warning: LogEOS: Error response received from backend. ServiceName=[OAuth], OperationName=[TokenGrant], Url=[<Redacted>], HttpStatus=[400], ErrorCode=[errors.com.epicgames.oauth.scope_consent_required], NumericErrorCode=[58005], ErrorMessage=[The user has not consented to required scopes.], CorrId=[...]계정이 연결되고, 액세스 범위가 수락되었으며, EOS 인증이 올바른 경우, 로그인 프로세스가 성공적으로 끝나고 애플리케이션에서 EAS의 모든 추가 기능을 이용할 수 있습니다.