<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Kommentare zu: Das Gamesystem-Modul</title>
	<atom:link href="http://blog.zeitalter3.de/2010/02/13/das-gamesystem-modul/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.zeitalter3.de/2010/02/13/das-gamesystem-modul/</link>
	<description>Ein Blog über persistente Browsergames und deren Entstehung</description>
	<lastBuildDate>Wed, 16 Nov 2011 11:49:15 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>Von: Mehr komponentenbasierte Systeme &#171; Zeitalter3 &#8211; Browsergames Entwicklerblog</title>
		<link>http://blog.zeitalter3.de/2010/02/13/das-gamesystem-modul/comment-page-1/#comment-11674</link>
		<dc:creator>Mehr komponentenbasierte Systeme &#171; Zeitalter3 &#8211; Browsergames Entwicklerblog</dc:creator>
		<pubDate>Mon, 26 Apr 2010 21:42:10 +0000</pubDate>
		<guid isPermaLink="false">http://blog.zeitalter3.de/?p=712#comment-11674</guid>
		<description>[...] Leiter bei Deck13) über komponentenbasierte Systeme (auch bekannt als Entity-Systeme). Da meine Artikel zu dem Thema bei euch gut ankamen könnte dieser für euch ebenfalls interessant [...]</description>
		<content:encoded><![CDATA[<p>[...] Leiter bei Deck13) über komponentenbasierte Systeme (auch bekannt als Entity-Systeme). Da meine Artikel zu dem Thema bei euch gut ankamen könnte dieser für euch ebenfalls interessant [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Datenhaltung mit gamedata.class.php &#171; Zeitalter3 &#8211; Browsergames Entwicklerblog</title>
		<link>http://blog.zeitalter3.de/2010/02/13/das-gamesystem-modul/comment-page-1/#comment-10971</link>
		<dc:creator>Datenhaltung mit gamedata.class.php &#171; Zeitalter3 &#8211; Browsergames Entwicklerblog</dc:creator>
		<pubDate>Tue, 16 Feb 2010 17:50:46 +0000</pubDate>
		<guid isPermaLink="false">http://blog.zeitalter3.de/?p=712#comment-10971</guid>
		<description>[...] meinem Artikel über das Zeitgeist Gamesystem-Modul habe ich etwas mehr über die Klasse zur Datenhaltung (gamedata.class.php) geschrieben. Diese ist [...]</description>
		<content:encoded><![CDATA[<p>[...] meinem Artikel über das Zeitgeist Gamesystem-Modul habe ich etwas mehr über die Klasse zur Datenhaltung (gamedata.class.php) geschrieben. Diese ist [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Dirk</title>
		<link>http://blog.zeitalter3.de/2010/02/13/das-gamesystem-modul/comment-page-1/#comment-10954</link>
		<dc:creator>Dirk</dc:creator>
		<pubDate>Mon, 15 Feb 2010 08:59:35 +0000</pubDate>
		<guid isPermaLink="false">http://blog.zeitalter3.de/?p=712#comment-10954</guid>
		<description>Kurz erklärt:

- Eine Entity ist ein &quot;Ding innerhalb der Welt&quot;, repräsentiert durch eine ID
- Eine Komponente ist eine &quot;Eigenschaft eines Dings&quot;, repräsentiert durch Daten der Eigenschaft
- Ein System ist die Logik, die auf die Komponenten einwirkt

&lt;strong&gt;Beispiel:&lt;/strong&gt;

- Entity: Raumschiff &quot;Millenium Falcon&quot;
- Beispielhafte Komponente: Aktuelle Position, repräsentiert durch X, Y, Z-Koordinate im Raum
- Beispielhaftes System, welches auf die Komponente einwirkt: Physik</description>
		<content:encoded><![CDATA[<p>Kurz erklärt:</p>
<p>- Eine Entity ist ein &#8220;Ding innerhalb der Welt&#8221;, repräsentiert durch eine ID<br />
- Eine Komponente ist eine &#8220;Eigenschaft eines Dings&#8221;, repräsentiert durch Daten der Eigenschaft<br />
- Ein System ist die Logik, die auf die Komponenten einwirkt</p>
<p><strong>Beispiel:</strong></p>
<p>- Entity: Raumschiff &#8220;Millenium Falcon&#8221;<br />
- Beispielhafte Komponente: Aktuelle Position, repräsentiert durch X, Y, Z-Koordinate im Raum<br />
- Beispielhaftes System, welches auf die Komponente einwirkt: Physik</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Gameplorer</title>
		<link>http://blog.zeitalter3.de/2010/02/13/das-gamesystem-modul/comment-page-1/#comment-10953</link>
		<dc:creator>Gameplorer</dc:creator>
		<pubDate>Mon, 15 Feb 2010 08:42:13 +0000</pubDate>
		<guid isPermaLink="false">http://blog.zeitalter3.de/?p=712#comment-10953</guid>
		<description>Für mich las sich das so, dass Entities keine Klassen sind und auch keine Funktionen anbieten. Die Komponenten implementieren hingegen die Logik. Sonst wären sie ja auch nicht in sich geschlossen und sinnvoll wiederverwendbar, wenn die Logik an ganz anderer Stelle definiert ist. 

Allerdings hatte ich bisher auch nur deinen und T=Machines Artikel zum ES und daher noch einige unklare Punkte.

Bis bald!</description>
		<content:encoded><![CDATA[<p>Für mich las sich das so, dass Entities keine Klassen sind und auch keine Funktionen anbieten. Die Komponenten implementieren hingegen die Logik. Sonst wären sie ja auch nicht in sich geschlossen und sinnvoll wiederverwendbar, wenn die Logik an ganz anderer Stelle definiert ist. </p>
<p>Allerdings hatte ich bisher auch nur deinen und T=Machines Artikel zum ES und daher noch einige unklare Punkte.</p>
<p>Bis bald!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Dirk</title>
		<link>http://blog.zeitalter3.de/2010/02/13/das-gamesystem-modul/comment-page-1/#comment-10940</link>
		<dc:creator>Dirk</dc:creator>
		<pubDate>Sun, 14 Feb 2010 14:36:53 +0000</pubDate>
		<guid isPermaLink="false">http://blog.zeitalter3.de/?p=712#comment-10940</guid>
		<description>Moment mal - &lt;strong&gt;in&lt;/strong&gt; einer Komponente finden gar keine Algorithmen statt, wir sprechen von reinen Daten. Die Systeme, die auf die Komponenten zugreifen sind diejenigen, die Aktionen durchführen. Die Kommunikation zwischen diesen Systemen findet über einen Eventhandler statt (in meinem Fall zumindest). Ob diese Systeme nun in der Hauptapplikation, in eigenen kleinen Servern oder in der Datenbank laufen ist nicht definiert und kann von Fall zu Fall implementiert werden.

Mehr dazu bald..</description>
		<content:encoded><![CDATA[<p>Moment mal &#8211; <strong>in</strong> einer Komponente finden gar keine Algorithmen statt, wir sprechen von reinen Daten. Die Systeme, die auf die Komponenten zugreifen sind diejenigen, die Aktionen durchführen. Die Kommunikation zwischen diesen Systemen findet über einen Eventhandler statt (in meinem Fall zumindest). Ob diese Systeme nun in der Hauptapplikation, in eigenen kleinen Servern oder in der Datenbank laufen ist nicht definiert und kann von Fall zu Fall implementiert werden.</p>
<p>Mehr dazu bald..</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Gameplorer</title>
		<link>http://blog.zeitalter3.de/2010/02/13/das-gamesystem-modul/comment-page-1/#comment-10939</link>
		<dc:creator>Gameplorer</dc:creator>
		<pubDate>Sun, 14 Feb 2010 13:18:18 +0000</pubDate>
		<guid isPermaLink="false">http://blog.zeitalter3.de/?p=712#comment-10939</guid>
		<description>Hi Dirk,

dass Komponenten strikt getrennt werden, würde ich (auch ohne praktische ES-Erfahrung) klar befürworten. Allerdings ist mir die Kommunikation gänzlich unklar, da ja die einzelnen Algorithmen in einer Komponente ablaufen müssen (Wiederverwendbarkeit etc.). Wenn sich Komponenten gegenseitig beeinflussen, geht das dann nicht mehr ohne weiteres. Aber danke für deine Links, da schaue ich mal rein.

Falls du es schaffst dazu einen Artikel zu schreiben, wäre das prima. Vor allem der Punkt, dass ich bei einem spezifischen Datenbankdesign einige Berechnungen auf das DBMS auslagern könnte, beim ES nicht mal mehr gescheite Queries (Nachteile bei internen Query-Optimierung, Parallelisierung, Indizes, Performance, etc. pp.) bauen kann, würde mich dabei interessieren.
Der Vorteil den ich jedoch sehe, ist die Wiederverwendbarkeit und Wartbarkeit. Nach meiner Einschätzung kann das aber die enormen Performance-Einbußen nicht aufwiegen.

Aber... ich bin mal auf deinen Artikel gespannt.

Gruß
Dennis</description>
		<content:encoded><![CDATA[<p>Hi Dirk,</p>
<p>dass Komponenten strikt getrennt werden, würde ich (auch ohne praktische ES-Erfahrung) klar befürworten. Allerdings ist mir die Kommunikation gänzlich unklar, da ja die einzelnen Algorithmen in einer Komponente ablaufen müssen (Wiederverwendbarkeit etc.). Wenn sich Komponenten gegenseitig beeinflussen, geht das dann nicht mehr ohne weiteres. Aber danke für deine Links, da schaue ich mal rein.</p>
<p>Falls du es schaffst dazu einen Artikel zu schreiben, wäre das prima. Vor allem der Punkt, dass ich bei einem spezifischen Datenbankdesign einige Berechnungen auf das DBMS auslagern könnte, beim ES nicht mal mehr gescheite Queries (Nachteile bei internen Query-Optimierung, Parallelisierung, Indizes, Performance, etc. pp.) bauen kann, würde mich dabei interessieren.<br />
Der Vorteil den ich jedoch sehe, ist die Wiederverwendbarkeit und Wartbarkeit. Nach meiner Einschätzung kann das aber die enormen Performance-Einbußen nicht aufwiegen.</p>
<p>Aber&#8230; ich bin mal auf deinen Artikel gespannt.</p>
<p>Gruß<br />
Dennis</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Dirk</title>
		<link>http://blog.zeitalter3.de/2010/02/13/das-gamesystem-modul/comment-page-1/#comment-10935</link>
		<dc:creator>Dirk</dc:creator>
		<pubDate>Sun, 14 Feb 2010 08:39:11 +0000</pubDate>
		<guid isPermaLink="false">http://blog.zeitalter3.de/?p=712#comment-10935</guid>
		<description>Hallo Gameplorer,

danke für dein Feedback!

Zu 1) Ganz allgemein gesprochen: Das ist in der Tat nicht definiert und Sache deiner Implementation. Es gab es erst vor Kurzem eine lange und breite Diskussion darüber in der &lt;a href=&quot;http://lists.midnightryder.com/listinfo.cgi/sweng-gamedev-midnightryder.com&quot; rel=&quot;nofollow&quot;&gt;Sweng Gamedev Mailingliste&lt;/a&gt;: &quot;Entity Communication &amp; Use of Reflection&quot; von Ashkan Aliabadi, beginnend ab dem 18.12.2009 (verfügbar im &lt;a href=&quot;http://lists.midnightryder.com/private.cgi/sweng-gamedev-midnightryder.com/&quot; rel=&quot;nofollow&quot;&gt;Archiv&lt;/a&gt;, aber Anmeldung erforderlich). Es gab unheimlich viele interessante Ansichten dazu wie, warum und warum nicht Komponenten und Entitäten miteinander kommunizieren dürfen und sollten.

Zu 2) Ich habe 5 Mal angefangen hier was zu schreiben, aber alles läuft auf einen ähnlich langen Text wie bei dem Hauptartikel hinaus. Also bitte ich um etwas Geduld - ich finde die Frage toll, weil sie in der Tat den Finger auf einen wichtigen Punkt legt, und werde sie in den kommenden Tagen in Artikelform ausführlich beantworten.</description>
		<content:encoded><![CDATA[<p>Hallo Gameplorer,</p>
<p>danke für dein Feedback!</p>
<p>Zu 1) Ganz allgemein gesprochen: Das ist in der Tat nicht definiert und Sache deiner Implementation. Es gab es erst vor Kurzem eine lange und breite Diskussion darüber in der <a href="http://lists.midnightryder.com/listinfo.cgi/sweng-gamedev-midnightryder.com" rel="nofollow">Sweng Gamedev Mailingliste</a>: &#8220;Entity Communication &amp; Use of Reflection&#8221; von Ashkan Aliabadi, beginnend ab dem 18.12.2009 (verfügbar im <a href="http://lists.midnightryder.com/private.cgi/sweng-gamedev-midnightryder.com/" rel="nofollow">Archiv</a>, aber Anmeldung erforderlich). Es gab unheimlich viele interessante Ansichten dazu wie, warum und warum nicht Komponenten und Entitäten miteinander kommunizieren dürfen und sollten.</p>
<p>Zu 2) Ich habe 5 Mal angefangen hier was zu schreiben, aber alles läuft auf einen ähnlich langen Text wie bei dem Hauptartikel hinaus. Also bitte ich um etwas Geduld &#8211; ich finde die Frage toll, weil sie in der Tat den Finger auf einen wichtigen Punkt legt, und werde sie in den kommenden Tagen in Artikelform ausführlich beantworten.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Gameplorer</title>
		<link>http://blog.zeitalter3.de/2010/02/13/das-gamesystem-modul/comment-page-1/#comment-10925</link>
		<dc:creator>Gameplorer</dc:creator>
		<pubDate>Sat, 13 Feb 2010 18:55:45 +0000</pubDate>
		<guid isPermaLink="false">http://blog.zeitalter3.de/?p=712#comment-10925</guid>
		<description>Hallo Dirk,
sehr interessanter Artikel. Ich selbst komme zwar nicht aus der Spieleentwicklung, habe aber jahrelang als Softwareentwickler gearbeitet und beschäftige mich immer gerne mit Architekturen, Patterns &amp; Co.

Den Artikel über ES habe ich auch vor einiger Zeit gefunden. Sehr interessant. Zwei Fragen, die für mich total offen blieben:

1. Wie interagieren Komponenten? Wenn der Zustand der einen vom Zustand einer anderen abhängt, wie wird das realisiert? Immerhin dürfen sie sich ja nicht kennen, sprich ich darf den Zustand gar nicht erst abfragen.

2. 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.

Würde mich freuen, wenn du da einen Hinweis für mich hättest. Dein Framework schaue ich mir auch mal an - bisher kannte ich weder Zeitgeist noch deinen Blog. Aber der ist abonniert! ;-)</description>
		<content:encoded><![CDATA[<p>Hallo Dirk,<br />
sehr interessanter Artikel. Ich selbst komme zwar nicht aus der Spieleentwicklung, habe aber jahrelang als Softwareentwickler gearbeitet und beschäftige mich immer gerne mit Architekturen, Patterns &amp; Co.</p>
<p>Den Artikel über ES habe ich auch vor einiger Zeit gefunden. Sehr interessant. Zwei Fragen, die für mich total offen blieben:</p>
<p>1. Wie interagieren Komponenten? Wenn der Zustand der einen vom Zustand einer anderen abhängt, wie wird das realisiert? Immerhin dürfen sie sich ja nicht kennen, sprich ich darf den Zustand gar nicht erst abfragen.</p>
<p>2. Wie gut eignet sich das tatsächlich für Browsergames? Durch die component_data_N &#8211; 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 &#8211; 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.<br />
Mir kam die Artikelreihe daher eher vor, als wäre ES für Clientbasierte-Spiele ausgelegt.</p>
<p>Würde mich freuen, wenn du da einen Hinweis für mich hättest. Dein Framework schaue ich mir auch mal an &#8211; bisher kannte ich weder Zeitgeist noch deinen Blog. Aber der ist abonniert! <img src='http://blog.zeitalter3.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
</channel>
</rss>

