Update README

This commit is contained in:
JeremyStar™ 2024-07-29 22:45:07 +02:00
parent 9dc0f549d4
commit 5be690fd38
Signed by: JeremyStarTM
GPG key ID: E366BAEF67E4704D

View file

@ -1,35 +1,43 @@
# StarOpenSource Engine # StarOpenSource Engine
The StarOpenSource Engine (or sos!engine for short) is a modular, extensible and easy to use Java game and application engine. The StarOpenSource Engine (or sos!engine for short) is a modular, extensible and easy to use Java game and application engine.
## WARNING
The StarOpenSource Engine is under heavy development and is extremely unstable. Code will break often, prepare for potential major refactors when trying the engine out.
## Index ## Index
- [About](#about) - [About](#about)
- [About the engine](#about-the-engine) - [... the engine](#-the-engine)
- [About the repository](#about-the-repository) - [... the repository](#-the-repository)
- [Priorities](#priorities) - [Priorities](#priorities)
- [Documentation](#documentation) - [Documentation](#documentation)
- [Contributing](#contributing) - [Contributing](#contributing)
- [Requirements](#requirements) - [Requirements](#requirements)
- [What IDE to use?](#what-ide-to-use) - [What IDE to use?](#what-ide-to-use)
- [Code style](#code-style) - [Code style](#code-style)
- [Read this before creating a pull request](#read-this-before-creating-a-pull-request) - [Pull request guidelines](#pull-request-guidelines)
- [Making your first contribution](#making-your-first-contribution) - [Making your first contribution](#making-your-first-contribution)
## About ## About
### About the engine ### ... the engine
The sos!engine is a modular and extensible framework for building applications and games, written in the Java programming language. The StarOpenSource Engine is a modular and extensible framework for building applications and games written in the Java programming language.
The engine consists of various subsystems, each separate and responsible for only one thing. The engine also houses various useful utilities and classes making development fun, and all that while being lightweight. The engine consists of various subsystems, each separate and responsible for only a few closely-related things.
### About the repository \
The sos!engine repository is a monorepo, consisting of [the core engine](https://git.staropensource.de/StarOpenSource/Engine/src/branch/develop/base), official subsystems and [their documentation](https://git.staropensource.de/StarOpenSource/Engine/src/branch/develop/docs). Not only that. The engine also features various useful classes, interfaces and methods making development fun and simpler, while being lightweight.
### ... the repository
The sos!engine repository is a monorepo, consisting of [the core engine](https://git.staropensource.de/StarOpenSource/Engine/src/branch/develop/base), multiple official subsystems and [their documentation](https://git.staropensource.de/StarOpenSource/Engine/src/branch/develop/docs).
### Priorities ### Priorities
- modular These are in no particular order.
- small & lightweight
- fast - configurable
- [do one thing and do it well](https://en.wikipedia.org/wiki/Unix_philosophy) (subsystems concept) - [do one thing and do it well](https://en.wikipedia.org/wiki/Unix_philosophy) (subsystems concept)
- have as few runtime dependencies as possible (note: we will cut down on some of them during development) - fast
- few runtime dependencies (note: we will cut down on some of them during development)
- modular & extensible
- small & lightweight
## Documentation ## Documentation
The official documentation for the StarOpenSource Engine is not yet available, but is planned. You can view the engine documentation at [engine.staropensource.de](https://engine.staropensource.de). It provides information, guides and tutorials about the core engine and subsystems.
You can however [visit the Javadocs](https://jd.engine.staropensource.de). If you want the API reference, you can [visit the Javadoc](https://jd.engine.staropensource.de) for the engine and it's subsystems.
## Contributing ## Contributing
### Requirements ### Requirements
@ -39,10 +47,18 @@ You need the following things to be able to contribute code to the StarOpenSourc
### What IDE to use? ### What IDE to use?
We recommend and are using [IntelliJ IDEA Community Edition](https://github.com/JetBrains/intellij-community) for development because it is flexible, extendable, customizable, provides good completions and error detection. It's also open source. We recommend and are using [IntelliJ IDEA Community Edition](https://github.com/JetBrains/intellij-community) for development because it is flexible, extendable, customizable, provides good completions and error detection. It's also open source.
### Code style ### Code style
We recommend looking at existing classes. We recommend looking at existing classes and code for a good understanding on how we'd like code to be written.
### Read this before creating a pull request Here's a quick rundown on the most important things:
Before creating a pull request, make sure you've - Document EVERYTHING. Every single class, field and method, even if private.
- created tests for the functionality you added, changed or removed (if applicable), - Make comments about your code, unless it's extremly simple and easy to understand.
- Make sure to add and update `@since` in javadoc comments (update if the javadoc changes a good amount).
- Keep stuff simple, no need to elaborate what a logger is. Though remember to not make it *too* simple.
- Make sure every field and method has a newline to seperate it.
- Files must end with a newline or cats might get angry.
- Use your brain.
### Pull request guidelines
Before creating a pull request, make sure you've:
- created tests for the functionality you've added, changed or removed (if applicable),
- tested your changes, - tested your changes,
- made sure that everything works, - made sure that everything works,
- is compatible with other code in the monorepo, and - is compatible with other code in the monorepo, and