Willkommen im Mod.io SDK -Repository, das mit C ++ erstellt wurde. Es ermöglicht Spieleentwickler, benutzergenerierte Inhalte in ihren Spielen zu hosten und automatisch zu installieren. Es stellt eine Verbindung zur REST -API mod.io her.
MIT/BSL-Lizenz zulässiger MIT/BSL
Async Callback-basierte Schnittstelle
Nicht blockierende IO mit einem Modell "Bring Your Own Thread"
Automatische Downloads und Updates
E -Mail / Steam / EGS / Konsolen / benutzerdefinierte SSO -Authentifizierung
MOD -Browser / Filterung
Nur-Header-, Direktvergleichs- oder statische Bibliotheksunterstützung mit C ++ 17 Compiler
Native Unreal Engine -Integration über unser dediziertes Plugin erhältlich
Plattform | Unterstützung | Compiler |
Fenster | ✔ | MSVC C ++ 2019 |
Windows (GDK) | ✔ (Kontaktieren Sie uns) | Lieferantenberater |
Nintendo Switch | ✔ (Kontaktieren Sie uns) | Lieferantenberater |
Xbox (GDK) | ✔ (Kontaktieren Sie uns) | Lieferantenberater |
PlayStation®4 | ✔ (Kontaktieren Sie uns) | Lieferantenberater |
PlayStation®5 | ✔ (Kontaktieren Sie uns) | Lieferantenberater |
Linux | ✔ | Klang 10 |
macos | ✔ | Klang 10 |
iOS | ✔ | Klang 10 |
Android | ✔ | Klang 10 |
Konfiguration | Version |
Nur Kopfzeile | C ++ 17 (Windows) |
Statische Bibliothek | C ++ 17 |
Voraussetzungen zum Kompilieren dieser SDK sind in der Erste-Start-Dokumentation aufgeführt
Es ist möglich, den Quellcode als ZIP -Datei von dieser Webseite herunterzuladen. Ein rekursiver Klon lädt jedoch alle Abhängigkeiten herunter. Daher ist der Vorschlag, Folgendes auszuführen:
git clone --recurse-submodule https://github.com/modio/modio-sdk
cd modio-sdk
Um den Mod.io SDK zu verwenden, können Sie mit der Installation mit einer der folgenden Perspektiven fortfahren:
In einem CMake -Projekt
Standalone: Nur-Header-Modus
Eigenständig: separater Kompilierungsmodus
Standalone: Statische Bibliotheksmodus
Der Mod.io SDK benötigt einen Linux -Kernel mit Unterstützung der Gliederung (v5.1 oder höher). Das IO_uring -Systemaufruf bietet asynchrone Eingangs-/Ausgangsvorgänge. Um diese Anforderung zu erfüllen und die Entwicklungstools vorzubereiten, verwenden die folgenden Befehle den "APT" -Paketmanager (getestet auf Ubuntu 20.04 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
Notiz | Wenn Sie den Release-Modus "Header_only" verwenden, enthält der Mod.io SDK MBETTLS-Header, aber die in Ihrem System installierte Bibliothek, die mit libmbedtls-dev 2.28.0 in Ubuntu getestet wurde. Der "statische" Modus enthält diese Bibliotheken im selben Ordner wie das libmodiostatic.a |
Der Mod.io SDK für die Entwicklung auf macOS / iOS benötigt Clang 10 oder GCC 10 oder höher, die in der Xcode -Installation enthalten sind. Xcode 14 oder höher wird empfohlen. Um CMake 3.20 oder Ninja 1.10 zu installieren, wird empfohlen, das Gebräu wie folgt zu verwenden:
brew install cmake ninja
iOS kompiliert standardmäßig den Simulator. Wenn Sie CMake auf ein Gerät bereitstellen müssen, fügen Sie variable MODIO_IOS_DEVICE
hinzu. Weitere Informationen finden Sie in der Plattform Readme.adoc.
Das minimale Bereitstellungsziel ist macOS 12.0. Im Falle von Mobilgeräten ist es iOS 15.0
Klonen Sie das Repository oder fügen Sie es als Submodul hinzu
Bestätigen Sie, dass your_project
CMake 3.20 oder höher verwendet
cmake_minimum_required ( VERSION 3.20)
Geben Sie die Zielplattform mit Optionen an: Win oder Linux
set (MODIO_PLATFORM WIN)
Fügen Sie das SDK -Unterverzeichnis Ihrem Projekt hinzu
add_subdirectory (<modio-sdk folder> EXCLUDE_FROM_ALL )
target_compile_features (your_project PUBLIC cxx_std_17)
Verknüpfen Sie die Bibliothek mit Ihrem Projekt
Verwenden Sie die Nur-Header-Konfiguration:
target_link_libraries (your_project PUBLIC modio)
Oder um die Konfiguration der statischen Bibliothek zu verwenden:
target_link_libraries (your_project PUBLIC modioStatic)
Um die SDK -Kompilierung zu vereinfachen, enthält die Datei CMakePresets.json
die häufigsten Konfigurationen als presets
, bei denen Ninja standardmäßig verwendet wird. Bestätigen Sie daher, dass es auf Ihrem PATH
verfügbar ist, es sei denn, Sie möchten den verwendeten CMake -Generator überschreiben.
Plattform | Voreinstellung | Ziel | System aufbauen |
Fenster | gewinnen | Freigeben | Visual Studio 2019 |
Fenster | Win-Debug | Debuggen | Visual Studio 2019 |
Fenster | win-dbginfo | Vorveröffentlichung | Visual Studio 2019 |
Linux | Linux64 | Freigeben | Ninja |
Linux | Linux64-Debug | Debuggen | Ninja |
Linux | Linux64-dbginfo | Vorveröffentlichung | Ninja |
macos | macos | Freigeben | Ninja oder Xcode |
macos | macos-debug | Debuggen | Ninja oder Xcode |
macos | macos-dbginfo | Vorveröffentlichung | Ninja oder Xcode |
iOS | iOS | Freigeben | Ninja oder Xcode |
iOS | ios-debug | Debuggen | Ninja oder Xcode |
iOS | ios-dbginfo | Vorveröffentlichung | Ninja oder Xcode |
Debug-Voreinstellungen haben das -debug
Suffix und Release-with-Debug-Info ist -dbginfo
. Wenn Sie die SDK in der Debug-Konfiguration erstellen möchten, geben Sie den Namen an, z. B. win-debug
als voreingestellter Name.
So erstellen Sie das SDK mithilfe der Standard -Erstell- und Installationsverzeichnisse:
cmake -S <modio-sdk folder> --preset=win
Dadurch wird der Ninja-Generator verwendet, um ein Ninja-Build-System im <modio-sdk folder>/out/build/win
zu erstellen. Es wird die kompilierten Bibliotheken/Header in <modio-sdk folder>/out/install/win
installiert. Um die Beispiele zu erstellen, appendieren Sie `-dmodio_build_examples = true`.
cmake --build <modio-sdk folder>/out/build/win
Dieser Schritt kompiliert die SDK als statische Bibliothek.
cmake --install <modio-sdk folder>/out/build/win
Dies erzeugt einen Ordner <modio-sdk folder>/out/install/win
mit den folgenden:
header_only
- Verzeichnis mit der nur Header -Version des SDK
source
- Verzeichnis mit den Implementierungsdateien des SDK zur Verwendung im "Split -Compilation" -Modus
static
- Verzeichnis mit den statischen Bibliotheksbinärdateien und der erforderlichen Öffentlichkeit umfassen Header
Notiz | Wenn Sie den Mod.io -SDK mit verschiedenen Architekturen zusammenstellen, können Sie den Ordner "Voreingestellter Kompilierung" ändern, indem Sie den Pfad "cmake_install_prefix" ändern. |
Fügen Sie einfach jedes der Unterverzeichnisse in header_only
zu Ihren Einschlussesverzeichnissen hinzu. In Ihrer Quelldatei in your_project
fügen Sie #include "modio/ModioSDK.h"
hinzu
Wenn Sie den Quellcode bevorzugen, fügen Sie die cpp
Dateien im source
zusammen mit dem include
im nur Header-Modus hinzu. Sie müssen den Compiler -Definitionen Ihres Projekts MODIO_SEPARATE_COMPILATION
hinzufügen. In Ihrer Quelldatei in your_project
fügen Sie #include "modio/ModioSDK.h"
hinzu
Fügen Sie das inc
-Verzeichnis in static
include
hinzu und verlinken Sie sie mit dem statischen Binärdatum im lib
-Ordner. Sie müssen den Compiler -Definitionen Ihres Projekts MODIO_SEPARATE_COMPILATION
hinzufügen. In Ihrer Quelldatei in your_project
fügen Sie #include "modio/ModioSDK.h"
hinzu
Wenn Sie ein anderes Build -System verwenden oder Projektdateien für die Aufnahme in eine vorhandene Visual Studio -Lösung generieren möchten, können Sie den Standard -CMake -Generator überschreiben. Beispielsweise ist es möglich, eine MSBuild-basierte Visual Studio-Lösung zu verwenden:
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
Beachten Sie, dass Sie bei der Verwendung des Visual Studio -Codegenerators beispielsweise auch die Zielkonfiguration (dh Release oder Debugug) übergeben müssen:
cmake -S <modio-sdk folder> --preset=win -G "Visual Studio 16 2019" --Config=Release
Wenn Sie den clang
-Compiler mit Visual Studio verwenden, überprüfen Sie den CLANG -Compiler in Visual Studio für weitere Details
Wenn Sie eine benutzerdefinierte Version der FMT -Bibliothek haben, können Sie die Verknüpfungsstufe ändern, die MODIO_USE_CUSTOM_FMT
definiert werden. Dadurch wird das CMake -Build -System definiert, um eine benutzerdefinierte Version der Bibliothek zu verwenden. Außerdem müssen Sie MODIO_CUSTOM_FMT_PATH
auf dem Systempfad definieren, der die zu verwendende FMT -Bibliothek enthält.
Das an MODIO_CUSTOM_FMT_PATH
angegebene Verzeichnis sollte einen cmakelists.txt enthalten, der die Ziele fmt
und/oder fmt-header-only
enthüllt.
Standardmäßig verbraucht der SDK das fmt-header-only
Ziel. Definieren Sie MODIO_CUSTOM_FMT_STATIC
true
dies zu überschreiben, und fordern Sie stattdessen den Verbrauch des fmt
-Zielbibliotheksziels an.
Wenn Sie den Mod.io SDK kompilieren und eine X64 -Bibliothek in Windows benötigen, bestätigen Sie die Verwendung der Eingabeaufforderung "X64 Native Tools" für VS 2019, die standardmäßig den X64 -Compiler verwendet. Um zu überprüfen, ob die statische oder gemeinsame Bibliothek mit X64 -Architektur zusammengestellt wurde, können Sie den Befehl "Dumpbin" verwenden:
dumpbin outbuildwinmodiomodioStatic.lib /headers
Suchen Sie dann nach der Bestätigung wie folgt:
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
In der Dokumentation für Erste Schritte finden Sie eine Aufschlüsselung der Konzepte und Nutzung des Mod.io SDK, einschließlich:
SDK -Initialisierung und Ereignisschleife
Authentifizierung
MOD -Surfen
MOD -Abonnementverwaltung
Wenn Sie Unterstützung bei den Genehmigungen der 1. Partei benötigen oder eine private UGC-Lösung für weiße Label benötigen. Kontaktieren Sie uns, um zu diskutieren.
Unser SDK ist öffentlich und Open Source. Spieleentwickler können es direkt nutzen, um Mods in ihren Spielen zu unterstützen oder es für ihre maßgeschneiderte Verwendung zu unterstützen. Wenn Sie zum SDK beitragen möchten, senden Sie eine Pull -Anfrage mit Ihren empfohlenen Änderungen zur Überprüfung.
Mod.io bietet eine offene API für benutzergenerierte Inhalte. Sie können gerne sehen, Fork ansehen und zu anderen von uns veröffentlichten Codebasen beitragen.