مرحبًا بك في مستودع Mod.io SDK ، مصمم باستخدام C ++. يتيح لمطوري اللعبة استضافة المحتوى الذي تم إنشاؤه بواسطة المستخدم وتثبيته تلقائيًا في ألعابهم. يتصل بـ Mod.io Rest API.
معهد ماساتشوستس للتكنولوجيا/BSL-Linense
واجهة المستندة إلى رد الاتصال ASYNC
IO غير المحظور مع نموذج "إحضار خيطك الخاص"
التنزيلات والتحديثات التلقائية
البريد الإلكتروني / Steam / EGS / لوحات المفاتيح / مصادقة SSO المخصصة
تعديل التصفح / التصفية
الرأس فقط ، والتجميع المباشر أو دعم المكتبة الثابتة مع برنامج التحويل البرمجي C ++ 17
تكامل المحرك غير الواقعي المتاح من خلال المكون الإضافي المخصص لدينا
منصة | يدعم | المترجم |
النوافذ | ✔ | MSVC C ++ 2019 |
Windows (GDK) | ✔ (اتصل بنا) | بائع مقدمة |
Nintendo Switch | ✔ (اتصل بنا) | بائع مقدمة |
Xbox (GDK) | ✔ (اتصل بنا) | بائع مقدمة |
PlayStation®4 | ✔ (اتصل بنا) | بائع مقدمة |
PlayStation®5 | ✔ (اتصل بنا) | بائع مقدمة |
Linux | ✔ | Clang 10 |
ماكوس | ✔ | Clang 10 |
iOS | ✔ | Clang 10 |
Android | ✔ | Clang 10 |
إعدادات | إصدار |
رأس فقط | C ++ 17 (Windows) |
مكتبة ثابتة | C ++ 17 |
يتم سرد المتطلبات المسبقة لتجميع هذا SDK في الوثائق البدء
من الممكن تنزيل الكود المصدر كملف مضغوط من صفحة الويب هذه. ومع ذلك ، يقوم استنساخ العودية بتنزيل جميع التبعيات. لذلك ، فإن الاقتراح هو أداء ما يلي:
git clone --recurse-submodule https://github.com/modio/modio-sdk
cd modio-sdk
لاستخدام mod.io sdk ، يمكنك المتابعة مع التثبيت باستخدام أحد المنظورات التالية:
داخل مشروع CMAKE
مستقل: وضع الرأس فقط
مستقل: وضع تجميع منفصل
مستقل: وضع المكتبة الثابتة
يتطلب mod.io sdk kernel 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 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 |
النوافذ | الفوز | تصحيح | Visual Studio 2019 |
النوافذ | Win-dbginfo | قبل الإصدار | Visual Studio 2019 |
Linux | Linux64 | يطلق | النينجا |
Linux | Linux64-Debug | تصحيح | النينجا |
Linux | Linux64-Dbginfo | قبل الإصدار | النينجا |
ماكوس | ماكوس | يطلق | النينجا أو xcode |
ماكوس | Macos-Debug | تصحيح | النينجا أو xcode |
ماكوس | Macos-dbginfo | قبل الإصدار | النينجا أو xcode |
iOS | iOS | يطلق | النينجا أو xcode |
iOS | iOS-Debug | تصحيح | النينجا أو xcode |
iOS | IOS-DBGINFO | قبل الإصدار | النينجا أو xcode |
المسبقة Debug لها لاحقة -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 للاستخدام في وضع "split compilation"
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 الافتراضي. على سبيل المثال ، من الممكن استخدام حل 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 ، يجب عليك تمرير التكوين الهدف (أي الإصدار أو التصحيح) أيضًا ، على سبيل المثال:
cmake -S <modio-sdk folder> --preset=win -G "Visual Studio 16 2019" --Config=Release
إذا كنت تستخدم برنامج التحويل clang
مع Visual Studio ، فتحقق
إذا كان لديك إصدار مخصص من مكتبة FMT ، فيمكنك تعديل مرحلة الارتباط التي تحدد MODIO_USE_CUSTOM_FMT
. يحدد هذا الإشارات نظام إنشاء CMAKE لاستخدام إصدار مخصص من المكتبة. أيضًا ، يتطلب أن تحدد MODIO_CUSTOM_FMT_PATH
إلى مسار النظام الذي يحتوي على مكتبة FMT لاستخدامها.
يجب أن يحتوي الدليل fmt-header-only
fmt
MODIO_CUSTOM_FMT_PATH
بشكل افتراضي ، سوف يستهلك SDK هدف fmt-header-only
. حدد MODIO_CUSTOM_FMT_STATIC
true
هذا وطلب استهلاك هدف المكتبة الثابتة fmt
بدلاً من ذلك.
عندما تقوم بتجميع mod.io sdk وتتطلب مكتبة X64 في Windows ، قم بتأكيد استخدام موجه أوامر الأدوات الأصلية لـ X64 لـ 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 وحلقة الحدث
المصادقة
تصفح وزارة الدفاع
إدارة الاشتراك وزارة الدفاع
إذا كنت بحاجة إلى مساعدة مع موافقات الطرف الأول ، أو تحتاج إلى حل خاص UGC ذات العلامات البيضاء. اتصل بنا للمناقشة.
لدينا SDK هو العام ومفتوح المصدر. نرحب مطورو الألعاب بالاستفادة منه مباشرة ، لإضافة دعم للمعدات في ألعابهم ، أو شوكة لاستخدامهم المخصص. إذا كنت ترغب في المساهمة في SDK ، أرسل طلب سحب مع التغييرات الموصى بها للمراجعة.
يوفر Mod.io واجهة برمجة تطبيقات مفتوحة للمحتوى الذي تم إنشاؤه بواسطة المستخدم. اهلا وسهلا بكم لعرض وشوكة والمساهمة في قواعد الكود الأخرى التي ننشرها.