<?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 for Create your own games&#187; Game Creation Blog by Koonsolo</title>
	<atom:link href="http://dev.koonsolo.com/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://dev.koonsolo.com</link>
	<description>A blog on how to create your own computer games (by Koen Witters)</description>
	<lastBuildDate>Wed, 04 Aug 2010 15:49:22 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Comment on Game Architecture: Model-View-Controller by Vishwas</title>
		<link>http://www.koonsolo.com/news/model-view-controller-for-games/comment-page-1/#comment-156</link>
		<dc:creator>Vishwas</dc:creator>
		<pubDate>Wed, 04 Aug 2010 15:49:22 +0000</pubDate>
		<guid isPermaLink="false">http://dev.koonsolo.com/?p=9#comment-156</guid>
		<description>Say, i have a button on my gui, then where should i put the reference to my button ? In view or in controller. Where should it&#039;s onRelease event be registered ( controller or view?). And what is the placement of the function, where it would be broadcasted ( controller or view?)
Thanks.</description>
		<content:encoded><![CDATA[<p>Say, i have a button on my gui, then where should i put the reference to my button ? In view or in controller. Where should it&#8217;s onRelease event be registered ( controller or view?). And what is the placement of the function, where it would be broadcasted ( controller or view?)<br />
Thanks.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on deWiTTERS Game Loop by Slight problem</title>
		<link>http://www.koonsolo.com/news/dewitters-gameloop/comment-page-1/#comment-155</link>
		<dc:creator>Slight problem</dc:creator>
		<pubDate>Tue, 03 Aug 2010 20:12:17 +0000</pubDate>
		<guid isPermaLink="false">http://dev.koonsolo.com/?p=7#comment-155</guid>
		<description>GetTickCount is only specified to be accurate to 10-16ms. It&#039;s not the best idea for a game timer, as it may start causing jitter at high (&gt;60fps) frame rates.

The alternative is using QueryPerformanceCounter, it&#039;s high precision, but it is subject to problems with older hardware (read around), although most bugs are gone by now.</description>
		<content:encoded><![CDATA[<p>GetTickCount is only specified to be accurate to 10-16ms. It&#8217;s not the best idea for a game timer, as it may start causing jitter at high (&gt;60fps) frame rates.</p>
<p>The alternative is using QueryPerformanceCounter, it&#8217;s high precision, but it is subject to problems with older hardware (read around), although most bugs are gone by now.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on deWiTTERS Game Loop by Sydney B</title>
		<link>http://www.koonsolo.com/news/dewitters-gameloop/comment-page-1/#comment-153</link>
		<dc:creator>Sydney B</dc:creator>
		<pubDate>Thu, 29 Jul 2010 03:35:20 +0000</pubDate>
		<guid isPermaLink="false">http://dev.koonsolo.com/?p=7#comment-153</guid>
		<description>With the implementation of loop which offers a constant game speed independent of variable FPS on a seperate thread. Would this not consume most of your cpu processing power? I tried the implemenataion by taking your exact code and running it. my CPU maxes out at 100% on one of the cores.</description>
		<content:encoded><![CDATA[<p>With the implementation of loop which offers a constant game speed independent of variable FPS on a seperate thread. Would this not consume most of your cpu processing power? I tried the implemenataion by taking your exact code and running it. my CPU maxes out at 100% on one of the cores.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on deWiTTERS Game Loop by Shaun</title>
		<link>http://www.koonsolo.com/news/dewitters-gameloop/comment-page-1/#comment-152</link>
		<dc:creator>Shaun</dc:creator>
		<pubDate>Wed, 21 Jul 2010 15:37:38 +0000</pubDate>
		<guid isPermaLink="false">http://dev.koonsolo.com/?p=7#comment-152</guid>
		<description>You have two separate definitions of the &quot;tick.&quot;  GetTickCount() returns milliseconds, so that means there are 1000 ticks per second.  But in the section &quot;Constant Game Speed with Constant FPS,&quot; you redefine the &quot;tick&quot; to mean a single execution of the update function instead of a cpu clock tick.  I quickly lost any grasp of our timing units.  Can we resolve the units with the following nomenclature?

const int UPDATES_PER_SECOND = 25;
const int TICKS_PER_SECOND = 1000; // GetTickCount() dictates 1000 ticks per second
const int TICKS_PER_UPDATE = TICKS_PER_SECOND / FRAMES_PER_SECOND;

So instead of SKIP_TICKS, we would just use TICKS_PER_UPDATE.  This is clearer to me because I know what each number is measuring.</description>
		<content:encoded><![CDATA[<p>You have two separate definitions of the &#8220;tick.&#8221;  GetTickCount() returns milliseconds, so that means there are 1000 ticks per second.  But in the section &#8220;Constant Game Speed with Constant FPS,&#8221; you redefine the &#8220;tick&#8221; to mean a single execution of the update function instead of a cpu clock tick.  I quickly lost any grasp of our timing units.  Can we resolve the units with the following nomenclature?</p>
<p>const int UPDATES_PER_SECOND = 25;<br />
const int TICKS_PER_SECOND = 1000; // GetTickCount() dictates 1000 ticks per second<br />
const int TICKS_PER_UPDATE = TICKS_PER_SECOND / FRAMES_PER_SECOND;</p>
<p>So instead of SKIP_TICKS, we would just use TICKS_PER_UPDATE.  This is clearer to me because I know what each number is measuring.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Turn your workplace into an RPG by veakari</title>
		<link>http://www.koonsolo.com/news/turn-your-workplace-into-an-rpg/comment-page-1/#comment-151</link>
		<dc:creator>veakari</dc:creator>
		<pubDate>Wed, 14 Jul 2010 22:39:22 +0000</pubDate>
		<guid isPermaLink="false">http://dev.koonsolo.com/?p=222#comment-151</guid>
		<description>I think many workplaces are opening up to making tasks more fun.  We wrote our own program to reward for bugs found, getting them fixed, and hitting deadlines.  Each task was worth pocket change, pennies, nickels, etc. (rather than experience).  Once the pot got full, we&#039;d treat ourselves to a group lunch, or after hours drinks.

Fun find!</description>
		<content:encoded><![CDATA[<p>I think many workplaces are opening up to making tasks more fun.  We wrote our own program to reward for bugs found, getting them fixed, and hitting deadlines.  Each task was worth pocket change, pennies, nickels, etc. (rather than experience).  Once the pot got full, we&#8217;d treat ourselves to a group lunch, or after hours drinks.</p>
<p>Fun find!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Market research before creating your game. by Adam Moore</title>
		<link>http://www.koonsolo.com/news/market-research-before-creating-your-game/comment-page-1/#comment-150</link>
		<dc:creator>Adam Moore</dc:creator>
		<pubDate>Fri, 09 Jul 2010 15:44:50 +0000</pubDate>
		<guid isPermaLink="false">http://dev.koonsolo.com/?p=97#comment-150</guid>
		<description>Market research is always essential for the succes of any kind of business.&#039;;&quot;</description>
		<content:encoded><![CDATA[<p>Market research is always essential for the succes of any kind of business.&#8217;;&#8221;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Object Oriented Programming doesn&#8217;t need Encapsulation by Chris</title>
		<link>http://www.koonsolo.com/news/object-oriented-programming-doesnt-need-encapsulation/comment-page-1/#comment-149</link>
		<dc:creator>Chris</dc:creator>
		<pubDate>Thu, 08 Jul 2010 09:59:18 +0000</pubDate>
		<guid isPermaLink="false">http://dev.koonsolo.com/?p=213#comment-149</guid>
		<description>Hey Koen, I do not find your examples convincing at all.

The computer metaphor doesn&#039;t translate all that well into OOP.
Like JJ said, as a class in your code, the computer would provide an upgrade method itself, without the need for you to mess with internals. Another possibility would be to have a helper for upgrading. For example, if a computer object would be created via the builder pattern, the builder might as well be the one to ask for upgrades. No need to get rid of encapsulation.

The GUI example:
This case is similar to one I encounter from time to time in programming forums.
The usual situation where someone asks for help is as follows: There is a BaseClass, and SubClass1 and SubClass2 derive from it.
Now, that someone creates a container for objects of BaseClass, containing both objects of the concrete classes SubClass1 and SubClass2. He then asks, for example, how to iterate over the container&#039;s contents and execute specific actions depending on the concrete subtype.
In summary: Abstracting from the concrete classes, and then asking how to break the abstraction again. This can be solved in clean ways - double dispatch and visitor pattern come to mind, so you&#039;re still fine using encapsulation. However, in my experience, most of the time someone does something like this, his/her concept is faulty somewhere.

Now back to the GUI example. Cross-platform GUI toolkits abstract away from the concrete operating systems. By their nature, they must thus provide the lowest common denominator. Now asking how to access an OS-specific function means &quot;you&#039;re doing it wrong&quot; in my opinion. But as I said, this can be solved without breaking encapsulation.</description>
		<content:encoded><![CDATA[<p>Hey Koen, I do not find your examples convincing at all.</p>
<p>The computer metaphor doesn&#8217;t translate all that well into OOP.<br />
Like JJ said, as a class in your code, the computer would provide an upgrade method itself, without the need for you to mess with internals. Another possibility would be to have a helper for upgrading. For example, if a computer object would be created via the builder pattern, the builder might as well be the one to ask for upgrades. No need to get rid of encapsulation.</p>
<p>The GUI example:<br />
This case is similar to one I encounter from time to time in programming forums.<br />
The usual situation where someone asks for help is as follows: There is a BaseClass, and SubClass1 and SubClass2 derive from it.<br />
Now, that someone creates a container for objects of BaseClass, containing both objects of the concrete classes SubClass1 and SubClass2. He then asks, for example, how to iterate over the container&#8217;s contents and execute specific actions depending on the concrete subtype.<br />
In summary: Abstracting from the concrete classes, and then asking how to break the abstraction again. This can be solved in clean ways &#8211; double dispatch and visitor pattern come to mind, so you&#8217;re still fine using encapsulation. However, in my experience, most of the time someone does something like this, his/her concept is faulty somewhere.</p>
<p>Now back to the GUI example. Cross-platform GUI toolkits abstract away from the concrete operating systems. By their nature, they must thus provide the lowest common denominator. Now asking how to access an OS-specific function means &#8220;you&#8217;re doing it wrong&#8221; in my opinion. But as I said, this can be solved without breaking encapsulation.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on deWiTTERS Game Loop by Koen Witters</title>
		<link>http://www.koonsolo.com/news/dewitters-gameloop/comment-page-1/#comment-148</link>
		<dc:creator>Koen Witters</dc:creator>
		<pubDate>Tue, 06 Jul 2010 11:26:02 +0000</pubDate>
		<guid isPermaLink="false">http://dev.koonsolo.com/?p=7#comment-148</guid>
		<description>&lt;a href=&quot;#comment-147&quot; rel=&quot;nofollow&quot;&gt;@jon &lt;/a&gt; 
Glad you like it! Paypal to koen@koonsolo.com, or buy my game Mystic Mine ;). http://www.mysticmine.com</description>
		<content:encoded><![CDATA[<p><a href="#comment-147" rel="nofollow">@jon </a><br />
Glad you like it! Paypal to <a href="mailto:koen@koonsolo.com">koen@koonsolo.com</a>, or buy my game Mystic Mine <img src='http://dev.koonsolo.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> . <a href="http://www.mysticmine.com" rel="nofollow">http://www.mysticmine.com</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on deWiTTERS Game Loop by jon</title>
		<link>http://www.koonsolo.com/news/dewitters-gameloop/comment-page-1/#comment-147</link>
		<dc:creator>jon</dc:creator>
		<pubDate>Tue, 06 Jul 2010 09:41:06 +0000</pubDate>
		<guid isPermaLink="false">http://dev.koonsolo.com/?p=7#comment-147</guid>
		<description>Really good stuff here. Thanks alot. Looks like this might solve my game issues. If it does , are there any donation button here ?</description>
		<content:encoded><![CDATA[<p>Really good stuff here. Thanks alot. Looks like this might solve my game issues. If it does , are there any donation button here ?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on deWiTTERS Game Loop by Phil</title>
		<link>http://www.koonsolo.com/news/dewitters-gameloop/comment-page-1/#comment-146</link>
		<dc:creator>Phil</dc:creator>
		<pubDate>Sat, 26 Jun 2010 20:06:41 +0000</pubDate>
		<guid isPermaLink="false">http://dev.koonsolo.com/?p=7#comment-146</guid>
		<description>Nice article, its certainly what I was looking for.

In the past I have used &quot;FPS dependent on Constant Game Speed&quot; (gameboy advanced 60fps) and &quot;Game Speed dependent on Variable FPS&quot; but I think now I want both to be variable! ie, a max display fps can be chosen and a max compute fps can be chosen (ie, 60fps display and 100fps if player accuracy is important). I think the source engine uses something like this (with compute capped to display) and that is the functionality I should aim for.

What would be the prospects of having several fps independant components? should I use semaphores and have the game objects independantly wait on results? - AI for example. or independantly different fps for input, ai, particles, physics, rendering? what could I expect from such an approach and how would I actually control such a thing?</description>
		<content:encoded><![CDATA[<p>Nice article, its certainly what I was looking for.</p>
<p>In the past I have used &#8220;FPS dependent on Constant Game Speed&#8221; (gameboy advanced 60fps) and &#8220;Game Speed dependent on Variable FPS&#8221; but I think now I want both to be variable! ie, a max display fps can be chosen and a max compute fps can be chosen (ie, 60fps display and 100fps if player accuracy is important). I think the source engine uses something like this (with compute capped to display) and that is the functionality I should aim for.</p>
<p>What would be the prospects of having several fps independant components? should I use semaphores and have the game objects independantly wait on results? &#8211; AI for example. or independantly different fps for input, ai, particles, physics, rendering? what could I expect from such an approach and how would I actually control such a thing?</p>
]]></content:encoded>
	</item>
</channel>
</rss>

