# StarOpenSource Engine The StarOpenSource engine (or sos!engine for short) is a modular, extensible and easy to use Java game and application engine. ## Index - [About](#about) - [About the engine](#about-the-engine) - [About the repository](#about-the-repository) - [Priorities](#priorities) - [Documentation](#documentation) - [Contributing](#contributing) - [Requirements](#requirements) - [What IDE to use?](#what-ide-to-use) - [Code style](#code-style) - [Read this before creating a pull request](#read-this-before-creating-a-pull-request) - [Making your first contribution](#making-your-first-contribution) ## About ### About the engine The sos!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, while being lightweight. ### About the repository The sos!engine repository is a monorepo, consisting of the core engine, official subsystems and their documentation. ### Priorities - modular - small & lightweight - fast - [do one thing and do it well](https://en.wikipedia.org/wiki/Unix_philosophy) (subsystems) - have as few dependencies as possible ## Documentation The official documentation for the StarOpenSource Engine is not yet available and won't be until we hit v1-rc0. You can however [visit the Javadocs](https://jd.engine.staropensource.de). ## Contributing ### Requirements You need the following things to be able to contribute to the StarOpenSource Engine: - knowledge of Java - (basic) knowledge of the engine ### What IDE to use? We use and recommend 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 We recommend looking at existing classes. ### Read this before creating a pull request Before creating a pull request, make sure you've - created tests for the functionality you added, changed or removed (if applicable), - tested your changes, - made sure that everything works, - is compatible with other code in the monorepo, and - is compatible with other applications. If not, tell us in your pull request description. ### Making your first contribution TODO (probably) until v1-rc0