This feature is still in beta and subject to constant change. We encourage you to use it in test projects and provide your feedback to us.
However, DO NOT use it in production where it creates dependencies! Always back up your projects to make sure that you can go back to a previous version.
The CRYENGINE plugin system exposes support for creating plugins in both C++ and C# and allows users to simply drop a plugin into their project and to see the benefits instantaneously.
Changes to ExtensionSystem:
There are no compatibility issues with existing extensions.
Changes to CryMonoBridge & MonoRuntime:
CryMonoBridge is now part of every Windows project. This will increase compile times because of the swig-process, but it also ensures that C# support can be easily enabled without any further changes or special configurations. The MonoRuntime has changed a lot. The MonoLauncher is no longer loaded, but all the C# plugins are managed directly from the plugin manager. This allows users to keep control over every single binary loaded.
Changes to C# projects/plugins:
To make your C# binary compatible with the new plugin system, just write a wrapper class around it that inherits from ICryEnginePlugin. ICryEnginePlugin offers you all the necessary interfaces to CRYENGINE. The plugin system takes care of calling the methods mentioned below:
On top of this, the plugin manager takes care of setting up a link to the global DomainHandler as well as setting the specified Binary and Asset directories for this plugin. Can be accessed within the plugin through the following methods:
|All these methods are also available to native C++ plugins. In the future, we plan to match them even closer in functionality and have an identical workflow on both sides.|
As this is a Beta Feature and is still in development, then we would love to hear what you think about it. Please provide us with any feedback you have through the CRYENGINE Community forum!