Bienvenue dans le référentiel SDK Mod.io, construit à l'aide de C ++. Il permet aux développeurs de jeux d'héberger et d'installer automatiquement du contenu généré par l'utilisateur dans leurs jeux. Il se connecte à l'API Mod.io REST.
MIT / BSL-licence permissive
Interface basée sur un rappel asynchrone
IO non bloquant avec un modèle «Bring Your Own Thread»
Téléchargements et mises à jour automatiques
Email / Steam / EGS / Consoles / Authentification SSO personnalisée
Navigation / filtrage du mod
En-tête uniquement, compilation directe ou support de bibliothèque statique avec le compilateur C ++ 17
Intégration indigène du moteur Unreal disponible via notre plugin dédié
Plate-forme | Soutien | Compilateur |
Fenêtre | ✔ | MSVC C ++ 2019 |
Windows (GDK) | ✔ (contactez-nous) | Fournis par le vendeur |
Interrupteur Nintendo | ✔ (contactez-nous) | Fournis par le vendeur |
Xbox (GDK) | ✔ (contactez-nous) | Fournis par le vendeur |
PlayStation®4 | ✔ (contactez-nous) | Fournis par le vendeur |
PlayStation®5 | ✔ (contactez-nous) | Fournis par le vendeur |
Linux | ✔ | Clang 10 |
macos | ✔ | Clang 10 |
ios | ✔ | Clang 10 |
Androïde | ✔ | Clang 10 |
Configuration | Version |
En-tête uniquement | C ++ 17 (Windows) |
Bibliothèque statique | C ++ 17 |
Les pré-réquisites pour compiler ce SDK sont répertoriées dans la documentation du démarrage
Il est possible de télécharger le code source en tant que fichier zip à partir de cette page Web. Cependant, un clone récursif télécharge toutes les dépendances. Par conséquent, la suggestion est d'effectuer ce qui suit:
git clone --recurse-submodule https://github.com/modio/modio-sdk
cd modio-sdk
Pour utiliser le SDK mod.io, vous pouvez procéder à l'installation en utilisant l'une des perspectives suivantes:
À l'intérieur d'un projet CMake
Halan-standone: mode d'en-tête uniquement
Halandise: mode de compilation séparé
Standalone: mode de bibliothèque statique
Le SDK Mod.io nécessite un noyau Linux avec le support de Libury (v5.1 ou version ultérieure). Les appels du système IO_URING fournissent des opérations d'entrée / sortie asynchrones. Pour répondre à cette exigence et préparer les outils de développement, les commandes suivantes utilisent le gestionnaire de package "APT" (testé sur 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
Note | Si vous utilisez le mode de libération "header_only", le SDK Mod.io comprend des en-têtes mbedtls, mais nécessite la bibliothèque installée dans votre système, qui a été testé avec LibMbedTls-Dev 2.28.0 dans Ubuntu. Le mode "statique" comprend ces bibliothèques dans le même dossier que le libmodiostatique.a |
Le SDK mod.io pour le développement sur macOS / IOS nécessite Clang 10 ou GCC 10 ou version ultérieure, qui vient inclus dans l'installation Xcode. Xcode 14 ou version ultérieure est recommandé. Pour installer Cmake 3.20 ou Ninja 1.10, il est recommandé d'utiliser Brew comme suit:
brew install cmake ninja
iOS compile par défaut du simulateur. Si vous devez déployer sur un périphérique, ajoutez la variable MODIO_IOS_DEVICE
sur CMake. Vérifiez la documentation dans la plateforme Readme.adoc pour plus de détails.
L'objectif de déploiement minimum est MacOS 12.0. En cas de mobile, c'est iOS 15.0
Cloner le référentiel ou l'ajouter en sous-module
Confirmez your_project
utilise Cmake 3.20 ou version ultérieure
cmake_minimum_required ( VERSION 3.20)
Spécifiez la plate-forme cible, avec des options: Win ou Linux
set (MODIO_PLATFORM WIN)
Ajoutez le sous-répertoire SDK à votre projet
add_subdirectory (<modio-sdk folder> EXCLUDE_FROM_ALL )
target_compile_features (your_project PUBLIC cxx_std_17)
Liez la bibliothèque à votre projet
Pour utiliser la configuration de l'en-tête uniquement:
target_link_libraries (your_project PUBLIC modio)
Ou pour utiliser la configuration de la bibliothèque statique:
target_link_libraries (your_project PUBLIC modioStatic)
Pour simplifier la compilation SDK, le fichier CMakePresets.json
comprend les configurations les plus courantes en tant que presets
qui utilisent Ninja par défaut. Par conséquent, confirmez qu'il est disponible sur votre PATH
, sauf si vous souhaitez remplacer le générateur CMake utilisé.
Plate-forme | Prérégler | Cible | Système de construction |
Fenêtre | gagner | Libérer | Visual Studio 2019 |
Fenêtre | win-debug | Déboguer | Visual Studio 2019 |
Fenêtre | win-dbginfo | Pré-version | Visual Studio 2019 |
Linux | linux64 | Libérer | Ninja |
Linux | linux64-debug | Déboguer | Ninja |
Linux | linux64-dbginfo | Pré-version | Ninja |
macos | macos | Libérer | Ninja ou xcode |
macos | macos-debug | Déboguer | Ninja ou xcode |
macos | macOS-dbginfo | Pré-version | Ninja ou xcode |
ios | ios | Libérer | Ninja ou xcode |
ios | ios-debug | Déboguer | Ninja ou xcode |
ios | iOS-dbginfo | Pré-version | Ninja ou xcode |
Debug Presets ont le suffixe -debug
, et la libération avec-debug-info est -dbginfo
. Si vous souhaitez créer le SDK dans la configuration de débogage, spécifiez le nom, par exemple win-debug
comme nom prédéfini.
Pour construire le SDK en utilisant les répertoires de construction et d'installation par défaut:
cmake -S <modio-sdk folder> --preset=win
Cela utilisera le générateur Ninja pour créer un système de construction Ninja dans <modio-sdk folder>/out/build/win
. Il installe les bibliothèques / en-têtes compilés vers <modio-sdk folder>/out/install/win
. Pour créer les exemples, ajoutez `-dmodio_build_examples = true`.
cmake --build <modio-sdk folder>/out/build/win
Cette étape compile le SDK en tant que bibliothèque statique.
cmake --install <modio-sdk folder>/out/build/win
Cela produit un dossier <modio-sdk folder>/out/install/win
avec les suivants:
header_only
- Répertoire avec la version en tête uniquement du SDK
source
- Répertoire contenant les fichiers d'implémentation du SDK pour une utilisation en mode «compilation divisée»
static
- Le répertoire contenant les binaires de bibliothèque statique et le public nécessaire comprennent les en-têtes
Note | Si vous compilez le SDK mod.io à l'aide de différentes architectures, vous pouvez modifier le dossier de compilation prédéfini en modifiant le chemin "cmake_install_prefix". |
Ajoutez simplement chacun des sous-répertoires de header_only
à vos répertoires incluent. Ensuite, dans your_project
fichier source_project, ajoutez #include "modio/ModioSDK.h"
Si vous préférez compiler directement le code source, ajoutez les fichiers cpp
dans le répertoire source
, ainsi que l' include
du mode d'en-tête uniquement. Vous devez ajouter MODIO_SEPARATE_COMPILATION
aux définitions du compilateur de votre projet. Ensuite, dans your_project
fichier source_project, ajoutez #include "modio/ModioSDK.h"
Ajoutez le répertoire inc
à l'intérieur static
à votre include
et lien contre le binaire statique dans le dossier lib
. Vous devez ajouter MODIO_SEPARATE_COMPILATION
aux définitions du compilateur de votre projet. Ensuite, dans your_project
fichier source_project, ajoutez #include "modio/ModioSDK.h"
Si vous utilisez un système de construction différent ou souhaitez générer des fichiers de projet pour inclusion dans une solution Visual Studio existante, vous pouvez remplacer le générateur CMake par défaut. Par exemple, il est possible d'utiliser une solution Visual Studio basée sur MSBuild:
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
Notez que lorsque vous utilisez le générateur de code Visual Studio, vous devez également passer dans la configuration cible (IE Release ou Debug), par exemple:
cmake -S <modio-sdk folder> --preset=win -G "Visual Studio 16 2019" --Config=Release
Si vous utilisez le compilateur clang
avec Visual Studio, vérifiez le compilateur Clang Section dans Visual Studio pour plus de détails
Si vous avez une version personnalisée de la bibliothèque FMT, vous pouvez modifier l'étape de liaison définissant MODIO_USE_CUSTOM_FMT
. Cela définit les signaux du système de construction CMake pour utiliser une version personnalisée de la bibliothèque. En outre, il faut que vous définissiez MODIO_CUSTOM_FMT_PATH
sur le chemin du système qui contient la bibliothèque FMT à utiliser.
Le répertoire donné à MODIO_CUSTOM_FMT_PATH
doit contenir un cmakelists.txt qui expose les cibles fmt
et / ou fmt-header-only
.
Par défaut, le SDK consommera la cible fmt-header-only
. Définissez MODIO_CUSTOM_FMT_STATIC
pour true
pour remplacer cela et demander la consommation de la cible fmt
Static Library à la place.
Lorsque vous compilez le SDK Mod.io et que vous avez besoin d'une bibliothèque X64 dans Windows, confirmez l'utilisation de l'invite de commande des outils natifs X64 pour VS 2019 ", qui utilise par défaut le compilateur x64. Pour vérifier que la bibliothèque statique ou partagée a été compilée avec une architecture X64, vous pouvez utiliser la commande "Dumpbin":
dumpbin outbuildwinmodiomodioStatic.lib /headers
Recherchez ensuite la confirmation comme suit:
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
Veuillez consulter la documentation de démarrage pour une ventilation des concepts et de l'utilisation du Mod.io SDK, notamment:
Initialisation du SDK et boucle d'événements
Authentification
Navigation mod
Gestion de l'abonnement à mod
Si vous avez besoin d'aide pour les approbations de la première partie, ou si vous avez besoin d'une solution UGC privée et blanche. Contactez-nous pour discuter.
Notre SDK est public et open source. Les développeurs de jeux sont invités à l'utiliser directement, à ajouter la prise en charge des mods dans leurs jeux ou à le débarrasser pour leur utilisation personnalisée. Si vous souhaitez contribuer au SDK, soumettez une demande de traction avec vos modifications recommandées pour examen.
Mod.io fournit une API ouverte pour le contenu généré par l'utilisateur. Vous êtes invités à voir, à fourche et à contribuer aux autres bases de code que nous publions.