# ParadiSO - eine minimale 2D-Grafikengine

**ParadiSO** wurde als stark abgespeckte 2D-Version meiner `pixwerx`-Engine konzipiert. _ParadiSO_ verfolgt einen minimalistischen Ansatz für 2D-Grafik zu Bildungszwecken. Es verwendet modernes C++ und ein datengetriebenes Design, jedoch keine ECS (Entity Component System).

## Bildungszwecke

Einige Argumente für seinen Bildungsaspekt:

-   Kombination verschiedener Konzepte und Paradigmen zur Erstellung ausdrucksstarker, aber knappen Codes
-   Stark von Rust-Code inspiriert
-   Für den mathematischen Code wird eine sofortige Auswertung verwendet (keine Expression-Templates), jedoch mit der Verwendung von `constexpr`, um eventuelle Performance-Overheads auszugleichen und optimale Vektorisierung zu erreichen.
-   Versteckt alte `C`-APIs hinter einer modernisierten Fassade
-   Es lehnt sich stark an die STL und ihre Algorithmen an

## Minimalistisch

Da diese Engine einige Muster und Designkonzepte zeigen soll, versucht sie, unnötigen Ballast zu vermeiden.

## Abhängigkeiten

ParadiSO wird mit den notwendigen Komponenten geliefert. Diese sollte jedoch hier erwähnt werden:

-   [GLFW 3.3.8](https://github.com/glfw/glfw)
-   [GLAD](https://github.com/Dav1dde/glad)
-   [STB image](https://github.com/nothings/stb)

## Toolchains

ParadiSO kann auf verschiedenen Plattformen gebaut werden

-   Windows (Visual Studio Build Tools 2022)
-   MacOS (clang 14 or later)
-   Linux (clang 14 or later, gcc 13.2.1)

Andere Kombinationen sind möglich aber nicht getestet.

## Beiträge

-   [Tim Götzelmann](https://code.technotecture.net/Timeplex) Windows Build
-   [Robin Rottstädt](https://code.technotecture.net/robin_rottstaedt) Flappy Bird Clone, Bitmap Loader
-   [brxxh](https://code.technotecture.net/brxxh) Flappy Bird Clone
