66 lines
3 KiB
Markdown
66 lines
3 KiB
Markdown
<div align="center">
|
|
<a href="https://git.staropensource.de/StarOpenSource/Engine">
|
|
<img alt="StarOpenSource Engine" width="auto" height="200px" src="https://fs.staropensource.de/imgs/branding/engine/v2/extended-brand.png"/>
|
|
</a>
|
|
|
|
<p align="center"><a href="https://git.staropensource.de/StarOpenSource/Engine">Repository</a> | <a href="https://engine.staropensource.de">Documentation</a> | <a href="https://develop.engine.staropensource.de">Documentation (development)</a></p>
|
|
</div>
|
|
|
|
# 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).
|