<?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: Mapping the Island&#8217;s Walkable Surfaces	</title>
	<atom:link href="https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/feed/" rel="self" type="application/rss+xml" />
	<link>https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/</link>
	<description>Explore an abandoned island.</description>
	<lastBuildDate>Thu, 26 Nov 2015 17:23:23 +0000</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.9</generator>
	<item>
		<title>
		By: Emma		</title>
		<link>https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-8463575</link>

		<dc:creator><![CDATA[Emma]]></dc:creator>
		<pubDate>Thu, 26 Nov 2015 17:23:23 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1939#comment-8463575</guid>

					<description><![CDATA[I think this remains as one of my favorite posts. Still very curious how everything turned out.]]></description>
			<content:encoded><![CDATA[<p>I think this remains as one of my favorite posts. Still very curious how everything turned out.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Jose Escribano		</title>
		<link>https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-509971</link>

		<dc:creator><![CDATA[Jose Escribano]]></dc:creator>
		<pubDate>Wed, 13 Feb 2013 09:10:00 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1939#comment-509971</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-133869&quot;&gt;David&lt;/a&gt;.

I was thinking exactly the same thing that you.
Recast is a great solution to explore the walkable mesh of the world, but maybe I didn&#039;t read carefully to understand the complexity of the problem and probably I am missing something :)

Anyway is always cool read about different approaches to solve problems, specially when the approach doesn&#039;t give the expected results, it is great to experiment, thanks for the post :)]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-133869">David</a>.</p>
<p>I was thinking exactly the same thing that you.<br />
Recast is a great solution to explore the walkable mesh of the world, but maybe I didn&#8217;t read carefully to understand the complexity of the problem and probably I am missing something :)</p>
<p>Anyway is always cool read about different approaches to solve problems, specially when the approach doesn&#8217;t give the expected results, it is great to experiment, thanks for the post :)</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: failrate		</title>
		<link>https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-154420</link>

		<dc:creator><![CDATA[failrate]]></dc:creator>
		<pubDate>Tue, 18 Dec 2012 23:20:18 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1939#comment-154420</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-133923&quot;&gt;JP&lt;/a&gt;.

Based on my experience with random walk on a console title with jumping, no, the plot is still readable.]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-133923">JP</a>.</p>
<p>Based on my experience with random walk on a console title with jumping, no, the plot is still readable.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Daniel R. Maciel		</title>
		<link>https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-147738</link>

		<dc:creator><![CDATA[Daniel R. Maciel]]></dc:creator>
		<pubDate>Mon, 17 Dec 2012 01:22:37 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1939#comment-147738</guid>

					<description><![CDATA[I&#039;ve never seen such beautiful and unique scenery in a game before. I&#039;m really looking forward to exploring this island.

Braid forever changed my taste for games.
I&#039;m expecting The Witness to be even more interesting.
I hope you keep raising the game quality bar, so other will follow. Who knows, maybe some day. :)]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve never seen such beautiful and unique scenery in a game before. I&#8217;m really looking forward to exploring this island.</p>
<p>Braid forever changed my taste for games.<br />
I&#8217;m expecting The Witness to be even more interesting.<br />
I hope you keep raising the game quality bar, so other will follow. Who knows, maybe some day. :)</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Reif		</title>
		<link>https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-142065</link>

		<dc:creator><![CDATA[Reif]]></dc:creator>
		<pubDate>Fri, 14 Dec 2012 23:50:21 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1939#comment-142065</guid>

					<description><![CDATA[Could this be the next Myst?

I&#039;m hoping it&#039;s going that direction, adding in a shooter style rather than P&#038;C.]]></description>
			<content:encoded><![CDATA[<p>Could this be the next Myst?</p>
<p>I&#8217;m hoping it&#8217;s going that direction, adding in a shooter style rather than P&amp;C.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Jonathan Blow		</title>
		<link>https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-141781</link>

		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Fri, 14 Dec 2012 22:35:40 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1939#comment-141781</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-138431&quot;&gt;Mikko Mononen&lt;/a&gt;.

What I am saying is that your proposed solution does not seem to address any problem that we have in any way that we cannot already address... yet it introduces new problems via the sampling step.

This is characteristic of many tech-driven ideas: they claim to solve problems, but really don&#039;t (or else they solve the small problems but leave the big ones). I used to be mainly a programmer who had tech-driven ideas. After a while I learned to see the way in which they so often go awry. It can be subtle if you are not used to seeing it.

This has nothing to do with &quot;thinking outside the box&quot; or whatever. I do plenty of that, believe it.]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-138431">Mikko Mononen</a>.</p>
<p>What I am saying is that your proposed solution does not seem to address any problem that we have in any way that we cannot already address&#8230; yet it introduces new problems via the sampling step.</p>
<p>This is characteristic of many tech-driven ideas: they claim to solve problems, but really don&#8217;t (or else they solve the small problems but leave the big ones). I used to be mainly a programmer who had tech-driven ideas. After a while I learned to see the way in which they so often go awry. It can be subtle if you are not used to seeing it.</p>
<p>This has nothing to do with &#8220;thinking outside the box&#8221; or whatever. I do plenty of that, believe it.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Mikko Mononen		</title>
		<link>https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-138431</link>

		<dc:creator><![CDATA[Mikko Mononen]]></dc:creator>
		<pubDate>Fri, 14 Dec 2012 02:40:22 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1939#comment-138431</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-134582&quot;&gt;Jonathan Blow&lt;/a&gt;.

I totally understand what you&#039;re saying. I was jumping too early to propose a silver bullet I have used myself :) But really I&#039;d like to challenge you to think outside the box where the norm is that that physics system is _the_ way to implement player movement.

Any explicit navigation space is kind of a precomputed dual representation of your dynamic model. Being able to visualize it, is very powerful design tool and implied in the original post. Just like your physics collider approximates the player movement, so does the choice of &quot;sampling&quot; approximate your navigable space. There are no right solutions on either system, you only get a good enough compromise.

The way I have implemented the voxelization is that: first I use conservative voxelisation to detect solid space, then for each potentially walkable voxel I check if there is enough space for the character the stand there, and mark it as walkable. Finally, the walkable area is dilated by the walker radius. The end result is conservative estimation of space where the character can stand without colliding any geometry or falling off from cliffs.

Automatic walkable area detection (using voxels or otherwise) does not mean that you need to use the visible geometry to generate the walkable areas, you can use the same tweaks and tricks you&#039;d do for physics colliders. I have found (RLE) voxels to be very flexible data format to do all kinds of tricks which are more costly otherwise (i.e. minkowski sums, morphological opening, closing, lowpass filtering, painting, surface types, etc). You can easily use volumes to paint the surface for special purposes (i.e. to disable walking, or mark water areas).]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-134582">Jonathan Blow</a>.</p>
<p>I totally understand what you&#8217;re saying. I was jumping too early to propose a silver bullet I have used myself :) But really I&#8217;d like to challenge you to think outside the box where the norm is that that physics system is _the_ way to implement player movement.</p>
<p>Any explicit navigation space is kind of a precomputed dual representation of your dynamic model. Being able to visualize it, is very powerful design tool and implied in the original post. Just like your physics collider approximates the player movement, so does the choice of &#8220;sampling&#8221; approximate your navigable space. There are no right solutions on either system, you only get a good enough compromise.</p>
<p>The way I have implemented the voxelization is that: first I use conservative voxelisation to detect solid space, then for each potentially walkable voxel I check if there is enough space for the character the stand there, and mark it as walkable. Finally, the walkable area is dilated by the walker radius. The end result is conservative estimation of space where the character can stand without colliding any geometry or falling off from cliffs.</p>
<p>Automatic walkable area detection (using voxels or otherwise) does not mean that you need to use the visible geometry to generate the walkable areas, you can use the same tweaks and tricks you&#8217;d do for physics colliders. I have found (RLE) voxels to be very flexible data format to do all kinds of tricks which are more costly otherwise (i.e. minkowski sums, morphological opening, closing, lowpass filtering, painting, surface types, etc). You can easily use volumes to paint the surface for special purposes (i.e. to disable walking, or mark water areas).</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Pritchard		</title>
		<link>https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-138259</link>

		<dc:creator><![CDATA[Pritchard]]></dc:creator>
		<pubDate>Fri, 14 Dec 2012 01:14:26 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1939#comment-138259</guid>

					<description><![CDATA[Seriously, who are you guys?
And you make money doing this stuff?

Sounds like a party to me.  Get a real job!  :P]]></description>
			<content:encoded><![CDATA[<p>Seriously, who are you guys?<br />
And you make money doing this stuff?</p>
<p>Sounds like a party to me.  Get a real job!  :P</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Casey Muratori		</title>
		<link>https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-138162</link>

		<dc:creator><![CDATA[Casey Muratori]]></dc:creator>
		<pubDate>Thu, 13 Dec 2012 23:46:14 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1939#comment-138162</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-135288&quot;&gt;Eli Piilonen&lt;/a&gt;.

I&#039;m going to let Jon comment on this, because I&#039;m not sure what he wants to say publicly about the interface and so on.  I was simply saying that from a _systems_ perspective, we need to be able to handle continuous movement and continuous look-around; that&#039;s a core requirement.  The interface design isn&#039;t my purview so I can&#039;t comment on that.

- Casey]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-135288">Eli Piilonen</a>.</p>
<p>I&#8217;m going to let Jon comment on this, because I&#8217;m not sure what he wants to say publicly about the interface and so on.  I was simply saying that from a _systems_ perspective, we need to be able to handle continuous movement and continuous look-around; that&#8217;s a core requirement.  The interface design isn&#8217;t my purview so I can&#8217;t comment on that.</p>
<p>&#8211; Casey</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Marco Mustapic		</title>
		<link>https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-137035</link>

		<dc:creator><![CDATA[Marco Mustapic]]></dc:creator>
		<pubDate>Thu, 13 Dec 2012 15:19:18 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1939#comment-137035</guid>

					<description><![CDATA[This would&#039;ve been a great GD Magazine article]]></description>
			<content:encoded><![CDATA[<p>This would&#8217;ve been a great GD Magazine article</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Thomas Young		</title>
		<link>https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-136739</link>

		<dc:creator><![CDATA[Thomas Young]]></dc:creator>
		<pubDate>Thu, 13 Dec 2012 12:33:50 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1939#comment-136739</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-134582&quot;&gt;Jonathan Blow&lt;/a&gt;.

IF you&#039;re thinking about possibly taking over the whole movement and collision thing for this, then you could also look at other kinds of automatic ground mesh generation.

e.g. at PathEngine we have a mesh generation pipeline based on BSP combination of source geometry, which is much more precise than voxels, and which then sounds like it could be quite a good fit for this.

You can choose exactly what geometry to pass into the automatic generation process, of course, so you&#039;d pass in those bevelled / smoothed collision volumes instead of the world geometry components they are designed to replace, and the ground mesh coming out of the BSP combination would then reflect your bevelled or smoothed geometry appropriately.

I agree that choosing which steep areas should be impassable purely based on ground slope is not at all ideal, and in this case I&#039;d recommend turning off maximum slope checking and instead flagging walkable areas explicitly in the source geometry (e.g. by painting flags into terrain data, or marking objects by type, or by instance, or keying this partly off of the applied texture, or whatever).

The BSP processing tends to be a lot more computationally expensive than voxel processing, but can be parallelised.]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-134582">Jonathan Blow</a>.</p>
<p>IF you&#8217;re thinking about possibly taking over the whole movement and collision thing for this, then you could also look at other kinds of automatic ground mesh generation.</p>
<p>e.g. at PathEngine we have a mesh generation pipeline based on BSP combination of source geometry, which is much more precise than voxels, and which then sounds like it could be quite a good fit for this.</p>
<p>You can choose exactly what geometry to pass into the automatic generation process, of course, so you&#8217;d pass in those bevelled / smoothed collision volumes instead of the world geometry components they are designed to replace, and the ground mesh coming out of the BSP combination would then reflect your bevelled or smoothed geometry appropriately.</p>
<p>I agree that choosing which steep areas should be impassable purely based on ground slope is not at all ideal, and in this case I&#8217;d recommend turning off maximum slope checking and instead flagging walkable areas explicitly in the source geometry (e.g. by painting flags into terrain data, or marking objects by type, or by instance, or keying this partly off of the applied texture, or whatever).</p>
<p>The BSP processing tends to be a lot more computationally expensive than voxel processing, but can be parallelised.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Casey Muratori		</title>
		<link>https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-135773</link>

		<dc:creator><![CDATA[Casey Muratori]]></dc:creator>
		<pubDate>Thu, 13 Dec 2012 06:59:52 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1939#comment-135773</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-135399&quot;&gt;Jamin Grey&lt;/a&gt;.

The post was already a bit long as it is, so some things got left out :)  The truth is that you cannot tell that information from the _screenshot_, you can only tell that information when you actually watch it run.  When it flood fills down the first side, it will not penetrate through, but when it finds its way around to the other side via another path, it then reconnects back up.

This is not actually how I will do this detection in the future, it was just an accident that happened during testing :)  In the future I plan to actually draw edges that were only traversed in one direction, but I haven&#039;t gotten to that yet.

- Casey]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-135399">Jamin Grey</a>.</p>
<p>The post was already a bit long as it is, so some things got left out :)  The truth is that you cannot tell that information from the _screenshot_, you can only tell that information when you actually watch it run.  When it flood fills down the first side, it will not penetrate through, but when it finds its way around to the other side via another path, it then reconnects back up.</p>
<p>This is not actually how I will do this detection in the future, it was just an accident that happened during testing :)  In the future I plan to actually draw edges that were only traversed in one direction, but I haven&#8217;t gotten to that yet.</p>
<p>&#8211; Casey</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Jamin Grey		</title>
		<link>https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-135399</link>

		<dc:creator><![CDATA[Jamin Grey]]></dc:creator>
		<pubDate>Thu, 13 Dec 2012 04:42:16 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1939#comment-135399</guid>

					<description><![CDATA[Very interesting! A bit beyond my capabilities, though.

I think the overhead views you demonstrated would be especially useful in identifying problem areas, if I understand the visualization.
Problems marked in yellow: http://img571.imageshack.us/img571/3064/thewitness.png

You could perhaps improve the visuals by drawing transparent filled cyan polygons between walkable points, and transparent bright-red polygons between wall points. Though that&#039;d assume that everything between walkable points don&#039;t have collision boxes that are so tiny they fit between your points. Perhaps you should also mark in bright yellow every collision box that is so small it&#039;s likely to be missed by your sampling of the terrain?

I also don&#039;t see in the last picture how you realized that you can walk one direction but not the other. I&#039;m not noticing the visual signs that indicate that.]]></description>
			<content:encoded><![CDATA[<p>Very interesting! A bit beyond my capabilities, though.</p>
<p>I think the overhead views you demonstrated would be especially useful in identifying problem areas, if I understand the visualization.<br />
Problems marked in yellow: <a href="http://img571.imageshack.us/img571/3064/thewitness.png" rel="nofollow ugc">http://img571.imageshack.us/img571/3064/thewitness.png</a></p>
<p>You could perhaps improve the visuals by drawing transparent filled cyan polygons between walkable points, and transparent bright-red polygons between wall points. Though that&#8217;d assume that everything between walkable points don&#8217;t have collision boxes that are so tiny they fit between your points. Perhaps you should also mark in bright yellow every collision box that is so small it&#8217;s likely to be missed by your sampling of the terrain?</p>
<p>I also don&#8217;t see in the last picture how you realized that you can walk one direction but not the other. I&#8217;m not noticing the visual signs that indicate that.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Eli Piilonen		</title>
		<link>https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-135288</link>

		<dc:creator><![CDATA[Eli Piilonen]]></dc:creator>
		<pubDate>Thu, 13 Dec 2012 04:15:55 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1939#comment-135288</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-133996&quot;&gt;Casey Muratori&lt;/a&gt;.

Yeah, that makes sense, but I don&#039;t think it would necessarily have to come across as a restriction (that just depends on the implementation!).  A click-to-move system might be a nice homage to the prerendered times and it seems like there&#039;s some room for really usable innovation there.

Obviously, many PC gamers will only accept WASD/mouselook, but others might actually prefer a simplified movement scheme to match the methodical, pensive nature of the game.  It would certainly at least be appropriate for touchscreen platforms!

Anyway - I&#039;m rambling now.  As always, you guys are doing fantastic work; keep it up!]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-133996">Casey Muratori</a>.</p>
<p>Yeah, that makes sense, but I don&#8217;t think it would necessarily have to come across as a restriction (that just depends on the implementation!).  A click-to-move system might be a nice homage to the prerendered times and it seems like there&#8217;s some room for really usable innovation there.</p>
<p>Obviously, many PC gamers will only accept WASD/mouselook, but others might actually prefer a simplified movement scheme to match the methodical, pensive nature of the game.  It would certainly at least be appropriate for touchscreen platforms!</p>
<p>Anyway &#8211; I&#8217;m rambling now.  As always, you guys are doing fantastic work; keep it up!</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Aditya		</title>
		<link>https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-135262</link>

		<dc:creator><![CDATA[Aditya]]></dc:creator>
		<pubDate>Thu, 13 Dec 2012 04:14:05 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1939#comment-135262</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-133993&quot;&gt;Casey Muratori&lt;/a&gt;.

Hmm.... thats weird. :)]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-133993">Casey Muratori</a>.</p>
<p>Hmm&#8230;. thats weird. :)</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Sebastian Sylvan		</title>
		<link>https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-135164</link>

		<dc:creator><![CDATA[Sebastian Sylvan]]></dc:creator>
		<pubDate>Thu, 13 Dec 2012 03:59:30 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1939#comment-135164</guid>

					<description><![CDATA[I wonder if you&#039;d get faster results by doing a quake-style BSP tree over the whole thing (using collision geometry triangles as your splitting planes) to find convex regions, with connectivity. This does involve some computational geometry type fiddlyness (esp. with arbitrary, intersecting,  geometry), but you should get a much sparser graph, with no chance of missing any tiny gaps (assuming you get the floating point math right!). 

Then, verify that this connectivity is actually walkable, by traversing the tree and checking each &quot;portal&quot; (only ones with at least one walkable surface attached to it). Most of them should be trivial-accept (two large empty spaces connected by a large portal). For smaller portals you could do &quot;proper&quot; swept intersection type stuff, or just throw a bunch of random physics probes at it like you&#039;re doing now, but at least you&#039;re only doing it for the edge cases.]]></description>
			<content:encoded><![CDATA[<p>I wonder if you&#8217;d get faster results by doing a quake-style BSP tree over the whole thing (using collision geometry triangles as your splitting planes) to find convex regions, with connectivity. This does involve some computational geometry type fiddlyness (esp. with arbitrary, intersecting,  geometry), but you should get a much sparser graph, with no chance of missing any tiny gaps (assuming you get the floating point math right!). </p>
<p>Then, verify that this connectivity is actually walkable, by traversing the tree and checking each &#8220;portal&#8221; (only ones with at least one walkable surface attached to it). Most of them should be trivial-accept (two large empty spaces connected by a large portal). For smaller portals you could do &#8220;proper&#8221; swept intersection type stuff, or just throw a bunch of random physics probes at it like you&#8217;re doing now, but at least you&#8217;re only doing it for the edge cases.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Jonathan Blow		</title>
		<link>https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-134582</link>

		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Thu, 13 Dec 2012 01:25:20 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1939#comment-134582</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-134423&quot;&gt;Casey Muratori&lt;/a&gt;.

It is worth pointing out, also, that the appealingness of this kind of voxel approach is often inversely proportional to your standards of gameplay quality.

We want to make walking around feel good, while also ensuring that puzzles aren&#039;t broken / etc. This often involves making collision volumes that don&#039;t actually match visible geometry: say, we might bevel them in a certain way so that you bounce off them smoothly, or we might intentionally make them smaller than visible geometry in some cases and bigger in others.

The appeal of doing a voxelization of visible geometry is that everything happens for you magically and you can walk around. But the more stuff you actually want to hand-tweak, the less magical the automated thing is. 

In other words, the idea of making a game where you can walk up any terrain unless the slope is X is fundamentally not what we want to do here. It is pretty far from what we are doing. What we are doing is more labor-intensive, but the belief is that it will yield better results for this kind of game.

(But yeah, as Casey implies, there is also an interpretation layer that happens via the code that affects the definition of what &quot;walkable&quot; is. We do a lot of hand-placement of collision volumes to set up this definition, but the code needs to extrapolate all the details, and there are lots of ways to do that.)]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-134423">Casey Muratori</a>.</p>
<p>It is worth pointing out, also, that the appealingness of this kind of voxel approach is often inversely proportional to your standards of gameplay quality.</p>
<p>We want to make walking around feel good, while also ensuring that puzzles aren&#8217;t broken / etc. This often involves making collision volumes that don&#8217;t actually match visible geometry: say, we might bevel them in a certain way so that you bounce off them smoothly, or we might intentionally make them smaller than visible geometry in some cases and bigger in others.</p>
<p>The appeal of doing a voxelization of visible geometry is that everything happens for you magically and you can walk around. But the more stuff you actually want to hand-tweak, the less magical the automated thing is. </p>
<p>In other words, the idea of making a game where you can walk up any terrain unless the slope is X is fundamentally not what we want to do here. It is pretty far from what we are doing. What we are doing is more labor-intensive, but the belief is that it will yield better results for this kind of game.</p>
<p>(But yeah, as Casey implies, there is also an interpretation layer that happens via the code that affects the definition of what &#8220;walkable&#8221; is. We do a lot of hand-placement of collision volumes to set up this definition, but the code needs to extrapolate all the details, and there are lots of ways to do that.)</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Casey Muratori		</title>
		<link>https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-134534</link>

		<dc:creator><![CDATA[Casey Muratori]]></dc:creator>
		<pubDate>Thu, 13 Dec 2012 01:13:34 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1939#comment-134534</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-134421&quot;&gt;MondSemmel&lt;/a&gt;.

Thanks for the kind words!  Regarding the suggestions:

1) One of the problems with doing what you propose is that I don&#039;t currently clean up edges that cross each other.  That&#039;s a problem just in general, and not a fault of your suggestion :)  But it&#039;s what would prevent that suggestion from looking clean without me first doing a pass to fix intersecting edges.  But in the places where edges aren&#039;t crossing too badly, then I suspect it would produce a reasonable mesh, yes - kind of the dual of the edges, if you will.

4a) Actually I do kind of like the idea of determining the length of time it takes to traverse parts of the island.  I don&#039;t know how Jon feels about it, but it does seem like a good idea to have some measurements like that just to understand how long it will take people to go between certain places they might want to.

4b) I&#039;m not sure exactly what you mean by &quot;bottlenecks&quot;.  Are you saying to create sort of a &quot;chances that I will be in this location given random traversals&quot; value for each vertex, and then you look at that to see where players tend to be, all other things being equal?  That does seem like a useful idea, although as you suspected, I don&#039;t know if Jon would be interested in this kind of data because at some point it would definitely cross into &quot;metrics-driven game design&quot; territory :)

- Casey]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-134421">MondSemmel</a>.</p>
<p>Thanks for the kind words!  Regarding the suggestions:</p>
<p>1) One of the problems with doing what you propose is that I don&#8217;t currently clean up edges that cross each other.  That&#8217;s a problem just in general, and not a fault of your suggestion :)  But it&#8217;s what would prevent that suggestion from looking clean without me first doing a pass to fix intersecting edges.  But in the places where edges aren&#8217;t crossing too badly, then I suspect it would produce a reasonable mesh, yes &#8211; kind of the dual of the edges, if you will.</p>
<p>4a) Actually I do kind of like the idea of determining the length of time it takes to traverse parts of the island.  I don&#8217;t know how Jon feels about it, but it does seem like a good idea to have some measurements like that just to understand how long it will take people to go between certain places they might want to.</p>
<p>4b) I&#8217;m not sure exactly what you mean by &#8220;bottlenecks&#8221;.  Are you saying to create sort of a &#8220;chances that I will be in this location given random traversals&#8221; value for each vertex, and then you look at that to see where players tend to be, all other things being equal?  That does seem like a useful idea, although as you suspected, I don&#8217;t know if Jon would be interested in this kind of data because at some point it would definitely cross into &#8220;metrics-driven game design&#8221; territory :)</p>
<p>&#8211; Casey</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Casey Muratori		</title>
		<link>https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-134423</link>

		<dc:creator><![CDATA[Casey Muratori]]></dc:creator>
		<pubDate>Wed, 12 Dec 2012 23:50:39 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1939#comment-134423</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-134356&quot;&gt;Mikko Mononen&lt;/a&gt;.

I&#039;m not sure I understand how voxels solve the same problem.  I suppose if you are saying a priori that you don&#039;t care what the _original_ definition of walkable was in the game, then sure.  But if you want to know what the _game_ considers walkable, voxels don&#039;t help you, because how do you know whether or not you can reach that voxel, or what the shape of the actual walkable area is inside the voxel?

But yes, I agree that if/when I start replacing the collision system itself, then something like rebuilding the walkable regions with voxels is on the table, since there I&#039;m technically in control of what the definition of &quot;walkable&quot; is in the first place, so I do not have to use the definition induced by the game&#039;s collision system.  But this is a very different problem statement than determining what the walkable area is _for a given game system_.

Know what I mean?

- Casey]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-134356">Mikko Mononen</a>.</p>
<p>I&#8217;m not sure I understand how voxels solve the same problem.  I suppose if you are saying a priori that you don&#8217;t care what the _original_ definition of walkable was in the game, then sure.  But if you want to know what the _game_ considers walkable, voxels don&#8217;t help you, because how do you know whether or not you can reach that voxel, or what the shape of the actual walkable area is inside the voxel?</p>
<p>But yes, I agree that if/when I start replacing the collision system itself, then something like rebuilding the walkable regions with voxels is on the table, since there I&#8217;m technically in control of what the definition of &#8220;walkable&#8221; is in the first place, so I do not have to use the definition induced by the game&#8217;s collision system.  But this is a very different problem statement than determining what the walkable area is _for a given game system_.</p>
<p>Know what I mean?</p>
<p>&#8211; Casey</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: MondSemmel		</title>
		<link>https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-134421</link>

		<dc:creator><![CDATA[MondSemmel]]></dc:creator>
		<pubDate>Wed, 12 Dec 2012 23:42:00 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1939#comment-134421</guid>

					<description><![CDATA[Casey, thanks for posting this! I&#039;m amazed how you managed to explain this topic so well - I have never gone beyond Python programming for beginners or something, and yet this was really quite intriguing. Also, I study physics, and I thought a few of your explanations would make differential geometry a bit easier to stomach. Great job.
Also, thanks for writing about Windows 8 in the past, and for doing the Jeff and Casey Show - I enjoyed that a lot :) - and I actually found it via a link on the old Braid blog. Oh, and thanks for your work in the games industry.

A few brief suggestions for your open questions:
#1: For post-processing and data visualization, what about selecting a point, picking a colour depending on the proportion of white to red edges going from that point, then painting a polygon on the ground at that point. That polygon would always end at 1/2 of each edge.
So in a rough sense, you could have something like &quot;green = trivial to traverse&quot; to &quot;red = cannot be traversed&quot; or something.
I have no good idea what to do in border areas where edges cross each other. Perhaps my suggestion is just impractical.
#4: You might want to find out how long it takes to go from point of interest A (perhaps there&#039;d be one at each of the several hundred puzzles) to interest point B? Although that sounds like the kind of optimization Jon Blow might dislike for being to Valve-y. I don&#039;t know. At the very least, these numbers might give some additional ideas for optimal movement speed or world size.
Also, perhaps you could use your existing data to find bottlenecks? (As I understand it, The Witness is not about navigational puzzles whatsoever, so bottlenecks may be mostly undesirable.) I.e. if you go from point A along a random path to point B and come along point C, that&#039;s a bottleneck to that one path, which is okay. But if most paths in an area go from point X to point Y and come along that same point C, that might be a problem  - or an indication to make point C more interesting.

In any case, thanks for writing this.]]></description>
			<content:encoded><![CDATA[<p>Casey, thanks for posting this! I&#8217;m amazed how you managed to explain this topic so well &#8211; I have never gone beyond Python programming for beginners or something, and yet this was really quite intriguing. Also, I study physics, and I thought a few of your explanations would make differential geometry a bit easier to stomach. Great job.<br />
Also, thanks for writing about Windows 8 in the past, and for doing the Jeff and Casey Show &#8211; I enjoyed that a lot :) &#8211; and I actually found it via a link on the old Braid blog. Oh, and thanks for your work in the games industry.</p>
<p>A few brief suggestions for your open questions:<br />
#1: For post-processing and data visualization, what about selecting a point, picking a colour depending on the proportion of white to red edges going from that point, then painting a polygon on the ground at that point. That polygon would always end at 1/2 of each edge.<br />
So in a rough sense, you could have something like &#8220;green = trivial to traverse&#8221; to &#8220;red = cannot be traversed&#8221; or something.<br />
I have no good idea what to do in border areas where edges cross each other. Perhaps my suggestion is just impractical.<br />
#4: You might want to find out how long it takes to go from point of interest A (perhaps there&#8217;d be one at each of the several hundred puzzles) to interest point B? Although that sounds like the kind of optimization Jon Blow might dislike for being to Valve-y. I don&#8217;t know. At the very least, these numbers might give some additional ideas for optimal movement speed or world size.<br />
Also, perhaps you could use your existing data to find bottlenecks? (As I understand it, The Witness is not about navigational puzzles whatsoever, so bottlenecks may be mostly undesirable.) I.e. if you go from point A along a random path to point B and come along point C, that&#8217;s a bottleneck to that one path, which is okay. But if most paths in an area go from point X to point Y and come along that same point C, that might be a problem  &#8211; or an indication to make point C more interesting.</p>
<p>In any case, thanks for writing this.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Mikko Mononen		</title>
		<link>https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-134356</link>

		<dc:creator><![CDATA[Mikko Mononen]]></dc:creator>
		<pubDate>Wed, 12 Dec 2012 22:17:07 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1939#comment-134356</guid>

					<description><![CDATA[Been there, done that from another angle, that is navmeshes for AI movement. I&#039;ve seen the AI navmeshes being used for player movement in many games, so I dare to share few things I&#039;ve learned.

You should definitely take a look at the Recast https://code.google.com/p/recastnavigation/
Test the demo (if using windows, I recommend to build it first), and take a look  at the different debug options to see how the navmesh gets build. I made it so take my opinion with a grain of salt :)

While I was working on Recast I went though a bunch of sampling schemes and eventually ended up using voxelization as basis for walkable area detection. It was several orders of magnitude faster than anything else, and so robust that you can throw pretty much anything at it.

When using tiles the build process is embarrassingly parallel (each tile can be processed independently). That also allows you to do dirty rectangle type of incremental updates and what not. Since the process is quick, you can often afford to make a quite dense grid. Usually folks are using 20 or 30cm cell size, but in some cases where the navmesh is used for player movement people are going as dense as 5cm cell size.

I&#039;ve often ran into debates on whether the navmes or physics should drive player movement. Physics and AI navigation are always just approximations, and there is usually really bad coupling between the two.  The worst thing you can do is to make one of them to drive the other.  I&#039;m biased, but I would pick navmesh first and use physics to &quot;plant&quot; the character into the world (i.e. feet, walk height, etc).]]></description>
			<content:encoded><![CDATA[<p>Been there, done that from another angle, that is navmeshes for AI movement. I&#8217;ve seen the AI navmeshes being used for player movement in many games, so I dare to share few things I&#8217;ve learned.</p>
<p>You should definitely take a look at the Recast <a href="https://code.google.com/p/recastnavigation/" rel="nofollow ugc">https://code.google.com/p/recastnavigation/</a><br />
Test the demo (if using windows, I recommend to build it first), and take a look  at the different debug options to see how the navmesh gets build. I made it so take my opinion with a grain of salt :)</p>
<p>While I was working on Recast I went though a bunch of sampling schemes and eventually ended up using voxelization as basis for walkable area detection. It was several orders of magnitude faster than anything else, and so robust that you can throw pretty much anything at it.</p>
<p>When using tiles the build process is embarrassingly parallel (each tile can be processed independently). That also allows you to do dirty rectangle type of incremental updates and what not. Since the process is quick, you can often afford to make a quite dense grid. Usually folks are using 20 or 30cm cell size, but in some cases where the navmesh is used for player movement people are going as dense as 5cm cell size.</p>
<p>I&#8217;ve often ran into debates on whether the navmes or physics should drive player movement. Physics and AI navigation are always just approximations, and there is usually really bad coupling between the two.  The worst thing you can do is to make one of them to drive the other.  I&#8217;m biased, but I would pick navmesh first and use physics to &#8220;plant&#8221; the character into the world (i.e. feet, walk height, etc).</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: JKaniarz		</title>
		<link>https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-134355</link>

		<dc:creator><![CDATA[JKaniarz]]></dc:creator>
		<pubDate>Wed, 12 Dec 2012 22:11:11 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1939#comment-134355</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-133604&quot;&gt;Casey Muratori&lt;/a&gt;.

I&#039;m not going to argue that my algorithm is better; it&#039;s not. You find exact edges whereas mine does not. Yours handles polygon soup where mine assumes that you can&#039;t walk up a steep slope and I did skip over handling the overlapping areas.  Yours is more computationally efficient, mine throws CPU cycles at the problem. But I still think mine is simpler from the perspective that it doesn&#039;t require as many IQ points from the programmer, which can make the difference between doing something and getting overwhelmed doing nothing. (It&#039;s the same reason why oct-trees were more popular than BSP until common tools were released) I apologize for not being clearer.

None the less, my recommendation of testing with a smaller collision body will help on any algorithm that uses floating point. If you have a hole that&#039;s exactly big enough you may or may not find it due to precision issues.

Keep up the good work.]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-133604">Casey Muratori</a>.</p>
<p>I&#8217;m not going to argue that my algorithm is better; it&#8217;s not. You find exact edges whereas mine does not. Yours handles polygon soup where mine assumes that you can&#8217;t walk up a steep slope and I did skip over handling the overlapping areas.  Yours is more computationally efficient, mine throws CPU cycles at the problem. But I still think mine is simpler from the perspective that it doesn&#8217;t require as many IQ points from the programmer, which can make the difference between doing something and getting overwhelmed doing nothing. (It&#8217;s the same reason why oct-trees were more popular than BSP until common tools were released) I apologize for not being clearer.</p>
<p>None the less, my recommendation of testing with a smaller collision body will help on any algorithm that uses floating point. If you have a hole that&#8217;s exactly big enough you may or may not find it due to precision issues.</p>
<p>Keep up the good work.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: M.M		</title>
		<link>https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-134288</link>

		<dc:creator><![CDATA[M.M]]></dc:creator>
		<pubDate>Wed, 12 Dec 2012 21:35:43 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1939#comment-134288</guid>

					<description><![CDATA[Very interesting.]]></description>
			<content:encoded><![CDATA[<p>Very interesting.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Casey Muratori		</title>
		<link>https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-134167</link>

		<dc:creator><![CDATA[Casey Muratori]]></dc:creator>
		<pubDate>Wed, 12 Dec 2012 20:53:57 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1939#comment-134167</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-134166&quot;&gt;Tim Romero&lt;/a&gt;.

Yes, the edges get tested in both directions.  This is actually a natural consequence of the algorithm if you don&#039;t take steps to prevent it; because each point attempts to connect with those around it, so long as you don&#039;t intentionally prevent it from checking points to which it already has an edge, it will naturally traverse the reverse direction of edges incident on it.

Right now I do allow some edges _not_ to be tested in both directions, namely those that occur in oversampling regions.  Right now the walk mapping time is dominated by the cost of calling the player motion code, so if/when I rewrite and optimize that, if it is significantly faster than it is now I will probably force reverse-direction testing on all edges.

- Casey]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-134166">Tim Romero</a>.</p>
<p>Yes, the edges get tested in both directions.  This is actually a natural consequence of the algorithm if you don&#8217;t take steps to prevent it; because each point attempts to connect with those around it, so long as you don&#8217;t intentionally prevent it from checking points to which it already has an edge, it will naturally traverse the reverse direction of edges incident on it.</p>
<p>Right now I do allow some edges _not_ to be tested in both directions, namely those that occur in oversampling regions.  Right now the walk mapping time is dominated by the cost of calling the player motion code, so if/when I rewrite and optimize that, if it is significantly faster than it is now I will probably force reverse-direction testing on all edges.</p>
<p>&#8211; Casey</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Tim Romero		</title>
		<link>https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-134166</link>

		<dc:creator><![CDATA[Tim Romero]]></dc:creator>
		<pubDate>Wed, 12 Dec 2012 20:46:20 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1939#comment-134166</guid>

					<description><![CDATA[Thanks for posting this!

Are you testing each edge to ensure you can walk both directions?

When you eventually do write your system for overnight testing via user input, may I suggest looking to Roomba for inspiration? Namely the wall following behavior.]]></description>
			<content:encoded><![CDATA[<p>Thanks for posting this!</p>
<p>Are you testing each edge to ensure you can walk both directions?</p>
<p>When you eventually do write your system for overnight testing via user input, may I suggest looking to Roomba for inspiration? Namely the wall following behavior.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Robert Burnett		</title>
		<link>https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-134164</link>

		<dc:creator><![CDATA[Robert Burnett]]></dc:creator>
		<pubDate>Wed, 12 Dec 2012 20:41:40 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1939#comment-134164</guid>

					<description><![CDATA[So many commenters here have complimented you on your post, but not one of them has complimented you for being a GBV fan.  You have good taste in music, sir.]]></description>
			<content:encoded><![CDATA[<p>So many commenters here have complimented you on your post, but not one of them has complimented you for being a GBV fan.  You have good taste in music, sir.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Forrest Smith		</title>
		<link>https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-134163</link>

		<dc:creator><![CDATA[Forrest Smith]]></dc:creator>
		<pubDate>Wed, 12 Dec 2012 20:33:01 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1939#comment-134163</guid>

					<description><![CDATA[Good post. I wrote a system once to perform the same task. My version was more of a &quot;e-mail test lead to perform a full-game navmesh test&quot; type solution though. I think the testers would like your system more. :)

I had what was labeled &quot;triangles of doom&quot;. They were navmesh triangles that were broken in some way. Couldn&#039;t walk into, could walk into but not out, etc. There was a small variety and I hated them all. By the end of development the fixes were all data/level design side. When a new triangle of doom was found I would debug, learn how to detect, color code triangle in navmesh debug render mode, and automatically output all debug triangles.

You have two &quot;bad&quot; cases already - slopes and one way pathing. Both should be possible to programmatically detect and spew to console / debug output. They may get fixed by physics system bugs but eventually you&#039;ll reach a point where all pathing bugs are due to bad data. Automatic detection and reporting of that is necessary.]]></description>
			<content:encoded><![CDATA[<p>Good post. I wrote a system once to perform the same task. My version was more of a &#8220;e-mail test lead to perform a full-game navmesh test&#8221; type solution though. I think the testers would like your system more. :)</p>
<p>I had what was labeled &#8220;triangles of doom&#8221;. They were navmesh triangles that were broken in some way. Couldn&#8217;t walk into, could walk into but not out, etc. There was a small variety and I hated them all. By the end of development the fixes were all data/level design side. When a new triangle of doom was found I would debug, learn how to detect, color code triangle in navmesh debug render mode, and automatically output all debug triangles.</p>
<p>You have two &#8220;bad&#8221; cases already &#8211; slopes and one way pathing. Both should be possible to programmatically detect and spew to console / debug output. They may get fixed by physics system bugs but eventually you&#8217;ll reach a point where all pathing bugs are due to bad data. Automatic detection and reporting of that is necessary.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Jaba Adams		</title>
		<link>https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-134161</link>

		<dc:creator><![CDATA[Jaba Adams]]></dc:creator>
		<pubDate>Wed, 12 Dec 2012 20:27:08 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1939#comment-134161</guid>

					<description><![CDATA[Thanks for the article.

I really like the Bubble Meshing algorithm described here: http://www.research.ibm.com/trl/projects/meshing/bubble/bubbleE.htm

Unfortunately, it might be patented.]]></description>
			<content:encoded><![CDATA[<p>Thanks for the article.</p>
<p>I really like the Bubble Meshing algorithm described here: <a href="http://www.research.ibm.com/trl/projects/meshing/bubble/bubbleE.htm" rel="nofollow ugc">http://www.research.ibm.com/trl/projects/meshing/bubble/bubbleE.htm</a></p>
<p>Unfortunately, it might be patented.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Wok		</title>
		<link>https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-134064</link>

		<dc:creator><![CDATA[Wok]]></dc:creator>
		<pubDate>Wed, 12 Dec 2012 20:06:27 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1939#comment-134064</guid>

					<description><![CDATA[This is an interesting read.]]></description>
			<content:encoded><![CDATA[<p>This is an interesting read.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Casey Muratori		</title>
		<link>https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-134057</link>

		<dc:creator><![CDATA[Casey Muratori]]></dc:creator>
		<pubDate>Wed, 12 Dec 2012 20:02:52 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1939#comment-134057</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-133923&quot;&gt;JP&lt;/a&gt;.

It depends how dimensional a space you want to have.  At some point, RERT&#039;s start being a win again, if you&#039;re talking about systems where there&#039;s many different configurations for the player (an example might be a game where you have multiple configurable limbs, ie., a giant robot game or something like that, where you had to consider the placement and orientation of the limbs as to whether or not the robot could move through various openings).  So the flood-filling approaches in general will only scale up to some small number of dimensions, I think.  But simple running and jumping probably aren&#039;t very difficult to shoehorn in.

As for drawing things, well, that&#039;s another story.  I agree it might be tought to visualize the results of such a system even if it did work well.  I haven&#039;t thought much about that problem since we don&#039;t have to solve it for this game :)

- Casey]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-133923">JP</a>.</p>
<p>It depends how dimensional a space you want to have.  At some point, RERT&#8217;s start being a win again, if you&#8217;re talking about systems where there&#8217;s many different configurations for the player (an example might be a game where you have multiple configurable limbs, ie., a giant robot game or something like that, where you had to consider the placement and orientation of the limbs as to whether or not the robot could move through various openings).  So the flood-filling approaches in general will only scale up to some small number of dimensions, I think.  But simple running and jumping probably aren&#8217;t very difficult to shoehorn in.</p>
<p>As for drawing things, well, that&#8217;s another story.  I agree it might be tought to visualize the results of such a system even if it did work well.  I haven&#8217;t thought much about that problem since we don&#8217;t have to solve it for this game :)</p>
<p>&#8211; Casey</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Casey Muratori		</title>
		<link>https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-134056</link>

		<dc:creator><![CDATA[Casey Muratori]]></dc:creator>
		<pubDate>Wed, 12 Dec 2012 19:59:26 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1939#comment-134056</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-133869&quot;&gt;David&lt;/a&gt;.

I have not looked at Recast specifically, but now that I am starting to work on actually revising the collision system, I have been thinking about the best ways to change it into something workable.  Some of that thinking is about whether or not preprocessing is a win, and what sort of preprocessing I might do.  At the very least, I suspect I will do some sort of geometry processing to produce an analytic walk map so that I can compare it to the Walk Monster walk map and ensure that they coincide.  Whether or not I actually do preprocessing to produce a new and different collision representation... it&#039;s still too early to tell.

- Casey]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-133869">David</a>.</p>
<p>I have not looked at Recast specifically, but now that I am starting to work on actually revising the collision system, I have been thinking about the best ways to change it into something workable.  Some of that thinking is about whether or not preprocessing is a win, and what sort of preprocessing I might do.  At the very least, I suspect I will do some sort of geometry processing to produce an analytic walk map so that I can compare it to the Walk Monster walk map and ensure that they coincide.  Whether or not I actually do preprocessing to produce a new and different collision representation&#8230; it&#8217;s still too early to tell.</p>
<p>&#8211; Casey</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Casey Muratori		</title>
		<link>https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-134052</link>

		<dc:creator><![CDATA[Casey Muratori]]></dc:creator>
		<pubDate>Wed, 12 Dec 2012 19:45:17 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1939#comment-134052</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-133616&quot;&gt;Peter Hamilton&lt;/a&gt;.

First, although the system is drawing the graph on the ground, it&#039;s actually doing the full testing process to see whether or not the player could have walked that path.  So off-ground things that would have prevented player motion are implicitly accounted for.

Second, I had the same thought for finding missing collision volumes, but unfortunately the way The Witness world works is not amenable to this.  There are lots of actual objects that litter the ground which are not &quot;collidable&quot; objects, because it is considered to annoying for the player to have to navigate around them, so we&#039;d rather just let you walk over them, etc.  So the system can&#039;t really automatically detect what should and should not have a collision volume, unfortunately.

There may be some metric I can employ that&#039;s like &quot;if the thing is a certain size&quot; or something like that, and maybe I&#039;ll try that at some point just because it might catch a few things, but unfortunately there&#039;s no way to definitively make something that can detect all cases of a forgotten volume (at least not that I&#039;ve thought of yet).

- Casey]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-133616">Peter Hamilton</a>.</p>
<p>First, although the system is drawing the graph on the ground, it&#8217;s actually doing the full testing process to see whether or not the player could have walked that path.  So off-ground things that would have prevented player motion are implicitly accounted for.</p>
<p>Second, I had the same thought for finding missing collision volumes, but unfortunately the way The Witness world works is not amenable to this.  There are lots of actual objects that litter the ground which are not &#8220;collidable&#8221; objects, because it is considered to annoying for the player to have to navigate around them, so we&#8217;d rather just let you walk over them, etc.  So the system can&#8217;t really automatically detect what should and should not have a collision volume, unfortunately.</p>
<p>There may be some metric I can employ that&#8217;s like &#8220;if the thing is a certain size&#8221; or something like that, and maybe I&#8217;ll try that at some point just because it might catch a few things, but unfortunately there&#8217;s no way to definitively make something that can detect all cases of a forgotten volume (at least not that I&#8217;ve thought of yet).</p>
<p>&#8211; Casey</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Casey Muratori		</title>
		<link>https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-133996</link>

		<dc:creator><![CDATA[Casey Muratori]]></dc:creator>
		<pubDate>Wed, 12 Dec 2012 19:41:18 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1939#comment-133996</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-133613&quot;&gt;Eli Piilonen&lt;/a&gt;.

The movement in The Witness, at least on the PC, is all continuous, so you can walk wherever you want and look wherever you want, just like any other mondern first-person game.  It does not restrict the player to clicking on edges of the screen to turn fixed amounts, or moving forward in specific amounts, etc., like older pre-rendered games did.

- Casey]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-133613">Eli Piilonen</a>.</p>
<p>The movement in The Witness, at least on the PC, is all continuous, so you can walk wherever you want and look wherever you want, just like any other mondern first-person game.  It does not restrict the player to clicking on edges of the screen to turn fixed amounts, or moving forward in specific amounts, etc., like older pre-rendered games did.</p>
<p>&#8211; Casey</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Casey Muratori		</title>
		<link>https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-133993</link>

		<dc:creator><![CDATA[Casey Muratori]]></dc:creator>
		<pubDate>Wed, 12 Dec 2012 19:38:42 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1939#comment-133993</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-133561&quot;&gt;Aditya&lt;/a&gt;.

The collision system internally already does (at least try to) do continuous collision detection, so in theory there should not be errors of the form that would be correct by successive refinement like you describe.  However, I have not actually looked into this case yet, so I can&#039;t say what the actual problem is or whether it would be solved by various fixes.]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-133561">Aditya</a>.</p>
<p>The collision system internally already does (at least try to) do continuous collision detection, so in theory there should not be errors of the form that would be correct by successive refinement like you describe.  However, I have not actually looked into this case yet, so I can&#8217;t say what the actual problem is or whether it would be solved by various fixes.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: JP		</title>
		<link>https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-133923</link>

		<dc:creator><![CDATA[JP]]></dc:creator>
		<pubDate>Wed, 12 Dec 2012 19:31:14 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1939#comment-133923</guid>

					<description><![CDATA[This is great stuff, and an excellent example of working smarter over working harder.  AAA games usually deal with these errors by having lots of QA testers and designers comb over the walkable geo looking for &quot;I got stuck here&quot; bugs, and most big games ship with at least a few.

How much do you think the complexity of this solution would be multiplied by having a larger player state space, eg jumping, running vs walking vs crouch-walking, and other means of propulsion?  The algo visualizes very nicely when it&#039;s just a player walking, I&#039;m curious as to if a jumping player would make the plot unreadable.]]></description>
			<content:encoded><![CDATA[<p>This is great stuff, and an excellent example of working smarter over working harder.  AAA games usually deal with these errors by having lots of QA testers and designers comb over the walkable geo looking for &#8220;I got stuck here&#8221; bugs, and most big games ship with at least a few.</p>
<p>How much do you think the complexity of this solution would be multiplied by having a larger player state space, eg jumping, running vs walking vs crouch-walking, and other means of propulsion?  The algo visualizes very nicely when it&#8217;s just a player walking, I&#8217;m curious as to if a jumping player would make the plot unreadable.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: David		</title>
		<link>https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-133869</link>

		<dc:creator><![CDATA[David]]></dc:creator>
		<pubDate>Wed, 12 Dec 2012 19:19:47 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1939#comment-133869</guid>

					<description><![CDATA[I&#039;m curious if you have already considered and rejected the standard navigation-mesh system (such as that used by the open-source library Recast). It might be a simpler approach to this problem, eliminating the need for a collision system at all.

First you rasterize your polygon soup into voxels (keeping track of the steepest slope at each voxel). Next, you use the slope and connectivity information to flag walkable voxels, and finally, you convert the contiguous walkable voxels into a navigation mesh. Now instead of dealing with moving a capsule through polygon soup, you are just moving a point on the surface of a connected triangle mesh!]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m curious if you have already considered and rejected the standard navigation-mesh system (such as that used by the open-source library Recast). It might be a simpler approach to this problem, eliminating the need for a collision system at all.</p>
<p>First you rasterize your polygon soup into voxels (keeping track of the steepest slope at each voxel). Next, you use the slope and connectivity information to flag walkable voxels, and finally, you convert the contiguous walkable voxels into a navigation mesh. Now instead of dealing with moving a capsule through polygon soup, you are just moving a point on the surface of a connected triangle mesh!</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Peter Hamilton		</title>
		<link>https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-133616</link>

		<dc:creator><![CDATA[Peter Hamilton]]></dc:creator>
		<pubDate>Wed, 12 Dec 2012 17:35:07 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1939#comment-133616</guid>

					<description><![CDATA[There&#039;s an interesting case (which I&#039;m assuming the collision code covers) for places where the player&#039;s collision volume collides with geometry above ground level (i.e., tree branches, overhanging ledges, etc). I only mention this because all of the screenshots you posted seem to focus on ground-level collisions.

In addition to finding orphaned collision volumes, you could use this to find objects that are lacking collision volumes. There are a couple of different ways you could do this but the simplest would probably be to see if there are any walkable points contained within a collidable object&#039;s ground-level footprint.

Overall a very interesting article and certainly an enjoyable read. I look forward to your next post.]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s an interesting case (which I&#8217;m assuming the collision code covers) for places where the player&#8217;s collision volume collides with geometry above ground level (i.e., tree branches, overhanging ledges, etc). I only mention this because all of the screenshots you posted seem to focus on ground-level collisions.</p>
<p>In addition to finding orphaned collision volumes, you could use this to find objects that are lacking collision volumes. There are a couple of different ways you could do this but the simplest would probably be to see if there are any walkable points contained within a collidable object&#8217;s ground-level footprint.</p>
<p>Overall a very interesting article and certainly an enjoyable read. I look forward to your next post.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Eli Piilonen		</title>
		<link>https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-133613</link>

		<dc:creator><![CDATA[Eli Piilonen]]></dc:creator>
		<pubDate>Wed, 12 Dec 2012 17:24:19 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1939#comment-133613</guid>

					<description><![CDATA[Does this mean you can do a dynamic version of &quot;Myst-style&quot; movement?  Like, click the edges of the screen to rotate 60º, or click somewhere in the middle of the screen to walk there?]]></description>
			<content:encoded><![CDATA[<p>Does this mean you can do a dynamic version of &#8220;Myst-style&#8221; movement?  Like, click the edges of the screen to rotate 60º, or click somewhere in the middle of the screen to walk there?</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Reece Bennett		</title>
		<link>https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-133603</link>

		<dc:creator><![CDATA[Reece Bennett]]></dc:creator>
		<pubDate>Wed, 12 Dec 2012 17:11:03 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1939#comment-133603</guid>

					<description><![CDATA[Thanks for this wonderful post! Was a very fun and informative read, I just hope I will be able to produce tools like this in the future, Lua is currently my first and only advance into the world of coding :) 

Also thank you for putting such a great amount of time and effort into making sure the movement for The Witness is perfect. Movement bugs are probably the most annoying and distracting to be found in games, cannot wait to play :D]]></description>
			<content:encoded><![CDATA[<p>Thanks for this wonderful post! Was a very fun and informative read, I just hope I will be able to produce tools like this in the future, Lua is currently my first and only advance into the world of coding :) </p>
<p>Also thank you for putting such a great amount of time and effort into making sure the movement for The Witness is perfect. Movement bugs are probably the most annoying and distracting to be found in games, cannot wait to play :D</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Casey Muratori		</title>
		<link>https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-133604</link>

		<dc:creator><![CDATA[Casey Muratori]]></dc:creator>
		<pubDate>Wed, 12 Dec 2012 17:11:03 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1939#comment-133604</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-133540&quot;&gt;JKaniarz&lt;/a&gt;.

This is not a good algorithm for a number of reasons.  First, &quot;cover the world with squares&quot; is glossing over the main hard part of these types of algorithms.  How do you propose to cover an arbitrary polygon-soup world with squares, exactly?  Second, checking the world on a regular grid means that you will never find bugs in the collision system that don&#039;t align to that grid.  Third, subdividing and rewalking rectilinear edges doesn&#039;t properly probe boundaries.  You could have all sorts of thin-hole bugs along a boundary and never find them because you&#039;re only ever stepping rectilinearly or diagonally to the grid on power-of-two boundaries.

Etc., etc.

The LDS algorithm I propose is actually much simpler to code than what you&#039;re suggesting (it&#039;s very few lines of code), doesn&#039;t have these problems and handles the world covering problem implicitly, without needing to have a grid imposed for it.  It also takes far fewer unnecessary samples since it does not need to use subdivided rectangles to probe what are inherently non-rectangular boundaries.]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-133540">JKaniarz</a>.</p>
<p>This is not a good algorithm for a number of reasons.  First, &#8220;cover the world with squares&#8221; is glossing over the main hard part of these types of algorithms.  How do you propose to cover an arbitrary polygon-soup world with squares, exactly?  Second, checking the world on a regular grid means that you will never find bugs in the collision system that don&#8217;t align to that grid.  Third, subdividing and rewalking rectilinear edges doesn&#8217;t properly probe boundaries.  You could have all sorts of thin-hole bugs along a boundary and never find them because you&#8217;re only ever stepping rectilinearly or diagonally to the grid on power-of-two boundaries.</p>
<p>Etc., etc.</p>
<p>The LDS algorithm I propose is actually much simpler to code than what you&#8217;re suggesting (it&#8217;s very few lines of code), doesn&#8217;t have these problems and handles the world covering problem implicitly, without needing to have a grid imposed for it.  It also takes far fewer unnecessary samples since it does not need to use subdivided rectangles to probe what are inherently non-rectangular boundaries.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Aditya		</title>
		<link>https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-133561</link>

		<dc:creator><![CDATA[Aditya]]></dc:creator>
		<pubDate>Wed, 12 Dec 2012 16:46:35 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1939#comment-133561</guid>

					<description><![CDATA[Wow!! Waiting to feel the player movement. This would really be an all-round experience!! :)
To have no disturbance of player getting stuck would be awesum!! The Witness will really make us &quot;witness&quot; an island&#039;s beauty, the puzzles, the player&#039;s movement and many other things. A true adventure game in every sense.
In that rock hindrance problem you said that the player was able to move up that rock instead of his movement being hindered... while you check if the next point is possible to reach can you also check if the midpoint is a path not possible to traverse and if it still is then is its one-fourth possible to be traversed and so on??  This will surely make the movement a lot slower but I just wanted to know if it will help in solving the problem or not.. :)
(This is what came into my mind first after reading the article)]]></description>
			<content:encoded><![CDATA[<p>Wow!! Waiting to feel the player movement. This would really be an all-round experience!! :)<br />
To have no disturbance of player getting stuck would be awesum!! The Witness will really make us &#8220;witness&#8221; an island&#8217;s beauty, the puzzles, the player&#8217;s movement and many other things. A true adventure game in every sense.<br />
In that rock hindrance problem you said that the player was able to move up that rock instead of his movement being hindered&#8230; while you check if the next point is possible to reach can you also check if the midpoint is a path not possible to traverse and if it still is then is its one-fourth possible to be traversed and so on??  This will surely make the movement a lot slower but I just wanted to know if it will help in solving the problem or not.. :)<br />
(This is what came into my mind first after reading the article)</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Hugh O'Brien		</title>
		<link>https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-133560</link>

		<dc:creator><![CDATA[Hugh O'Brien]]></dc:creator>
		<pubDate>Wed, 12 Dec 2012 16:43:38 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1939#comment-133560</guid>

					<description><![CDATA[Fascinating, thank you.]]></description>
			<content:encoded><![CDATA[<p>Fascinating, thank you.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Jake Brownson		</title>
		<link>https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-133559</link>

		<dc:creator><![CDATA[Jake Brownson]]></dc:creator>
		<pubDate>Wed, 12 Dec 2012 16:37:00 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1939#comment-133559</guid>

					<description><![CDATA[Awesome post on many levels:

1. An interesting take on the specific problem.
2. It&#039;s great to see your overall thought process tackling a fairly open-ended problem
3. It&#039;s especially exciting to see the level of detail and care going into the game because I&#039;m really excited to play it :)

Keep &#039;em coming!]]></description>
			<content:encoded><![CDATA[<p>Awesome post on many levels:</p>
<p>1. An interesting take on the specific problem.<br />
2. It&#8217;s great to see your overall thought process tackling a fairly open-ended problem<br />
3. It&#8217;s especially exciting to see the level of detail and care going into the game because I&#8217;m really excited to play it :)</p>
<p>Keep &#8217;em coming!</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: JKaniarz		</title>
		<link>https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-133540</link>

		<dc:creator><![CDATA[JKaniarz]]></dc:creator>
		<pubDate>Wed, 12 Dec 2012 16:18:26 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1939#comment-133540</guid>

					<description><![CDATA[Here&#039;s algorithm that&#039;s quicker to write for the people looking to do this on their own projects: First cover the entire world with a grid of squares of uniform size with the corners being the points being tested for reachability and the edges being the paths being tested for walkability. Check each edge, as well as the diagonals, for movement in both directions. Then, for each square that isn&#039;t completely walkable, break it into four smaller squares by adding a node in the center. Keep subdividing until a minimum size threshold is reached. This is similar to a quad-tree. When your algorithm completes, go back and check for high level connectivity; islands of unreachable but walkable area are just asking for trouble.

As for parameters, make sure your starting grid size is smaller than the smallest collideable area. Also, run this test with the player being half the size you intend to use in the final game. The minimum subdivision threshold should be half of your test object size (so 1/4 player size).]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s algorithm that&#8217;s quicker to write for the people looking to do this on their own projects: First cover the entire world with a grid of squares of uniform size with the corners being the points being tested for reachability and the edges being the paths being tested for walkability. Check each edge, as well as the diagonals, for movement in both directions. Then, for each square that isn&#8217;t completely walkable, break it into four smaller squares by adding a node in the center. Keep subdividing until a minimum size threshold is reached. This is similar to a quad-tree. When your algorithm completes, go back and check for high level connectivity; islands of unreachable but walkable area are just asking for trouble.</p>
<p>As for parameters, make sure your starting grid size is smaller than the smallest collideable area. Also, run this test with the player being half the size you intend to use in the final game. The minimum subdivision threshold should be half of your test object size (so 1/4 player size).</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Casey Muratori		</title>
		<link>https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-133478</link>

		<dc:creator><![CDATA[Casey Muratori]]></dc:creator>
		<pubDate>Wed, 12 Dec 2012 16:07:55 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1939#comment-133478</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-133464&quot;&gt;Craig&lt;/a&gt;.

Yes, definitely.  Right now there hasn&#039;t been any need for such things because there are blatant problems showing up that are trivial to reproduce.  As we improve the collision system, and we get down to more subtler bugs, I suspect that we will need more assistance with repros like you say.

- Casey]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-133464">Craig</a>.</p>
<p>Yes, definitely.  Right now there hasn&#8217;t been any need for such things because there are blatant problems showing up that are trivial to reproduce.  As we improve the collision system, and we get down to more subtler bugs, I suspect that we will need more assistance with repros like you say.</p>
<p>&#8211; Casey</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Craig		</title>
		<link>https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-133464</link>

		<dc:creator><![CDATA[Craig]]></dc:creator>
		<pubDate>Wed, 12 Dec 2012 15:45:16 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1939#comment-133464</guid>

					<description><![CDATA[Great article!  I have to read it again, just to make sure I don&#039;t lose more important information.  One possible output of this would be to be able to click on several points along a path and have it generate your more accurate input method via keyboard and mouse if you start running into paths that are difficult to reproduce as a player.]]></description>
			<content:encoded><![CDATA[<p>Great article!  I have to read it again, just to make sure I don&#8217;t lose more important information.  One possible output of this would be to be able to click on several points along a path and have it generate your more accurate input method via keyboard and mouse if you start running into paths that are difficult to reproduce as a player.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Zera		</title>
		<link>https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-133462</link>

		<dc:creator><![CDATA[Zera]]></dc:creator>
		<pubDate>Wed, 12 Dec 2012 15:37:46 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1939#comment-133462</guid>

					<description><![CDATA[Very interesting post! Thank you for giving insight into this kind of behind-the-scenes work!]]></description>
			<content:encoded><![CDATA[<p>Very interesting post! Thank you for giving insight into this kind of behind-the-scenes work!</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Zack Peterson		</title>
		<link>https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-133365</link>

		<dc:creator><![CDATA[Zack Peterson]]></dc:creator>
		<pubDate>Wed, 12 Dec 2012 15:12:07 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1939#comment-133365</guid>

					<description><![CDATA[Thanks for publishing this. It&#039;s cool how the walk monster was able to outline the invisible rock and uncover the other problems. It seems like it will be an important tool.

There are only 2 things hard in programming: cache invalidation, naming things and off by one errors. https://twitter.com/Jonathan_Blow/status/267836389956149248]]></description>
			<content:encoded><![CDATA[<p>Thanks for publishing this. It&#8217;s cool how the walk monster was able to outline the invisible rock and uncover the other problems. It seems like it will be an important tool.</p>
<p>There are only 2 things hard in programming: cache invalidation, naming things and off by one errors. <a href="https://twitter.com/Jonathan_Blow/status/267836389956149248" rel="nofollow ugc">https://twitter.com/Jonathan_Blow/status/267836389956149248</a></p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: WC		</title>
		<link>https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-133321</link>

		<dc:creator><![CDATA[WC]]></dc:creator>
		<pubDate>Wed, 12 Dec 2012 14:50:27 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1939#comment-133321</guid>

					<description><![CDATA[&quot;After considering the relative importance of the items, we decided that the player movement code was the place where improvements could have the biggest impact on the player’s experience.&quot;

Thank you!  Controls are so amazingly important these days!  I&#039;m glad to see you&#039;re taking them seriously.  :)]]></description>
			<content:encoded><![CDATA[<p>&#8220;After considering the relative importance of the items, we decided that the player movement code was the place where improvements could have the biggest impact on the player’s experience.&#8221;</p>
<p>Thank you!  Controls are so amazingly important these days!  I&#8217;m glad to see you&#8217;re taking them seriously.  :)</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Ben		</title>
		<link>https://the-witness.net/news/2012/12/mapping-the-islands-walkable-surfaces/comment-page-1/#comment-133320</link>

		<dc:creator><![CDATA[Ben]]></dc:creator>
		<pubDate>Wed, 12 Dec 2012 14:43:14 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=1939#comment-133320</guid>

					<description><![CDATA[This has been a fun and informative article to read, thanks for putting the time into writing it up!]]></description>
			<content:encoded><![CDATA[<p>This has been a fun and informative article to read, thanks for putting the time into writing it up!</p>
]]></content:encoded>
		
			</item>
	</channel>
</rss>
