# Schola **Repository Path**: mirrors_GPUOpen-LibrariesAndSDKs/Schola ## Basic Information - **Project Name**: Schola - **Description**: Schola is a plugin for enabling Reinforcement Learning (RL) in Unreal Engine. It provides tools to help developers create environments, define agents, and connect to python-based RL frameworks such as OpenAI Gym, RLlib or Stable Baselines 3 for training agents with RL. - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-02-16 - **Last Updated**: 2026-09-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

Schola Lockup

[![GitHub License](https://img.shields.io/github/license/GPUOpen-LibrariesAndSDKs/Schola)](https://opensource.org/license/MIT) [![Discord](https://img.shields.io/badge/Discord-Join_Us-5865F2?style=flat&logo=discord&logoColor=white)](https://discord.gg/amd-dev) [![Codestyle](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) [![Python Version from PEP 621 TOML](https://img.shields.io/python/required-version-toml?tomlFilePath=https%3A%2F%2Fraw.githubusercontent.com%2FGPUOpen-LibrariesAndSDKs%2FSchola%2Frefs%2Fheads%2FAlex%2FBeautify-Readme%2FResources%2Fpython%2Fpyproject.toml)](https://www.python.org/downloads/) [![Unreal Engine](https://img.shields.io/badge/Unreal%20Engine%20-%205.5%20%7C%205.6%20%7C%205.7%20-%20white?style=flat&logo=unrealengine&color=F26522)](https://www.unrealengine.com/download)
--- The Schola project is an effort to build a toolkit/plugin for controlling Objects in Unreal with Reinforcement Learning. It provides tools to help the user create Environments, define Agents, connect to python based RL Frameworks (e.g. Gym, RLlib or Stable Baselines 3), and power NPCs with RL during games. ## Getting Started ### Install Unreal Engine As Schola is an Unreal Engine Project, you will need to first install Unreal Engine. Refer to the below table to identify the correct version of Unreal Engine for each version of Schola. >[!NOTE] > Each Schola release may be compatible with other versions of Unreal Engine beyond the ones listed here, however these are the version(s) tested for each release. | Schola version | Unreal Version | | -------------- | -------------- | | **2.1** | **5.5-5.7** | | 2.0 | 5.5-5.6 | | 1.3 | 5.5-5.6 | | 1.2 | 5.5 | | 1.1 | 5.5 | | 1.0 | 5.4 | ### Installing Schola Into Your Project To use Schola in an existing Unreal Engine Project copy this repository to the `/Plugins` folder of your project, and pip install the Schola python package in `/Resources/python` using `pip install -e /Resources/python[all]` (the folder that contains `pyproject.toml`). > [!IMPORTANT] > Since Schola is provided as C++ source you must recompile your project after adding it. Otherwise, you will receive a warning about Schola being built for another version of Unreal Engine regardless of what version you are using. ### Dependencies #### Python See `Resources/python/pyproject.toml` for a comprehensive list of dependencies. The following **optional dependency extras** are available when installing with pip (for example `pip install -e ./Resources/python[sb3]`): | Extra | Description | | ----- | ----------- | | `sb3` | Dependencies for running training with Stable Baselines 3 | | `rllib` | Dependencies for running training with RLlib | | `minari` | Dependencies for collecting Minari datasets with Schola | | `all` | Equivalent to installing `sb3`, `rllib`, and `minari` together | | `docs` | Dependencies for building documentation with Sphinx | Test dependencies are declared under `[dependency-groups]` in `pyproject.toml`, not as a pip extra. Install them with **`pip install --group test`** (for example `pip install --group test -e ./Resources/python[all]` from your project, or the same with `cd` into `Resources/python` first). #### C++ All C++ dependencies for using Schola are bundled with the plugin under `/Source/ThirdParty` and do not need to be installed separately. These consist of `gRPC`, `protobuf` and `absl`(dependency of gRPC). ## Build and Test >[!IMPORTANT] > Schola comes with all dependencies included. Only run these if you encounter issues during the setup. ### Building Third Party Dependencies Third party dependencies, specifically gRPC and Protobuf can be built using `Schola\Plugins\Schola\Resources\Build\windows_dependencies.bat` or `Schola\Plugins\Schola\Resources\Build\linux_dependencies.sh` depending on your OS. This will update the plugin ThirdParty folder to include copies of the dependencies including .lib/.a files, and copy protoc, and relevant plugins to the tools directory. ### Generating gRPC/Protobuf Code To generate code for gRPC and Protobuf run `schola compile-proto`. This will generate `*.pb.cc`, `*.pb.h` and `*.pb.py` files to the correct folders as well as fix several bugs in the default generator (e.g. ignore warnings in C++ code, and fix relative imports for python) ### Generating Documentation Documentation for Schola is build using a combination of Doxygen + Sphinx + Breathe. 1. Install Doxygen from [the website](https://www.doxygen.nl/) 2. Install documentation requirements for Schola using pip, for example `pip install -e "./Resources/python[docs]"` from the plugin root (or `pip install -e ".[docs]"` after `cd` into `Resources/python`). 3. Run the command `schola build-docs --builder html` from the root of this project (or supply the path to the plugin folder) ## Contact For questions about Schola, contact the team at [Schola@amd.com](mailto:Schola@amd.com). ## Contributing See [CONTRIBUTING.md](CONTRIBUTING.md) for issue and pull request guidelines, coding standards, and testing expectations.