Engine/docs/docs/welcome.md

3.1 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

  • ansi: Provides an ANSI logging implementation and a ShortcodeParserSkeleton implementation
  • 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-glfw: Provides common GLFW code, meant to be used and extended by Graphics APIs using GLFW.
  • 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.