C ++를 사용하여 구축 된 Mod.io SDK 저장소에 오신 것을 환영합니다. 이를 통해 게임 개발자는 게임에서 사용자 생성 콘텐츠를 호스팅하고 자동으로 설치할 수 있습니다. Mod.io REST API에 연결됩니다.
허용 MIT/BSL 라이센스
비동기 콜백 기반 인터페이스
'자신의 스레드를 가져 오는'모델로 비 블로킹 IO
자동 다운로드 및 업데이트
이메일 / 증기 / EGS / 콘솔 / 사용자 정의 SSO 인증
모드 브라우징 / 필터링
C ++ 17 컴파일러를 사용한 헤더 전용, 직접 컴파일 또는 정적 라이브러리 지원
전용 플러그인을 통해 사용 가능한 기본 Unreal Engine Integration
플랫폼 | 지원하다 | 컴파일러 |
창 | ✔ | MSVC C ++ 2019 |
Windows (GDK) | ✔ (문의) | 공급 업체가 제공했습니다 |
닌텐도 스위치 | ✔ (문의) | 공급 업체가 제공했습니다 |
Xbox (GDK) | ✔ (문의) | 공급 업체가 제공했습니다 |
PlayStation®4 | ✔ (문의) | 공급 업체가 제공했습니다 |
PlayStation®5 | ✔ (문의) | 공급 업체가 제공했습니다 |
리눅스 | ✔ | 클랜 10 |
마코스 | ✔ | 클랜 10 |
iOS | ✔ | 클랜 10 |
기계적 인조 인간 | ✔ | 클랜 10 |
구성 | 버전 |
헤더 전용 | C ++ 17 (Windows) |
정적 라이브러리 | C ++ 17 |
이 SDK를 컴파일하기위한 사전 반품 문서에 나열되어 있습니다.
이 웹 페이지에서 소스 코드를 zip 파일로 다운로드 할 수 있습니다. 그러나 재귀 클론은 모든 종속성을 다운로드합니다. 따라서 제안은 다음을 수행하는 것입니다.
git clone --recurse-submodule https://github.com/modio/modio-sdk
cd modio-sdk
Mod.io SDK를 사용하려면 다음 관점 중 하나를 사용하여 설치를 진행할 수 있습니다.
CMAKE 프로젝트 내부
독립형 : 헤더 전용 모드
독립형 : 별도의 컴파일 모드
독립형 : 정적 라이브러리 모드
Mod.io SDK에는 Liburing Support (v5.1 이상)가있는 Linux 커널이 필요합니다. io_uring 시스템 호출은 비동기 입력/출력 작업을 제공합니다. 해당 요구 사항을 충족하고 개발 도구를 준비시키기 위해 다음 명령은 "APT"패키지 관리자 (Ubuntu 20.04 Focal Fossa에서 테스트)를 사용합니다.
sudo apt update
sudo apt upgrade
sudo apt install llvm clang lldb make wget python3 ninja-build git unzip libsdl2-dev
# # Install Cmake
wget -q -O cmake-linux.sh https://github.com/Kitware/CMake/releases/download/v3.20.0/cmake-3.20.0-Linux-x86_64.sh
sh cmake-linux.sh -- --skip-license --prefix=/usr/
# # Install liburing-dev
wget http://mirrors.kernel.org/ubuntu/pool/main/libu/liburing/liburing-dev_0.7-3ubuntu3_amd64.deb
wget http://mirrors.kernel.org/ubuntu/pool/main/libu/liburing/liburing1_0.7-3ubuntu3_amd64.deb
sudo apt install ./liburing * deb
메모 | "Header_Only"릴리스 모드를 사용하는 경우 Mod.io SDK에는 MBEDTLS 헤더가 포함되어 있지만 시스템에 설치된 라이브러리가 필요합니다. "정적"모드에는 Libmodiostatic과 동일한 폴더에 이러한 라이브러리가 포함됩니다. |
MacOS / iOS에 대한 개발을위한 Mod.io SDK에는 Clang 10 또는 GCC 10 이상이 필요하며 Xcode 설치에 포함됩니다. Xcode 14 이상이 권장됩니다. Cmake 3.20 또는 Ninja 1.10을 설치하려면 다음과 같이 Brew를 사용하는 것이 좋습니다.
brew install cmake ninja
iOS는 기본적으로 시뮬레이터로 컴파일합니다. 장치에 배포 해야하는 경우 cmake에 변수 MODIO_IOS_DEVICE
추가하십시오. 자세한 내용은 ReadMe.adoc의 문서를 확인하십시오.
최소 배포 목표는 MACOS 12.0입니다. 모바일의 경우 iOS 15.0입니다
저장소를 복제하거나 하위 모듈로 추가하십시오
your_project
가 Cmake 3.20 이상을 사용하는지 확인하십시오
cmake_minimum_required ( VERSION 3.20)
옵션이있는 대상 플랫폼을 지정하십시오 : Win 또는 Linux
set (MODIO_PLATFORM WIN)
SDK 하위 디렉토리를 프로젝트에 추가하십시오
add_subdirectory (<modio-sdk folder> EXCLUDE_FROM_ALL )
target_compile_features (your_project PUBLIC cxx_std_17)
라이브러리를 프로젝트에 연결하십시오
헤더 전용 구성을 사용하려면 :
target_link_libraries (your_project PUBLIC modio)
또는 정적 라이브러리 구성을 사용하려면 :
target_link_libraries (your_project PUBLIC modioStatic)
SDK 컴파일을 단순화하기 위해 CMakePresets.json
파일에는 기본적으로 닌자를 사용하는 presets
으로 가장 일반적인 구성이 포함되어 있습니다. 따라서 사용중인 CMAKE 생성기를 무시하지 않는 한 PATH
에서 사용할 수 있는지 확인하십시오.
플랫폼 | 사전 설정 | 목표 | 시스템 빌드 시스템 |
창 | 이기다 | 풀어 주다 | Visual Studio 2019 |
창 | Win-Debug | 디버그 | Visual Studio 2019 |
창 | win-dbginfo | 사전 릴리스 | Visual Studio 2019 |
리눅스 | Linux64 | 풀어 주다 | 닌자 |
리눅스 | Linux64-Debug | 디버그 | 닌자 |
리눅스 | linux64-dbginfo | 사전 릴리스 | 닌자 |
마코스 | 마코스 | 풀어 주다 | 닌자 또는 Xcode |
마코스 | Macos-Debug | 디버그 | 닌자 또는 Xcode |
마코스 | Macos-dbginfo | 사전 릴리스 | 닌자 또는 Xcode |
iOS | iOS | 풀어 주다 | 닌자 또는 Xcode |
iOS | iOS-debug | 디버그 | 닌자 또는 Xcode |
iOS | iOS-dBginfo | 사전 릴리스 | 닌자 또는 Xcode |
디버그 사전 설정에는 -debug
접미사가 있으며 Debug-Info가있는 릴리스는 -dbginfo
입니다. 디버그 구성에서 SDK를 빌드하려면 이름 (예 : win-debug
을 사전 설정 이름으로 지정하십시오.
기본 빌드 및 설치 디렉토리를 사용하여 SDK를 구축하려면 :
cmake -S <modio-sdk folder> --preset=win
닌자 생성기를 사용하여 <modio-sdk folder>/out/build/win
에서 닌자 빌드 시스템을 만듭니다. 컴파일 된 라이브러리/헤더를 <modio-sdk folder>/out/install/win
에 설치합니다. 예제를 작성하려면`-dmodio_build_examples = true`를 추가하십시오.
cmake --build <modio-sdk folder>/out/build/win
이 단계는 SDK를 정적 라이브러리로 컴파일합니다.
cmake --install <modio-sdk folder>/out/build/win
이렇게하면 다음과 함께 <modio-sdk folder>/out/install/win
폴더가 생성됩니다.
header_only
SDK의 헤더 전용 버전이있는 디렉토리
source
- '분할 컴파일'모드에서 사용하기 위해 SDK의 구현 파일을 포함하는 디렉토리
static
- 정적 라이브러리 바이너리를 포함하는 디렉토리 및 필요한 대중 포함 헤더
메모 | 다른 아키텍처를 사용하여 Mod.io SDK를 컴파일하는 경우 "cmake_install_prefix"경로를 수정하여 사전 설정 컴파일 폴더를 변경할 수 있습니다. |
header_only
의 각 하위 디렉토리를 포함 디렉토리에 추가하기 만하면됩니다. 그런 다음 your_project
소스 파일에서 #include "modio/ModioSDK.h"
추가합니다.
소스 코드를 직접 컴파일하려면 헤더 전용 모드의 include
과 함께 source
디렉토리에 cpp
파일을 추가하십시오. 프로젝트의 컴파일러 정의에 MODIO_SEPARATE_COMPILATION
추가해야합니다. 그런 다음 your_project
소스 파일에서 #include "modio/ModioSDK.h"
추가합니다.
static
내부의 inc
디렉토리를 include
시키고 lib
폴더의 정적 바이너리에 링크하십시오. 프로젝트의 컴파일러 정의에 MODIO_SEPARATE_COMPILATION
추가해야합니다. 그런 다음 your_project
소스 파일에서 #include "modio/ModioSDK.h"
추가합니다.
다른 빌드 시스템을 사용하거나 기존 Visual Studio 솔루션에 포함시키기 위해 프로젝트 파일을 생성하려면 기본 CMAKE 생성기를 대체 할 수 있습니다. 예를 들어 MSBuild 기반 Visual Studio 솔루션을 사용할 수 있습니다.
cmake -S <modio-sdk folder> --preset=win -G "Visual Studio 16 2019"
cmake --build <modio-sdk folder>/out/build/win
cmake --install <modio-sdk folder>/out/build/win
Visual Studio Code Generator를 사용할 때는 대상 구성 (IE 릴리스 또는 디버그)을 전달해야합니다.
cmake -S <modio-sdk folder> --preset=win -G "Visual Studio 16 2019" --Config=Release
Visual Studio와 함께 clang
Compiler를 사용하는 경우 Visual Studio의 섹션 Clang 컴파일러를 확인하십시오. 자세한 내용은
FMT 라이브러리의 사용자 정의 버전이있는 경우 MODIO_USE_CUSTOM_FMT
정의하는 링크 스테이지를 수정할 수 있습니다. 이는 CMAKE 빌드 시스템의 신호를 정의하여 라이브러리의 사용자 정의 버전을 사용합니다. 또한 사용할 FMT 라이브러리가 포함 된 시스템 경로에 MODIO_CUSTOM_FMT_PATH
정의해야합니다.
MODIO_CUSTOM_FMT_PATH
에 제공된 디렉토리에는 fmt
및/또는 fmt-header-only
targets를 노출시키는 cmakelists.txt가 포함되어야합니다.
기본적으로 SDK는 fmt-header-only
대상을 소비합니다. MODIO_CUSTOM_FMT_STATIC
true
로 정의하여 이것을 무시하고 대신 fmt
정적 라이브러리 대상의 소비를 요청하십시오.
Mod.io SDK를 컴파일하고 Windows에서 X64 라이브러리가 필요한 경우 기본적으로 X64 컴파일러를 사용하는 "X64 Native Tools 명령 프롬프트"사용을 확인하십시오. 정적 또는 공유 라이브러리가 X64 아키텍처로 컴파일되었는지 확인하려면 "DUMPBIN"명령을 사용할 수 있습니다.
dumpbin outbuildwinmodiomodioStatic.lib /headers
그런 다음 다음과 같이 확인을 검색하십시오.
Dump of file outbuildwinmodiomodioStatic.lib
File Type: LIBRARY
FILE HEADER VALUES
8664 machine (x64)
34A number of sections
63336D7D time date stamp Wed Sep 28 10:39:09 2022
136EC file pointer to symbol table
AC9 number of symbols
0 size of optional header
0 characteristics
Mod.io SDK의 개념 및 사용법의 분석은 다음을 포함하여 시작하기 시작 문서를 참조하십시오.
SDK 초기화 및 이벤트 루프
입증
모드 브라우징
MOD 구독 관리
1 차 파티 승인에 대한 도움이 필요한 경우 개인의 흰색 라벨 UGC 솔루션이 필요한 경우. 논의하려면 저희에게 연락하십시오.
우리의 SDK는 공개 및 오픈 소스입니다. 게임 개발자는 직접 활용하거나 게임에서 모드에 대한 지원을 추가하거나 맞춤형 용도로 포크 할 수 있습니다. SDK에 기여하려면 권장 변경 사항이 검토를 위해 풀 요청을 제출하십시오.
Mod.io는 사용자가 생성 한 콘텐츠에 열린 API를 제공합니다. 우리가 출시 한 다른 코드베이스에 기여하고, 포크하고 기여할 수 있습니다.