Bachelor- oder Masterarbeit: Entity-Component-Systeme als Basis für 3D-Simulation
In großen Softwareframeworks kommt es häufig zu immer komplexer werdenden Klassenhierarchien. Dies kann dazu führen, dass die Flexibilität, die Software an neue Anforderungen anpassen zu können, mit der Zeit abnimmt. Diesem Problem kann mit Hilfe der Architektur sogenannter „Entity-Component-Systeme“ (ECS) begegnet werden, welche besonders in der Computerspieleindustrie gerne angewendet werden [1]. Dabei wird beim Design auf das zentrale Prinzip „favor composition over inheritance“ gesetzt, d.h. Kopplung soll möglichst durch Komposition an Stelle von Vererbung umgesetzt werden. In der ECS-Architektur erhalten grundlegende Entity-Basisklassen durch verschiedene Komponenten ihr Verhalten.
Im weit verbreiteten C++-Programmierframework Qt gibt es innerhalb des Qt3D-Moduls eine Basisstruktur für eigene ECS [2], die näher untersucht werden soll. Auch die flexible Render-Engine von Qt3D soll in die Arbeit einbezogen werden. Welche Vor- und Nachteile ergeben sich aus dem ECS-Ansatz im Vergleich zu klassischen Szenegraphen? Sind die Ansätze kombinierbar?
Im Rahmen der Arbeit soll der Prototyp eines ECS entwickelt werden und an das 3D-Simulationssystem VEROSIM angebunden werden. An exemplarischen Simulationsmodellen (z.B. Fahrzeugmodell, Roboterzelle, Satelliten-Anflug) soll untersucht werden, wie sich bestehende Datenstrukturen in ECS überführen lassen. Können bestehende Simulationsmodelle bzw. Szenegraphen mit Hilfe des Qt3D-Renderers dargestellt werden? Weitere Informationen zu Qt3D und ECS in der Praxis finden sich z.B. in [3].
Stichworte: Entity-Component-Systeme, Softwarearchitektur, Szenegraphen, Render-Engines, C++, Qt, Qt3D
[1] heise Developer: Component-Based Entity Systems in Spielen, http://www.heise.de/developer/artikel/Component-Based-Entity-Systems-in-Spielen-2262126.html
[2] Qt 5.6: Qt3D Overview: http://doc.qt.io/qt-5/qt3d-overview.html
[3] Kévin Ottens – Advances in Qt 3D: https://ervin.ipsquad.net/slides/talks/ak2017-qt3d-advances/ak2017-qt3d-advances.pdf
Betreuer: Dipl.-Phys. Linus Atorf, Mail: , Tel.: 0241 80-26106