2.8 KiB
sidebar_position | title |
---|---|
0 | Welcome |
sos!engine documentation
Welcome to the documentation for the StarOpenSource Engine!
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) 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.
Available official subsystems
Besides the base
engine, there is one stable subsystem, two experimental subsystems and one stub subsystem.
Stable
slf4j-compat
: Provides SLF4J compatibility logger that redirects all log calls to the engine.
Experimental
graphics
: Provides interfaces and classes meant to be extended by Graphics APIs.graphics-opengl
: Provides the OpenGL Graphics API
Stub
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.