Files
Plugin/README.md
T

178 lines
10 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
## ⚠️ DISCLAIMER: Experimental Release
This is an initial experimental release for public evaluation and may not be considered *production ready*, yet. This repository is under active development and there might be known or unknown bugs lurking around. Use it at your own risk.
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
| | **Windows<br>(MSVC 2019)** | **Windows<br>(MSVC 2022)** | **Linux<br>(Native Toolchain)** | **macOS** | **Oculus Mobile<br>(Android NDK r21b)** |
|----------|:--------------------------:|:--------------------------:|:-------------------------------:|:---------:|:---------------------------------------:|
| **4.22** | ✅ | ❌ | ✅ | ❌ | ❌ |
| **4.23** | ✅ | ❌ | ✅ | ❌ | ❌ |
| **4.24** | ✅ | ❌ | ✅ | ❌ | ❌ |
| **4.25** | ✅ | ❌ | ✅ | ❌ | ❓ |
| **4.26** | ✅ | ❌ | ✅ | ❌ | ❓ |
| **4.27** | ✅ | ✅ | ✅ | ❌ | ❓ |
| **5.0** | ✅ | ✅ | ✅ | ❌ | ❓ |
| **5.1** | ✅ | ✅ | ✅ | ❌ | ❓ |
* <code>✅</code> Supported
* <code>❌</code> Not Supported
* <code>❓</code> Unknown or Untested
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 r21b by Epic Games.
* Supporting Unreal Engine 4.22 through 4.24 for Oculus development is a huge challenge due to limited Android NDK support (r14b to r18b); firstly, because of uncomplete C++11 standard library support, and second, as a result of a known bug in Unreal Engine, which falsely detects NDK r18b as unsupported r18c. Thus, only Unreal Engine 4.25+ support is provided for Android/Oculus development. Third, [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, which is the recommended NDK by Epic Games for 4.22 to 4.24 cannot build the serial library.
* 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.
## Documentation
We maintain [a detailed changelog for this project](CHANGELOG.md) as well. Please consult the changelog before upgrading to any newer release.
## Documentation
2022-11-02 22:43:14 +01:00
The Blueprints documentation will be coming soon.
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
├── SenseGloveBuildHacks (uses Excepttions and RTTI, internally used for compiler-specific build hacks)
├── SenseGloveConnect (exposes part of the SGConnect low-level API to C++ and Blueprints)
├── SenseGloveConnectImpl (uses Excepttions and RTTI, intended for internal use only)
├── SenseGloveConnectKismet (SGConnect functionality exposed to Blueprints)
├── SenseGloveCore (exposes part of the SGCoreCpp low-level API to C++ and Blueprints)
├── SenseGloveCoreImpl (uses Excepttions and RTTI, intended for internal use only)
├── SenseGloveCoreKismet (SGCoreCpp functionality exposed to Blueprints)
├── SenseGloveEditor (the Editor module)
├── SenseGloveInterop (internally used for interoperability between RTTI disabled/enabled modules)
├── SenseGloveKismet(exposes Blueprints-specific functionality from the SenseGlove module)
├── SenseGloveLog (the internal log module)
├── SenseGloveTypes (exposes various enums from the backend libraries)
├── SenseGloveUtils (the internal utility module)
└── ThirdParty (3rd-party dependencies)
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)
2022-11-02 22:43:14 +01:00
├── linux
│ │
│ ├── v13 (UE 4.22 Linux dependencies)
│ │ │
│ │ ├── debug
│ │ │
│ │ └── release
│ │
│ ├── v15 (UE 4.23 and 4.24 Linux dependencies)
│ │ │
│ │ ├── debug
│ │ │
│ │ └── release
│ │
│ ├── v16 (UE 4.25 Linux dependencies)
│ │ │
│ │ ├── debug
│ │ │
│ │ └── release
│ │
│ ├── v17 (UE 4.26 Linux dependencies)
│ │ │
│ │ ├── debug
│ │ │
│ │ └── release
│ │
│ ├── v19 (UE 4.27 Linux dependencies)
│ │ │
│ │ ├── debug
│ │ │
│ │ └── release
│ │
│ └── v20 (UE 5.0 Linux dependencies)
│ │
│ ├── debug
│ │
│ └── release
├── oculus
2022-11-02 22:43:14 +01:00
│ │
│ ├── debug
│ │
│ └── release
└── win64
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
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.