Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sunnlok/CryLivePlusPlus
https://github.com/sunnlok/CryLivePlusPlus
Last synced: 3 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/sunnlok/CryLivePlusPlus
- Owner: sunnlok
- Created: 2019-04-06T20:22:14.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2019-06-02T14:54:52.000Z (over 5 years ago)
- Last Synced: 2024-05-02T20:14:13.758Z (6 months ago)
- Language: C++
- Size: 22.5 KB
- Stars: 5
- Watchers: 2
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
- AwesomeCppGameDev - CryLivePlusPlus
README
# Live++ **//** CRYENGINE
This plugin enables the use of [Live++](https://molecular-matters.com/products_livepp.html) by Molecular Matter inside of Cryengine.
Live++ allows for easy hot-reloading and on the fly changes to native C++ code.Prerequirements
------
A valid License and the Live++ sdk is required.Building from source
------
* Clone this Repository into your code/plugins folder.
* Place the Live++ SDK into the SDK folder.
* Add Live++ to your cmake setup.
>**add_subdirectory(Live++/Module)** in **CryPlugins/CMakeLists.txt**
* Build with PLUGIN_LIVE++ enabled, the required binaries will be copied to your output folder.
Usage
------
### Simple:
* Make sure the Live++ plugin dll and the Live++ folder are in your binary directory. (Building from source copies them there)
* Enable Live++ for your Plugin/Project/Library via the console commands or the module list
```cpp
//Enables these Modules during runtime
lpp_EnableModules "MyGame MyPlugin.dll"
//List of enabled modules. Can be set in cfg before startup
lpp_enabledModules "MyGame MyPlugin.dll"
//Enables Live++ for all loaded Plugins
lpp_enableForAllPlugins 1
```
* Use Live++ as specefied in the documentation
> Note: This does not enable all required compiler settings for your module. It should still work for basic code changes.
### Advanced:
* Same steps as simple
* Add this code snippet to the **CMakeLists.txt** of the project you want to enable Live++ for:
```cmake
include(PATH_TO_LIVE++_REPO/Live++.cmake)
LIVEPP_ENABLE_FOR_TARGET(${THIS_PROJECT})
```
* The Live++ settings can now be enabled/disabled on a per Project basis in the CMake GUIAPI
------
This Plugin offers an easy API to interact with Live++ functionality.
Listeners for Patch and Compile events can be implemented as well.The API is defined and documented in [ Interface/ILive++.h](Interface/ILive++.h) and can be used like any other Cryengine plugin.
Console Variables
------```cpp
//Manually triggers a Live++ recompile
lpp_DoRecompile/*
Enables the specified modules for live++ usage.
If no extension is specified, .dll will be assumed.
*/
lpp_EnableModules/*
Disables the specified modules for live++ usage.
If no extension is specified, .dll will be assumed.
*/
lpp_DisableModules//Enables the current executable to be used with Live++
lpp_enableForExecutable//Enables Live++ for all loaded engine plugins
lpp_enableForAllPlugins//Enables the Live++ exception handler instead of the internal one
lpp_useExceptionHandler//Use the cryengine cmake build system for Live++. --NOT IMPLEMENTED
lpp_useExternalBuildSystem/*
Stage at which a Live++ Sync Point should be triggered.
0: No automatic sync point
1: pre-update
2: post-update
*/
lpp_syncPointMode//Allow the use of external manual sync point calls through the api.
lpp_allowExternalSyncPoints//Sets Live++ to load modules asynchronously --Does nothing right now
lpp_enableModulesAsync/*
List of modules that are enabled for Live++.
If read from config, these modules will be loaded on startup.
If no extension is specified, .dll will be assumed.
*/
lpp_enabledModules//Override name for the Live++ process group. Project name + version by default
lpp_groupNameOverride
```