Engine/README.md

73 lines
3.2 KiB
Markdown
Raw Normal View History

2024-12-12 23:10:29 +01:00
<div align="center">
<a href="https://git.staropensource.de/StarOpenSource/Engine">
2024-12-13 09:24:09 +01:00
<img alt="StarOpenSource Engine" width="856px" height="auto" src="https://fs.staropensource.de/imgs/branding/engine/v2/extended-brand.png"/>
2024-12-12 23:10:29 +01:00
</a>
2024-06-08 15:33:03 +02:00
2024-12-12 23:10:29 +01:00
<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>
2024-07-29 22:45:07 +02:00
2024-12-13 03:40:58 +01:00
# Index
- [About](#about)
- [Contributing](#contributing)
- [Gradle properties](#gradle-properties)
- [Skipping the Java toolchain specification](#skipping-the-java-toolchain-specification)
- [JVM arguments](#jvm-arguments)
2024-12-13 03:41:54 +01:00
- [`jvm.logGC`](#jvm-loggc)
- [`jvm.logJITandAOT`](#jvm-logjitandaot)
- [`jvm.garbageCollector`](#jvm-garbagecollector)
2024-12-13 03:40:58 +01:00
# 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
2024-12-15 22:33:31 +01:00
[core engine](https://git.staropensource.de/StarOpenSource/Engine/src/branch/develop/base), official
2024-12-20 02:52:24 +01:00
subsystems, [their documentation (TODO)](https://git.staropensource.de/StarOpenSource/Engine/src/branch/develop/docs)
and [some miscellaneous files](https://git.staropensource.de/StarOpenSource/Engine/src/branch/develop/dist).
2024-12-13 03:40:58 +01:00
2024-12-20 02:52:24 +01:00
# Documentation
The documentation is not yet available. We will create one soon.
2024-12-13 03:40:58 +01:00
# 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.
You can pass one by adding `-P<property>=<value>` to your Gradle command line.
2024-12-13 03:40:58 +01:00
## 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.
2024-12-15 01:17:52 +01:00
Please note however that you should only pass this option if your
default, installed JDK is matching Java 21 or you will experience
issues.
2024-12-13 03:40:58 +01:00
## 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).