Tag Entity Systeme

Mehr Entitysysteme 12

Mai10

Adam hat in seinem Blog eine Implementation eines kompletten Entitysystems in Java vorgestellt. Genug gesagt.

Mehr komponentenbasierte Systeme 2

Apr26

In der aktuellen Printausgabe des Making Games Magazin ist ein Artikel von Thorsten Lange (seinerseits Technischer Leiter bei Deck13) über komponentenbasierte Systeme (bzw. Entity-Systeme). Da meine Artikel zu dem Thema bei euch gut ankamen könnte dieser für euch ebenfalls interessant sein.

Der Artikel geht über vier Seiten und beginnt mit den Problemen einer klassenbasierten Hierarchie bei Objekten mit komplexen Eigenschaften. Als Lösung beschreibt er ein Komponentensystem, welches die Eigenschaften eines Objekts definiert. Das System setzt die Objekte aus den Komponenten zusammen, die Logik steckt dabei allerdings, im Gegensatz zu meiner Implementation, in den Komponenten selbst. Es gibt einige Beispiele in Pseudo-Code (welche die Objekt-Initialisierung zeigen) und er spricht kurz über einen Property-Editor und dessen Anbindung.

Alles in allem kein sehr tiefgehender Artikel, aber mehr über andere Ansätze und Implementationen zu lesen ist immer gut. Kurz: Lese-Empfehlung.

Datenhaltung mit gamedata.class.php 15

Feb16

In meinem Artikel über das Zeitgeist Gamesystem-Modul habe ich etwas mehr über die Klasse zur Datenhaltung (gamedata.class.php) geschrieben. Diese ist in Zeitgeist angelehnt an die Datenhaltung eines Entity-Systems. In den Kommentaren wurde mir von Gameplorer folgende Frage zu dem Prinzip gestellt:

Wie gut eignet sich das tatsächlich für Browsergames? Durch die component_data_N – Tabellen ist es ja nicht mehr möglich, effektiv mit Joins zu arbeiten. Dadurch muss ich aber pro Entity zig Queries absetzen (jede component_data – Tabelle) was auf die Performance schlägt. Für z.B. einen Kampf müssten dann auch noch mehrere Entities geladen werden. Das klingt für mich nach einem absoluten NoGo in einem Browsergame.
Mir kam die Artikelreihe daher eher vor, als wäre ES für Clientbasierte-Spiele ausgelegt.

Das ist eine gute Frage, da sie auf einem vebreiten Mißverständnis beruht wie Entity Systeme funktionieren. Es werden (wenn richtig implementiert) kaum Joins benötigt, da keine Notwendigkeit besteht die kompletten Entites zu laden (geschweige denn mehrere). Das Missverständnis beruht wohl auf dem Versuch sich Entity Systeme wie klassisch objektorientierte Systeme vorzustellen, in denen das System über die Objektklassen immer (mehr oder weniger direkten) Zugriff auf alle Daten des Objekts hat. Mir ging es nicht anders und ich brauchte einige Anläufe, um mich davon zu lösen.

Hier also mein Versuch zu erklären, wie ich Entity Systeme verstehe und wie sie in Zeitgeist implementiert wurden.

Weiterlesen »

Zeitalter3 – Browsergames Entwicklerblog is powered by WordPress
Theme based on FREEmium Theme, developed by Dariusz Siedlecki by FreebiesDock.com