StarOpenSource Engine

Repository | Documentation | Documentation (development)

# Index - [About](#about) - [Contributing](#contributing) - [Gradle properties](#gradle-properties) - [Skipping the Java toolchain specification](#skipping-the-java-toolchain-specification) - [JVM arguments](#jvm-arguments) - [`jvm.logGC`](#jvm-loggc) - [`jvm.logJITandAOT`](#jvm-logjitandaot) - [`jvm.garbageCollector`](#jvm-garbagecollector) # About The StarOpenSource Engine is a game and application framework written in Kotlin, primarily targeting the JVM. The engine is designed to be modular, configurable and extensible while being lightweight and fast. In this repository you can find the [engine's logging system](https://git.staropensource.de/StarOpenSource/Engine/src/branch/develop/logging), [engine core](https://git.staropensource.de/StarOpenSource/Engine/src/branch/develop/base), official subsystems, [their documentation](https://git.staropensource.de/StarOpenSource/Engine/src/branch/develop/docs) and [some miscellaneous files](https://git.staropensource.de/StarOpenSource/Engine/src/branch/develop/docs). # Contributing TODO, waiting for [Infrastructure/website-docs#1](https://git.staropensource.de/Infrastructure/website-docs/issues/1). Sorry :c # Gradle properties You can modify Gradle's behaviour by passing one or multiple *project properties*. These are read by our `build.gradle.kts` files and actively change the build behaviour. All of them are listed here. ## Skipping the Java toolchain specification Setting `java.skipToolchainSpecification` to `true` disables the JDK version check & download step performed by Gradle. Useful when automating things or if you're facing the `No locally installed toolchains match and toolchain download repositories have not been defined` error. ## JVM arguments You can pass the following arguments to modify the behaviour of JVMs used for executing projects. ### `jvm.logGC` Enables garbage collection logging. Takes effect if set to `true`. ### `jvm.logJITandAOT` Enables logging about [JIT](https://en.wikipedia.org/wiki/Just-in-time_compilation) and [AOT](https://en.wikipedia.org/wiki/Ahead-of-time_compilation) code compilation. Takes effect if set to `true`. ### `jvm.garbageCollector` Sets the garbage collector to use. Requires the specified garbage collector to be built into the JVM (some aren't compiled by default). Accepts [`epsilon`](https://openjdk.org/jeps/318), [`serial`](https://docs.oracle.com/en/java/javase/21/gctuning/available-collectors.html#GUID-45794DA6-AB96-4856-A96D-FDE5F7DEE498) and [`g1`](https://en.wikipedia.org/wiki/Garbage-first_collector).