diff --git a/README.md b/README.md index 03b6fdc89..2dc6b5f52 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,61 @@

Repository | Documentation | Documentation (development)

-# TODO -We haven't yet been able to finish the README yet, sorry. -You can however still look at [the old README](https://git.staropensource.de/StarOpenSource/Engine/src/commit/1e978e314687109fefa4a0966d772bb0facac338/README.md). +# 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`](#jvmloggc) + - [`jvm.logJITandAOT`](#jvmlogjitandaot) + - [`jvm.garbageCollector`](#jvmgarbagecollector) + +# 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).