Engine/docs/docs/welcome.md

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, creating and managing windows, playing audio 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, which can be extended easily, without having to fork it and without a complicated development setup. 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, windowing, 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

  • windowing: Provides abstract APIs for creating and managing windows and monitors.
  • windowing-glfw: Windowing API, allowing GLFW to be used for creating windows and recieving input.

API documentation

To read the engine API documentation, visit jd.engine.staropensource.de.