ยินดีต้อนรับสู่ที่เก็บ mod.io SDK สร้างขึ้นโดยใช้ C ++ ช่วยให้นักพัฒนาเกมสามารถโฮสต์และติดตั้งเนื้อหาที่ผู้ใช้สร้างขึ้นโดยอัตโนมัติในเกมของพวกเขา มันเชื่อมต่อกับ mod.io REST API
อนุญาตให้ใช้ MIT/BSL-License
อินเทอร์เฟซที่ใช้การโทรกลับแบบ async
IO ที่ไม่ปิดกั้นด้วยโมเดล 'นำของคุณเอง'
การดาวน์โหลดและอัปเดตอัตโนมัติ
อีเมล / steam / egs / คอนโซล / การรับรองความถูกต้อง SSO ที่กำหนดเอง
Mod Browsing / Filtering
ส่วนหัวอย่างเดียวการรวบรวมโดยตรงหรือการสนับสนุนไลบรารีแบบคงที่ด้วยคอมไพเลอร์ C ++ 17
การรวมเอ็นจิ้น Unreal Nathed ผ่านปลั๊กอินเฉพาะของเรา
แพลตฟอร์ม | สนับสนุน | ผู้ประกอบการ |
หน้าต่าง | MSVC C ++ 2019 | |
Windows (GDK) | ✔ (ติดต่อเรา) | ให้บริการแก่ผู้ขาย |
Nintendo Switch | ✔ (ติดต่อเรา) | ให้บริการแก่ผู้ขาย |
Xbox (GDK) | ✔ (ติดต่อเรา) | ให้บริการแก่ผู้ขาย |
PlayStation®4 | ✔ (ติดต่อเรา) | ให้บริการแก่ผู้ขาย |
PlayStation®5 | ✔ (ติดต่อเรา) | ให้บริการแก่ผู้ขาย |
ลินเวกซ์ | เสียงดังก้อง 10 | |
แม็กอส | เสียงดังก้อง 10 | |
iOS | เสียงดังก้อง 10 | |
Android | เสียงดังก้อง 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 ที่มีการสนับสนุน liburing (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 ดังนี้:
brew install cmake ninja
iOS รวบรวมโดยค่าเริ่มต้นไปยังตัวจำลอง หากคุณต้องการปรับใช้กับอุปกรณ์ให้เพิ่มตัวแปร MODIO_IOS_DEVICE
ลงใน cmake ตรวจสอบเอกสารในแพลตฟอร์ม readme.adoc สำหรับรายละเอียดเพิ่มเติม
เป้าหมายการปรับใช้ขั้นต่ำคือ MacOS 12.0 ในกรณีของมือถือมันคือ iOS 15.0
โคลนที่เก็บหรือเพิ่มเป็น submodule
ยืนยันว่า 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 Generator ที่ใช้งาน
แพลตฟอร์ม | ตั้งไว้ล่วงหน้า | เป้า | สร้างระบบ |
หน้าต่าง | ชนะ | ปล่อย | Visual Studio 2019 |
หน้าต่าง | ผู้ชนะ | การดีบัก | Visual Studio 2019 |
หน้าต่าง | win-dbginfo | ปล่อยล่วงหน้า | Visual Studio 2019 |
ลินเวกซ์ | Linux64 | ปล่อย | นินจา |
ลินเวกซ์ | Linux64-debug | การดีบัก | นินจา |
ลินเวกซ์ | Linux64-DBGINFO | ปล่อยล่วงหน้า | นินจา |
แม็กอส | แม็กอส | ปล่อย | นินจาหรือ xcode |
แม็กอส | macos-debug | การดีบัก | นินจาหรือ xcode |
แม็กอส | 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 โดยใช้สถาปัตยกรรมที่แตกต่างกันคุณสามารถเปลี่ยนโฟลเดอร์การรวบรวมที่ตั้งไว้ล่วงหน้าได้โดยการแก้ไขเส้นทาง "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 Generator เริ่มต้น ตัวอย่างเช่นเป็นไปได้ที่จะใช้โซลูชัน Visual Studio ที่ใช้ 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
โปรดทราบว่าเมื่อใช้เครื่องกำเนิดรหัส Visual Studio คุณต้องส่งผ่านในการกำหนดค่าเป้าหมาย (เช่น release หรือ debug) เช่น: ตัวอย่างเช่น:
cmake -S <modio-sdk folder> --preset=win -G "Visual Studio 16 2019" --Config=Release
หากคุณใช้คอมไพเลอร์ clang
กับ Visual Studio ให้ตรวจสอบส่วนคอมไพเลอร์ Clang Section ใน Visual Studio สำหรับรายละเอียดเพิ่มเติม
หากคุณมีไลบรารี FMT เวอร์ชันที่กำหนดเองคุณสามารถแก้ไขขั้นตอนการเชื่อมโยงการกำหนด MODIO_USE_CUSTOM_FMT
สิ่งนี้กำหนดสัญญาณระบบ CMake Build เพื่อใช้ไลบรารีเวอร์ชันที่กำหนดเอง นอกจากนี้ยังต้องการให้คุณกำหนด 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 Command Prompt สำหรับ 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
หากคุณต้องการความช่วยเหลือในการอนุมัติบุคคลที่ 1 หรือต้องการโซลูชัน UGC แบบส่วนตัว ติดต่อเราเพื่อหารือ
SDK ของเราเป็นสาธารณะและโอเพ่นซอร์ส นักพัฒนาเกมสามารถใช้ประโยชน์ได้โดยตรงเพื่อเพิ่มการสนับสนุนสำหรับ mods ในเกมของพวกเขาหรือส้อมสำหรับการใช้งานที่กำหนดเอง หากคุณต้องการมีส่วนร่วมใน SDK ให้ส่งคำขอดึงด้วยการเปลี่ยนแปลงที่แนะนำสำหรับการตรวจสอบ
mod.io จัดเตรียม API แบบเปิดสำหรับเนื้อหาที่ผู้ใช้สร้างขึ้น คุณสามารถดูส้อมและมีส่วนร่วมกับรหัสฐานอื่น ๆ ที่เราปล่อย