Bem -vindo ao repositório Mod.io SDK, construído usando C ++. Ele permite que os desenvolvedores de jogos hospedem e instalem automaticamente o conteúdo gerado pelo usuário em seus jogos. Ele se conecta à API Mod.io Rest.
MIT permissivo/bsl-licence
Interface baseada em retorno de chamada assíncrona
IO não bloqueador com um modelo 'Bring Your Own Thread'
Downloads e atualizações automáticas
Email / vapor / egs / consoles / autenticação SSO personalizada
Mod navegação / filtragem
Compilação direta somente para cabeçalho ou suporte estático da biblioteca com C ++ 17 Compilador
Integração de motores Unreal Native disponível através do nosso plug -in dedicado
Plataforma | Apoiar | Compilador |
Windows | ✔ | MSVC C ++ 2019 |
Windows (GDK) | ✔ (entre em contato conosco) | Fornecedores fornecidos |
Nintendo Switch | ✔ (entre em contato conosco) | Fornecedores fornecidos |
Xbox (GDK) | ✔ (entre em contato conosco) | Fornecedores fornecidos |
PlayStation®4 | ✔ (entre em contato conosco) | Fornecedores fornecidos |
PlayStation®5 | ✔ (entre em contato conosco) | Fornecedores fornecidos |
Linux | ✔ | Clang 10 |
macos | ✔ | Clang 10 |
iOS | ✔ | Clang 10 |
Android | ✔ | Clang 10 |
Configuração | Versão |
Apenas cabeçalho | C ++ 17 (Windows) |
Biblioteca estática | C ++ 17 |
Os pré-requisitos para compilar este SDK estão listados para iniciar a documentação
É possível baixar o código -fonte como um arquivo zip desta página da web. No entanto, um clone recursivo baixa todas as dependências. Portanto, a sugestão é executar o seguinte:
git clone --recurse-submodule https://github.com/modio/modio-sdk
cd modio-sdk
Para usar o Mod.io SDK, você pode prosseguir com a instalação usando uma das seguintes perspectivas:
Dentro de um projeto CMake
Independente: modo somente para cabeçalho
Independente: modo de compilação separado
Modo de biblioteca estática
O Mod.io SDK requer um kernel Linux com suporte de libração (v5.1 ou posterior). As chamadas do sistema io_uring fornecem operações de entrada/saída assíncronas. Para atender a esse requisito e ter as ferramentas de desenvolvimento prontas, os seguintes comandos empregam o gerente de pacotes "apt" (testado no Ubuntu 20.04 fossa focal):
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
Observação | Se você estiver usando o modo de liberação "header_only", o Mod.io SDK inclui cabeçalhos MBEDTLS, mas exige a biblioteca instalada no seu sistema, que foi testada com Libmbedtls-Dev 2.28.0 no Ubuntu. O modo "estático" inclui essas bibliotecas na mesma pasta que a libmodiostática.a |
O Mod.io SDK para desenvolvimento no MacOS / iOS requer CLANG 10 ou GCC 10 ou posterior, que vem incluído na instalação do Xcode. Xcode 14 ou posterior é recomendado. Para instalar o CMake 3.20 ou o Ninja 1.10, é recomendável usar o Brew da seguinte maneira:
brew install cmake ninja
O iOS compila por padrão para o simulador. Se você precisar implantar em um dispositivo, adicione MODIO_IOS_DEVICE
variável para cmake. Verifique a documentação na plataforma readme.adoc para obter mais detalhes.
A meta de implantação mínima é o MacOS 12.0. Em caso de celular, é iOS 15.0
Clonar o repositório ou adicione -o como um submódulo
Confirm your_project
usa o cmake 3.20 ou mais tarde
cmake_minimum_required ( VERSION 3.20)
Especifique a plataforma de destino, com opções: Win ou Linux
set (MODIO_PLATFORM WIN)
Adicione o subdiretório SDK ao seu projeto
add_subdirectory (<modio-sdk folder> EXCLUDE_FROM_ALL )
target_compile_features (your_project PUBLIC cxx_std_17)
Vincular a biblioteca ao seu projeto
Para usar a configuração somente de cabeçalho:
target_link_libraries (your_project PUBLIC modio)
Ou para usar a configuração estática da biblioteca:
target_link_libraries (your_project PUBLIC modioStatic)
Para simplificar a compilação SDK, o arquivo CMakePresets.json
inclui as configurações mais comuns como presets
que empregam ninja por padrão. Portanto, confirme que está disponível no seu PATH
a menos que você queira substituir o gerador de cmake em uso.
Plataforma | Predefinido | Alvo | Sistema de construção |
Windows | ganhar | Liberar | Visual Studio 2019 |
Windows | Win-debug | Depurar | Visual Studio 2019 |
Windows | win-dbginfo | Pré-lançamento | Visual Studio 2019 |
Linux | Linux64 | Liberar | Ninja |
Linux | Linux64-debug | Depurar | Ninja |
Linux | Linux64-dbginfo | Pré-lançamento | Ninja |
macos | macos | Liberar | Ninja ou xcode |
macos | MacOS-debug | Depurar | Ninja ou xcode |
macos | MacOS-dbginfo | Pré-lançamento | Ninja ou xcode |
iOS | iOS | Liberar | Ninja ou xcode |
iOS | iOS-debug | Depurar | Ninja ou xcode |
iOS | iOS-dbginfo | Pré-lançamento | Ninja ou xcode |
As predefinições de depuração têm o sufixo -debug
e a liberação-com-debug-infO é -dbginfo
. Se você deseja criar o SDK na configuração de depuração, especifique o nome, por exemplo win-debug
como o nome predefinido.
Para construir o SDK usando os diretórios de construção e instalação padrão:
cmake -S <modio-sdk folder> --preset=win
Isso usará o gerador ninja para criar um sistema de construção ninja na <modio-sdk folder>/out/build/win
. Ele instala as bibliotecas/cabeçalhos compilados para <modio-sdk folder>/out/install/win
. Para construir os exemplos, anexe `-dmodio_build_examples = true`.
cmake --build <modio-sdk folder>/out/build/win
Esta etapa compila o SDK como uma biblioteca estática.
cmake --install <modio-sdk folder>/out/build/win
Isso produz uma pasta <modio-sdk folder>/out/install/win
com o seguinte:
header_only
- Diretório com a versão somente para cabeçalho do SDK
source
- Diretório que contém os arquivos de implementação do SDK para uso no modo 'Split Compilation'
Diretório static
que contém os binários da biblioteca estática e o público necessário incluem cabeçalhos
Observação | Se você estiver compilando o mod.io sdk usando diferentes arquiteturas, poderá alterar a pasta de compilação predefinida modificando o caminho "cmake_install_prefix". |
Basta adicionar cada um dos subdiretos em header_only
aos seus diretórios de inclusão. Então, no seu arquivo de origem your_project
, adicione #include "modio/ModioSDK.h"
Se você preferir compilar diretamente o código-fonte, adicione os arquivos cpp
no diretório source
, juntamente com a include
no modo somente cabeçalho. Você deve adicionar MODIO_SEPARATE_COMPILATION
às definições do compilador do seu projeto. Então, no seu arquivo de origem your_project
, adicione #include "modio/ModioSDK.h"
Adicione o diretório inc
no static
à sua include
e link contra o binário estático na pasta lib
. Você deve adicionar MODIO_SEPARATE_COMPILATION
às definições do compilador do seu projeto. Então, no seu arquivo de origem your_project
, adicione #include "modio/ModioSDK.h"
Se você usar um sistema de construção diferente ou desejar gerar arquivos de projeto para inclusão em uma solução existente do Visual Studio, poderá substituir o gerador cmake padrão. Por exemplo, é possível usar uma solução Visual Studio baseada em 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
Observe que, ao usar o gerador de código do Visual Studio, você deve passar na configuração de destino (ou seja, liberação ou depuração), por exemplo:
cmake -S <modio-sdk folder> --preset=win -G "Visual Studio 16 2019" --Config=Release
Se você estiver usando o compilador clang
com o Visual Studio, verifique a seção Clang Compiler no Visual Studio para obter mais detalhes
Se você possui uma versão personalizada da biblioteca FMT, poderá modificar o estágio de vinculação definindo MODIO_USE_CUSTOM_FMT
. Isso define sinaliza o sistema CMake Build para usar uma versão personalizada da biblioteca. Além disso, é necessário que você defina MODIO_CUSTOM_FMT_PATH
no caminho do sistema que contém a biblioteca FMT a ser usada.
O diretório fornecido ao MODIO_CUSTOM_FMT_PATH
deve conter um cmakelists.txt que expõe os alvos fmt
e/ou fmt-header-only
.
Por padrão, o SDK consumirá o destino fmt-header-only
. Definir MODIO_CUSTOM_FMT_STATIC
como true
para substituir isso e solicitar o consumo do destino da biblioteca estática fmt
.
Quando você compila o mod.io sdk e precisa de uma biblioteca X64 no Windows, confirme o uso do "X64 Native Tools Command Prompt para vs 2019", que por padrão emprega o compilador X64. Para verificar se a biblioteca estática ou compartilhada foi compilada com a arquitetura X64, você pode usar o comando "Dumpbin":
dumpbin outbuildwinmodiomodioStatic.lib /headers
Em seguida, procure a confirmação da seguinte maneira:
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
Consulte a documentação para iniciar um detalhamento dos conceitos e uso do mod.io SDK, incluindo:
SDK Inicialização e ciclo de eventos
Autenticação
Mod navegação
Gerenciamento de assinatura mod
Se você precisar de assistência com as aprovações da 1ª parte, ou precisar de uma solução UGC de etiqueta branca privada. Entre em contato conosco para discutir.
Nosso SDK é público e de código aberto. Os desenvolvedores de jogos podem utilizá -lo diretamente, para adicionar suporte para mods em seus jogos ou bifurcá -lo para uso personalizado. Se você deseja contribuir com o SDK, envie uma solicitação de tração com as alterações recomendadas para revisão.
Mod.io fornece uma API aberta para conteúdo gerado pelo usuário. Você pode visualizar, bifurcar e contribuir com outras bases de código que lançamos.