Mods Overview

EOS 생태계에서 모드를 배포하고 관리하는 API에 대해 알아보세요.

2 분 소요

모드 SDK(Mod SDK) 는 고급 사용 사례에 사용할 수 있도록 게임 개발자에게 모드 마켓플레이스(Mod Marketplace) 와 상호작용하는 인터페이스를 제공하는 에픽 온라인 서비스 컴포넌트입니다. 이 문서에서는 모드 SDK의 기능, 가능한 사용 사례, API 인터페이스를 개괄적으로 설명합니다.

현재 이 기능은 데스크톱 플랫폼 및 에픽게임즈 스토어에 입점된 제품에서만 사용 가능합니다.

모드 SDK 기능

모드 설치하기

게임은 모드 마켓플레이스의 특정 모드를 설치 하라고 모드 SDK에 요청할 수 있습니다. 이 작업은 에픽게임즈 런처 에서 처리됩니다. 플레이어의 라이브러리 에 해당 모드가 없는 경우 자동으로 추가됩니다. 이는 비동기식 작업이며, 모드가 설치되고 준비되면 콜백 함수를 통해 게임에 알려줍니다.

모드 설치 제거하기

설치 제거 모드는 사용자의 로컬 하드 드라이브에서 설치된 모드를 제거하지만 플레이어의 라이브러리에서는 모드를 제거하지 않습니다. 이는 비동기식 작업이며, 모드가 제거되면 콜백 함수를 통해 게임에 알려줍니다.

모드 업데이트하기

업데이트 함수는 모드를 최신 버전으로 업데이트하라고 모드 SDK에 요청합니다. 이는 비동기식 작업이며, 업데이트가 완료되면 콜백 함수를 통해 게임에 알려줍니다.

모드 열거하기

모드 SDK는 모드 마켓플레이스에서 게임에 사용 가능한 모드 목록과 현재 사용자의 설치한 모드 목록을 제공할 수 있습니다. 모드 SDK API 함수 하나면 두 목록이 모두 반환됩니다. 게임이 함수 실행인자로 요청된 목록을 지정합니다. 이는 비동기식 작업이며, 데이터를 가져올 준비가 되면 콜백을 통해 게임에 알려줍니다.

가능한 사용 사례

모드 SDK를 활용할 수 있는 기능의 몇 가지 예는 다음과 같습니다.

멀티플레이어 게임 모드 재결합하기

클라이언트 게임 인스턴스가 모드를 실행하는 서버에 연결되면, 클라이언트와 서버 둘 다 모드 SDK를 사용하여 클라이언트와 서버 머신에 설치된 모드를 재결합하고 누락된 모드의 목록을 확인합니다.

서버는 설치된 모드의 목록을 가져오기 위해 모드 열거를 호출하며, 설치된 모드의 ID를 시리얼라이즈한 다음 클라이언트로 전송합니다.

클라이언트가 서버의 모드 목록을 로컬에 설치된 모드와 비교합니다. 필요한 모드 중 하나라도 누락된 경우 클라이언트가 모드 설치 함수를 호출하여 누락된 모드를 설치합니다.

인게임 모드 매니저

게임 개발자는 모드 열거, 설치, 설치 제거, 업데이트 함수를 인게임 모드 매니저처럼 활용할 수 있습니다.

열거 함수를 사용하여 타이틀과 버전이 포함된 사용 가능한 모드 및 설치된 모드의 목록을 가져오고, 설치 및 설치 제거 함수를 사용하여 게임에 모드를 추가하거나 제거하고, 업데이트 함수를 사용하여 모드를 최신 버전으로 유지할 수 있습니다.

모드 SDK API

이 섹션은 모드 SDK의 데이터 구조와 함수를 설명합니다.

모드 SDK 초기화 및 종료

EOS_Platform_Create 함수를 호출하여 일반적인 방법으로 EOS SDK를 초기화합니다. 그런 다음, EOS_Platform_GetModsInterface 함수를 호출하여 모드 SDK 핸들을 얻습니다.

