<?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: Object-Oriented  Game Design</title>
	<atom:link href="http://gbgames.com/blog/2006/03/object-oriented-game-design/feed/" rel="self" type="application/rss+xml" />
	<link>http://gbgames.com/blog/2006/03/object-oriented-game-design/</link>
	<description>An Indie Game Developer's somewhat interesting thoughts</description>
	<lastBuildDate>Wed, 08 Feb 2012 22:27:01 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: State of the Art Game Objects &#124; GBGames - Thoughts on Indie Game Development</title>
		<link>http://gbgames.com/blog/2006/03/object-oriented-game-design/comment-page-1/#comment-59946</link>
		<dc:creator>State of the Art Game Objects &#124; GBGames - Thoughts on Indie Game Development</dc:creator>
		<pubDate>Wed, 27 Oct 2010 10:32:56 +0000</pubDate>
		<guid isPermaLink="false">http://gbgames.com/blog/?p=342#comment-59946</guid>
		<description>[...] of the Art Game Objects  By GBGames, on October 27th, 2010 Years ago, I wrote about Component-based Game Design, in which I talked about the advantages of breaking down your game objects into components. [...]</description>
		<content:encoded><![CDATA[<p>[...] of the Art Game Objects  By GBGames, on October 27th, 2010 Years ago, I wrote about Component-based Game Design, in which I talked about the advantages of breaking down your game objects into components. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: GBGames</title>
		<link>http://gbgames.com/blog/2006/03/object-oriented-game-design/comment-page-1/#comment-57481</link>
		<dc:creator>GBGames</dc:creator>
		<pubDate>Wed, 22 Oct 2008 14:37:44 +0000</pubDate>
		<guid isPermaLink="false">http://gbgames.com/blog/?p=342#comment-57481</guid>
		<description>Liam: Perhaps you might want to look into OO development versus procedural development in general, and not just for games. I do not know if games have any special benefits compared to other software.</description>
		<content:encoded><![CDATA[<p>Liam: Perhaps you might want to look into OO development versus procedural development in general, and not just for games. I do not know if games have any special benefits compared to other software.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: liam</title>
		<link>http://gbgames.com/blog/2006/03/object-oriented-game-design/comment-page-1/#comment-57479</link>
		<dc:creator>liam</dc:creator>
		<pubDate>Tue, 21 Oct 2008 10:52:20 +0000</pubDate>
		<guid isPermaLink="false">http://gbgames.com/blog/?p=342#comment-57479</guid>
		<description>hi my name is liam and i am doing a assignment on OO design for games but i can&#039;t find any good sites where there are arguments for and against why oo desing is the best way to go.

Can anyone help please????</description>
		<content:encoded><![CDATA[<p>hi my name is liam and i am doing a assignment on OO design for games but i can&#8217;t find any good sites where there are arguments for and against why oo desing is the best way to go.</p>
<p>Can anyone help please????</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rick</title>
		<link>http://gbgames.com/blog/2006/03/object-oriented-game-design/comment-page-1/#comment-56089</link>
		<dc:creator>Rick</dc:creator>
		<pubDate>Sun, 30 Mar 2008 19:08:32 +0000</pubDate>
		<guid isPermaLink="false">http://gbgames.com/blog/?p=342#comment-56089</guid>
		<description>Hi again, this is Rick, I left the post on January 13th 2008.

Thanks for the monopoly example, it has proven very useful in understanding this design pattern.  I&#039;ve probably read over the article (http://www.devmaster.net/articles/oo-game-design/) 15 times now and have a pretty good understanding of the concept.  

I&#039;m having a little trouble grasping the concept of the form though.  I understand the idea, but the implementation is what is throwing me off.  The idea is to separate the tangible from the intangible entities, but they have to relate in some way in order for the tangible object to be drawn for the tangible object.  My problem is where and how are they related / stored and processed.

The example included with the article I&#039;ve found hard to follow, and I don&#039;t think your example goes into this since it&#039;s using console output.

I&#039;m attempting this game design on a flash game, and so far it&#039;s working out great, but now it&#039;s time to add the visual elements and I&#039;m trying to find the best solution.  Any input is greatly appreciated!</description>
		<content:encoded><![CDATA[<p>Hi again, this is Rick, I left the post on January 13th 2008.</p>
<p>Thanks for the monopoly example, it has proven very useful in understanding this design pattern.  I&#8217;ve probably read over the article (<a href="http://www.devmaster.net/articles/oo-game-design/" rel="nofollow">http://www.devmaster.net/articles/oo-game-design/</a>) 15 times now and have a pretty good understanding of the concept.  </p>
<p>I&#8217;m having a little trouble grasping the concept of the form though.  I understand the idea, but the implementation is what is throwing me off.  The idea is to separate the tangible from the intangible entities, but they have to relate in some way in order for the tangible object to be drawn for the tangible object.  My problem is where and how are they related / stored and processed.</p>
<p>The example included with the article I&#8217;ve found hard to follow, and I don&#8217;t think your example goes into this since it&#8217;s using console output.</p>
<p>I&#8217;m attempting this game design on a flash game, and so far it&#8217;s working out great, but now it&#8217;s time to add the visual elements and I&#8217;m trying to find the best solution.  Any input is greatly appreciated!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Roman</title>
		<link>http://gbgames.com/blog/2006/03/object-oriented-game-design/comment-page-1/#comment-55900</link>
		<dc:creator>Roman</dc:creator>
		<pubDate>Thu, 07 Feb 2008 09:14:10 +0000</pubDate>
		<guid isPermaLink="false">http://gbgames.com/blog/?p=342#comment-55900</guid>
		<description>Hi there.

Good atricle. Now i am looking for some information about OO game design. I found component model is very useful.

Can you share some links, where i can find more information?</description>
		<content:encoded><![CDATA[<p>Hi there.</p>
<p>Good atricle. Now i am looking for some information about OO game design. I found component model is very useful.</p>
<p>Can you share some links, where i can find more information?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: GBGames</title>
		<link>http://gbgames.com/blog/2006/03/object-oriented-game-design/comment-page-1/#comment-55835</link>
		<dc:creator>GBGames</dc:creator>
		<pubDate>Tue, 15 Jan 2008 18:30:26 +0000</pubDate>
		<guid isPermaLink="false">http://gbgames.com/blog/?p=342#comment-55835</guid>
		<description>Hello, Rick!  Check out http://gbgames.com/downloads/componentgame/  which is a text-based, Monopoly-themed game that I had to put together for my day job as a test. It was my first real attempt at trying out what I wrote above. Hope it helps!</description>
		<content:encoded><![CDATA[<p>Hello, Rick!  Check out <a href="http://gbgames.com/downloads/componentgame/" rel="nofollow">http://gbgames.com/downloads/componentgame/</a>  which is a text-based, Monopoly-themed game that I had to put together for my day job as a test. It was my first real attempt at trying out what I wrote above. Hope it helps!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rick</title>
		<link>http://gbgames.com/blog/2006/03/object-oriented-game-design/comment-page-1/#comment-55812</link>
		<dc:creator>Rick</dc:creator>
		<pubDate>Mon, 14 Jan 2008 02:21:44 +0000</pubDate>
		<guid isPermaLink="false">http://gbgames.com/blog/?p=342#comment-55812</guid>
		<description>I realize that this blog is WAY out of date, but do you have any code samples to share here?

I&#039;m interested in learning more about the component model, but it&#039;s hard to find good information.

Anyway, thanks if you get this!</description>
		<content:encoded><![CDATA[<p>I realize that this blog is WAY out of date, but do you have any code samples to share here?</p>
<p>I&#8217;m interested in learning more about the component model, but it&#8217;s hard to find good information.</p>
<p>Anyway, thanks if you get this!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: wes</title>
		<link>http://gbgames.com/blog/2006/03/object-oriented-game-design/comment-page-1/#comment-18485</link>
		<dc:creator>wes</dc:creator>
		<pubDate>Sat, 06 May 2006 03:16:58 +0000</pubDate>
		<guid isPermaLink="false">http://gbgames.com/blog/?p=342#comment-18485</guid>
		<description>good article...i&#039;m trying to wrap my head around an implemenation of this....but eveything i&#039;ve come up with seems a bit clunky and seems not to scale up....i&#039;m strongly againsted deep heriarchies GO trees and believe in this component based design.  you mention that you avoid dynamic casting but dont u do a dynamic cast in the following (since hasState will return a genaric State class or interface and you will have to cast in into an hp type).  

class AdjustHitPoints : public Action
{
void doAction() { entity.hasState( HIT_POINTS)-&gt;hp += amount; }
}


also how in my impl i find that my actions need to query the game objects for multiple states..is this natural to this design??  i just find its a bit clunky to have to handle behavoir differently depending on what states are registered with the entity.   For instnace my rendering action needs the WorldPosition attribute and a Sprite attribute.  please any insight would be appriciated.  

There doesnt seem to be much more on this topic outside of the articles you mentioned.... I&#039;ve studied most of the ppt i&#039;ve found (Scott Bilas, GDC 2002), and a couple of others... i googled it and ended up stumbling across this blog.    I&#039;ve implemented the Theif 3 data-centric design (as outlined by Alex Duran, gdc 2003).. but found it was a bit of a performance hog...</description>
		<content:encoded><![CDATA[<p>good article&#8230;i&#8217;m trying to wrap my head around an implemenation of this&#8230;.but eveything i&#8217;ve come up with seems a bit clunky and seems not to scale up&#8230;.i&#8217;m strongly againsted deep heriarchies GO trees and believe in this component based design.  you mention that you avoid dynamic casting but dont u do a dynamic cast in the following (since hasState will return a genaric State class or interface and you will have to cast in into an hp type).  </p>
<p>class AdjustHitPoints : public Action<br />
{<br />
void doAction() { entity.hasState( HIT_POINTS)-&gt;hp += amount; }<br />
}</p>
<p>also how in my impl i find that my actions need to query the game objects for multiple states..is this natural to this design??  i just find its a bit clunky to have to handle behavoir differently depending on what states are registered with the entity.   For instnace my rendering action needs the WorldPosition attribute and a Sprite attribute.  please any insight would be appriciated.  </p>
<p>There doesnt seem to be much more on this topic outside of the articles you mentioned&#8230;. I&#8217;ve studied most of the ppt i&#8217;ve found (Scott Bilas, GDC 2002), and a couple of others&#8230; i googled it and ended up stumbling across this blog.    I&#8217;ve implemented the Theif 3 data-centric design (as outlined by Alex Duran, gdc 2003).. but found it was a bit of a performance hog&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: GBGames</title>
		<link>http://gbgames.com/blog/2006/03/object-oriented-game-design/comment-page-1/#comment-14863</link>
		<dc:creator>GBGames</dc:creator>
		<pubDate>Sat, 01 Apr 2006 16:06:19 +0000</pubDate>
		<guid isPermaLink="false">http://gbgames.com/blog/?p=342#comment-14863</guid>
		<description>Keith, it&#039;s actually not too hard to understand once you start digging in it.  Most likely your game objects have the hierarchy that I describe.  You provide all of the data and functions in the class itself.   It is how people are taught in school and in books.  

This component-based system is just abstracting it a bit more.  Instead of having all of the data and functionality defined in an entity, the entity can be made up of State and Action objects.   I can send you my text-based board game code to see what I have so far.   It might help you understand it.  And the article I referenced has source code in C#.  You don&#039;t need to compile it to read through it.  I admit, however, that it was a bit confusing to figure out at first.</description>
		<content:encoded><![CDATA[<p>Keith, it&#8217;s actually not too hard to understand once you start digging in it.  Most likely your game objects have the hierarchy that I describe.  You provide all of the data and functions in the class itself.   It is how people are taught in school and in books.  </p>
<p>This component-based system is just abstracting it a bit more.  Instead of having all of the data and functionality defined in an entity, the entity can be made up of State and Action objects.   I can send you my text-based board game code to see what I have so far.   It might help you understand it.  And the article I referenced has source code in C#.  You don&#8217;t need to compile it to read through it.  I admit, however, that it was a bit confusing to figure out at first.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Keith Weatherby II</title>
		<link>http://gbgames.com/blog/2006/03/object-oriented-game-design/comment-page-1/#comment-14839</link>
		<dc:creator>Keith Weatherby II</dc:creator>
		<pubDate>Sat, 01 Apr 2006 07:19:39 +0000</pubDate>
		<guid isPermaLink="false">http://gbgames.com/blog/?p=342#comment-14839</guid>
		<description>This is an interesting idea, unfortunately i&#039;m just starting to learn c++.    So I think it goes over my head a little</description>
		<content:encoded><![CDATA[<p>This is an interesting idea, unfortunately i&#8217;m just starting to learn c++.    So I think it goes over my head a little</p>
]]></content:encoded>
	</item>
</channel>
</rss>

