Search the Community
Showing results for tags 'burst'.
-
KSPBurst Burst compiler for Kerbal Space Program KSPBurst by itself will not provide any performance benefits. Mods will need to use Unity job system and decorate the jobs with [BurstCompile] to get any improvements. The Burst compiler is archived to prevent KSP from trying to load its dynamic libraries. The archive is extracted the first time the mod runs to <path to KSP>/PluginData/KSPBurst@<mod version>-<archive name>. Burst standard outputs can be found in <path to KSP>/Logs/KSPBurst/ and KSP.log. Repository: https://github.com/KSPModdingLibs/KSPBurst/ Installation Download the latest release from the GitHub releases and extract the archive into your KSP directory. plugins_only version does not contain the compiler, use it only if KSPBurst is a hard dependency and download size is an issue. Alternatively, KSPBurst can be installed from CKAN using KSPBurst identifier. plugins_only version is indexed as KSPBurst-Lite. Compiler version requires Mono, you can download it from here. Burst compiler version can be changed by replacing existing com.unity.burst@<version>.zip archive with a different one. The mod expects the archive to follow <package name>@<package version>.<extension> naming scheme, where <package name> contains burst. If a matching archive was not found, KSPBurst will default to using a compiler matching <path to KSP>/PluginData/*burst*/package/.Runtime/bcl.exe with the greatest package version. Burst packages can be found here. Modders KSPBurst can be bundled with other mods. Bundling plugins_only version will keep the file size down but users will need to download the compiler version for Burst benefits. Burst compatible Unity plugins and their dependencies are also bundled: Unity.Burst 1.5.0 Unity.Mathematics 1.2.1 Unity.Collections 0.1.1-preview Unity.Jobs 0.1.1-preview Configuration Options All configuration options present in KSPBurst.cfg map directly to bcl.exe command line options. If ModuleManager is present, patched options will be used. Building Prerequisites KSP installation python Unity Editor 2019.2.2f1 (if building Unity packages) Configuration Tools read mod configuration options from config.json, users should create config.json.user and override the values there: Option Description unityBuildDir relative path to unity project build directory kspMin minimum compatible KSP version kspMax maximum compatible KSP version version KSPBurst version versionTemplate relative path to version template file unityPackages list of bundled unity packages unityDependencies list of managed plugins that unity packages depend on Tools tools contains python scripts: Script Description post_build.py copy libraries to the mod directory, archive the Burst package if it exists and copy the mod to KSP installation version.py update version information in source files and ReadMe package.py package mod into an archive at archives/, outputs 2 versions, one with and one without the Burst compiler Building the Mod Clone KSPBurst Create Directory.Build.props.user in the root directory with <Project> <PropertyGroup> <KSP_DIR>path to KSP</KSP_DIR> </PropertyGroup> </Project> Depending on the platform you may also need to set DATA_DIRNAME to match your installation. If not building Unity packages, go to to step 7 Open Unity project at Unity/KSPBurst in Unity Editor Build the Unity project and note the build directory Create config.json.user in root directory with { "unityBuildDir": "<relative path to unity build directory in step 5>" } Build KSPBurst with your IDE or from command line, the mod will be copied your KSP installation. If the burst package is present in Unity directory, it may take a while to archive it the first time. License Unity plugins are licensed under under the Unity Companion License for Unity-dependent projects--see Unity Companion License. KSPBurst is licensed under the MIT license Notes System.IO.Compression and System.IO.Compression.FileSystem plugins are used for archive decompression and are bundled with Unity Editor. NuGet package Microsoft.Extensions.FileSystemGlobbing is used for glob pattern matching.