데이터 구조

EOS_Mod_Identifier

EOS_Mod_Identifier 구조는 여러 스트링의 조합으로 구성되며, 이러한 스트링들이 모여 고유하게 모드를 식별합니다. 이 구조에는 모드 타이틀/버전 등의 모드 메타데이터도 포함됩니다.

ApiVersion 필드를 EOS_MOD_IDENTIFIER_API_LATEST 로 설정합니다.

EOS_Mods_InstallModOptions

EOS_Mods_InstallModOptions 구조는 설치할 모드를 설명합니다. bRemoveAfterExit 필드는 게임 종료 후 모드를 제거하라고 모드 SDK에 지시합니다. 모드를 설치 제거해도 플레이어의 라이브러리에 있는 모드는 제거되지 않습니다.

ApiVersion 필드를 EOS_MODS_INSTALLMOD_API_LATEST 로 설정합니다.

EOS_Mods_InstallCallbackInfo

EOS_Mods_InstallModCallbackInfo 구조에는 요청된 모드에 대한 정보와 설치 결과 코드가 포함됩니다.

EOS_Mods_UninstallModOptions

EOS_Mods_UninstallModOptions 구조에는 모드 설치 제거 함수의 파라미터가 포함됩니다.

ApiVersion 필드를 EOS_MODS_UNINSTALLMOD_API_LATEST 로 설정합니다.

EOS_Mods_UninstallModCallbackInfo

EOS_Mods_UninstallModCallbackInfo 구조는 EOS_Mods_OnUninstallModCallback 콜백의 실행인자 유형입니다. 이 구조에는 설치 제거된 모드의 정보가 포함됩니다.

EOS_Mods_EnumerateModsOptions

EOS_Mods_EnumerateModsOptions 구조는 모드 열거형 쿼리를 정의합니다. Game 필드는 게임 식별자를 가리킵니다. Type 필드는 열거할 목록 유형을 정의합니다.

ApiVersion 필드를 EOS_MODS_ENUMERATEMODS_API_LATEST 로 설정합니다.

EOS_Mods_EnumerateModsCallbackInfo

EOS_Mods_EnumerateModsCallbackInfo 구조는 모드 열거형 콜백 함수의 실행인자 유형을 정의합니다. 여기에는 요청된 열거형의 정보가 포함됩니다. 구조의 데이터로 EOS_Mods_CopyModInfo 함수를 호출하여 모드 목록 사본을 가져옵니다.

EOS_Mods_CopyModInfoOptions

EOS_Mods_CopyModInfoOptions 구조에는 열거 작업이 성공하면 받게 될 모드 목록 정보가 포함됩니다. Type 필드를 EOS_Mods_EnumerateMods 함수를 호출하는 데 사용한 값과 동일한 값으로 설정합니다.

ApiVersion 필드를 EOS_MODS_COPYMODINFO_API_LATEST 값으로 설정합니다.

EOS_Mods_ModInfo

EOS_Mods_ModInfo 구조에는 설치된 모드 또는 사용 가능한 모든 모드의 정보가 포함됩니다. EOS_Mods_ModInfo 의 사용을 마친 후 EOS_Mods_ModInfo_Release 함수를 호출하여 모드 목록 데이터에 할당된 메모리를 릴리즈합니다.

ApiVersion 필드를 EOS_MODS_MODINFO_API_LATEST 값으로 설정합니다.

EOS_Mods_UpdateModOptions

EOS_Mods_UpdateModOptions 구조에는 업데이트할 모드의 정보가 포함됩니다.

ApiVersion 필드를 EOS_MODS_UPDATEMOD_API_LATEST 로 설정합니다.

EOS_Mods_UpdateCallbackInfo

EOS_Mods_UpdateModCallbackInfo 구조는 모드 SDK가 모드 업데이트 작업을 마치면 EOS_Mods_OnUpdateModCallback 콜백에 전달되는 실행인자의 데이터 유형을 정의합니다.

