歡迎來到使用C ++構建的Mod.io SDK存儲庫。它允許遊戲開發人員在其遊戲中託管並自動安裝用戶生成的內容。它連接到mod.io Rest API。
允許的MIT/BSL許可
異步基於回調的接口
用“帶上自己的線程”模型的非阻滯IO
自動下載和更新
電子郵件 /蒸汽 / EGS / Consoles /自定義SSO身份驗證
mod瀏覽 /過濾
C ++ 17編譯器,僅標題,直接編譯或靜態庫支持
通過我們的專用插件可用的本機非現實引擎集成
平台 | 支持 | 編譯器 |
視窗 | ✔ | MSVC C ++ 2019 |
Windows(GDK) | ✔(聯繫我們) | 供應商提供 |
任天堂開關 | ✔(聯繫我們) | 供應商提供 |
Xbox(GDK) | ✔(聯繫我們) | 供應商提供 |
PlayStation®4 | ✔(聯繫我們) | 供應商提供 |
PlayStation®5 | ✔(聯繫我們) | 供應商提供 |
Linux | ✔ | 叮噹10 |
macos | ✔ | 叮噹10 |
ios | ✔ | 叮噹10 |
安卓 | ✔ | 叮噹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標頭,但需要在系統中安裝的庫,該庫在Ubuntu中使用libmbedtls-dev 2.28.0進行了測試。 “靜態”模式在與libmodiostatic.a的同一文件夾中包含這些庫 |
MACOS / iOS開發的Mod.io SDK需要clang 10或GCC 10或更高版本,這包括在Xcode安裝中。建議使用XCode 14或更高版本。要安裝Cmake 3.20或Ninja 1.10,建議使用以下啤酒:
brew install cmake ninja iOS默認為模擬器編譯。如果您需要部署到設備,請在cmake中添加變量MODIO_IOS_DEVICE 。在平台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 GENERATOR,否則請確認它可以在PATH上使用。
平台 | 預設 | 目標 | 構建系統 |
視窗 | 贏 | 發布 | Visual Studio 2019 |
視窗 | 獲獎者 | 偵錯 | Visual Studio 2019 |
視窗 | Win-dbginfo | 預釋放 | Visual Studio 2019 |
Linux | Linux64 | 發布 | 忍者 |
Linux | linux64-debug | 偵錯 | 忍者 |
Linux | linux64-dbginfo | 預釋放 | 忍者 |
macos | macos | 發布 | 忍者或Xcode |
macos | macos挑戰 | 偵錯 | 忍者或Xcode |
macos | macos-dbginfo | 預釋放 | 忍者或Xcode |
ios | ios | 發布 | 忍者或Xcode |
ios | iOS挑戰 | 偵錯 | 忍者或Xcode |
ios | ios-dbginfo | 預釋放 | 忍者或Xcode |
調試預設具有-debug後綴,並且釋放debug-info為-dbginfo 。如果要在調試配置中構建SDK,則指定名稱,例如win-debug作為預設名稱。
使用默認構建和安裝目錄構建SDK:
cmake -S <modio-sdk folder> --preset=win
這將使用Ninja Generator在<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"
如果您希望直接編譯源代碼,請在source目錄中添加cpp文件,以及來自僅標頭模式的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 Generator。例如,可以使用基於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編譯器以獲取更多詳細信息
如果您有FMT庫的自定義版本,則可以修改定義MODIO_USE_CUSTOM_FMT的鏈接階段。這定義了信號CMake Build System使用庫的自定義版本。另外,它要求您將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並且需要Windows中的X64庫時,請確認使用“ X64本機工具命令提示for VS 2019”,默認情況下使用X64編譯器。為了驗證靜態或共享庫是使用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的概念和使用情況,包括:
SDK初始化和事件循環
驗證
mod瀏覽
mod訂閱管理
如果您需要第一方批准的幫助,或者需要私人標籤UGC解決方案。聯繫我們討論。
我們的SDK是公共和開源。歡迎遊戲開發人員直接利用它,以增加對遊戲中的mod的支持,或為其定制使用。如果您想為SDK做出貢獻,請提交帶有建議更改的拉動請求以進行審查。
Mod.io為用戶生成的內容提供了開放的API。歡迎您查看,分叉並為我們發布的其他代碼庫做出貢獻。