Skip to content

Commit 5c5e10b

Browse files
committed
Schola v2.0.0
1 parent d1b36c7 commit 5c5e10b

919 files changed

Lines changed: 70008 additions & 46244 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitattributes

Lines changed: 0 additions & 63 deletions
This file was deleted.

.gitignore

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ documentation/*.bkp
8787

8888
#ONNX files
8989
*.onnx
90+
!/basic_test_model.onnx
9091

9192
# Don't ignore Bundled third party dependencies
9293
!/Source/ThirdParty/**/*.lib
@@ -119,5 +120,10 @@ documentation/*.bkp
119120
!/Docs/Sphinx/API/python_extensions.rst
120121
!/Docs/Sphinx/API/python_scripts.rst
121122

123+
#ignore ai app storage
124+
.cline_storage
125+
.cursor/*
122126

123-
127+
# ignore pytest temporary files
128+
.pytest_tmp/*
129+
.pytest_cache/*

Config/DefaultSchola.ini

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,8 @@
11
[CoreRedirects]
2-
+ClassRedirects=(OldName="/Script/Schola.BlueprintScholaEnvironment",NewName="/Script/Schola.BlueprintStaticScholaEnvironment")
2+
+ClassRedirects=(OldName="/Script/Schola.BlueprintDiscreteActuator",NewName="/Script/Schola.DiscreteActuator")
3+
+ClassRedirects=(OldName="/Script/Schola.BlueprintBoxActuator",NewName="/Script/Schola.BoxActuator")
4+
+ClassRedirects=(OldName="/Script/Schola.BlueprintBinaryActuator",NewName="/Script/Schola.BinaryActuator")
5+
6+
+ClassRedirects=(OldName="/Script/Schola.BlueprintDiscreteObserver",NewName="/Script/Schola.DiscreteObserver")
7+
+ClassRedirects=(OldName="/Script/Schola.BlueprintBoxObserver",NewName="/Script/Schola.BoxObserver")
8+
+ClassRedirects=(OldName="/Script/Schola.BlueprintBinaryObserver",NewName="/Script/Schola.BinaryObserver")

Content/EmptyTestMap.umap

8.24 KB
Binary file not shown.
Lines changed: 137 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,137 @@
1+
# Announcing Schola v2: Next-Generation Reinforcement Learning for Unreal Engine
2+
3+
By Alex Cann and Noah Monti
4+
5+
We're excited to announce the release of **AMD Schola v2**, a major update to AMD's open-source reinforcement learning plugin for Unreal Engine 5. This release represents a significant leap forward in capabilities, performance, and ease of use for training and deploying AI agents in Unreal Engine environments.
6+
7+
## What is Schola?
8+
9+
Schola is a toolkit that bridges the gap between Unreal Engine and popular Python-based RL frameworks like Stable Baselines 3 and Ray RLlib. Whether you're training NPCs for games, developing robotic simulations, or exploring sim-to-real transfer, Schola provides the tools you need to create intelligent agents that learn from experience.
10+
11+
## What's New in AMD Schola v2?
12+
13+
### Flexible Inference Architecture with Agent/Policy/Stepper System
14+
15+
Schola v2 introduces a powerful and flexible architecture that decouples the inference process into components for maximum flexibility and reusability. This modular design allows you to mix and match different policies, stepping strategies, and agent implementations to suit your specific needs.
16+
17+
**Key Components:**
18+
19+
- **Agent Interface** - Define an agent that takes actions and makes observations
20+
- `UInferenceComponent` - Add inference to any actor
21+
- `AInferencePawn` - Standalone pawn-based agents
22+
- `AInferenceController` - AI controller pattern for complex behaviors
23+
24+
- **Policy Interface** - Plug in different inference backends, to turn observations into actions.
25+
- `UNNEPolicy` - Native ONNX inference with Unreal Engine's Neural Network Engine
26+
- `UBlueprintPolicy` - Custom Blueprint-based decision making
27+
- Extensible interface for custom policy implementations, and new inference providers
28+
29+
- **Stepper Objects** - Control inference execution patterns by coordinating agents and policies.
30+
- `SimpleStepper` - Synchronous, straightforward inference
31+
- `PipelinedStepper` - Overlap inference with simulation for better throughput
32+
- Build custom steppers for specialized performance requirements
33+
34+
This architecture means you can easily **switch between inference backends**, **optimize performance characteristics**, and **compose behaviors** without rewriting your agent logic. Whether you're prototyping with Blueprints or deploying production-ready neural networks, the same agent interface works seamlessly with your chosen policy and execution strategy.
35+
36+
### Minari Dataset Support
37+
38+
v2 introduces native support for the **Minari dataset format**, the standard for offline RL and imitation learning datasets. Minari provides a unified interface for storing and loading trajectory data, making it easier to share demonstrations and datasets across different projects and research communities.
39+
40+
### Dynamic Agent Management
41+
42+
One of the most powerful improvements in v2 is robust support for **agents being spawned and deleted mid-episode**. Previous versions required a static set of agents throughout an episode, or a predefined spawning function to spawn agents but v2 can now handle dynamic populations seamlessly.
43+
44+
This enables realistic scenarios like:
45+
46+
- **Battle Royale / Survival Games** - Agents can be eliminated and removed from training without breaking the episode
47+
- **Population Simulations** - Spawn new agents based on game events or environmental triggers
48+
- **Dynamic Team Composition** - Add or remove team members on the fly
49+
- **Procedural Scenarios** - Dynamically create agents as players progress through procedurally generated content
50+
51+
The system lets you manage lifecycles the way you want, simply mark the agents as terminated when they die, or start reporting observations when they spawn. This makes it much easier to build realistic, dynamic environments that mirror actual game scenarios.
52+
53+
### Enhanced Command-Line Interface
54+
55+
Training from the command line is now more intuitive than ever:
56+
57+
```bash
58+
# Stable Baselines 3
59+
schola sb3 train ppo ...
60+
61+
# Ray RLlib
62+
schola rllib train ppo ...
63+
64+
# Utilities
65+
schola compile-proto
66+
schola build-docs
67+
```
68+
69+
The new CLI built with `cyclopts` provides better error messages, auto-completion support, and a more consistent interface across different RL frameworks.
70+
71+
### Blueprint Improvements
72+
73+
Working in Blueprints is smoother than ever:
74+
75+
- **Instanced Struct Based Objects** Full Blueprint Support for all points and spaces
76+
- **Enhanced Blueprint Utilities** for spaces and points
77+
78+
### Updated Framework Support
79+
80+
AMD Schola v2 has been updated to support the latest versions of all major RL frameworks and libraries:
81+
82+
- **Gymnasium** - Full support for the latest Gymnasium API (1.1+)
83+
- **Ray RLlib New API Stack** - Compatible with the latest Ray RLlib features and algorithms
84+
- **Stable-Baselines3 2.x** - Updated to work with the newest SB3 release
85+
86+
These updates ensure you can leverage the latest features, bug fixes, and performance improvements from the RL ecosystem while training your agents in Unreal Engine.
87+
88+
## Getting Started with v2
89+
90+
### Prerequisites
91+
92+
- Unreal Engine 5.5+ (tested with 5.5-5.6)
93+
- Python 3.10-3.12
94+
- Visual Studio 2022 with MSVC v143 build tools (Windows)
95+
96+
### Installation
97+
98+
1. Clone or download AMD Schola v2 from the repository
99+
2. Copy to your project's `/Plugins` folder
100+
3. Install the Python package:
101+
102+
```bash
103+
pip install -e <path to Schola>/Resources/python[all]
104+
```
105+
106+
4. Enable the plugin in your Unreal project
107+
108+
## Compatibility
109+
110+
| Schola Version | Unreal Engine | Python | Status |
111+
|----------------|---------------|--------|--------|
112+
| 2.0.x | 5.5-5.6 | 3.9-3.12 | ✅ Current |
113+
| 1.3 | 5.5-5.6 | 3.9-3.11 | Legacy |
114+
| 1.2 | 5.5 | 3.9-3.11 | Legacy |
115+
116+
## Community and Support
117+
118+
Schola is open source and we welcome contributions!
119+
120+
- **GitHub**: [GPUOpen-LibrariesAndSDKs/Schola](https://github.com/GPUOpen-LibrariesAndSDKs/Schola)
121+
- **Documentation**: [gpuopen.com/manuals/schola](https://gpuopen.com/manuals/schola/schola-index/)
122+
- **Issues & Discussions**: Submit on our GitHub repository
123+
124+
## Acknowledgments
125+
126+
AMD Schola v2 is the result of contributions from the AMD Software Technologies team, especially Tian Yue Liu, Mehdi Saeedi, and Nathan Hung, as well as the broader open-source community. Special thanks to all contributors who have helped make this release possible.
127+
128+
## Try It Today
129+
130+
AMD Schola v2 is available now under the MIT license. Whether you're building the next generation of game AI, training robots, or exploring cutting-edge research, Schola provides the tools you need to succeed.
131+
132+
Download Schola v2 and start building intelligent agents in Unreal Engine today!
133+
134+
---
135+
136+
*Schola is developed by AMD and released as part of the GPUOpen initiative. For more information about AMD's open-source tools and libraries, visit [gpuopen.com](https://gpuopen.com/).*
137+
343 KB
Loading
717 KB
Loading
6.09 MB
Loading
327 KB
Loading
461 KB
Loading

0 commit comments

Comments
 (0)