Hallo liebe Community,
Mir sind heute wieder ein paar Fragen zu einem Entity - Component - System gekommen.
Nachdem ich noctarius heute schon kräftig ausgefragt habe, wollte ich hier nochmal einen Thread erstellen, um mein Verständnis für dieses Konzept weiter zu verbessern und mit euch zu diskuttieren, was denn das beste Konzept hierfür sein könnte.
@noctarius: Vielen Dank nochmal dafür!
Eine Game Engine besteht aus diversen Komponenten, z.B. Graphic Engine, Sound Engine, Physics Engine, Network Engine usw.
Desweiteren gibt es nochmal einen Core, wo es z.B. einen Resource Manager, Math libraries, Util Klassen, LWJGLLoader, Configuration Klassen, Logger usw. gibt.
Alle Sub Engines sollten, soweit es geht, voneindner entkoppelt sein.
Hier mal 2 Konzepte:
Quellen:
http://de.slideshare.net/AttilaJenei/gam…ecture-34006558, Buch: "Game Engine Architecture"
Kurz zusammen gefasst, was ich unter Entity - Component - System verstehe:
Es gibt folgende Elemente des Entity Systems:
- Entity - Das Spiel Objekt, am besten einfach eine Integer Unique ID
- Component - hält die Daten
- Controller - updatet / rendert
Wenn ich das richtig verstanden habe, gibt es z.B. Controller für den Renderer, das Sound System usw., oder?
Quelle:
http://entity-systems.wikidot.com/es-terminology
Inwieweit hängen welche Komponenten zusammen?
Die Graphics Engine muss ja die Sound Engine nicht kennen, aber alle benötigen das Entity System, oder?
Kann man das umgehen bzw. verbessern?
In diesem Artikel
http://m.heise.de/developer/artikel/Comp…en-2262126.html auf Seite 2 und 3 habe ich gelesen, dass man mittlerweile vermehrt auf BluePrints bzw. ein zentrales Event System setzt.
Wie müsste eine Architektur dafür aussehen?
Was nutzt ihr so für Konzepte?
Welche findet ihr am besten?