<?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/"
	xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
	xmlns:media="http://search.yahoo.com/mrss/"
>

<channel>
	<title>Franz Sittampalam &#187; weewar</title>
	<atom:link href="http://www.shedali.com/b/archives/tag/weewar/feed" rel="self" type="application/rss+xml" />
	<link>http://www.shedali.com/b</link>
	<description>creative development</description>
	<lastBuildDate>Wed, 03 Mar 2010 01:21:58 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<!-- podcast_generator="podPress/8.8" -->
		<copyright>&#xA9;Franz Sittampalam </copyright>
		<managingEditor>shedali@gmail.com (Franz Sittampalam)</managingEditor>
		<webMaster>shedali@gmail.com(Franz Sittampalam)</webMaster>
		<category>Music</category>
		<ttl>1440</ttl>
		<itunes:keywords></itunes:keywords>
		<itunes:subtitle></itunes:subtitle>
		<itunes:summary>sonic experiments of Franz Sittampalam</itunes:summary>
		<itunes:author>Franz Sittampalam</itunes:author>
		<itunes:category text="Technology">
  <itunes:category text="Podcasting"/>
</itunes:category>
<itunes:category text="Technology"/>
<itunes:category text="Technology">
  <itunes:category text="Gadgets"/>
</itunes:category>
		<itunes:owner>
			<itunes:name>Franz Sittampalam</itunes:name>
			<itunes:email>shedali@gmail.com</itunes:email>
		</itunes:owner>
		<itunes:block>No</itunes:block>
		<itunes:explicit>no</itunes:explicit>
		<itunes:image href="http://www.shedali.com/pipeline/banner1.jpg" />
		<image>
			<url>http://www.shedali.com/pipeline/banner1.jpg</url>
			<title>Franz Sittampalam</title>
			<link>http://www.shedali.com/b</link>
			<width>144</width>
			<height>144</height>
		</image>
		<item>
		<title>Grab yourself A downloadable Weewar bot</title>
		<link>http://www.shedali.com/b/archives/342</link>
		<comments>http://www.shedali.com/b/archives/342#comments</comments>
		<pubDate>Sun, 03 May 2009 08:23:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[weewar]]></category>
		<category><![CDATA[ai]]></category>
		<category><![CDATA[jar]]></category>
		<category><![CDATA[vimeo]]></category>

		<guid isPermaLink="false">http://www.shedali.com/b/?p=342</guid>
		<description><![CDATA[A downloadable weewar bot]]></description>
			<content:encoded><![CDATA[<p>I've been working on a <a title="Weewar" href="http://www.weewar.com">Weewar</a> bot, and trying to get it to defeat hoards of human beings. It's getting better....slowly but surely...</p>
<p>I have developed an engine which is available as a jar file that people can use to control their own bot armies at <a title="Weewar.com" href="http://www.weewar.com">Weewar</a>. More information is available at <a title="opens a new window" href="http://www.ai-commander.co.uk" target="_blank">project homepage</a>; the video below shows how to use the jar file (so you have NO excuse not to try it now).</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="300" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=4453212&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="400" height="300" src="http://vimeo.com/moogaloop.swf?clip_id=4453212&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>I hope this means anyone can deploy the agent program rather than just a select group of programmers. This also facilitates for the first time multi-bot action; you can sign up with multiple AI Accounts and use the bot to run them. They will however all be running with the same intelligence, but in time perhaps behaviours can be modified.</p>
]]></content:encoded>
			<wfw:commentRss>http://js-kit.com/rss/www.shedali.com/b/p=342</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>weewar path planning part 1</title>
		<link>http://www.shedali.com/b/archives/307</link>
		<comments>http://www.shedali.com/b/archives/307#comments</comments>
		<pubDate>Sun, 28 Dec 2008 20:40:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[weewar]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Shortestpath]]></category>

		<guid isPermaLink="false">http://www.shedali.com/b/?p=307</guid>
		<description><![CDATA[Limited Intelligence.
I am programming a bot for weewar and have thus far implemented a simplistic path finding algorithm. By simplistic, I mean as simple as a short-sighted robotic vacuum cleaner. Each unit will seek it's target (an enemy unit or base) by moving to the next closest traversable node out of a list of possible [...]]]></description>
			<content:encoded><![CDATA[<p style="clear: both"><a class="image-link" href="http://www.shedali.com/b/wp-content/uploads/2008/12/2-map-botanic-troubles-on-weewarcom.jpg"><img class="linked-to-original" style=" text-align: center; display: block; margin: 0 auto 10px;" src="http://www.shedali.com/b/wp-content/uploads/2008/12/2-map-botanic-troubles-on-weewarcom1.jpg" alt="" width="359" height="282" /></a><strong>Limited Intelligence</strong>.</p>
<p style="clear: both">I am programming a bot for weewar and have thus far implemented a simplistic path finding algorithm. By simplistic, I mean as simple as a short-sighted robotic vacuum cleaner. Each unit will seek it's target (an enemy unit or base) by moving to the next closest traversable node out of a list of possible nodes repeatedly until the target is reached.</p>
<p style="clear: both">The bot could play but was too stupid to provide a real challenge. Units would swarm out of bases and rush in the direction of the enemy regardless of obstacles en route, blindly feeling their way around the obstacles at a cost of many a wasted turn.</p>
<p style="clear: both"><a class="image-link" href="http://www.shedali.com/b/wp-content/uploads/2008/12/a1.jpg"><img class="linked-to-original" style=" text-align: center; display: block; margin: 0 auto 10px;" src="http://www.shedali.com/b/wp-content/uploads/2008/12/a11.jpg" alt="" width="286" height="235" /></a>Above: notice the red soldier has moved from the red home base to what it deems to be the closest coordinate to the blue enemy base, however a soldier is unable to traverse water and so this turn was wasted.</p>
<p style="clear: both">It was clear after many lost games that a smarter algorithm was required and I by necessity entered the realm of pathfinding algorithms.</p>
<p style="clear: both"><strong>Units must be map-aware</strong></p>
<p style="clear: both">In order for each unit to be aware of obstacles present on the map such as that shown in the image above, it is necessary for each node to be aware of every other node on the map.</p>
<p>My challenge is be to first form a suitable abstraction for the Weewar map and to implement an algorithm which would allow for a best path to be calculated from a single source-target pair for a given unit type.</p>
<p><strong>Building a graph representation?</strong></p>
<p style="clear: both">A graph G consists of a set of vertices and a set of edges, so I'm told.</p>
<p style="clear: both">The vertices (in this case, hexagon tiles) are uniquely identified by a coordinate e.g. (3.4). and the edges are a pair of connected vertices with an associated weight (the cost of getting from one to the other).</p>
<p style="clear: both">Although the weight is usually the distance between the two nodes, in this case it might be more useful to think in terms of the number of turns required to reach the target, as this is the true cost of getting around, and that cost varies from unit to unit.</p>
<p style="clear: both"><a class="image-link" href="http://www.shedali.com/b/wp-content/uploads/2008/12/1-your-turn-game-graph-parse-test-on-weewarcom.jpg"><img class="linked-to-original" style=" text-align: center; display: block; margin: 0 auto 10px;" src="http://www.shedali.com/b/wp-content/uploads/2008/12/1-your-turn-game-graph-parse-test-on-weewarcom2.jpg" alt="" width="263" height="223" /></a>this very simple map has the following graphical representation.</p>
<p style="clear: both"><a class="image-link" href="http://www.shedali.com/b/wp-content/uploads/2008/12/resource-weewar2-src-testpathfinderjava-eclipse-platform-users-shedali-documents-workspace8.jpg"><img class="linked-to-original" style=" text-align: center; display: block; margin: 0 auto 10px;" src="http://www.shedali.com/b/wp-content/uploads/2008/12/resource-weewar2-src-testpathfinderjava-eclipse-platform-users-shedali-documents-workspace9.jpg" alt="" width="269" height="167" /></a>if we now remove non-traversable nodes, leaving only the plains, we can get an idea of what nodes are available for a particular unit to edge towards the base.</p>
<p style="clear: both"><a class="image-link" href="http://www.shedali.com/b/wp-content/uploads/2008/12/resource-weewar2-src-testpathfinderjava-eclipse-platform-users-shedali-documents-workspace14.jpg"><img class="linked-to-original" style=" text-align: center; display: block; margin: 0 auto 10px;" src="http://www.shedali.com/b/wp-content/uploads/2008/12/resource-weewar2-src-testpathfinderjava-eclipse-platform-users-shedali-documents-workspace16.jpg" alt="" width="262" height="149" /></a>The first question is: what path should the bot soldier take to get to the enemy base with the lowest path cost, that is - the least number of moves.</p>
<p style="clear: both">Each soldier is given a number of possible tiles to move to in a given turn. Below shows the possible movement coordinates for the blue soldier:</p>
<p style="clear: both"><a class="image-link" href="http://www.shedali.com/b/wp-content/uploads/2008/12/1-your-turn-game-graph-parse-test-on-weewarcom3.jpg"><img class="linked-to-original" style=" text-align: center; display: block; margin: 0 auto 10px;" src="http://www.shedali.com/b/wp-content/uploads/2008/12/1-your-turn-game-graph-parse-test-on-weewarcom4.jpg" alt="" width="264" height="226" /></a>There will therefore be an edge formed between the soldier's coordinate and each of the highlighted nodes which the soldier can reach at a cost of a single turn. In the following image, the unit can move to 20 possible tiles at a cost of one turn.</p>
<p style="clear: both"><a class="image-link" href="http://www.shedali.com/b/wp-content/uploads/2008/12/1-your-turn-game-graph-parse-test-on-weewarcom5.jpg"><img class="linked-to-original" style=" text-align: center; display: block; margin: 0 auto 10px;" src="http://www.shedali.com/b/wp-content/uploads/2008/12/1-your-turn-game-graph-parse-test-on-weewarcom6.jpg" alt="" width="282" height="263" /></a>Armed now with a data structure containing all node coordinates:V and a data structure containing all edges E, the graph representation in terms of data structures is now complete and in part two I will consider the algorithms for traversing the graph to discover the best path.</p>
<p><br class="final-break" style="clear: both" /></p>
]]></content:encoded>
			<wfw:commentRss>http://js-kit.com/rss/www.shedali.com/b/p=307</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
