forked from StarOpenSource/Engine
44 lines
2.8 KiB
Markdown
44 lines
2.8 KiB
Markdown
|
---
|
||
|
sidebar_position: 0
|
||
|
title: Welcome
|
||
|
---
|
||
|
|
||
|
# sos!engine documentation
|
||
|
Welcome to the documentation for the StarOpenSource Engine!
|
||
|
<!-- StarOpenSource Fly verification links -->
|
||
|
<link href="https://fly.staropensource.de/@staropensource" rel="me"/>
|
||
|
<link href="https://fly.staropensource.de/@soscore" rel="me"/>
|
||
|
<link href="https://fly.staropensource.de/@sosengine" rel="me"/>
|
||
|
<!-- StarOpenSource Fly verification links -->
|
||
|
|
||
|
## What is it?
|
||
|
The StarOpenSource Engine (or **sos!engine** for short) is a modular, extensible and easy to use Java game and application engine. \
|
||
|
It is responsible for the logging infrastructure, displaying stuff to a monitor, talking with graphics cards, playing audio, displaying UIs and much more.
|
||
|
|
||
|
## Why another one?
|
||
|
Yeah, it's true that there are many game engines and frameworks out there that intend to ease development of applications and games.
|
||
|
I ([JeremyStarTM](https://git.staropensource.de/JeremyStarTM)) however have never seen an engine or framework that can be extended easily.
|
||
|
And I don't mean what you make within the bounds of the engine or framework, no, I mean the engine/framework itself.
|
||
|
|
||
|
## Architecture of the engine
|
||
|
The engine consists of the core engine (`base` dependency in your project) and various subsystems (`slf4j-compat`, `graphics`, etc.). \
|
||
|
\
|
||
|
The job of the base engine is to provide minimal classes and interfaces needed for an application.
|
||
|
It contains among other things a default logger implementation, useful methods, event system and a placeholder system. \
|
||
|
\
|
||
|
Subsystems on the other hand usually handle complex tasks. They provide abstractions for libraries and operating system calls. \
|
||
|
"But why are there so many of them?" you might ask. Good question! Subsystems are intended to [do one thing and do it well](https://en.wikipedia.org/wiki/Unix_philosophy).
|
||
|
|
||
|
## Available official subsystems
|
||
|
Besides the `base` engine, there is one stable subsystem, two experimental subsystems and one stub subsystem.
|
||
|
### Stable
|
||
|
- [`slf4j-compat`](https://git.staropensource.de/StarOpenSource/Engine/src/branch/develop/slf4j-compat): Provides [SLF4J](https://slf4j.org/) compatibility logger that redirects all log calls to the engine.
|
||
|
### Experimental
|
||
|
- [`graphics`](https://git.staropensource.de/StarOpenSource/Engine/src/branch/develop/graphics): Provides interfaces and classes meant to be extended by Graphics APIs.
|
||
|
- [`graphics-opengl`](https://git.staropensource.de/StarOpenSource/Engine/src/branch/develop/graphics/opengl): Provides the OpenGL Graphics API
|
||
|
### Stub
|
||
|
- [`graphics-vulkan`](https://git.staropensource.de/StarOpenSource/Engine/src/branch/develop/graphics/vulkan): Provides the Vulkan Graphics API. 100% unfinished, planned in the future.
|
||
|
|
||
|
## API documentation
|
||
|
To read the engine API documentation, visit [jd.engine.staropensource.de](https://jd.engine.staropensource.de).
|