Update README.md

This commit is contained in:
JeremyStar™ 2024-12-13 03:40:58 +01:00
parent 3b1d60f41c
commit 7fd83872de
Signed by: JeremyStarTM
GPG key ID: E366BAEF67E4704D

View file

@ -6,6 +6,61 @@
<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>
# 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).