<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Arongranberg.com</title>
	<atom:link href="http://www.arongranberg.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.arongranberg.com</link>
	<description>Game Developing with Unity 3D</description>
	<lastBuildDate>Fri, 18 May 2012 16:03:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>More Threads! Multithreaded Pathfinding</title>
		<link>http://www.arongranberg.com/2012/05/more-threads-multithreaded-pathfinding/</link>
		<comments>http://www.arongranberg.com/2012/05/more-threads-multithreaded-pathfinding/#comments</comments>
		<pubDate>Fri, 18 May 2012 14:00:23 +0000</pubDate>
		<dc:creator>Aron Granberg</dc:creator>
				<category><![CDATA[Unity]]></category>

		<guid isPermaLink="false">http://www.arongranberg.com/?p=1889</guid>
		<description><![CDATA[As some of you may know, I&#8217;m have multithreaded pathfinding in the A* Pathfinding Project. This is a great way to keep the game at a steady FPS while other threads can carry out heavy pathfinding. Until now I have &#8230; <a href="http://www.arongranberg.com/2012/05/more-threads-multithreaded-pathfinding/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>As some of you may know, I&#8217;m have multithreaded pathfinding in the A* Pathfinding Project. This is a great way to keep the game at a steady FPS while other threads can carry out heavy pathfinding. Until now I have only had a single separate thread for pathfinding. That works good, but there is room for so much more now that computers with more than 2 cores start becoming common. So I decided that I should try to implement that.<br />
It didn&#8217;t work out the way I wanted to in the beginning, the reason is that I have made no separation of connectivity data (which is usually static) and path data (temporary data needed for path calculation) everything was stored in the same Node object. So I started working on separating them. What I ended up with was a huge matrix where a large array of NodeRun object (in lack of a better name) is stored for each thread. The NodeRun object stores the temporary data (e.g G and H score) and every NodeRun object is linked to a specific Node, however there are for each thread a NodeRun object which links to the same Node. This works quite good, memory hasn&#8217;t increased that much, should be about 12 bytes per node for 1 thread and then 8 extra bytes per node per thread added. And I think the performance has barely been affected per thread.<br />
The awesome stuff reveals itself when you test the performance with more threads then 1.</p>
<p><a href="http://www.arongranberg.com/wp-content/uploads/2012/05/Skärmavbild-2012-05-18-kl.-15.20.37.png" rel="lightbox[1889]" title="Multithreaded Pathfinding"><img class="alignleft size-full wp-image-1891" title="Multithreaded Pathfinding" src="http://www.arongranberg.com/wp-content/uploads/2012/05/Skärmavbild-2012-05-18-kl.-15.20.37.png" alt="Multithreaded Pathfinding Graph" width="606" height="331" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>My computer has 4 physical cores, but uses hyperthreading for a total of 8. As you can see in the graph, I can manage to get it to run as much as 3.75 times faster than with a single thread! The speedup is linear at the start, but gets smaller when the number of threads increase above the number of physical cores. Memory usage increases linearly at about 2mb per added thread (for the 200*200 grid graph I&#8217;m testing on).</p>
<p>The only major drawback that I can see is that it will be slower to update the graphs. When a graph is updated, pathfinding must not be searching the graph at the same time, that could lead to weird errors. When not using multithreading, the function can simply update the graph (if needed) between calculating paths. Almost as easy when using a single thread, but then it must stop for a bit to let the Unity thread update the graphs since many things such as raycasting must be called from the main Unity thread. When using more than one thread, every thread must finish calculating the current path they are calculating, stop and then notify the unity thread that it can proceed with updating the graphs. This can lead to a decrease in performance because the threads spend much time idling. One way to solve this is to group graph updates together in chunks for example every 0.2 or 0.5 seconds to avoid stopping the threads too often when updating the graph a lot.</p>
<p>Anyway, I&#8217;m happy with the transition. I could also simplify many functions to use more advanced atomic operations instead of custom written lockless queues and stuff. When I get around to rewriting the GraphUpdateObject system for this I can also make sure it does not block the unity thread waiting for the pathfinding threads to stop, but it simply notifies the pathfinding threads that they should pause. And when they have, the unity thread, some frames later, can update the graphs. The previous approach could lead to lag when updating graphs if the pathfinding thread was calculating a really long path.</p>
<p>I&#8217;m a bit concerned for the mobile development though with the increased memory usage. It is not really much though. I built two tests, one with the original code (similar to latest release) and one with the new code. Both using a 200*200 grid graph. The new code used 6mb according to GC, and the old code used about 5 mb (I only had 1mb precision). But what&#8217;s interesting is that the old code had about 1.5 mb allocation per second, but the new code allocated practically nothing (0.0 to 0.1). I don&#8217;t know if that is something relevant, or if it just is GC acting odd. But it was repeatable at least. With 4 threads it peaked at 13mb, though it started at 8 or something. I don&#8217;t know much about C# internal memory management, so I usually just measure the peak allocated memory after 20 seconds or so when it has stabilized.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.arongranberg.com/2012/05/more-threads-multithreaded-pathfinding/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Steering Behaviors</title>
		<link>http://www.arongranberg.com/2012/05/steering-behaviors/</link>
		<comments>http://www.arongranberg.com/2012/05/steering-behaviors/#comments</comments>
		<pubDate>Tue, 08 May 2012 19:53:58 +0000</pubDate>
		<dc:creator>Aron Granberg</dc:creator>
				<category><![CDATA[Unity]]></category>

		<guid isPermaLink="false">http://www.arongranberg.com/?p=1832</guid>
		<description><![CDATA[Check out this blag! &#8212;> One Tiny Leap He is experimenting with developing steering behaviors for the A* Pathfinding Project among others. It might turn out to be really awesome!]]></description>
			<content:encoded><![CDATA[<p>Check out this <a href="http://xkcd.com/181/">blag</a>!  &#8212;> <a href="http://onetinyleap.wordpress.com/" title="One Tiny Leap" target="_blank">One Tiny Leap</a><br />
He is experimenting with developing steering behaviors for the A* Pathfinding Project among others. It might turn out to be really awesome! <img src='http://www.arongranberg.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.arongranberg.com/2012/05/steering-behaviors/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Multi Level Grid Graphs</title>
		<link>http://www.arongranberg.com/2012/04/multi-level-grid-graphs/</link>
		<comments>http://www.arongranberg.com/2012/04/multi-level-grid-graphs/#comments</comments>
		<pubDate>Sun, 01 Apr 2012 16:06:30 +0000</pubDate>
		<dc:creator>Aron Granberg</dc:creator>
				<category><![CDATA[Unity]]></category>

		<guid isPermaLink="false">http://www.arongranberg.com/?p=1677</guid>
		<description><![CDATA[One of the most common questions I get is how to get grid graphs working for a world with multiple levels (as in floors in a building, not game levels). I have tried to implement that at least 3 times, &#8230; <a href="http://www.arongranberg.com/2012/04/multi-level-grid-graphs/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>One of the most common questions I get is how to get grid graphs working for a world with multiple levels (as in floors in a building, not game levels).</p>
<p>I have tried to implement that at least 3 times, every time I have got results which I haven&#8217;t been totally happy with. So today I decided to brush up some old scripts and see if I could make them better. Turns out it was quite easy to get them working and generate good looking graphs.</p>
<p>Here&#8217;s a demo video:<br />
<p><a href="http://www.youtube.com/watch?v=XsP87BkBemw"><img src="http://img.youtube.com/vi/XsP87BkBemw/2.jpg"></a></p>
<p><a href="http://www.youtube.com/watch?v=XsP87BkBemw">Click here</a> to view the video on YouTube.</p>
</p>
<p>Hopefully this feature will make it to the 3.1 release of the A* Pathfinding Project.</p>
<p>I got some stuff to implement before it is finished though:</p>
<ul>
<li>Funnel algorithm support</li>
<li>Graph update support</li>
<li>Linecasting (maybe I will skip that though)</li>
<li>Erosion</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.arongranberg.com/2012/04/multi-level-grid-graphs/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>iPhone crashes</title>
		<link>http://www.arongranberg.com/2012/04/iphone-crashes/</link>
		<comments>http://www.arongranberg.com/2012/04/iphone-crashes/#comments</comments>
		<pubDate>Sun, 01 Apr 2012 15:59:58 +0000</pubDate>
		<dc:creator>Aron Granberg</dc:creator>
				<category><![CDATA[Unity]]></category>

		<guid isPermaLink="false">http://www.arongranberg.com/?p=1675</guid>
		<description><![CDATA[For those of you experiencing crashes on startup when running the A* Pathfinding Project on iPhone here&#8217;s a workaround. The background is that, even though it in the Unity docs appears to be supported, the System.Guid class isn&#8217;t supported on &#8230; <a href="http://www.arongranberg.com/2012/04/iphone-crashes/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>For those of you experiencing crashes on startup when running the A* Pathfinding Project on iPhone here&#8217;s a workaround.</p>
<p>The background is that, even though it in the Unity docs appears to be supported, the System.Guid class isn&#8217;t supported on IOS. The A* Pathfinding Project uses that class for saving an ID for each graph.</p>
<p>In all graphs there is a variable initialized to new Guid () (in the base.cs script). This will, since it is not supported, crash the application.</p>
<p>For 3.1 I will write a replacement class for the Guid class, until then, here are two different workarounds.</p>
<p>Option one: In the player settings (Project Settings -&gt; Player Settings) there is an option to catch all exceptions or crash on exceptions (the crash option yields faster applications).  If you set it to catch all exceptions, I think it will run ok.</p>
<p>Option 2: One variable almost at the top of the base.cs script is initialized to new Guid (). You can comment out that variable (it&#8217;s obsolete anyway). And it will hopefully not crash again.</p>
<p>Note that you will not be able to create new graphs during runtime even with these changes applied, that will create a new Guid and crash the application.</p>
<p>Hope it will work for all of you <img src='http://www.arongranberg.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.arongranberg.com/2012/04/iphone-crashes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Moving Platforms</title>
		<link>http://www.arongranberg.com/2012/03/moving-platforms/</link>
		<comments>http://www.arongranberg.com/2012/03/moving-platforms/#comments</comments>
		<pubDate>Mon, 26 Mar 2012 17:08:15 +0000</pubDate>
		<dc:creator>Aron Granberg</dc:creator>
				<category><![CDATA[Unity]]></category>

		<guid isPermaLink="false">http://www.arongranberg.com/?p=1637</guid>
		<description><![CDATA[Moving platforms and elevator support is something that has been lacking a bit in the A* Pathfinding Project up until now. So I started thinking about it during the weekend, and figured that it shouldn&#8217;t be too hard to implement, &#8230; <a href="http://www.arongranberg.com/2012/03/moving-platforms/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Moving platforms and elevator support is something that has been lacking a bit in the A* Pathfinding Project up until now. So I started thinking about it during the weekend, and figured that it shouldn&#8217;t be too hard to implement, so I did that <img src='http://www.arongranberg.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /><br />
What I ended up with was an implementation using one-way links. That is, if you have an elevator which only goes up, I would create one node at the bottom of it, and one at the top, and then add a link between them which only goes in one direction: from bottom to top.<br />
I created a new graph type named LinkGraph, the idea is that it should always be present as the first graph in the scene. And a few scripts which enables you to create new nodes and connections using gameObjects which you place in the scene. It works similar to a list graph, but the nodes are not connected automatically, you have scripts which specify a connection from one point to another point, nodes will be created at both endpoints and automatically (currently not so sophisticated, might add more features there) connects them to nearby nodes in <em>other</em> graphs.<br />
Further, I have an elevator/moving platform script which checks a trigger, if the AI stands on the platform for a specified length of time, it will lock the AI so it will not be able to move during transport to the target location, it will then move, and release the ai to move freely when it has reached it&#8217;s target location.<br />
This simple technique works unexpectedly well in my tests.</p>
<p>Ways to improve it would probably be to tag the elevator nodes with certain tags which tell the AI to stop at the first one and then wait for it to move to the next instead of trying to walk towards it. That would free the elevator script from having to lock the AI from moving. It would be better in that the current system can fail if the AI walks too fast.</p>
<p>Here&#8217;s a video of what it looks like at the moment. Oh, and also, I have written a new AI script which has much better movement behavior than the previous AIFollow script, the one in the video is the new script, a bit modified to be able to animate the legs of the robot properly and to create a particle effect when it reaches the end of the path.</p>
<p><a href="http://www.youtube.com/watch?v=IZ6vSHC5bRo"><img src="http://img.youtube.com/vi/IZ6vSHC5bRo/2.jpg"></a></p>
<p><a href="http://www.youtube.com/watch?v=IZ6vSHC5bRo">Click here</a> to view the video on YouTube.</p>

]]></content:encoded>
			<wfw:commentRss>http://www.arongranberg.com/2012/03/moving-platforms/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Graph Updates and Tagging</title>
		<link>http://www.arongranberg.com/2012/02/graph-updates-and-tagging/</link>
		<comments>http://www.arongranberg.com/2012/02/graph-updates-and-tagging/#comments</comments>
		<pubDate>Mon, 06 Feb 2012 12:39:16 +0000</pubDate>
		<dc:creator>Aron Granberg</dc:creator>
				<category><![CDATA[Unity]]></category>

		<guid isPermaLink="false">http://www.arongranberg.com/?p=1430</guid>
		<description><![CDATA[Hello World! I&#8217;ve been working on some stuff recently for the upcoming A* Pathfinding Project 3.1 release. Many of you have probably been a bit annoyed by the amount of work needed to change tiny details in the graph, for &#8230; <a href="http://www.arongranberg.com/2012/02/graph-updates-and-tagging/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Hello World!</p>
<p>I&#8217;ve been working on some stuff recently for the upcoming A* Pathfinding Project 3.1 release. Many of you have probably been a bit annoyed by the amount of work needed to change tiny details in the graph, for example making some nodes unwalkable. Well, that problem is soon over.<br />
I have created a new script which is called GraphUpdateScene. It collects a number of useful changes you might want to do to a graph such as, as mentioned before, making some nodes unwalkable, or perhaps adding a high penalty to an area (making the area harder to traverse, so units will avoid it).<br />
You can even set the tags of the nodes, which is another new feature I have developed. It is used to define which units can walk on what ground.<br />
Imagine for example that you have some critters, a player and some AIs in your world. Both the AIs and the critters pathfind randomly around in the world but you wouldn&#8217;t want the critters to enter houses (they make such a mess). Then tagging is a great way to solve it. If you tag all indoor areas with a tag named for example &#8220;Indoors&#8221; and make sure no critters can walk on those nodes, that would be it!<br />
Oh, and did I mention that you are no longer restricted to axis-aligned rectangular areas, you can use any polygon shape you want!</p>
<p>Anyway, it&#8217;s tedious to describe stuff using text, so here&#8217;s a video for you showing both of these features:</p>
<p><a href="http://www.youtube.com/watch?v=dClgmO9pfWg"><img src="http://img.youtube.com/vi/dClgmO9pfWg/2.jpg"></a></p>
<p><a href="http://www.youtube.com/watch?v=dClgmO9pfWg">Click here</a> to view the video on YouTube.</p>

]]></content:encoded>
			<wfw:commentRss>http://www.arongranberg.com/2012/02/graph-updates-and-tagging/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Comments Cleared</title>
		<link>http://www.arongranberg.com/2012/01/comments-cleared/</link>
		<comments>http://www.arongranberg.com/2012/01/comments-cleared/#comments</comments>
		<pubDate>Sat, 14 Jan 2012 22:23:16 +0000</pubDate>
		<dc:creator>Aron Granberg</dc:creator>
				<category><![CDATA[Unity]]></category>

		<guid isPermaLink="false">http://www.arongranberg.com/?p=1310</guid>
		<description><![CDATA[You may have noticed that there are much fewer comments on the pages now. That&#8217;s because the very high number of comments on some pages caused them to slow down the site, sometimes it was really a pain opening some &#8230; <a href="http://www.arongranberg.com/2012/01/comments-cleared/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>You may have noticed that there are much fewer comments on the pages now. That&#8217;s because the very high number of comments on some pages caused them to slow down the site, sometimes it was really a pain opening some pages because of the time it took. Now that I have cleared most of the over 800 comments (those that were questions mostly), the site will hopefully be a bit faster. Sorry about removing everything people had written, but the site simply became too slow.<br />
For questions, I now have the <a href="http://www.arongranberg.com/forums/forum/pathfinding-project/" title="forums">forums</a> for the A* Pathfinding Project (currently 60 topics and counting).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.arongranberg.com/2012/01/comments-cleared/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A* Pathfinding Project 3.0.8</title>
		<link>http://www.arongranberg.com/2011/12/a-pathfinding-project-3-0-8/</link>
		<comments>http://www.arongranberg.com/2011/12/a-pathfinding-project-3-0-8/#comments</comments>
		<pubDate>Fri, 23 Dec 2011 21:49:33 +0000</pubDate>
		<dc:creator>Aron Granberg</dc:creator>
				<category><![CDATA[Unity]]></category>

		<guid isPermaLink="false">http://www.arongranberg.com/?p=1130</guid>
		<description><![CDATA[Merry Christmas everyone! And as a christmas present, you can now download an updated version of the A* Pathfinding Project. Version 3.0.8! The major feature for this version is the beta of the Local Avoidance which I have been working &#8230; <a href="http://www.arongranberg.com/2011/12/a-pathfinding-project-3-0-8/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Merry Christmas everyone!<br />
And as a christmas present, you can now download an updated version of the A* Pathfinding Project. Version 3.0.8!</p>
<p>The major feature for this version is the beta of the Local Avoidance which I have been working on, it is included in the Pro version of the system. If you haven&#8217;t seen it, check out <a href="http://www.youtube.com/watch?v=WUOymX-NpN4&#038;context=C320de87ADOEgsToPDskITY9b9VPjjjWlm5HW5J_Tm" target="_blank">this</a> video on youtube!<br />
Great news for those of you who have the free version is that you can now save graphs to files, including nodes!</p>
<p>As many of you probably have seen, the developer preview of Unity 3.5 (with built-in pathfinding), was released a few days ago.<br />
What this means for the continuing development of this project is not certain yet, but I will not likely stop all development.<br />
The Unity pathfinder has a number of advantages, and a number of drawbacks compared to my system, I haven&#8217;t been able to explore it very much though since it only seems to be available for Unity Pro users (which is the first drawback), I cannot edit any pathfinding settings anyway.<br />
First of all, the Unity pathfinder has only support for navmeshes, not grid graphs or list (point) graphs. This is probably the feature most people will miss with the Unity pathfinder, especially makers of TD and RTS games as grid graphs are the primary choice among them. It doesn&#8217;t seem very expandable from what I can see in the docs, I haven&#8217;t even found a class for nodes. On the advantage side though, can be mentioned that it does have more advanced local avoidance (from recast, mine is still under development, but it&#8217;s getting there), and better support for off-mesh links, and also it seems to have support for partial paths (something I have chosen not to implement since paths are returned within a few milliseconds anyway). It does not seem to use time splicing (i.e calculating over multiple frames) as there is a function in the docs which returns paths instantly, this does in turn mean that it is not multithreaded (except for the generating of the navmesh, which can be run async), but I can be wrong about that.<br />
The path layers they are using for the bridge and door scenes in the examples is another difference, however I have an early implementation of it in 3.0.8 (check out the &#8220;Door&#8221; scene which is included, only for pro users though as it is based on a recast graph, but the functionality is present in the free version as well, check out the DoorController.cs script in the example scripts folder).</p>
<p>Please comment if I have got something wrong about the unity pathfinder.</p>
<p>Now go ahead and download the latest version: <a href="http://arongranberg.com/unity/a-pathfinding/download/">http://arongranberg.com/unity/a-pathfinding/download/</a><br />
Changelog can be found <a href="http://arongranberg.com/astar/docs/changelog.php">here</a></p>
<p>As an extra christmas present, I will give you a 10% discount until the 1st of January on the <a href="http://www.arongranberg.com/shop/">Pro version</a>!<br />
Just use the promo-code: <em>Christmas2011</em></p>
<p>Merry Christmas!</p>
<p>-Aron Granberg</p>
]]></content:encoded>
			<wfw:commentRss>http://www.arongranberg.com/2011/12/a-pathfinding-project-3-0-8/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Forums for the A* Pathfinding Project!</title>
		<link>http://www.arongranberg.com/2011/12/forums-pathfinding/</link>
		<comments>http://www.arongranberg.com/2011/12/forums-pathfinding/#comments</comments>
		<pubDate>Thu, 01 Dec 2011 17:19:20 +0000</pubDate>
		<dc:creator>Aron Granberg</dc:creator>
				<category><![CDATA[Unity]]></category>

		<guid isPermaLink="false">http://www.arongranberg.com/?p=1006</guid>
		<description><![CDATA[After getting through the simple installation of the bbPress plugin for wordpress, and the tedious process of finding out how to install plugins (as this seems to be different for different versions of bbPress). I have now got forums working &#8230; <a href="http://www.arongranberg.com/2011/12/forums-pathfinding/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>After getting through the simple installation of the bbPress plugin for wordpress, and the tedious process of finding out how to install plugins (as this seems to be different for different versions of bbPress). I have now got forums working for the A* Pathfinding Project. This should hopefully help to organize the questions all users have as they are now in a very very very long unstructured list of comments to the pages.</p>
<p>Check it out here: http://www.arongranberg.com/forums/forum/pathfinding-project/</p>
]]></content:encoded>
			<wfw:commentRss>http://www.arongranberg.com/2011/12/forums-pathfinding/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Local Avoidance pt.2</title>
		<link>http://www.arongranberg.com/2011/09/local-avoidance-pt-2/</link>
		<comments>http://www.arongranberg.com/2011/09/local-avoidance-pt-2/#comments</comments>
		<pubDate>Sun, 18 Sep 2011 18:55:12 +0000</pubDate>
		<dc:creator>Aron Granberg</dc:creator>
				<category><![CDATA[Unity]]></category>

		<guid isPermaLink="false">http://www.arongranberg.com/?p=958</guid>
		<description><![CDATA[I have been able to improve the local avoidance by some. I have changed how the limit (the part which is cut off from the VO cone) is calculated, and changed a bit in where the samples are put. I &#8230; <a href="http://www.arongranberg.com/2011/09/local-avoidance-pt-2/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I have been able to improve the local avoidance by some. I have changed how the limit (the part which is cut off from the VO cone) is calculated, and changed a bit in where the samples are put. I also tried the solution of using half-planes instead of cones as some papers suggest, but it didn&#8217;t work out that well, the sampling method with cones worked better.</p>
<p>Worth to note is that the agents don&#8217;t use any physics for collision, collision avoidance is purely done by the local avoidance.</p>
<p><a href="http://www.youtube.com/watch?v=jHrM1IbPHOA"><img src="http://img.youtube.com/vi/jHrM1IbPHOA/2.jpg"></a></p>
<p><a href="http://www.youtube.com/watch?v=jHrM1IbPHOA">Click here</a> to view the video on YouTube.</p>

]]></content:encoded>
			<wfw:commentRss>http://www.arongranberg.com/2011/09/local-avoidance-pt-2/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

