Files
Plugin/README.md
T

225 lines
13 KiB
Markdown
Raw Normal View History

2022-11-04 15:23:56 +01:00
# The SenseGlove Unreal Engine Plugin
2022-11-02 22:43:14 +01:00
2022-11-02 23:41:35 +01:00
## How to Download
This repository relies on Git LFS for storing binary blobs (e.g. third-party libraries). Sadly, there is a known issue with Microsoft Azure public LFS repositories that requires credential for LFS checkouts on https (LFS ssh checkouts are not supported at all). Unless, you are part of SenseGlove organization on Microsoft Azure there is no easy way to fully clone this repository using Git. Thus, the best way to download this repository is to use the 'kebab' (three vertical dots) menu next to the clone button, in order to download the whole repository including LFS objects as a unified zip file.
2022-11-02 22:43:14 +01:00
## Platform Support Matrix
2023-02-21 00:37:36 +01:00
| | **Windows (MSVC 2017)** | **Windows (MSVC 2019)** | **Windows (MSVC 2022)** | **Linux (Native Toolchain)** | **macOS** | **Oculus Mobile (Android NDK)** |
|:--------:|:-----------------------:|:-----------------------:|:-----------------------:|:----------------------------:|:---------:|:-------------------------------:|
| **4.22** | ⚠️ v1.0.x | ⚠️ v1.0.x | ❌ | ⚠️ v1.0.x | ❌ | ❌ |
| **4.23** | ⚠️ v1.0.x | ⚠️ v1.0.x | ❌ | ⚠️ v1.0.x | ❌ | ❌ |
| **4.24** | ⚠️ v1.0.x | ⚠️ v1.0.x | ❌ | ⚠️ v1.0.x | ❌ | ❌ |
| **4.25** | ⚠️ v1.0.x | ⚠️ v1.0.x | ❌ | ⚠️ v1.0.x | ❌ | ❌ |
| **4.26** | ⚠️ v1.0.x | ⚠️ v1.0.x | ❌ | ⚠️ v1.0.x | ❌ | ❌ |
2023-03-03 20:09:33 +01:00
| **4.27** | ✅ v1.2.x | ✅ v1.2.x | ✅ v1.2.x | ✅ v1.2.x | ❌ | ✅ v1.2.x (r21e) |
| **5.0** | ✅ v1.2.x | ✅ v1.2.x | ✅ v1.2.x | ✅ v1.2.x | ❌ | ✅ v1.2.x (r21e) |
| **5.1** | ✅ v1.2.x | ✅ v1.2.x | ✅ v1.2.x | ✅ v1.2.x | ❌ | ✅ v1.2.x (r25b) |
| **5.2** | ✅ v1.2.x | ✅ v1.2.x | ✅ v1.2.x | ✅ v1.2.x | ❌ | ✅ v1.2.x (r25b) |
2022-11-02 22:43:14 +01:00
* <code>✅</code> Supported
* <code>⚠️</code> Not supported by the latest release and might be lacking features
* <code>❌</code> Not supported at all
* <code>❓</code> Unknown or untested
2022-11-02 22:43:14 +01:00
Remarks:
* Microsoft Visual Studio 2022 is not supported by Unreal Engine 4.22 through 4.26.
* All third-party libraries on Windows built against Windows SDK 10.0.
* Oculus support is only provided through the recommended Android NDK versions by Epic Games.
* The Unreal Engine 4.27+ support is provided for Android/Oculus development.
* [wjwwood/serial](https://github.com/wjwwood/serial) requires Android NDK API Level 28+ in order to be built successfully, thus some older NDKs such as r14b.
2022-11-02 22:43:14 +01:00
* All third-party libraries target Android NDK API Level 29, thus any project relying on the plug-in should be build with the same NDK API Level.
2022-11-14 17:18:54 +01:00
## Changelog
2022-11-02 22:43:14 +01:00
We maintain [a detailed changelog for this project](CHANGELOG.md) as well. Please consult the changelog before upgrading to any newer release.
## Documentation
[The Blueprints documentation is hosted on SenseGlove Docs](https://senseglove.gitlab.io/unreal-blueprint-docs/).
2022-11-02 22:43:14 +01:00
For the C++ documentation, since this plugin builds on top of [SGConnect](https://senseglove.gitlab.io/SenseGloveDocs/native/core-api-intro.html#sgconnect) and [SGCoreCpp](https://senseglove.gitlab.io/SenseGloveDocs/native/core-api-intro.html#sgcorecpp) third-party C++ libraries, please refer to [the upstream documentation](https://senseglove.gitlab.io/SenseGloveDocs/native/cpp-reference.html).
Also, you could refer to the header files in every module for extensive documentation, or the equivalent Blueprints documentation.
The following modules are intended to be used by the C++ users of this plugin:
* SenseGloveConnect module which only uses a very small subset of the Core SGConnect libary.
* SenseGloveCore module which is mostly a one-on-one wrapper call to most of the SGCoreCpp library with slight differences.
Please note that modules postfixed with **Impl** are intended for interal use and are discouraged to be used by the users of the API. The modules postfixed with **Kismet** are exposing the functionality of the equivalent modules to Blueprints. For other modules descriptions, please see [the Directory Structure section](#directory-structure).
## Directory Structure
```
Source
├── Config
2022-11-02 22:43:14 +01:00
├── Resources
└── Source (various plug-in modules)
2022-11-02 22:43:14 +01:00
├── SenseGlove (the UE-specific high-level API)
2022-11-02 22:43:14 +01:00
├── SenseGloveAndroid (the Android-specific module)
2022-11-27 14:13:00 +01:00
├── SenseGloveBuildHacks (uses Exceptions and RTTI, internally used for compiler-specific build hacks)
2022-11-27 14:13:00 +01:00
├── SenseGloveConnect (exposes part of the SGConnect low-level API to C++)
2022-11-27 14:13:00 +01:00
├── SenseGloveConnectImpl (uses Exceptions and RTTI, intended for internal use only)
├── SenseGloveConnectKismet (SGConnect functionality exposed to Blueprints)
2022-11-27 14:13:00 +01:00
├── SenseGloveCore (exposes part of the SGCoreCpp low-level API to C++)
2022-11-27 14:13:00 +01:00
├── SenseGloveCoreImpl (uses Exceptions and RTTI, intended for internal use only)
├── SenseGloveCoreKismet (SGCoreCpp functionality exposed to Blueprints)
├── SenseGloveCoreTypes (exposes special public types from the SenseGloveCore module in order to be shared by with other modules)
├── SenseGloveEditor (the Editor module)
├── SenseGloveInterop (internally used for interoperability between RTTI disabled/enabled modules)
2023-03-03 20:09:14 +01:00
├── SenseGloveKismet (exposes Blueprints-specific functionality from the SenseGlove module)
├── SenseGloveLog (the internal log module)
2023-03-20 23:14:07 +01:00
├── SenseGloveSettings (the plugin's settings manager)
2023-03-21 13:47:11 +01:00
├── SenseGloveSettingsKismet (exposes Blueprints-specific functionality from the SenseGloveSettings module)
├── SenseGloveTypes (exposes various enums from the backend libraries and also types from the SenseGlove module)
├── SenseGloveUtils (the internal utility module)
└── ThirdParty (3rd-party dependencies)
├── android (.jar file Java libraries for Android)
2022-11-02 22:43:14 +01:00
├── include (header files)
2022-11-02 22:43:14 +01:00
│ │
│ ├── boost
2022-11-02 22:43:14 +01:00
│ │
│ ├── SenseGlove
2022-11-02 22:43:14 +01:00
│ │ │
│ │ ├── Connect (SGConnect headers)
2022-11-02 22:43:14 +01:00
│ │ │
│ │ └── Core (SGCoreCpp headers)
2022-11-02 22:43:14 +01:00
│ │
│ └── serial
2022-11-02 22:43:14 +01:00
└── lib (platform-specific pre-built binary dependencies)
├── android
│ │
2023-02-21 17:11:52 +01:00
│ ├── r21e (Android NDK r21e dependencies for UE 4.27 and 5.0)
│ │ │
│ │ │
2023-02-21 17:11:52 +01:00
│ │ ├── arm64 (64-bit Arm variant of Android)
│ │ │ │
│ │ │ ├── debug
│ │ │ │
│ │ │ └── release
│ │ │
│ │ ├── armv7 (32-bit ARM variant of Android)
│ │ │ │
│ │ │ ├── debug
│ │ │ │
│ │ │ └── release
│ │ │
│ │ ├── x64 (64-bit x86-64 variant of Android)
│ │ │ │
│ │ │ ├── debug
│ │ │ │
│ │ │ └── release
│ │ │
│ │ └── x86 (32-bit x86 variant of Android)
│ │ │
│ │ ├── debug
│ │ │
│ │ └── release
│ │
2023-02-21 17:11:52 +01:00
│ └── r25b (Android NDK r21b dependencies for UE 5.1)
│ │
│ │
2023-02-21 17:11:52 +01:00
│ ├── arm64 (64-bit Arm variant of Android)
│ │ │
│ │ ├── debug
│ │ │
│ │ └── release
│ │
│ ├── armv7 (32-bit ARM variant of Android)
│ │ │
│ │ ├── debug
│ │ │
│ │ └── release
│ │
│ ├── x64 (64-bit x86-64 variant of Android)
│ │ │
│ │ ├── debug
│ │ │
│ │ └── release
│ │
│ └── x86 (32-bit x86 variant of Android)
│ │
│ ├── debug
│ │
│ └── release
2022-11-02 22:43:14 +01:00
├── linux
│ │
│ ├── v19 (UE 4.27 Linux dependencies)
│ │ │
│ │ ├── debug
│ │ │
│ │ └── release
│ │
│ ├── v20 (UE 5.0 and 5.1 Linux dependencies)
│ │ │
│ │ ├── debug
│ │ │
│ │ └── release
│ │
│ └── v21 (UE 5.2 Linux dependencies)
│ │
│ ├── debug
│ │
│ └── release
└── win64
├── msvc141 (Microsoft Visual Studio 2017 dependencies)
│ │
│ ├── debug
│ │
│ └── release
2022-11-02 22:43:14 +01:00
├── msvc142 (Microsoft Visual Studio 2019 dependencies)
│ │
│ ├── debug
│ │
│ └── release
2022-11-02 22:43:14 +01:00
└── msvc143 (Microsoft Visual Studio 2022 dependencies)
├── debug
└── release
2022-11-02 22:43:14 +01:00
```
## Licenses
### SenseGlove Unreal Engine Plug-in License
The SenseGlove plug-in for Unreal Engine is licensed under the terms of the [MIT License](LICENSE.md).
### Third-Party Licenses
2022-11-27 14:13:00 +01:00
Please note that while the SenseGlove plug-in for Unreal Engine is made available under the [MIT License](LICENSE.md), it utilizes a few third-party libraries with permissive free licenses as well, in order to power various components. For a list of these libraries and their own respective open-source licenses take a look at [LICENSE-THIRD-PARTY.md](LICENSE-THIRD-PARTY.md), please.