Добро пожаловать в репозиторий MOD.IO SDK, построенный с использованием C ++. Это позволяет разработчикам игр размещать и автоматически устанавливать пользовательский контент в своих играх. Он подключается к API MOD.IO REST.
Разрешающий MIT/BSL-License
Асинхронный интерфейс на основе обратного вызова
Неблокирующий io с моделью «принести свою собственную ветку»
Автоматические загрузки и обновления
Электронная почта / Steam / EGS / Консоли / Пользовательская аутентификация SSO
Просмотр мод / фильтрация
Только заголовок, прямая компиляция или поддержка статической библиотеки с помощью C ++ 17 компилятора
Нативная интеграция нереальной двигателя доступна через наш специальный плагин
Платформа | Поддерживать | Компилятор |
Окна | ✔ | MSVC C ++ 2019 |
Windows (GDK) | ✔ (свяжитесь с нами) | Предоставляется продавцам |
Nintendo Switch | ✔ (свяжитесь с нами) | Предоставляется продавцам |
Xbox (GDK) | ✔ (свяжитесь с нами) | Предоставляется продавцам |
PlayStation®4 | ✔ (свяжитесь с нами) | Предоставляется продавцам |
PlayStation®5 | ✔ (свяжитесь с нами) | Предоставляется продавцам |
Linux | ✔ | Clang 10 |
macOS | ✔ | Clang 10 |
ios | ✔ | Clang 10 |
Android | ✔ | Clang 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 требует ядра Linux с поддержкой поднятия (v5.1 или более поздней версии). Системные вызовы 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, но требует, чтобы библиотека была установлена в вашей системе, которая была протестирована с помощью Libmbedtls-DEV 2.28.0 в Ubuntu. Режим «статического» включает эти библиотеки в той же папке, что и Libmodiostatic.a |
MOD.IO SDK для разработки на MacOS / IOS требует Clang 10 или GCC 10 или более поздней версии, которые включены в установку XCODE. Xcode 14 или позже рекомендуется. Чтобы установить CMAKE 3.20 или Ninja 1.10, рекомендуется использовать напиток следующим образом:
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
, в которых используется ниндзя по умолчанию. Поэтому подтвердите, что он доступен на вашем PATH
, если вы не хотите переопределить генератор Cmake в использовании.
Платформа | Предустановка | Цель | Система сборки |
Окна | победить | Выпускать | Visual Studio 2019 |
Окна | Win-Debug | Отлаживать | Visual Studio 2019 |
Окна | 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 с использованием различных архитектур, вы можете изменить папку PRESET COMPILATION, изменяя путь «CMAKE_INSTALL_PREFIX». |
Просто добавьте каждый из подкаталогов в header_only
к вашим каталогам. Затем в файле исходного файла your_project
добавить #include "modio/ModioSDK.h"
Если вы предпочитаете напрямую скомпилировать исходный код, добавьте файлы cpp
в каталог source
, а также в режиме « include
только из заголовка». Вы должны добавить MODIO_SEPARATE_COMPILATION
в определения компилятора вашего проекта. Затем в файле исходного файла your_project
добавить #include "modio/ModioSDK.h"
Добавьте каталог inc
внутри static
в ваш 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 вы должны также пройти в целевой конфигурации (IE выпуск или отладки), например,:
cmake -S <modio-sdk folder> --preset=win -G "Visual Studio 16 2019" --Config=Release
Если вы используете компилятор clang
с Visual Studio, проверьте раздел Clang Compiler в Visual Studio для получения дополнительной информации
Если у вас есть пользовательская версия библиотеки FMT, вы можете изменить стадию связывания, определяющую MODIO_USE_CUSTOM_FMT
. Это определение сигнализирует систему сборки Cmake для использования пользовательской версии библиотеки. Кроме того, требуется, чтобы вы определили MODIO_CUSTOM_FMT_PATH
для пути системы, который содержит библиотеку FMT для использования.
Каталог, приведенный в MODIO_CUSTOM_FMT_PATH
должен содержать CMAKELISTS.TXT, который обнажает целевые показатели только fmt
и/или fmt-header-only
.
По умолчанию SDK будет потреблять целевую fmt-header-only
. Определите MODIO_CUSTOM_FMT_STATIC
чтобы переопределить true
, чтобы переопределить это и запросить потребление целевой статической библиотеки fmt
.
Когда вы компилируете Mod.io SDK и требуется библиотека X64 в Windows, подтвердите, что используйте командную строку «x64 Native Tools Tools для VS 2019», которая по умолчанию использует компилятор X64. Чтобы проверить статическую или общую библиотеку, была составлена с архитектурой X64, вы можете использовать команду «Dimplbin»:
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 и цикл событий
Аутентификация
Мод просмотр
Мод управление подпиской
Если вам нужна помощь с разрешениями 1-й стороной, или вам требуется частное решение UGC белой марки. Свяжитесь с нами, чтобы обсудить.
Наш SDK является общедоступным и открытым исходным кодом. Разработчики игр могут использовать его напрямую, чтобы добавить поддержку модам в своих играх или раскрыть их для их индивидуального использования. Если вы хотите внести свой вклад в SDK, отправьте запрос на привлечение с рекомендуемыми изменениями для просмотра.
MOD.IO предоставляет открытый API для пользовательского контента. Вы можете просмотреть, вилка и внести свой вклад в другие кодовые базы, которые мы выпускаем.