About soloAS#
soloAS is an Unreal scripting system built for design. It adds AngelScript scripting as plugins for the stock engine, so you get an excellent development experience without modifying engine code.
Why this project exists#
- Blueprints are a poor fit for complex logic and C++ iterates slowly, so a text scripting language is needed. AngelScript offers an excellent overall experience and is very close to C++: it runs as bytecode and can also be converted to C++, with very good performance.
- The existing approach needs a modified UE engine that you compile yourself. Setting up the environment is a hassle and working with others is worse; even after you have built it once, every update is a chore again. Especially for small teams, not maintaining an engine fork saves a lot of time.
- If only engine-fork versions exist, the community cannot grow, and more developers cannot get this great development experience.
- Some features are missing — for example, UE interfaces that are not exposed to script — which causes a lot of adaptation work. This is a matter of technical choice, not right or wrong. But for many features, having them is better than not, especially for people who rely on various external plugins, where compatibility matters — which is why this project even supports AS classes inheriting from Blueprints (coming soon).
- In the age of AI, features need to be modular so that tasks can be handed to AI, so there need to be modules that plug in and out dynamically, like Mods. AngelScript is easy to adapt, which makes it well suited to building these extensions on top of UE’s own systems.
- Bind as much of the C++ API to AngelScript as automatically as possible. AS can then reach a little deeper, so gameplay code needs less C++, and the less C++, the faster you iterate.
- Packaging and similar workflows should be automated like a pipeline — especially the powerful workflow that converts AS to C++ for performance.
- Make full use of AI by giving it a good scaffold: AS code looks a lot like C++, so with good API docs and error-correction mechanisms, AI can easily learn how to write AS code.
Architecture#
Plugin architecture#
Every plugin depends on the core and is independent of the others; extensions and tools plug in through the extension points the core provides. Dashed boxes marked "Coming soon" are not released yet; solid boxes are released.
Where Feature Mods sit (coming soon)#
Feature Mods sit at the top: a Feature Mod can depend on the game project, Game Feature Plugins and other Feature Mods, and none of those can depend on a Feature Mod.
Design trade-off#
When you don't need a feature, leave its plugin disabled and it costs almost nothing; when you do, plug it in at any time and it works right away.