C ++を使用して構築されたMod.io SDKリポジトリへようこそ。ゲーム開発者は、ゲームにユーザーで生成されたコンテンツをホストし、自動的にインストールすることができます。 Mod.io Rest APIに接続します。
寛容なMIT/BSL-License
非同期コールバックベースのインターフェイス
「独自のスレッドを持ち込む」モデルを使用した非ブロッキングIO
自動ダウンロードと更新
電子メール / STEAM / EGS /コンソール /カスタムSSO認証
modブラウジング /フィルタリング
ヘッダーのみ、C ++ 17コンパイラによる直接的なコンピレーションまたは静的ライブラリサポート
専用のプラグインを介して利用可能なネイティブの非現実的なエンジン統合
プラットフォーム | サポート | コンパイラ |
Windows | ✔ | MSVC C ++ 2019 |
Windows(GDK) | ✔(お問い合わせ) | ベンダーが提供する |
ニンテンドースイッチ | ✔(お問い合わせ) | ベンダーが提供する |
Xbox(GDK) | ✔(お問い合わせ) | ベンダーが提供する |
PlayStation®4 | ✔(お問い合わせ) | ベンダーが提供する |
PlayStation®5 | ✔(お問い合わせ) | ベンダーが提供する |
Linux | ✔ | Clang 10 |
macos | ✔ | Clang 10 |
iOS | ✔ | Clang 10 |
アンドロイド | ✔ | Clang 10 |
構成 | バージョン |
ヘッダーのみ | C ++ 17(Windows) |
静的ライブラリ | C ++ 17 |
このSDKをコンパイルするための前提条件は、Getting Startのドキュメントにリストされています
このWebページからソースコードをzipファイルとしてダウンロードすることができます。ただし、再帰的なクローンはすべての依存関係をダウンロードします。したがって、提案は次のことを実行することです。
git clone --recurse-submodule https://github.com/modio/modio-sdk
cd modio-sdk
mod.io SDKを使用するには、次の視点のいずれかを使用してインストールを続行できます。
Cmakeプロジェクト内
スタンドアロン:ヘッダーのみのモード
スタンドアロン:個別のコンピレーションモード
スタンドアロン:静的ライブラリモード
mod.io SDKには、リバイリングサポート(v5.1以降)を備えたLinuxカーネルが必要です。 IO_URINGシステムコールは、非同期入力/出力操作を提供します。その要件を満たし、開発ツールを準備するために、次のコマンドは「APT」パッケージマネージャーを採用しています(Ubuntu 20.04フォーカルフォッサでテスト):
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ヘッダーが含まれていますが、UbuntuのLibmbedtls-Dev 2.28.0でテストされたシステムにインストールされているライブラリが必要です。 「静的」モードには、libmodiostatic.aと同じフォルダーにこれらのライブラリが含まれています。 |
MACOS / IOSの開発のためのMod.io SDKには、Xcodeインストールに含まれるClang 10またはGCC 10以降が必要です。 Xcode 14以降が推奨されます。 Cmake 3.20またはNinja 1.10をインストールするには、次のようにBrewを使用することをお勧めします。
brew install cmake ninja
iOSはデフォルトでシミュレータにコンパイルされます。デバイスに展開する必要がある場合は、変数MODIO_IOS_DEVICE
をcmakeに追加します。詳細については、プラットフォーム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
で使用できることを確認してください。
プラットフォーム | プリセット | ターゲット | システムを構築します |
Windows | 勝つ | リリース | Visual Studio 2019 |
Windows | Win Debug | デバッグ | Visual Studio 2019 |
Windows | win-dbginfo | プレリリース | Visual Studio 2019 |
Linux | Linux64 | リリース | 忍者 |
Linux | Linux64-Debug | デバッグ | 忍者 |
Linux | Linux64-dbginfo | プレリリース | 忍者 |
macos | macos | リリース | 忍者またはXcode |
macos | macos debug | デバッグ | 忍者またはXcode |
macos | 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コードジェネレーターを使用する場合、ターゲット構成(つまり、リリースまたはデバッグ)に渡す必要があることに注意してください。
cmake -S <modio-sdk folder> --preset=win -G "Visual Studio 16 2019" --Config=Release
Visual Studioでclang
コンパイラを使用している場合は、詳細についてはVisual StudioのClang Compilerをチェックしてください
FMTライブラリのカスタムバージョンがある場合は、 MODIO_USE_CUSTOM_FMT
を定義するリンクステージを変更できます。これにより、CMAKEビルドシステムを定義して、ライブラリのカスタムバージョンを使用します。また、使用するFMTライブラリを含むシステムパスにMODIO_CUSTOM_FMT_PATH
を定義する必要があります。
MODIO_CUSTOM_FMT_PATH
に指定されたディレクトリには、 fmt
および/またはfmt-header-only
ターゲットを公開する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の概念と使用法の内訳については、以下を含むGetting Documentationをご覧ください。
SDK初期化とイベントループ
認証
modブラウジング
modサブスクリプション管理
第1党の承認に関する支援が必要な場合、またはプライベートな白界のUGCソリューションが必要な場合。議論するために私たちに連絡してください。
当社のSDKは公開およびオープンソースです。ゲーム開発者は、それを直接利用したり、ゲームのMODのサポートを追加したり、カスタマイズされた使用のためにフォークしたりすることを歓迎します。 SDKに貢献したい場合は、レビューのために推奨される変更を含むプルリクエストを提出してください。
mod.ioは、ユーザー生成コンテンツのオープンAPIを提供します。リリースする他のコードベースを表示、フォーク、貢献してください。