<?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: How do you say &#8220;plane&#8221; in The Witness?	</title>
	<atom:link href="https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/feed/" rel="self" type="application/rss+xml" />
	<link>https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/</link>
	<description>Explore an abandoned island.</description>
	<lastBuildDate>Sat, 23 Feb 2013 03:29:49 +0000</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.9</generator>
	<item>
		<title>
		By: Jonathan Blow		</title>
		<link>https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-529746</link>

		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Sat, 23 Feb 2013 03:29:49 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2052#comment-529746</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-529508&quot;&gt;SD&lt;/a&gt;.

Yeah, Casey was doing a Linux port. Partially so he could work on the game in his preferred environment! So, that is one way a Linux port could come about.]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-529508">SD</a>.</p>
<p>Yeah, Casey was doing a Linux port. Partially so he could work on the game in his preferred environment! So, that is one way a Linux port could come about.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: SD		</title>
		<link>https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-529508</link>

		<dc:creator><![CDATA[SD]]></dc:creator>
		<pubDate>Sat, 23 Feb 2013 02:02:30 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2052#comment-529508</guid>

					<description><![CDATA[WaitWaitWait.... &quot;right now the Linux version of The Witness is still under construction&quot; ... 

For us in the Linux gaming community, that&#039;s hugely exciting!  I (and many others) sadly thought that Jonathan had given up completely on it because of audio API problems and weak tools (well, weak for his requirements at least).

Should we have hope, maybe, that we&#039;ll also be able to play this gorgeous adventure/puzzler?]]></description>
			<content:encoded><![CDATA[<p>WaitWaitWait&#8230;. &#8220;right now the Linux version of The Witness is still under construction&#8221; &#8230; </p>
<p>For us in the Linux gaming community, that&#8217;s hugely exciting!  I (and many others) sadly thought that Jonathan had given up completely on it because of audio API problems and weak tools (well, weak for his requirements at least).</p>
<p>Should we have hope, maybe, that we&#8217;ll also be able to play this gorgeous adventure/puzzler?</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Graham		</title>
		<link>https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-458106</link>

		<dc:creator><![CDATA[Graham]]></dc:creator>
		<pubDate>Wed, 30 Jan 2013 01:30:12 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2052#comment-458106</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-384714&quot;&gt;Casey Muratori&lt;/a&gt;.

It means adjusting the individual components of the vector such that the length of the line itself is 1.0 units. Since I don&#039;t do this sort of programming much I&#039;ll probably get the terminology wrong but hopefully the meaning is clear enough.

In 2D, a triangle with base 4 units and height 3 units has a hypotenuse of 5 units, from hyp^2 = base^2 + height^2 (which is Pythagoras&#039; theorem). The base and height are the X and Y components of a vector and the hypotenuse is the length of that vector.

To normalise the vector we divide each component in the vector by the length we calculate, giving us the normalised version of the vector.

For my example above, now we have 0.8 (4 / 5) for the base and 0.6 (3 / 5) for the height. So:
hyp^2 = base^2 + height^2
hyp^2 = 0.8^2 + 0.6^2
hyp^2 = 0.64 + 0.36
hyp^2 = 1.0, so hyp = 1.0.

You calculate the length of a 3D vector with a very similar equation: len^2 = x^2 + y^2 + z^2 and you can scale the components in the same way as I described up above. Normalised vectors simplifies a bunch of things in 3D math.]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-384714">Casey Muratori</a>.</p>
<p>It means adjusting the individual components of the vector such that the length of the line itself is 1.0 units. Since I don&#8217;t do this sort of programming much I&#8217;ll probably get the terminology wrong but hopefully the meaning is clear enough.</p>
<p>In 2D, a triangle with base 4 units and height 3 units has a hypotenuse of 5 units, from hyp^2 = base^2 + height^2 (which is Pythagoras&#8217; theorem). The base and height are the X and Y components of a vector and the hypotenuse is the length of that vector.</p>
<p>To normalise the vector we divide each component in the vector by the length we calculate, giving us the normalised version of the vector.</p>
<p>For my example above, now we have 0.8 (4 / 5) for the base and 0.6 (3 / 5) for the height. So:<br />
hyp^2 = base^2 + height^2<br />
hyp^2 = 0.8^2 + 0.6^2<br />
hyp^2 = 0.64 + 0.36<br />
hyp^2 = 1.0, so hyp = 1.0.</p>
<p>You calculate the length of a 3D vector with a very similar equation: len^2 = x^2 + y^2 + z^2 and you can scale the components in the same way as I described up above. Normalised vectors simplifies a bunch of things in 3D math.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Phil Willis		</title>
		<link>https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-456248</link>

		<dc:creator><![CDATA[Phil Willis]]></dc:creator>
		<pubDate>Tue, 29 Jan 2013 20:59:32 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2052#comment-456248</guid>

					<description><![CDATA[There&#039;s the math and algorithm mistakes in programming, but these are usually easy for people with a computer science background to fix.

It&#039;s the bugs made by naming conventions and assumptions that are easy to make and tough to find.

I remember spectacularly breaking a build because when I assumed a variable was called foo_binary was actually a binary value.  Turns out people were using the high order bits to store &quot;other&quot; information.]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s the math and algorithm mistakes in programming, but these are usually easy for people with a computer science background to fix.</p>
<p>It&#8217;s the bugs made by naming conventions and assumptions that are easy to make and tough to find.</p>
<p>I remember spectacularly breaking a build because when I assumed a variable was called foo_binary was actually a binary value.  Turns out people were using the high order bits to store &#8220;other&#8221; information.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Pritchard		</title>
		<link>https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-424649</link>

		<dc:creator><![CDATA[Pritchard]]></dc:creator>
		<pubDate>Fri, 25 Jan 2013 06:19:35 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2052#comment-424649</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-423994&quot;&gt;Matthew VanDevander&lt;/a&gt;.

That makes sense.  Have you looked into component-based entities?

https://archive.fosdem.org/2012/schedule/event/game_entities.html

I think the overall architecture of the project may be the most important part.  I&#039;m considering integrating FSMs into handling messages once they&#039;re broadcast to entities, possibly in combination with a minimal-effort routing system via reflection.]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-423994">Matthew VanDevander</a>.</p>
<p>That makes sense.  Have you looked into component-based entities?</p>
<p><a href="https://archive.fosdem.org/2012/schedule/event/game_entities.html" rel="nofollow ugc">https://archive.fosdem.org/2012/schedule/event/game_entities.html</a></p>
<p>I think the overall architecture of the project may be the most important part.  I&#8217;m considering integrating FSMs into handling messages once they&#8217;re broadcast to entities, possibly in combination with a minimal-effort routing system via reflection.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Matthew VanDevander		</title>
		<link>https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-423994</link>

		<dc:creator><![CDATA[Matthew VanDevander]]></dc:creator>
		<pubDate>Fri, 25 Jan 2013 05:26:15 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2052#comment-423994</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-389845&quot;&gt;Pritchard&lt;/a&gt;.

Can&#039;t really ever bring up coding without getting into discussions about taste or relevancy of certain practices. It&#039;s interesting food for thought regardless, as a young inexperienced programmer. Even if Doom 3&#039;s source code is horrid, it&#039;s certainly much better than mine.

My code is confusing and convoluted, doesn&#039;t follow any conventions whatsoever and tends to lack a unifying structure that really feels well thought out. And that&#039;s because it wasn&#039;t. Sometimes you do just have to say Eff it to refactoring for the Nth time and just finish the game though. (Working on that one too.)]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-389845">Pritchard</a>.</p>
<p>Can&#8217;t really ever bring up coding without getting into discussions about taste or relevancy of certain practices. It&#8217;s interesting food for thought regardless, as a young inexperienced programmer. Even if Doom 3&#8217;s source code is horrid, it&#8217;s certainly much better than mine.</p>
<p>My code is confusing and convoluted, doesn&#8217;t follow any conventions whatsoever and tends to lack a unifying structure that really feels well thought out. And that&#8217;s because it wasn&#8217;t. Sometimes you do just have to say Eff it to refactoring for the Nth time and just finish the game though. (Working on that one too.)</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Lestibournes		</title>
		<link>https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-423864</link>

		<dc:creator><![CDATA[Lestibournes]]></dc:creator>
		<pubDate>Fri, 25 Jan 2013 04:45:54 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2052#comment-423864</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-384714&quot;&gt;Casey Muratori&lt;/a&gt;.

Thank you for the explanation. Now what does normalization mean in this context?]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-384714">Casey Muratori</a>.</p>
<p>Thank you for the explanation. Now what does normalization mean in this context?</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: dan		</title>
		<link>https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-421648</link>

		<dc:creator><![CDATA[dan]]></dc:creator>
		<pubDate>Thu, 24 Jan 2013 23:57:45 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2052#comment-421648</guid>

					<description><![CDATA[So... how would you prevent this from happening in future?]]></description>
			<content:encoded><![CDATA[<p>So&#8230; how would you prevent this from happening in future?</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Graham		</title>
		<link>https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-408676</link>

		<dc:creator><![CDATA[Graham]]></dc:creator>
		<pubDate>Wed, 23 Jan 2013 22:27:23 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2052#comment-408676</guid>

					<description><![CDATA[My gut feeling was numerical precision, but for a bug like this I wouldn&#039;t have tried any fix without stepping through the code in the debugger to see why it was going wrong, or looking at logs of the data (sometimes I&#039;ll make a huge circular array and log in-memory).

If I was more math-savvy then maybe this would&#039;ve fallen into my &#039;trivial-enough&#039; category but even then I&#039;m not sure about that. The lesson from this, in my opinion, is that you should always verify you have understood the defect properly BEFORE implementing any solution.]]></description>
			<content:encoded><![CDATA[<p>My gut feeling was numerical precision, but for a bug like this I wouldn&#8217;t have tried any fix without stepping through the code in the debugger to see why it was going wrong, or looking at logs of the data (sometimes I&#8217;ll make a huge circular array and log in-memory).</p>
<p>If I was more math-savvy then maybe this would&#8217;ve fallen into my &#8216;trivial-enough&#8217; category but even then I&#8217;m not sure about that. The lesson from this, in my opinion, is that you should always verify you have understood the defect properly BEFORE implementing any solution.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Devin Raposo		</title>
		<link>https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-400389</link>

		<dc:creator><![CDATA[Devin Raposo]]></dc:creator>
		<pubDate>Wed, 23 Jan 2013 05:07:09 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2052#comment-400389</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-390344&quot;&gt;Casey Muratori&lt;/a&gt;.

To be honest, yeah, the whole article just seemed like it would add a bunch of extra work for minimal (sometimes none) aesthetic gain.]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-390344">Casey Muratori</a>.</p>
<p>To be honest, yeah, the whole article just seemed like it would add a bunch of extra work for minimal (sometimes none) aesthetic gain.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Christopher Hebert		</title>
		<link>https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-397920</link>

		<dc:creator><![CDATA[Christopher Hebert]]></dc:creator>
		<pubDate>Tue, 22 Jan 2013 22:51:35 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2052#comment-397920</guid>

					<description><![CDATA[I have to say all of your hard work is a big inspiration to me. I&#039;m a budding software dev and aspiring game developer. I&#039;m pretty young and new at it (21-years of age), and I&#039;ve never really felt a sense of completion with any of my projects -- which is what I would expect. It feels like there is always infinitely more things I can do to &quot;improve&quot; or add to a game. I&#039;m sure you&#039;ve run into this yourself, and I guess I&#039;m just wondering if you do feel a strong sense of completion before you release the game, or if you look back and think &quot;Oh, I could have improved this one part of Braid, if I had just waited&quot;.

Oh and this might seem like completely off-topic, but this article just made me think of the &quot;infinitely&quot; many things to improve a game or its source code. A lot of software is &quot;never done&quot;, but games are not that type of software. At some point you have to declare it &quot;done&quot;.]]></description>
			<content:encoded><![CDATA[<p>I have to say all of your hard work is a big inspiration to me. I&#8217;m a budding software dev and aspiring game developer. I&#8217;m pretty young and new at it (21-years of age), and I&#8217;ve never really felt a sense of completion with any of my projects &#8212; which is what I would expect. It feels like there is always infinitely more things I can do to &#8220;improve&#8221; or add to a game. I&#8217;m sure you&#8217;ve run into this yourself, and I guess I&#8217;m just wondering if you do feel a strong sense of completion before you release the game, or if you look back and think &#8220;Oh, I could have improved this one part of Braid, if I had just waited&#8221;.</p>
<p>Oh and this might seem like completely off-topic, but this article just made me think of the &#8220;infinitely&#8221; many things to improve a game or its source code. A lot of software is &#8220;never done&#8221;, but games are not that type of software. At some point you have to declare it &#8220;done&#8221;.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Rob Cozzens		</title>
		<link>https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-396591</link>

		<dc:creator><![CDATA[Rob Cozzens]]></dc:creator>
		<pubDate>Tue, 22 Jan 2013 20:32:25 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2052#comment-396591</guid>

					<description><![CDATA[Only partial credit for me! There is no way I wouldn&#039;t have been satisfied with the original solution as you described it.
And hearing the real source of the problem, I don&#039;t understand why the bug wasn&#039;t more common.

BTW, I&#039;ve been eagerly waiting for this follow-up and you did not disappoint!]]></description>
			<content:encoded><![CDATA[<p>Only partial credit for me! There is no way I wouldn&#8217;t have been satisfied with the original solution as you described it.<br />
And hearing the real source of the problem, I don&#8217;t understand why the bug wasn&#8217;t more common.</p>
<p>BTW, I&#8217;ve been eagerly waiting for this follow-up and you did not disappoint!</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Casey Muratori		</title>
		<link>https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-390344</link>

		<dc:creator><![CDATA[Casey Muratori]]></dc:creator>
		<pubDate>Tue, 22 Jan 2013 03:15:45 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2052#comment-390344</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-387948&quot;&gt;sebastian&lt;/a&gt;.

Essentially everything it mentions is not really interesting as an isolated example of &quot;beauty&quot;, or even good programming practice.  Source code is beautiful at a much deeper level than the things they&#039;re talking about in that article, and the beauty of the Doom 3 source code (if it is beautiful - I have no idea, I&#039;ve never looked at it) surely has nothing to do with the things the person highlighted.  I&#039;ve seen very beautiful code that does none of those things, or actively contradicts many.

- Casey]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-387948">sebastian</a>.</p>
<p>Essentially everything it mentions is not really interesting as an isolated example of &#8220;beauty&#8221;, or even good programming practice.  Source code is beautiful at a much deeper level than the things they&#8217;re talking about in that article, and the beauty of the Doom 3 source code (if it is beautiful &#8211; I have no idea, I&#8217;ve never looked at it) surely has nothing to do with the things the person highlighted.  I&#8217;ve seen very beautiful code that does none of those things, or actively contradicts many.</p>
<p>&#8211; Casey</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Pritchard		</title>
		<link>https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-389845</link>

		<dc:creator><![CDATA[Pritchard]]></dc:creator>
		<pubDate>Tue, 22 Jan 2013 01:51:36 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2052#comment-389845</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-386800&quot;&gt;Matthew VanDevander&lt;/a&gt;.

It&#039;s highly subjective.  Program in a consistent way, that&#039;s more important.

Look up the common conventions for Python, Ruby and CoffeeScript and then tell me what you think about that article.]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-386800">Matthew VanDevander</a>.</p>
<p>It&#8217;s highly subjective.  Program in a consistent way, that&#8217;s more important.</p>
<p>Look up the common conventions for Python, Ruby and CoffeeScript and then tell me what you think about that article.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: sebastian		</title>
		<link>https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-387948</link>

		<dc:creator><![CDATA[sebastian]]></dc:creator>
		<pubDate>Mon, 21 Jan 2013 23:43:52 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2052#comment-387948</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-387297&quot;&gt;Casey Muratori&lt;/a&gt;.

I had read that article at kotaku as well, but as a non-programmer I don&#039;t have the knowledge to judge it&#039;s legitimacy.

Why do you say you&#039;re wary of it, Casey?]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-387297">Casey Muratori</a>.</p>
<p>I had read that article at kotaku as well, but as a non-programmer I don&#8217;t have the knowledge to judge it&#8217;s legitimacy.</p>
<p>Why do you say you&#8217;re wary of it, Casey?</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Casey Muratori		</title>
		<link>https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-387297</link>

		<dc:creator><![CDATA[Casey Muratori]]></dc:creator>
		<pubDate>Mon, 21 Jan 2013 22:41:18 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2052#comment-387297</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-386800&quot;&gt;Matthew VanDevander&lt;/a&gt;.

As an aside, I&#039;d be a bit wary of that article on the Doom 3 source code.

- Casey]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-386800">Matthew VanDevander</a>.</p>
<p>As an aside, I&#8217;d be a bit wary of that article on the Doom 3 source code.</p>
<p>&#8211; Casey</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Casey Muratori		</title>
		<link>https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-387207</link>

		<dc:creator><![CDATA[Casey Muratori]]></dc:creator>
		<pubDate>Mon, 21 Jan 2013 22:36:46 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2052#comment-387207</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-386736&quot;&gt;Bob&lt;/a&gt;.

Not yet.  As soon as _we_ know, we&#039;ll let you know, don&#039;t worry! :)

- Casey]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-386736">Bob</a>.</p>
<p>Not yet.  As soon as _we_ know, we&#8217;ll let you know, don&#8217;t worry! :)</p>
<p>&#8211; Casey</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Jonathan Blow		</title>
		<link>https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-386870</link>

		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Mon, 21 Jan 2013 22:09:30 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2052#comment-386870</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-384834&quot;&gt;jrr&lt;/a&gt;.

It does not have a side effect on the object. It just returns a unit vector.]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-384834">jrr</a>.</p>
<p>It does not have a side effect on the object. It just returns a unit vector.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Matthew VanDevander		</title>
		<link>https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-386800</link>

		<dc:creator><![CDATA[Matthew VanDevander]]></dc:creator>
		<pubDate>Mon, 21 Jan 2013 21:50:14 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2052#comment-386800</guid>

					<description><![CDATA[I am thrilled that I get partial credit, as I still feel stupid about the simple programming mistakes I make as an inexperienced coder. I am glad that I was not completely correct though, because now I have learned an important lesson:

If you are working in an unfamiliar code base, never trust that a function does exactly what you expect it to. Always investigate.

It reminds me of how ashamed I was of my current coding style upon reading this: 
http://kotaku.com/5975610/the-exceptional-beauty-of-doom-3s-source-code

Luckily for now, I&#039;m still coding alone. So nobody has to decipher the meaning and purpose of my poorly designed functions. But I am glad to be learning, and have really been enjoying your write-ups, Casey. Particularly this one.]]></description>
			<content:encoded><![CDATA[<p>I am thrilled that I get partial credit, as I still feel stupid about the simple programming mistakes I make as an inexperienced coder. I am glad that I was not completely correct though, because now I have learned an important lesson:</p>
<p>If you are working in an unfamiliar code base, never trust that a function does exactly what you expect it to. Always investigate.</p>
<p>It reminds me of how ashamed I was of my current coding style upon reading this:<br />
<a href="http://kotaku.com/5975610/the-exceptional-beauty-of-doom-3s-source-code" rel="nofollow ugc">http://kotaku.com/5975610/the-exceptional-beauty-of-doom-3s-source-code</a></p>
<p>Luckily for now, I&#8217;m still coding alone. So nobody has to decipher the meaning and purpose of my poorly designed functions. But I am glad to be learning, and have really been enjoying your write-ups, Casey. Particularly this one.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Bob		</title>
		<link>https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-386736</link>

		<dc:creator><![CDATA[Bob]]></dc:creator>
		<pubDate>Mon, 21 Jan 2013 21:43:46 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2052#comment-386736</guid>

					<description><![CDATA[Is there a set release date yet?]]></description>
			<content:encoded><![CDATA[<p>Is there a set release date yet?</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: jrr		</title>
		<link>https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-384834</link>

		<dc:creator><![CDATA[jrr]]></dc:creator>
		<pubDate>Mon, 21 Jan 2013 18:05:45 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2052#comment-384834</guid>

					<description><![CDATA[There&#039;s no way I&#039;d have ever expected get_normal() to have a side effect on the object.  Rename it to something like normalize_and_get_normal() ?

Where else might functions that look like accessors have side effects?]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s no way I&#8217;d have ever expected get_normal() to have a side effect on the object.  Rename it to something like normalize_and_get_normal() ?</p>
<p>Where else might functions that look like accessors have side effects?</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Casey Muratori		</title>
		<link>https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-384714</link>

		<dc:creator><![CDATA[Casey Muratori]]></dc:creator>
		<pubDate>Mon, 21 Jan 2013 17:54:36 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2052#comment-384714</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-379154&quot;&gt;Lestibournes&lt;/a&gt;.

The problem is that I wrote my code expecting the plane class to store the plane equation {a, b, c, d} and then return it to me exactly as I stored it.  So, if I computed (ax + by + cz + d) somewhere before storing the plane, then later asked for the values back so I could do (ax + by + cz + d) again, I need to be getting the same exact numbers back.  Otherwise, obviously, the computations don&#039;t match.

Since the Witness code was normalizing the a b c on the way out, my second (ax +by + cz + d) ended up using _differenct_ a b c values, which leads to completely erroneous results, all of which will be wrong by whatever the ratio was between the original vector {a, b, c} and the new normalized vector {a, b, c} / &#124;{a, b, c}&#124;.

It&#039;s all just a simple misunderstanding about what the class did internally.  Once I actually looked at its code, it was very clear what the problem was - it is not a subtle problem.

I&#039;m not sure I understand exactly what your guess was, but it doesn&#039;t sound close to either answer, unfortunately :(  

Next time!

- Casey]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-379154">Lestibournes</a>.</p>
<p>The problem is that I wrote my code expecting the plane class to store the plane equation {a, b, c, d} and then return it to me exactly as I stored it.  So, if I computed (ax + by + cz + d) somewhere before storing the plane, then later asked for the values back so I could do (ax + by + cz + d) again, I need to be getting the same exact numbers back.  Otherwise, obviously, the computations don&#8217;t match.</p>
<p>Since the Witness code was normalizing the a b c on the way out, my second (ax +by + cz + d) ended up using _differenct_ a b c values, which leads to completely erroneous results, all of which will be wrong by whatever the ratio was between the original vector {a, b, c} and the new normalized vector {a, b, c} / |{a, b, c}|.</p>
<p>It&#8217;s all just a simple misunderstanding about what the class did internally.  Once I actually looked at its code, it was very clear what the problem was &#8211; it is not a subtle problem.</p>
<p>I&#8217;m not sure I understand exactly what your guess was, but it doesn&#8217;t sound close to either answer, unfortunately :(  </p>
<p>Next time!</p>
<p>&#8211; Casey</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: WC		</title>
		<link>https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-381998</link>

		<dc:creator><![CDATA[WC]]></dc:creator>
		<pubDate>Mon, 21 Jan 2013 12:37:46 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2052#comment-381998</guid>

					<description><![CDATA[I think a big part of being a good programmer is knowing when to go back and work through something, and when it&#039;s good enough and you should work on something useful.  Clearly, your mind nagged you into looking closer, and it was the right call.

But you could have easily had a similar situation where looking into it revealed that the problem was exactly what you thought, and you wasted hours of your life on something that meant nothing.

The takeaway here is not &#039;always look into things&#039; but that good programmers have honed their instincts as to when to look into things or not.]]></description>
			<content:encoded><![CDATA[<p>I think a big part of being a good programmer is knowing when to go back and work through something, and when it&#8217;s good enough and you should work on something useful.  Clearly, your mind nagged you into looking closer, and it was the right call.</p>
<p>But you could have easily had a similar situation where looking into it revealed that the problem was exactly what you thought, and you wasted hours of your life on something that meant nothing.</p>
<p>The takeaway here is not &#8216;always look into things&#8217; but that good programmers have honed their instincts as to when to look into things or not.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Lestibournes		</title>
		<link>https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-379154</link>

		<dc:creator><![CDATA[Lestibournes]]></dc:creator>
		<pubDate>Mon, 21 Jan 2013 07:08:02 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2052#comment-379154</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-377802&quot;&gt;Casey Muratori&lt;/a&gt;.

Yes, I realize that. It still depends on my mood as to whether or not I would actually do it, regardless of what the reasons or benefits are.

Anyway, I&#039;d like a layman&#039;s explanation for what is happening so that I&#039;ll know how close or far off the mark my guess was.]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-377802">Casey Muratori</a>.</p>
<p>Yes, I realize that. It still depends on my mood as to whether or not I would actually do it, regardless of what the reasons or benefits are.</p>
<p>Anyway, I&#8217;d like a layman&#8217;s explanation for what is happening so that I&#8217;ll know how close or far off the mark my guess was.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: John Calsbeek		</title>
		<link>https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-377961</link>

		<dc:creator><![CDATA[John Calsbeek]]></dc:creator>
		<pubDate>Mon, 21 Jan 2013 05:32:11 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2052#comment-377961</guid>

					<description><![CDATA[Well, I can claim in good faith that I didn&#039;t respond to the original post because all your hints were pointing towards numerical precision, and from your statements about where the problem was it seemed like it could be hardly anything else, but that I just couldn&#039;t see how the numbers involved were big enough for that to be the issue.

If the bug had been in front of me, would I have looked at it a second time after &quot;fixing&quot; it that way? I don&#039;t think I can answer that, because I don&#039;t think I would&#039;ve tried to fix it that way without spending a lot of time staring at the actual numbers and trying to figure out where I was losing precision. But if I had explained it to someone I trusted, and they had said &quot;oh, it&#039;s numerical precision, try this&quot; and they made the changes you did and then the problem went away... would I have looked a second time? Probably not.]]></description>
			<content:encoded><![CDATA[<p>Well, I can claim in good faith that I didn&#8217;t respond to the original post because all your hints were pointing towards numerical precision, and from your statements about where the problem was it seemed like it could be hardly anything else, but that I just couldn&#8217;t see how the numbers involved were big enough for that to be the issue.</p>
<p>If the bug had been in front of me, would I have looked at it a second time after &#8220;fixing&#8221; it that way? I don&#8217;t think I can answer that, because I don&#8217;t think I would&#8217;ve tried to fix it that way without spending a lot of time staring at the actual numbers and trying to figure out where I was losing precision. But if I had explained it to someone I trusted, and they had said &#8220;oh, it&#8217;s numerical precision, try this&#8221; and they made the changes you did and then the problem went away&#8230; would I have looked a second time? Probably not.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Casey Muratori		</title>
		<link>https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-377802</link>

		<dc:creator><![CDATA[Casey Muratori]]></dc:creator>
		<pubDate>Mon, 21 Jan 2013 05:10:13 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2052#comment-377802</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-377774&quot;&gt;Lestibournes&lt;/a&gt;.

The major takeaway is, as it often is, to _always_ investigate further.  For example, in this case, even though the bug was completely fixed by my original solution, the insight into how the plane code worked has surely saved me future Witness bugs of this same nature, because now I know how to use the plane code properly.

- Casey]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-377774">Lestibournes</a>.</p>
<p>The major takeaway is, as it often is, to _always_ investigate further.  For example, in this case, even though the bug was completely fixed by my original solution, the insight into how the plane code worked has surely saved me future Witness bugs of this same nature, because now I know how to use the plane code properly.</p>
<p>&#8211; Casey</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Lestibournes		</title>
		<link>https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-377774</link>

		<dc:creator><![CDATA[Lestibournes]]></dc:creator>
		<pubDate>Mon, 21 Jan 2013 05:02:43 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2052#comment-377774</guid>

					<description><![CDATA[I don&#039;t really understand all this stuff about normals, but it sounds like you were using it to find the point where the mouse intersected with the plain and it was giving you what from your perspective would be wrong values, perhaps in mapping the points on the plain to points on the screen. If this is the case then I&#039;d like to congratulate myself for being 1/4 of the way there. My hunch would seem to have pointed me somewhat in the right direction even though I have no clue about this 3D math stuff.

I&#039;m not sure whether or not I would have just accepted the fix or investigated it further. I guess it would have depended on my mood.]]></description>
			<content:encoded><![CDATA[<p>I don&#8217;t really understand all this stuff about normals, but it sounds like you were using it to find the point where the mouse intersected with the plain and it was giving you what from your perspective would be wrong values, perhaps in mapping the points on the plain to points on the screen. If this is the case then I&#8217;d like to congratulate myself for being 1/4 of the way there. My hunch would seem to have pointed me somewhat in the right direction even though I have no clue about this 3D math stuff.</p>
<p>I&#8217;m not sure whether or not I would have just accepted the fix or investigated it further. I guess it would have depended on my mood.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Manuel Araoz		</title>
		<link>https://the-witness.net/news/2013/01/how-do-you-say-plane-in-the-witness/comment-page-1/#comment-377442</link>

		<dc:creator><![CDATA[Manuel Araoz]]></dc:creator>
		<pubDate>Mon, 21 Jan 2013 04:46:34 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=2052#comment-377442</guid>

					<description><![CDATA[I&#039;m happy with my partial credit and learning the lesson: even if you fixed a bug, you better understand why it had happened before and why what you did fixes it. Thanks for writing! 

p.s.: I love how clouds look in your game!]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m happy with my partial credit and learning the lesson: even if you fixed a bug, you better understand why it had happened before and why what you did fixes it. Thanks for writing! </p>
<p>p.s.: I love how clouds look in your game!</p>
]]></content:encoded>
		
			</item>
	</channel>
</rss>
