Selamat datang di repositori mod.io SDK, dibangun menggunakan C ++. Ini memungkinkan pengembang game untuk meng-host dan secara otomatis menginstal konten yang dibuat pengguna di game mereka. Itu terhubung ke Mod.io Rest API.
MIT/BSL-license permisif
Antarmuka berbasis panggilan balik async
IO non-blocking dengan model 'bawa utas Anda sendiri'
Unduhan dan pembaruan otomatis
Email / Steam / EGS / Konsol / Otentikasi SSO Kustom
Mod Browsing / Penyaringan
Hanya header, kompilasi langsung atau dukungan pustaka statis dengan kompiler C ++ 17
Integrasi mesin asli Unreal tersedia melalui plugin khusus kami
Platform | Mendukung | Penyusun |
Windows | ✔ | MSVC C ++ 2019 |
Windows (GDK) | ✔ (hubungi kami) | Vendor disediakan |
Nintendo Switch | ✔ (hubungi kami) | Vendor disediakan |
Xbox (GDK) | ✔ (hubungi kami) | Vendor disediakan |
PlayStation®4 | ✔ (hubungi kami) | Vendor disediakan |
PlayStation®5 | ✔ (hubungi kami) | Vendor disediakan |
Linux | ✔ | Dentang 10 |
MacOS | ✔ | Dentang 10 |
iOS | ✔ | Dentang 10 |
Android | ✔ | Dentang 10 |
Konfigurasi | Versi |
Hanya header | C ++ 17 (Windows) |
Perpustakaan Statis | C ++ 17 |
Prasyarat untuk mengkompilasi SDK ini terdaftar dalam memulai dokumentasi
Dimungkinkan untuk mengunduh kode sumber sebagai file zip dari halaman web ini. Namun, klon rekursif mengunduh semua dependensi. Oleh karena itu, sarannya adalah untuk melakukan yang berikut:
git clone --recurse-submodule https://github.com/modio/modio-sdk
cd modio-sdkUntuk menggunakan mod.io SDK, Anda dapat melanjutkan dengan instalasi menggunakan salah satu perspektif berikut:
Di dalam proyek cmake
Standalone: Mode header saja
Standalone: Mode Kompilasi Terpisah
Standalone: Mode Perpustakaan Statis
Mod.io SDK membutuhkan kernel Linux dengan dukungan yang melahirkan (v5.1 atau lebih baru). Panggilan sistem IO_uring menyediakan operasi input/output asinkron. Untuk memenuhi persyaratan itu dan menyiapkan alat pengembangan, perintah berikut menggunakan manajer paket "tepat" (diuji pada 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 Catatan | Jika Anda menggunakan mode rilis "header_only", mod.io SDK menyertakan header MBEDTLS, tetapi mengharuskan perpustakaan diinstal dalam sistem Anda, yang diuji dengan libmbedtls-dev 2.28.0 di Ubuntu. Mode "statis" mencakup pustaka ini di folder yang sama dengan libmodiostatic.a |
Mod.io SDK untuk pengembangan pada macOS / iOS membutuhkan dentang 10 atau GCC 10 atau lebih, yang termasuk dalam instalasi Xcode. Xcode 14 atau lebih baru direkomendasikan. Untuk menginstal CMake 3.20 atau Ninja 1.10, disarankan untuk menggunakan minuman sebagai berikut:
brew install cmake ninja iOS dikompilasi secara default ke simulator. Jika Anda perlu menggunakan perangkat, tambahkan variabel MODIO_IOS_DEVICE ke cmake. Periksa dokumentasi di platform readme.adoc untuk detail lebih lanjut.
Target penyebaran minimum adalah MacOS 12.0. Dalam kasus seluler, itu adalah iOS 15.0
Klon repositori, atau tambahkan sebagai submodule
Konfirmasi your_project menggunakan CMake 3.20 atau lebih baru
cmake_minimum_required ( VERSION 3.20)Tentukan platform target, dengan opsi: Win atau Linux
set (MODIO_PLATFORM WIN)Tambahkan subdirektori SDK ke proyek Anda
add_subdirectory (<modio-sdk folder> EXCLUDE_FROM_ALL )
target_compile_features (your_project PUBLIC cxx_std_17)Tautkan Perpustakaan ke Proyek Anda
Untuk menggunakan konfigurasi header-only:
target_link_libraries (your_project PUBLIC modio)Atau menggunakan konfigurasi pustaka statis:
target_link_libraries (your_project PUBLIC modioStatic) Untuk menyederhanakan kompilasi SDK, file CMakePresets.json menyertakan konfigurasi yang paling umum sebagai presets yang menggunakan ninja secara default. Oleh karena itu, konfirmasi tersedia di PATH Anda kecuali Anda ingin mengganti generator cmake yang digunakan.
Platform | Preset | Target | Bangun sistem |
Windows | menang | Melepaskan | Visual Studio 2019 |
Windows | Win-debug | Debug | Visual Studio 2019 |
Windows | win-dbginfo | Pra-rilis | Visual Studio 2019 |
Linux | Linux64 | Melepaskan | Ninja |
Linux | Linux64-debug | Debug | Ninja |
Linux | Linux64-dbginfo | Pra-rilis | Ninja |
MacOS | MacOS | Melepaskan | Ninja atau xcode |
MacOS | MacOS-debug | Debug | Ninja atau xcode |
MacOS | macos-dbginfo | Pra-rilis | Ninja atau xcode |
iOS | iOS | Melepaskan | Ninja atau xcode |
iOS | ios-debug | Debug | Ninja atau xcode |
iOS | ios-dbginfo | Pra-rilis | Ninja atau xcode |
Preset debug memiliki akhiran -debug , dan rilis-dengan-debug-info adalah -dbginfo . Jika Anda ingin membangun konfigurasi SDK di Debug, tentukan namanya, misalnya win-debug sebagai nama yang telah ditetapkan.
Untuk membangun SDK menggunakan direktori build dan instal default:
cmake -S <modio-sdk folder> --preset=win
Ini akan menggunakan generator ninja untuk membuat sistem build ninja di <modio-sdk folder>/out/build/win . Ini menginstal pustaka/header yang dikompilasi ke <modio-sdk folder>/out/install/win . Untuk membangun contoh, tambahkan `-dmodio_build_examples = true`.
cmake --build <modio-sdk folder>/out/build/win
Langkah ini mengkompilasi SDK sebagai perpustakaan statis.
cmake --install <modio-sdk folder>/out/build/win
Ini menghasilkan folder <modio-sdk folder>/out/install/win dengan yang berikut:
header_only - Direktori dengan versi header saja dari SDK
source - Direktori yang berisi file implementasi SDK untuk digunakan dalam mode 'kompilasi split'
Direktori static yang berisi biner perpustakaan statis dan publik yang diperlukan termasuk header
Catatan | Jika Anda menyusun mod.io SDK menggunakan arsitektur yang berbeda, Anda dapat mengubah folder kompilasi preset dengan memodifikasi jalur "cmake_install_prefix". |
Cukup tambahkan masing -masing subdirektori di header_only ke direktori Anda. Kemudian, di file sumber your_project Tambahkan #include "modio/ModioSDK.h"
Jika Anda lebih suka mengkompilasi kode sumber secara langsung, tambahkan file cpp di direktori source , bersama dengan yang include dari mode header saja. Anda harus menambahkan MODIO_SEPARATE_COMPILATION ke definisi kompiler proyek Anda. Kemudian, di file sumber your_project Tambahkan #include "modio/ModioSDK.h"
Tambahkan direktori inc di dalam static ke Anda include dan tautkan ke biner statis di folder lib . Anda harus menambahkan MODIO_SEPARATE_COMPILATION ke definisi kompiler proyek Anda. Kemudian, di file sumber your_project Tambahkan #include "modio/ModioSDK.h"
Jika Anda menggunakan sistem build yang berbeda atau ingin menghasilkan file proyek untuk dimasukkan dalam solusi Visual Studio yang ada, Anda dapat mengganti generator CMAKE default. Misalnya, dimungkinkan untuk menggunakan solusi Visual Studio berbasis 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/winPerhatikan bahwa saat menggunakan generator kode Visual Studio, Anda harus lulus dalam konfigurasi target (yaitu rilis atau debug) juga, misalnya:
cmake -S <modio-sdk folder> --preset=win -G "Visual Studio 16 2019" --Config=Release Jika Anda menggunakan kompiler clang dengan Visual Studio, periksa bagian clang compiler di Visual Studio untuk detail lebih lanjut
Jika Anda memiliki versi kustom dari pustaka FMT, Anda dapat memodifikasi tahap tautan yang mendefinisikan MODIO_USE_CUSTOM_FMT . Ini mendefinisikan sinyal sistem build cmake untuk menggunakan versi kustom perpustakaan. Juga, itu mengharuskan Anda mendefinisikan MODIO_CUSTOM_FMT_PATH ke jalur sistem yang berisi pustaka FMT untuk digunakan.
Direktori yang diberikan kepada MODIO_CUSTOM_FMT_PATH harus berisi cmakelists.txt yang memperlihatkan target fmt dan/atau fmt-header-only .
Secara default, SDK akan mengkonsumsi target fmt-header-only . Tentukan MODIO_CUSTOM_FMT_STATIC untuk true untuk mengganti ini dan meminta konsumsi target pustaka statis fmt sebagai gantinya.
Saat Anda mengkompilasi mod.io SDK dan Anda memerlukan perpustakaan X64 di Windows, konfirmasi penggunaan perintah perintah "X64 Native Tools untuk VS 2019", yang secara default menggunakan kompiler X64. Untuk memverifikasi perpustakaan statis atau bersama disusun dengan arsitektur x64, Anda dapat menggunakan perintah "dumpbin":
dumpbin outbuildwinmodiomodioStatic.lib /headersKemudian cari konfirmasi sebagai berikut:
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 Silakan lihat dokumentasi yang memulai untuk rincian konsep dan penggunaan Mod.io SDK, termasuk:
Inisialisasi SDK dan Loop Acara
Otentikasi
Mod browsing
Manajemen Langganan Mod
Jika Anda memerlukan bantuan dengan persetujuan pihak pertama, atau memerlukan solusi UGC pribadi, label putih. Hubungi kami untuk berdiskusi.
SDK kami adalah publik dan open source. Pengembang game dipersilakan untuk menggunakannya secara langsung, untuk menambahkan dukungan untuk mod dalam game mereka, atau membayar untuk penggunaan khusus mereka. Jika Anda ingin berkontribusi pada SDK, kirimkan permintaan tarik dengan perubahan yang Anda rekomendasikan untuk ditinjau.
mod.io menyediakan API terbuka untuk konten yang dibuat pengguna. Anda dipersilakan untuk melihat, garpu dan berkontribusi pada basis kode lain yang kami rilis.