열거형

EOS_EModEnumerationType

EOS_EModEnumerationType 열거형은 EOS_Mods_EnumerateMods 함수의 상수를 정의합니다. EOS_MET_INSTALLED 값은 플레이어의 PC에 설치된 모든 모드를 의미합니다. EOS_MET_AVAILABLE 값은 게임 모드 마켓플레이스에서 설치할 수 있는 모든 모드를 의미합니다.

함수

EOS_Mods_InstallMod

EOS_Mods_InstallMod 는 모드 설치를 요청하는 함수입니다. 이 함수는 모드 SDK 핸들, 모드 정보를 포함하는 EOS_Mods_InstallModOptions 구조, 콜백이 실행되면 호출자에게 반환될 데이터에 대한 포인터, 콜백 함수에 대한 포인터를 가져옵니다.

EOS_Mods_OnInstallModCallback 은 이 함수의 콜백 유형입니다.

EOS_Mods_UninstallMod

EOS_Mods_UninstallMod 함수는 모드 SDK에 모드 설치 제거를 요청합니다. 이 함수는 모드 SDK 핸들, 모드 정보를 포함하는 EOS_Mods_UninstallModOptions 구조, 콜백이 실행되면 호출자에게 반환될 데이터에 대한 포인터, 콜백 함수에 대한 포인터를 가져옵니다.

EOS_Mods_OnUninstallModCallback 은 이 함수의 콜백 유형입니다.

EOS_Mods_EnumerateMods

게임은 EOS_Mods_EnumerateMods 함수를 호출하여 모드 마켓플레이스에서 게임에 사용 가능한 모드 목록과 설치된 모드 목록을 가져옵니다.

EOS_Mods_OnEnumerateModsCallback 은 이 함수의 콜백 유형입니다.

EOS_Mods_CopyModInfo

EOS_Mods_CopyModInfo 함수는 게임 목록 데이터 구조에 대한 포인터를 가져오는 데 사용됩니다. EOS_Mods_EnumerateMods 를 호출하는 데 사용된 것과 동일한 값을 가진 EOS_Mods_CopyEnumeratedModsOptions 구조에 대한 포인터를 사용하여 함수를 호출합니다.

EOS_Mods_ModInfo_Release

EOS_Mods_ModInfo_Release 함수를 호출하여 모드 목록 데이터를 저장하는 데 사용된 메모리를 릴리즈합니다.

EOS_Mods_UpdateMod

EOS_Mods_UpdateMod 함수는 모드를 최신 버전으로 업데이트하라고 모드 SDK에 요청합니다. 업데이트를 마치면 모드 SDK가 EOS_Mods_OnUpdateModCallback 유형의 콜백을 호출합니다.

콜백

EOS_Mods_onInstallModCallback

EOS_Mods_OnInstallModCallback 콜백은 모드 설치가 완료되었을 때 모드 SDK에서 호출할 함수를 정의합니다. 이 콜백은 EOS_Mods_InstallModCallbackInfo* 유형의 실행인자 1개를 받습니다.

EOS_Mods_OnUninstallModCallback

EOS_Mods_OnUninstallModCallback 콜백은 모드 설치 제거가 완료되었을 때 모드 SDK에서 호출할 함수를 정의합니다. 이 콜백은 EOS_Mods_UninstallModCallbackInfo* 유형의 실행인자 1개를 받습니다.

EOS_Mods_OnEnumerateModsCallback

모드 목록이 준비되면 모드 SDK가 EOS_Mods_OnEnumerateModsCallback 콜백을 호출합니다. 이 콜백은 수행한 검색 정보와 함께 EOS_Mods_EnumerateModsCallbackInfo 구조에 대한 포인터를 받습니다. EOS_Mods_CopyModInfo 함수를 호출하여 모드 목록 데이터의 사본을 가져옵니다.