<?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>Comments on: Entity Systems are the future of MMOG development &#8211; part 3</title>
	<atom:link href="http://t-machine.org/index.php/2007/12/22/entity-systems-are-the-future-of-mmog-development-part-3/feed/" rel="self" type="application/rss+xml" />
	<link>http://t-machine.org/index.php/2007/12/22/entity-systems-are-the-future-of-mmog-development-part-3/</link>
	<description>Internet Gaming, Computer Games, Technology, MMO, and Web 2.0</description>
	<lastBuildDate>Thu, 29 Jul 2010 16:26:58 +0100</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: T=Machine &#187; Entity Systems are the future of MMOG development &#8211; Part 2</title>
		<link>http://t-machine.org/index.php/2007/12/22/entity-systems-are-the-future-of-mmog-development-part-3/comment-page-1/#comment-3432</link>
		<dc:creator>T=Machine &#187; Entity Systems are the future of MMOG development &#8211; Part 2</dc:creator>
		<pubDate>Sat, 28 Nov 2009 13:13:51 +0000</pubDate>
		<guid isPermaLink="false">http://tmachine1.dh.bytemark.co.uk/blog/index.php/2007/12/22/entity-systems-are-the-future-of-mmog-development-part-3/#comment-3432</guid>
		<description>[...] Part 3   (4 votes, average: 4.25 out of 5) &#160;Loading ... Filed under : games design, massively [...]</description>
		<content:encoded><![CDATA[<p>[...] Part 3   (4 votes, average: 4.25 out of 5) &nbsp;Loading &#8230; Filed under : games design, massively [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: T=Machine &#187; Entity Systems are the future of MMOG development &#8211; Part 1</title>
		<link>http://t-machine.org/index.php/2007/12/22/entity-systems-are-the-future-of-mmog-development-part-3/comment-page-1/#comment-3224</link>
		<dc:creator>T=Machine &#187; Entity Systems are the future of MMOG development &#8211; Part 1</dc:creator>
		<pubDate>Sun, 25 Oct 2009 23:11:35 +0000</pubDate>
		<guid isPermaLink="false">http://tmachine1.dh.bytemark.co.uk/blog/index.php/2007/12/22/entity-systems-are-the-future-of-mmog-development-part-3/#comment-3224</guid>
		<description>[...] Part 3 &#8211; more on what is, and isn&#8217;t, an entity system [...]</description>
		<content:encoded><![CDATA[<p>[...] Part 3 &#8211; more on what is, and isn&#8217;t, an entity system [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Raine</title>
		<link>http://t-machine.org/index.php/2007/12/22/entity-systems-are-the-future-of-mmog-development-part-3/comment-page-1/#comment-1687</link>
		<dc:creator>Raine</dc:creator>
		<pubDate>Tue, 25 Mar 2008 09:28:10 +0000</pubDate>
		<guid isPermaLink="false">http://tmachine1.dh.bytemark.co.uk/blog/index.php/2007/12/22/entity-systems-are-the-future-of-mmog-development-part-3/#comment-1687</guid>
		<description>Hello Adam, 
I&#039;m very interested in the Entity System concept and I&#039;ve been trying to include it in my current project even thought it&#039;s not a multiplayer game.

I&#039;ve stumbled upon an issue and I&#039;m not sure if it&#039;s a natural consequence of the way entity components are meant to be or a fail in my design.

I have saved the comments from my code in this pastebin: http://pastebin.com/m70485ed5

If you had the time to have a look at those comments and let me know what you think, I&#039;d be very grateful. 

I&#039;m looking forward to your next articles, that perhaps will clear up things a bit, especially implementation-wise.

Kind regards,
Raine</description>
		<content:encoded><![CDATA[<p>Hello Adam,<br />
I&#8217;m very interested in the Entity System concept and I&#8217;ve been trying to include it in my current project even thought it&#8217;s not a multiplayer game.</p>
<p>I&#8217;ve stumbled upon an issue and I&#8217;m not sure if it&#8217;s a natural consequence of the way entity components are meant to be or a fail in my design.</p>
<p>I have saved the comments from my code in this pastebin: <a href="http://pastebin.com/m70485ed5" onclick="javascript:pageTracker._trackPageview('/outbound/comment/http://pastebin.com/m70485ed5');" rel="nofollow">http://pastebin.com/m70485ed5</a></p>
<p>If you had the time to have a look at those comments and let me know what you think, I&#8217;d be very grateful. </p>
<p>I&#8217;m looking forward to your next articles, that perhaps will clear up things a bit, especially implementation-wise.</p>
<p>Kind regards,<br />
Raine</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: adam</title>
		<link>http://t-machine.org/index.php/2007/12/22/entity-systems-are-the-future-of-mmog-development-part-3/comment-page-1/#comment-1671</link>
		<dc:creator>adam</dc:creator>
		<pubDate>Wed, 12 Mar 2008 23:24:02 +0000</pubDate>
		<guid isPermaLink="false">http://tmachine1.dh.bytemark.co.uk/blog/index.php/2007/12/22/entity-systems-are-the-future-of-mmog-development-part-3/#comment-1671</guid>
		<description>Phil - that&#039;s one of the main points I&#039;m getting at, short answer: yes, this is in large part an attempt to find a way to do SOME declarative programming from within non-declarative systems using non-declarative languages. And this is NOT an attempt merely to get around the problem that most professional programmers can&#039;t/won&#039;t do declarative programming: in this problem domain even if you were able to use declarative languages (i.e. could find enough programmers with the required skills), you would still want to be using non-declarative languages simultaneously.

One option is to turn C++ into a declarative version of C++, but that is not much better than just using Prolog in the first place - in fact, in most ways, it&#039;s worse.

So what *do* you do where you simultaneously need BOTH a declarative language AND a non-declarative one?

One option is to perform your declarative work at the system level instead of at the main language level. If your application can have its declarative parts split off like that, then this might be a valid direction to take. The entity systems described here offer an architectural split that fits with the problem domain of game development, allowing declarative and non-declarative styles to be used together only for the parts of the problem domain where they are each actually needed.

At least, that&#039;s the aim. And hopefully I can explain it a bit better than that over time :).</description>
		<content:encoded><![CDATA[<p>Phil &#8211; that&#8217;s one of the main points I&#8217;m getting at, short answer: yes, this is in large part an attempt to find a way to do SOME declarative programming from within non-declarative systems using non-declarative languages. And this is NOT an attempt merely to get around the problem that most professional programmers can&#8217;t/won&#8217;t do declarative programming: in this problem domain even if you were able to use declarative languages (i.e. could find enough programmers with the required skills), you would still want to be using non-declarative languages simultaneously.</p>
<p>One option is to turn C++ into a declarative version of C++, but that is not much better than just using Prolog in the first place &#8211; in fact, in most ways, it&#8217;s worse.</p>
<p>So what *do* you do where you simultaneously need BOTH a declarative language AND a non-declarative one?</p>
<p>One option is to perform your declarative work at the system level instead of at the main language level. If your application can have its declarative parts split off like that, then this might be a valid direction to take. The entity systems described here offer an architectural split that fits with the problem domain of game development, allowing declarative and non-declarative styles to be used together only for the parts of the problem domain where they are each actually needed.</p>
<p>At least, that&#8217;s the aim. And hopefully I can explain it a bit better than that over time :).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Phil</title>
		<link>http://t-machine.org/index.php/2007/12/22/entity-systems-are-the-future-of-mmog-development-part-3/comment-page-1/#comment-1354</link>
		<dc:creator>Phil</dc:creator>
		<pubDate>Fri, 08 Feb 2008 21:28:31 +0000</pubDate>
		<guid isPermaLink="false">http://tmachine1.dh.bytemark.co.uk/blog/index.php/2007/12/22/entity-systems-are-the-future-of-mmog-development-part-3/#comment-1354</guid>
		<description>A lot of this sounds like a fancy way of dressing up the very old idea of declarative programming languages (specifically the logic and constraint programming languages such as Prolog and Mozart).</description>
		<content:encoded><![CDATA[<p>A lot of this sounds like a fancy way of dressing up the very old idea of declarative programming languages (specifically the logic and constraint programming languages such as Prolog and Mozart).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Juha Lindfors</title>
		<link>http://t-machine.org/index.php/2007/12/22/entity-systems-are-the-future-of-mmog-development-part-3/comment-page-1/#comment-1016</link>
		<dc:creator>Juha Lindfors</dc:creator>
		<pubDate>Tue, 22 Jan 2008 10:22:40 +0000</pubDate>
		<guid isPermaLink="false">http://tmachine1.dh.bytemark.co.uk/blog/index.php/2007/12/22/entity-systems-are-the-future-of-mmog-development-part-3/#comment-1016</guid>
		<description>Hello Adam,

I don&#039;t quite agree with your definition of AOP being fundamentally dependent. I&#039;ll just point to an example of the current Java middleware where concerns such as security or transactions can be developed without prior knowledge of what kind of components are deployed. Logging is a very poor example for AOP since it *IS* very much dependent on the component being used (nothing to stop developers from building functionally dependent aspects of course).

As for the rest, I&#039;d be wary of advocating the approach too far (developers tend to take one hammer and use it everywhere) although if used in a clearly constrained subsystem, it certainly works around the inherent language limitations of Java, C++ et al (static compile time inheritance hierarchy). In that sense the relational model is indeed more suitable than the object-oriented model.

Ideally though you&#039;d have a language with richer meta model. However, going outside mainstream languages you will hit the hiring/training issue and potentially also the additional cost of framework and library development.

No perfect solutions, it seems.</description>
		<content:encoded><![CDATA[<p>Hello Adam,</p>
<p>I don&#8217;t quite agree with your definition of AOP being fundamentally dependent. I&#8217;ll just point to an example of the current Java middleware where concerns such as security or transactions can be developed without prior knowledge of what kind of components are deployed. Logging is a very poor example for AOP since it *IS* very much dependent on the component being used (nothing to stop developers from building functionally dependent aspects of course).</p>
<p>As for the rest, I&#8217;d be wary of advocating the approach too far (developers tend to take one hammer and use it everywhere) although if used in a clearly constrained subsystem, it certainly works around the inherent language limitations of Java, C++ et al (static compile time inheritance hierarchy). In that sense the relational model is indeed more suitable than the object-oriented model.</p>
<p>Ideally though you&#8217;d have a language with richer meta model. However, going outside mainstream languages you will hit the hiring/training issue and potentially also the additional cost of framework and library development.</p>
<p>No perfect solutions, it seems.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: adam</title>
		<link>http://t-machine.org/index.php/2007/12/22/entity-systems-are-the-future-of-mmog-development-part-3/comment-page-1/#comment-937</link>
		<dc:creator>adam</dc:creator>
		<pubDate>Fri, 18 Jan 2008 11:27:20 +0000</pubDate>
		<guid isPermaLink="false">http://tmachine1.dh.bytemark.co.uk/blog/index.php/2007/12/22/entity-systems-are-the-future-of-mmog-development-part-3/#comment-937</guid>
		<description>Robin - the same argument can be made for many of the systems, and you end up with a monolothic Object, exactly the thing you were trying to get away from.

Without knowing how you have arranged your components, there&#039;s not much specific alternative ideas I can offer, but if you find the data is frequently proving an annoyance to access then you should probably rethink either how you&#039;ve split functionality between components, OR how you are actually invoking systems each game-tick. If you read between the lines on the SQL side of things, one option is of course to merge multiple components into a single component before passing them to the system for processing - something like that might help you?</description>
		<content:encoded><![CDATA[<p>Robin &#8211; the same argument can be made for many of the systems, and you end up with a monolothic Object, exactly the thing you were trying to get away from.</p>
<p>Without knowing how you have arranged your components, there&#8217;s not much specific alternative ideas I can offer, but if you find the data is frequently proving an annoyance to access then you should probably rethink either how you&#8217;ve split functionality between components, OR how you are actually invoking systems each game-tick. If you read between the lines on the SQL side of things, one option is of course to merge multiple components into a single component before passing them to the system for processing &#8211; something like that might help you?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robin</title>
		<link>http://t-machine.org/index.php/2007/12/22/entity-systems-are-the-future-of-mmog-development-part-3/comment-page-1/#comment-932</link>
		<dc:creator>Robin</dc:creator>
		<pubDate>Fri, 18 Jan 2008 06:52:47 +0000</pubDate>
		<guid isPermaLink="false">http://tmachine1.dh.bytemark.co.uk/blog/index.php/2007/12/22/entity-systems-are-the-future-of-mmog-development-part-3/#comment-932</guid>
		<description>On the positioning of Entity not storing any data, I think it should store at least the transformation position. I&#039;m working on an commercial engine which the Entity do not have the position, so we need to either

1. Query the component which has the transformation data.
2. Cache the component that has transformation data inside Entity.

Hardly ideal. Also if you implement physics system as a component which is updated in another system, you need to update the transformation of it&#039;s visual component, causing unnecessary dependencies.

It can be solved by having the transformation data in Entity. All systems update since components are linked to an entity..

Regarding archtype, a better name is to use is Palette.</description>
		<content:encoded><![CDATA[<p>On the positioning of Entity not storing any data, I think it should store at least the transformation position. I&#8217;m working on an commercial engine which the Entity do not have the position, so we need to either</p>
<p>1. Query the component which has the transformation data.<br />
2. Cache the component that has transformation data inside Entity.</p>
<p>Hardly ideal. Also if you implement physics system as a component which is updated in another system, you need to update the transformation of it&#8217;s visual component, causing unnecessary dependencies.</p>
<p>It can be solved by having the transformation data in Entity. All systems update since components are linked to an entity..</p>
<p>Regarding archtype, a better name is to use is Palette.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: adam</title>
		<link>http://t-machine.org/index.php/2007/12/22/entity-systems-are-the-future-of-mmog-development-part-3/comment-page-1/#comment-476</link>
		<dc:creator>adam</dc:creator>
		<pubDate>Thu, 03 Jan 2008 23:42:57 +0000</pubDate>
		<guid isPermaLink="false">http://tmachine1.dh.bytemark.co.uk/blog/index.php/2007/12/22/entity-systems-are-the-future-of-mmog-development-part-3/#comment-476</guid>
		<description>You could read Scott Bilas&#039;s presentation from 5 years ago (linked in the first article), or have a look at &lt;a href=&quot;http://cowboyprogramming.com/2007/01/05/evolve-your-heirachy/&quot; rel=&quot;nofollow&quot;&gt;Mick West&#039;s summary of doing entity systems development for Neversoft&lt;/a&gt;, but they&#039;re both too simple for my tastes, which is why I started writing these posts myself - to get some more detailed and practical info and advice out there.

NB: I only found Mick&#039;s blog post very recently. It&#039;s a good introduction to the ideas and approaches in entity systems - but again, it only covers basics.</description>
		<content:encoded><![CDATA[<p>You could read Scott Bilas&#8217;s presentation from 5 years ago (linked in the first article), or have a look at <a href="http://cowboyprogramming.com/2007/01/05/evolve-your-heirachy/" onclick="javascript:pageTracker._trackPageview('/outbound/comment/http://cowboyprogramming.com/2007/01/05/evolve-your-heirachy/');" rel="nofollow">Mick West&#8217;s summary of doing entity systems development for Neversoft</a>, but they&#8217;re both too simple for my tastes, which is why I started writing these posts myself &#8211; to get some more detailed and practical info and advice out there.</p>
<p>NB: I only found Mick&#8217;s blog post very recently. It&#8217;s a good introduction to the ideas and approaches in entity systems &#8211; but again, it only covers basics.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: cp</title>
		<link>http://t-machine.org/index.php/2007/12/22/entity-systems-are-the-future-of-mmog-development-part-3/comment-page-1/#comment-465</link>
		<dc:creator>cp</dc:creator>
		<pubDate>Thu, 03 Jan 2008 19:34:46 +0000</pubDate>
		<guid isPermaLink="false">http://tmachine1.dh.bytemark.co.uk/blog/index.php/2007/12/22/entity-systems-are-the-future-of-mmog-development-part-3/#comment-465</guid>
		<description>Where can I read more about entity system development? Do you have books or other web sites you&#039;d recommend This is great information and I&#039;m looking forward to the next parts.</description>
		<content:encoded><![CDATA[<p>Where can I read more about entity system development? Do you have books or other web sites you&#8217;d recommend This is great information and I&#8217;m looking forward to the next parts.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: T=Machine &#187; Entity Systems are the future of MMOG development - Part 1</title>
		<link>http://t-machine.org/index.php/2007/12/22/entity-systems-are-the-future-of-mmog-development-part-3/comment-page-1/#comment-322</link>
		<dc:creator>T=Machine &#187; Entity Systems are the future of MMOG development - Part 1</dc:creator>
		<pubDate>Sat, 22 Dec 2007 19:24:33 +0000</pubDate>
		<guid isPermaLink="false">http://tmachine1.dh.bytemark.co.uk/blog/index.php/2007/12/22/entity-systems-are-the-future-of-mmog-development-part-3/#comment-322</guid>
		<description>[...] Part 3 - more on what is, and isn&#8217;t, an entity system [...]</description>
		<content:encoded><![CDATA[<p>[...] Part 3 &#8211; more on what is, and isn&#8217;t, an entity system [...]</p>
]]></content:encoded>
	</item>
</channel>
</rss>
