<?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: Programming Responsiveness</title>
	<atom:link href="http://cowboyprogramming.com/2008/05/27/programming-responsiveness/feed/" rel="self" type="application/rss+xml" />
	<link>http://cowboyprogramming.com/2008/05/27/programming-responsiveness/</link>
	<description>Game Development and General Hacking by the Old West</description>
	<lastBuildDate>Tue, 20 Jul 2010 15:03:31 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Interesting Reading&#8230; &#8211; The Blogs at HowStuffWorks</title>
		<link>http://cowboyprogramming.com/2008/05/27/programming-responsiveness/comment-page-1/#comment-144858</link>
		<dc:creator>Interesting Reading&#8230; &#8211; The Blogs at HowStuffWorks</dc:creator>
		<pubDate>Mon, 11 Jan 2010 17:54:23 +0000</pubDate>
		<guid isPermaLink="false">http://cowboyprogramming.com/?p=118#comment-144858</guid>
		<description>[...] Programming Responsiveness &#8211; &#8220;Responsiveness is something that can make or break a game at first impression. This is especially true in reviews where a game with poor responsiveness will be described as being “sluggish”, “unresponsive”, “floaty” or “sloppy”. A better game might be referred to as “tight” or “responsive”. There are several factors that contribute to perceived responsiveness. This article looks at some of them from a programmer’s perspective, and offers some routes to making your game more responsive&#8230;&#8221; [...]</description>
		<content:encoded><![CDATA[<p>[...] Programming Responsiveness &#8211; &#8220;Responsiveness is something that can make or break a game at first impression. This is especially true in reviews where a game with poor responsiveness will be described as being “sluggish”, “unresponsive”, “floaty” or “sloppy”. A better game might be referred to as “tight” or “responsive”. There are several factors that contribute to perceived responsiveness. This article looks at some of them from a programmer’s perspective, and offers some routes to making your game more responsive&#8230;&#8221; [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: EvaUnit02</title>
		<link>http://cowboyprogramming.com/2008/05/27/programming-responsiveness/comment-page-1/#comment-131928</link>
		<dc:creator>EvaUnit02</dc:creator>
		<pubDate>Wed, 23 Sep 2009 21:49:55 +0000</pubDate>
		<guid isPermaLink="false">http://cowboyprogramming.com/?p=118#comment-131928</guid>
		<description>The phrase, &quot;in actual fact&quot; made me giggle.

Great article, Mick.</description>
		<content:encoded><![CDATA[<p>The phrase, &#8220;in actual fact&#8221; made me giggle.</p>
<p>Great article, Mick.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Understanding Lag &#171; c# to javascript, actionscript</title>
		<link>http://cowboyprogramming.com/2008/05/27/programming-responsiveness/comment-page-1/#comment-123909</link>
		<dc:creator>Understanding Lag &#171; c# to javascript, actionscript</dc:creator>
		<pubDate>Mon, 20 Jul 2009 07:27:01 +0000</pubDate>
		<guid isPermaLink="false">http://cowboyprogramming.com/?p=118#comment-123909</guid>
		<description>[...] lag in order to defeat it. While browsing I found this great article to explain all of it. To understand why lag occurs, you need to understand the sequence of events that occur [...] Mick [...]</description>
		<content:encoded><![CDATA[<p>[...] lag in order to defeat it. While browsing I found this great article to explain all of it. To understand why lag occurs, you need to understand the sequence of events that occur [...] Mick [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Simfoony &#187; Blog Archive &#187; A propósito de OnLive</title>
		<link>http://cowboyprogramming.com/2008/05/27/programming-responsiveness/comment-page-1/#comment-98500</link>
		<dc:creator>Simfoony &#187; Blog Archive &#187; A propósito de OnLive</dc:creator>
		<pubDate>Tue, 31 Mar 2009 22:02:05 +0000</pubDate>
		<guid isPermaLink="false">http://cowboyprogramming.com/?p=118#comment-98500</guid>
		<description>[...] OnLive tiene que solventar es el lag entre que pulsas una tecla y ves la reacción. En el blog de Mick West hay un diagrama que muestra la secuencia de eventos que transcurre entre que pulsas el boton [...]</description>
		<content:encoded><![CDATA[<p>[...] OnLive tiene que solventar es el lag entre que pulsas una tecla y ves la reacción. En el blog de Mick West hay un diagrama que muestra la secuencia de eventos que transcurre entre que pulsas el boton [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mick West</title>
		<link>http://cowboyprogramming.com/2008/05/27/programming-responsiveness/comment-page-1/#comment-64501</link>
		<dc:creator>Mick West</dc:creator>
		<pubDate>Mon, 01 Dec 2008 05:17:23 +0000</pubDate>
		<guid isPermaLink="false">http://cowboyprogramming.com/?p=118#comment-64501</guid>
		<description>I&#039;ve been mostly a console programmer, so framerates are generally fixed at 30 or 60.  Decoupling is not generally a good thing in that situation.  Especially if it can introduce extra latency.   If you have a fixed framerate, it&#039;s generally better to run the physics in lockstep or a fixed multiple (or fraction) of the display frame rate.</description>
		<content:encoded><![CDATA[<p>I&#8217;ve been mostly a console programmer, so framerates are generally fixed at 30 or 60.  Decoupling is not generally a good thing in that situation.  Especially if it can introduce extra latency.   If you have a fixed framerate, it&#8217;s generally better to run the physics in lockstep or a fixed multiple (or fraction) of the display frame rate.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ape-Inago</title>
		<link>http://cowboyprogramming.com/2008/05/27/programming-responsiveness/comment-page-1/#comment-64474</link>
		<dc:creator>Ape-Inago</dc:creator>
		<pubDate>Mon, 01 Dec 2008 02:55:32 +0000</pubDate>
		<guid isPermaLink="false">http://cowboyprogramming.com/?p=118#comment-64474</guid>
		<description>Wow, this is really neat.  I&#039;ve thought a lot about this type of thing myself, when writing out a simple display engine... It would always seem that the external console would display &quot;button pressed&quot; a few moments before the game responded.  After much trial an error, it turned out to be similar to one of the approaches you&#039;ve written about above.

Have you put any thought into decoupling the input management from the framerate?  I did something like that with the physics of the thing I was using, and it gave a much more responsive feeling game. http://gafferongames.wordpress.com/game-physics/fix-your-timestep/ (an article about physics timesteps.)

The only step further would be to do input handling in a thread, but that gets a bit complicated.</description>
		<content:encoded><![CDATA[<p>Wow, this is really neat.  I&#8217;ve thought a lot about this type of thing myself, when writing out a simple display engine&#8230; It would always seem that the external console would display &#8220;button pressed&#8221; a few moments before the game responded.  After much trial an error, it turned out to be similar to one of the approaches you&#8217;ve written about above.</p>
<p>Have you put any thought into decoupling the input management from the framerate?  I did something like that with the physics of the thing I was using, and it gave a much more responsive feeling game. <a href="http://gafferongames.wordpress.com/game-physics/fix-your-timestep/" rel="nofollow">http://gafferongames.wordpress.com/game-physics/fix-your-timestep/</a> (an article about physics timesteps.)</p>
<p>The only step further would be to do input handling in a thread, but that gets a bit complicated.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Cowboy Programming &#187; Measuring Responsiveness in Video Games</title>
		<link>http://cowboyprogramming.com/2008/05/27/programming-responsiveness/comment-page-1/#comment-18593</link>
		<dc:creator>Cowboy Programming &#187; Measuring Responsiveness in Video Games</dc:creator>
		<pubDate>Fri, 30 May 2008 17:59:44 +0000</pubDate>
		<guid isPermaLink="false">http://cowboyprogramming.com/?p=118#comment-18593</guid>
		<description>[...] Programming Responsiveness  [...]</description>
		<content:encoded><![CDATA[<p>[...] Programming Responsiveness  [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mick West</title>
		<link>http://cowboyprogramming.com/2008/05/27/programming-responsiveness/comment-page-1/#comment-18450</link>
		<dc:creator>Mick West</dc:creator>
		<pubDate>Wed, 28 May 2008 14:39:33 +0000</pubDate>
		<guid isPermaLink="false">http://cowboyprogramming.com/?p=118#comment-18450</guid>
		<description>There&#039;s a lot of room for tweaking - basically changing things based on context.  Always be asking &quot;what is the player&#039;s intent here&quot;, and try to accommodate that as quickly as possible.

Take the immediate past button pressing history into account when deciding what to do.  If they press left, then it can do a different style of velocity modification if they were pressing right withing the last 0.5 seconds.</description>
		<content:encoded><![CDATA[<p>There&#8217;s a lot of room for tweaking &#8211; basically changing things based on context.  Always be asking &#8220;what is the player&#8217;s intent here&#8221;, and try to accommodate that as quickly as possible.</p>
<p>Take the immediate past button pressing history into account when deciding what to do.  If they press left, then it can do a different style of velocity modification if they were pressing right withing the last 0.5 seconds.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: SteveC</title>
		<link>http://cowboyprogramming.com/2008/05/27/programming-responsiveness/comment-page-1/#comment-18417</link>
		<dc:creator>SteveC</dc:creator>
		<pubDate>Wed, 28 May 2008 04:41:34 +0000</pubDate>
		<guid isPermaLink="false">http://cowboyprogramming.com/?p=118#comment-18417</guid>
		<description>&quot;I’m assuming you are not talking about the standard key-repeat rate here...&quot;

No, I figured that much out (not on the first try, but the 2nd try.)

&quot;For example if you are moving and change direction, then you use a different acceleration than if you are stationary and start moving.&quot;

I think I did something along those lines (will have to go back and look and see what I did.)

&quot;You’ll also want some hard limits on velocity in addition to  friction.&quot;

Yeah, got that.  Somewhat arbitrarily chosen values, hard to figure, except by trial and error, I guess.

My suspicion is that that the keyboard can never be as good as the joystick, simply because it provides less information.  What few testers I&#039;ve had have told me I&#039;ve made improvements in the keyboard, but it&#039;s hard to know if  you&#039;ve maxed out the &quot;goodness&quot; of the keyboard response.</description>
		<content:encoded><![CDATA[<p>&#8220;I’m assuming you are not talking about the standard key-repeat rate here&#8230;&#8221;</p>
<p>No, I figured that much out (not on the first try, but the 2nd try.)</p>
<p>&#8220;For example if you are moving and change direction, then you use a different acceleration than if you are stationary and start moving.&#8221;</p>
<p>I think I did something along those lines (will have to go back and look and see what I did.)</p>
<p>&#8220;You’ll also want some hard limits on velocity in addition to  friction.&#8221;</p>
<p>Yeah, got that.  Somewhat arbitrarily chosen values, hard to figure, except by trial and error, I guess.</p>
<p>My suspicion is that that the keyboard can never be as good as the joystick, simply because it provides less information.  What few testers I&#8217;ve had have told me I&#8217;ve made improvements in the keyboard, but it&#8217;s hard to know if  you&#8217;ve maxed out the &#8220;goodness&#8221; of the keyboard response.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mick West</title>
		<link>http://cowboyprogramming.com/2008/05/27/programming-responsiveness/comment-page-1/#comment-18416</link>
		<dc:creator>Mick West</dc:creator>
		<pubDate>Wed, 28 May 2008 04:35:25 +0000</pubDate>
		<guid isPermaLink="false">http://cowboyprogramming.com/?p=118#comment-18416</guid>
		<description>I&#039;m assuming you are not talking about the standard key-repeat rate here - if so, you are reading the keyboard wrong, and should look at, for example, my &quot;Pushing Buttons&quot; code.

http://cowboyprogramming.com/2007/01/02/pushhing-buttons/

Basically, you have a key that is either pressed or not.  When it is pressed, you accelerate in some manner, and when it is not pressed, you decelerate in some other manner.  

Remember all the great games that came out before analog sticks were around?  They were all basically button pressing games - no different from keyboard input.   It&#039;s all in how you handle the acceleration.

It&#039;s not a simple thing to get right.  There are several cases you have to handle.  For example if you are moving and change direction, then you use a different acceleration than if you are stationary and start moving.  You&#039;ll also want some hard limits on velocity in addition to friction.

Look at some existing games, and try to duplicate their behavior.</description>
		<content:encoded><![CDATA[<p>I&#8217;m assuming you are not talking about the standard key-repeat rate here &#8211; if so, you are reading the keyboard wrong, and should look at, for example, my &#8220;Pushing Buttons&#8221; code.</p>
<p><a href="http://cowboyprogramming.com/2007/01/02/pushhing-buttons/" rel="nofollow">http://cowboyprogramming.com/2007/01/02/pushhing-buttons/</a></p>
<p>Basically, you have a key that is either pressed or not.  When it is pressed, you accelerate in some manner, and when it is not pressed, you decelerate in some other manner.  </p>
<p>Remember all the great games that came out before analog sticks were around?  They were all basically button pressing games &#8211; no different from keyboard input.   It&#8217;s all in how you handle the acceleration.</p>
<p>It&#8217;s not a simple thing to get right.  There are several cases you have to handle.  For example if you are moving and change direction, then you use a different acceleration than if you are stationary and start moving.  You&#8217;ll also want some hard limits on velocity in addition to friction.</p>
<p>Look at some existing games, and try to duplicate their behavior.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Dynamic Page Served (once) in 2.745 seconds -->
