온라인 서브시스템

온라인 플랫폼 관련 다양한 서브시스템 개요입니다.

Windows
MacOS
Linux

Online Subsystem (온라인 서브시스템) 및 그 인터페이스는 Steam, Xbox Live, Facebook 등의 온라인 서비스 기능을 공통된 방식으로 액세스할 수 있는 방법을 제공합니다. 여러 플랫폼에 출시하거나 여러 온라인 서비스를 지원하는 게임을 만들 때, 온라인 서브시스템을 사용하면 개발자는 각 지원 서비스에 맞게 구성만 조정해 주면 됩니다.

디자인 철학

온라인 서브시스템은 근본적으로 다양한 온라인 서비스와 비동기 통신을 처리하도록 설계되었습니다. 네트워크 연결 속도, 서버 지연시간, 백엔드 서비스 실행 시간 모두 로컬 머신이 알 수 없으므로, 이 시스템과의 상호작용에 시간이 얼마나 걸릴지도 예측할 수 없습니다. 이를 처리하기 위해 온라인 서브시스템은 모든 원격 작업에 델리게이트 를 사용하여 지원되는 비동기 기능이 사용될 때마다 해당 델리게이트가 호출되도록 합니다. 요청이 완료되면 응답하는 기능을 제공하는 것은 물론, 처리 중인(in-flight) 요청을 쿼리합니다. 또 델리게이트는 준수할 단일 코드 패스를 제공하므로, 개발자가 성공 또는 실패 조건을 catch 하는 데 커스텀 코드를 작성할 필요가 없습니다.

모듈식 서비스별 인터페이스는 지원 기능끼리 그룹으로 묶습니다. 예를 들어, Friends Interface (친구 인터페이스)는 친구 목록 관련 모든 것을 처리하고, Achievements Interface (업적 인터페이스)는 업적 나열, 검사, 획득 등을 처리합니다. 지원하는 각 온라인 서비스의 각 기능 그룹에 대해 인터페이스가 존재하지만, 서비스가 지원되지 않는 특정 함수에 대해서는 단순히 false 가 반환될 수 있습니다. 이 디자인을 통해 개발자는 모든 온라인 서비스에 대해 동일한 코드를 작성할 수 있습니다.

하이 레벨에서 보다 복잡한 작업은 Online Asynchronous Task Manager (온라인 비동기 작업 관리자)를 사용하여 순차적 작업이나 다른 스레스에서 실행되는 작업을 지원합니다. 비동기 작업은 종속성을 설명하여, 관련이 없는 작업은 독립적으로 병렬 실행시키고, 순차적 작업은 순서대로 실행시킬 수 있습니다. 온라인 서브시스템 내 모든 인터페이스는 작업 일관성을 유지하기 위해 이러한 방식으로 작업을 예약합니다.

기본 구조 및 사용법

기본 모듈인 OnlineSubsystem 은 엔진에 서비스별 모듈을 정의하고 등록합니다. 초기화 도중 온라인 서브시스템은 Engine.ini 파일에 정의된 기본 온라인 서비스 모듈을 로드 시도합니다. 온라인 서비스로의 모든 액세스는 이 모듈을 통해 이루어집니다.

[OnlineSubsystem]
DefaultPlatformService=<Default Platform Identifier>

성공하면, 파라미터가 지정되지 않은 경우 정적 접근자를 통해 기본 온라인 서브시스템을 사용할 수 있습니다.

static IOnlineSubsystem* Get(const FName& SubsystemName = NAME_None)

이 함수에 대한 호출이 요청하면 부가 서비스를 로드합니다. 잘못된 식별자나 모듈 로드 실패는 관대히 null 을 반환합니다.

인터페이스

온라인 서브시스템에 포함된 인터페이스는 다음과 같습니다.

일부 인터페이스는 특정 온라인 서비스에만 존재하며, 각 서비스가 지원하는 기능에 따라 다릅니다.

인터페이스

기능 그룹 설명

Achievements

업적 - 게임의 모든 업적을 나열하고, 업적을 해제하며, 자신이 해제한 업적과 다른 사용자가 해제한 업적을 검사합니다.

External UI

외부 UI - 특정 하드웨어 플랫폼 또는 온라인 서비스에 대해 내장된 유저 인터페이스를 엽니다. 경우에 따라 이 인터페이스를 통해서만 특정 핵심 기능에 액세스를 부여하는 서비스도 있습니다.

Friends

친구 - 친구와 친구 목록 관련된 모든 것입니다. 예를 들면 친구 목록에 사용자 추가, 사용자 차단 및 해제, 최근 온라인에서 만난 플레이어 나열 등입니다.

Leaderboard

리더보드 - 온라인 리더보드를 액세스합니다. 예를 들어 자기 점수 (또는 횟수) 등록, 친구 목록이나 전 세계 플레이어 점수를 확인합니다.

Online User

온라인 사용자 - 사용자 관련 메타데이터를 수집합니다.

Presence

현재상태 - 다른 사용자에게 자신의 온라인 상태를 표시하는 방법을 설정합니다. 예를 들어 "온라인", "자리 비움", "게임 플레이 중" 등입니다.

Purchase

구매 - 게임 내 구매와 과거 구매 내역 검토입니다.

Session

세션 - 온라인 게임 세션 생성, 소멸, 관리입니다. 세션 검색과 매치메이킹 시스템도 포함됩니다.

Store

스토어 - 게임 내 구매에 사용할 수 있는 카테고리와 특정 제안을 불러옵니다.

User Cloud

유저 클라우드 - 유저 클라우드 파일 저장을 위한 인터페이스를 제공합니다.

Select Skin
Light
Dark

새로운 언리얼 엔진 4 문서 사이트에 오신 것을 환영합니다!

문서 사이트에 대한 의견을 모을 수 있는 피드백 시스템을 포함해서 여러가지 새로운 기능을 준비하고 있습니다. 아래 Documentation Feedback 포럼(영문) 또는 언리얼 엔진 네이버 공식 카페(한글) 중 편하신 곳에 의견이나 문제점을 알려 주세요.

새 시스템이 준비되면 알려 드리겠습니다.

네이버 카페
공식 포럼