<?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:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Game Development Blog</title>
	<atom:link href="http://nicolasbertoa.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://nicolasbertoa.wordpress.com</link>
	<description></description>
	<lastBuildDate>Sat, 27 Feb 2010 18:20:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='nicolasbertoa.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Game Development Blog</title>
		<link>http://nicolasbertoa.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://nicolasbertoa.wordpress.com/osd.xml" title="Game Development Blog" />
	<atom:link rel='hub' href='http://nicolasbertoa.wordpress.com/?pushpress=hub'/>
		<item>
		<title>CaperucitaPlusPlus</title>
		<link>http://nicolasbertoa.wordpress.com/2010/02/27/caperucitaplusplus/</link>
		<comments>http://nicolasbertoa.wordpress.com/2010/02/27/caperucitaplusplus/#comments</comments>
		<pubDate>Sat, 27 Feb 2010 15:09:08 +0000</pubDate>
		<dc:creator>Nicolas Bertoa</dc:creator>
				<category><![CDATA[Game Development]]></category>

		<guid isPermaLink="false">http://nicolasbertoa.wordpress.com/?p=292</guid>
		<description><![CDATA[Description: CaperucitaPlusPlus is a 2D scrolling game made with C++ and SFML. The game has two modes: in the day you must kill the white wolves and don&#8217;t kill the black wolves and in the night you must kill the black wolves and don&#8217;t kill the white wolves. If you kill a wrong wolf, then [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nicolasbertoa.wordpress.com&amp;blog=6698356&amp;post=292&amp;subd=nicolasbertoa&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>Description:</strong><br />
<strong> </strong>CaperucitaPlusPlus is a 2D scrolling game made with C++ and <a title="SFML" href="http://www.sfml-dev.org/">SFML</a>. The game has two modes: in the day you must kill the white wolves and don&#8217;t kill the black wolves and in the night you must kill the black wolves and don&#8217;t kill the white wolves. If you kill a wrong wolf, then you will lose health. In the end of each level there is a boss. There are 4 levels for now. I chose this name because the mainly idea was ideated in the last Global Game Jam but with Python. Now I finished the game with C++ (Caperucita<strong>PlusPlus</strong>).</p>
<p><strong>User Input: </strong>I used <a title="SFML" href="http://www.sfml-dev.org/">SFML</a> to control the user input.</p>
<p><strong>GUI: </strong>I used <a title="SFML" href="http://www.sfml-dev.org/">SFML</a> library to show fonts.<strong> </strong>I display player&#8217;s health, fps and boss&#8217;s health. The user can interact with the main menu through the keyboard.</p>
<p><strong>Audio: </strong> Set up audio with <a title="SFML" href="http://www.sfml-dev.org/">SFML</a> library.</p>
<p><strong>Project Team:</strong><br />
Nicolas Bertoa (Programmer)<br />
Guillermo Oursi (Artist)<br />
Damian Linossi (Artist)<br />
Mariano Bertoa (Artist)</p>
<p><strong>Code Samples:</strong><br />
<a href="http://nicolasbertoa.pastebin.com/gewx3xth">GameManager.h</a><br />
<a href="http://nicolasbertoa.pastebin.com/HSTKSadk">GameManager.cpp</a></p>
<p><strong>Download Link:<br />
<span style="font-weight:normal;"><a href="http://www.mediafire.com/?nhj3h5mmzdi">http://www.mediafire.com/?nhj3h5mmzdi</a></span></strong></p>
<p><strong>Screenshots and Video:</strong></p>
<p><a href="http://nicolasbertoa.files.wordpress.com/2010/02/cap1.jpg"><img src="http://nicolasbertoa.files.wordpress.com/2010/02/cap1.jpg?w=497&#038;h=372" alt="" title="cap1" width="497" height="372" class="aligncenter size-full wp-image-298" /></a><br />
<a href="http://nicolasbertoa.files.wordpress.com/2010/02/cap2.jpg"><img src="http://nicolasbertoa.files.wordpress.com/2010/02/cap2.jpg?w=497&#038;h=372" alt="" title="cap2" width="497" height="372" class="aligncenter size-full wp-image-299" /></a></p>
<span class='embed-youtube' style='text-align:center; display:block;'><object width='497' height='310'><param name='movie' value='http://www.youtube.com/v/eTQ-YlMaQCo?version=3&rel=1&fs=1&showsearch=0&showinfo=1&iv_load_policy=1' /> <param name='allowfullscreen' value='true' /> <param name='wmode' value='opaque' /> <embed src='http://www.youtube.com/v/eTQ-YlMaQCo?version=3&rel=1&fs=1&showsearch=0&showinfo=1&iv_load_policy=1' type='application/x-shockwave-flash' allowfullscreen='true' width='497' height='310' wmode='opaque'></embed> </object></span>
<br />Filed under: <a href='http://nicolasbertoa.wordpress.com/category/game-development/'>Game Development</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nicolasbertoa.wordpress.com/292/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nicolasbertoa.wordpress.com/292/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/nicolasbertoa.wordpress.com/292/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/nicolasbertoa.wordpress.com/292/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/nicolasbertoa.wordpress.com/292/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/nicolasbertoa.wordpress.com/292/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/nicolasbertoa.wordpress.com/292/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/nicolasbertoa.wordpress.com/292/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/nicolasbertoa.wordpress.com/292/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/nicolasbertoa.wordpress.com/292/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/nicolasbertoa.wordpress.com/292/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/nicolasbertoa.wordpress.com/292/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/nicolasbertoa.wordpress.com/292/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/nicolasbertoa.wordpress.com/292/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nicolasbertoa.wordpress.com&amp;blog=6698356&amp;post=292&amp;subd=nicolasbertoa&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://nicolasbertoa.wordpress.com/2010/02/27/caperucitaplusplus/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">nicolasbertoa</media:title>
		</media:content>

		<media:content url="http://nicolasbertoa.files.wordpress.com/2010/02/cap1.jpg" medium="image">
			<media:title type="html">cap1</media:title>
		</media:content>

		<media:content url="http://nicolasbertoa.files.wordpress.com/2010/02/cap2.jpg" medium="image">
			<media:title type="html">cap2</media:title>
		</media:content>
	</item>
		<item>
		<title>Simple Soccer</title>
		<link>http://nicolasbertoa.wordpress.com/2009/10/28/simple-soccer/</link>
		<comments>http://nicolasbertoa.wordpress.com/2009/10/28/simple-soccer/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 16:16:13 +0000</pubDate>
		<dc:creator>Nicolas Bertoa</dc:creator>
				<category><![CDATA[Artificial Intelligence]]></category>

		<guid isPermaLink="false">http://nicolasbertoa.wordpress.com/?p=245</guid>
		<description><![CDATA[I will explain some modifications that I made to the application Simple Soccer.  This application is based on Chapter 4 of &#8220;Programming Game AI By Example&#8221;. Thanks Mat Buckland for your excellent book. Simple Soccer This application is based in the creation of agents capable of play soccer. You can see the default application in [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nicolasbertoa.wordpress.com&amp;blog=6698356&amp;post=245&amp;subd=nicolasbertoa&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><em>I will explain some modifications that I made to the application Simple Soccer.  This application is based on <strong>Chapter 4 of &#8220;Programming Game AI By Example&#8221;</strong>. <em>Thanks Mat Buckland for your excellent book. </em></em></p>
<p style="text-align:center;">
<p style="text-align:center;"><strong>Simple Soccer</strong></p>
<p style="text-align:left;">This application is based in the creation of agents capable of play soccer. You can see the default application in the following video:</p>
<p style="text-align:left;"><span class='embed-youtube' style='text-align:center; display:block;'><object width='497' height='310'><param name='movie' value='http://www.youtube.com/v/8SvTTYSwXhk?version=3&rel=1&fs=1&showsearch=0&showinfo=1&iv_load_policy=1' /> <param name='allowfullscreen' value='true' /> <param name='wmode' value='opaque' /> <embed src='http://www.youtube.com/v/8SvTTYSwXhk?version=3&rel=1&fs=1&showsearch=0&showinfo=1&iv_load_policy=1' type='application/x-shockwave-flash' allowfullscreen='true' width='497' height='310' wmode='opaque'></embed> </object></span></p>
<p style="text-align:left;"><strong>Supporting attacker is always alone.</strong></p>
<p style="text-align:left;">As you can see, when a player is in the <em>SupportAttacker</em> state, nobody pursues him. So his partner can pass the ball to him easily.</p>
<p style="text-align:left;">We must choose an opponent to pursue him. For that we create a new state called <em>MarkSupportingOpponent. </em>When a player is in this state, he will interpose between the ball and the opponent. The header file is the following:</p>
<p style="text-align:left;"><a href="http://pastebin.com/f55c9b8fe">MarkSupportingOpponent.h</a></p>
<p style="text-align:left;">In the enter function, the player activates the Interpose steering behavior.</p>
<p style="text-align:left;">In the exit function, the player deactivates the Interpose steering behavior.</p>
<p style="text-align:left;">If the player is the closest to the supporting attacker, then he updates his target, i.e, the supporting attacker&#8217;s position. Else, he changes to the ReturnHomeRegion state, i.e., he returns to his default region.</p>
<p style="text-align:left;"><a href="http://pastebin.com/f683a9638">MarkSupportingOpponent.cpp</a></p>
<p style="text-align:left;">You can see the behavior in the following video (Note how the supporting attacker isn&#8217;t alone)</p>
<p style="text-align:left;"><span class='embed-youtube' style='text-align:center; display:block;'><object width='497' height='310'><param name='movie' value='http://www.youtube.com/v/reEqjSa0xeg?version=3&rel=1&fs=1&showsearch=0&showinfo=1&iv_load_policy=1' /> <param name='allowfullscreen' value='true' /> <param name='wmode' value='opaque' /> <embed src='http://www.youtube.com/v/reEqjSa0xeg?version=3&rel=1&fs=1&showsearch=0&showinfo=1&iv_load_policy=1' type='application/x-shockwave-flash' allowfullscreen='true' width='497' height='310' wmode='opaque'></embed> </object></span></p>
<p style="text-align:left;">But an important question is: What player must we choose? We will choose the closest opponent, that isn&#8217;t chasing the ball in that moment. For that, we implemented the<em> isClosestTeamMemberToSupportingOpponent </em>function in the Field Player class. We didn&#8217;t implement this function at Goalkeeper class, because the goalkeeper must not pursue the supporting attacker.</p>
<p style="text-align:left;">The function definition is the following:</p>
<p style="text-align:left;"><a href="http://pastebin.com/f6ab9a9dd">isClosestTeamMemberToSupportingOpponent and ClosestPlayerToSupportingOpponent</a></p>
<p style="text-align:left;">
<p style="text-align:left;">
<p style="text-align:left;"><strong>Keep the ball and wait the supporting player to reach his position.</strong></p>
<p style="text-align:left;">When the attacker goes to the opponent goal he will make a pass to the supporting player when he reaches his position or he will shoot if he finds a hole in the defense. But what happens if the supporting player is far from his position and the attacker doesn&#8217;t find a good shot? Then the attacker will go directly to the goalkeeper or to the end of the field. We must improve this behavior!.  You can see this situation at 0:48 of the first video.</p>
<p style="text-align:left;">To improve this, if the attacker is closer to the end of field than the supporting player to his final position, then the attacker must protect the ball from the closest opponent player.  If the two players are face to face, then the attacker must give back. You can see the code in this <a href="http://pastebin.com/f6921dd21">link</a>, you must understand basic algebra( vectors and dot products).</p>
<p style="text-align:left;">You can see the behavior in the following video. (The blue attacker player covers the ball until he can pass the ball to his partner)</p>
<p style="text-align:left;"><span class='embed-youtube' style='text-align:center; display:block;'><object width='497' height='310'><param name='movie' value='http://www.youtube.com/v/Ufr11ndw8Hg?version=3&rel=1&fs=1&showsearch=0&showinfo=1&iv_load_policy=1' /> <param name='allowfullscreen' value='true' /> <param name='wmode' value='opaque' /> <embed src='http://www.youtube.com/v/Ufr11ndw8Hg?version=3&rel=1&fs=1&showsearch=0&showinfo=1&iv_load_policy=1' type='application/x-shockwave-flash' allowfullscreen='true' width='497' height='310' wmode='opaque'></embed> </object></span></p>
<p style="text-align:left;">
<br />Posted in Artificial Intelligence  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nicolasbertoa.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nicolasbertoa.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/nicolasbertoa.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/nicolasbertoa.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/nicolasbertoa.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/nicolasbertoa.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/nicolasbertoa.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/nicolasbertoa.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/nicolasbertoa.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/nicolasbertoa.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/nicolasbertoa.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/nicolasbertoa.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/nicolasbertoa.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/nicolasbertoa.wordpress.com/245/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nicolasbertoa.wordpress.com&amp;blog=6698356&amp;post=245&amp;subd=nicolasbertoa&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://nicolasbertoa.wordpress.com/2009/10/28/simple-soccer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">nicolasbertoa</media:title>
		</media:content>
	</item>
		<item>
		<title>Finite State Machines</title>
		<link>http://nicolasbertoa.wordpress.com/2009/09/22/finite-state-machines/</link>
		<comments>http://nicolasbertoa.wordpress.com/2009/09/22/finite-state-machines/#comments</comments>
		<pubDate>Tue, 22 Sep 2009 02:07:35 +0000</pubDate>
		<dc:creator>Nicolas Bertoa</dc:creator>
				<category><![CDATA[Artificial Intelligence]]></category>

		<guid isPermaLink="false">http://nicolasbertoa.wordpress.com/?p=228</guid>
		<description><![CDATA[I will explain the Finite State Machines concept and I will give an application example. My explanation is based on Chapter 2 of Programming AI By Example book. Thanks Mat Buckland for your excellent book. You can download the source code and the executable from here. What is a Finite State Machine (FSM)? A finite state [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nicolasbertoa.wordpress.com&amp;blog=6698356&amp;post=228&amp;subd=nicolasbertoa&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><em>I will explain the </em><strong><em>Finite State Machines</em></strong><em> concept and I will give an application example. My explanation is based on </em><strong><em>Chapter 2 of Programming AI By Example</em></strong><em> book. Thanks Mat Buckland for your excellent book. You can download the source code and the executable from <a href="http://www.mediafire.com/download.php?kkarkkjo3mi">here</a></em><em>.</em></p>
<p style="text-align:center;"><strong>What is a Finite State Machine (FSM)?</strong></p>
<p>A finite state machine is a device, or a model of a device, which has a finite number of states it can be in at any given time and can operate on input to either make transitions from one state to another or to cause an output or action to take place. A finite state machine can only be in one state at any moment in time.</p>
<p>The idea behind a finite state machine, therefore, is to decompose an object&#8217;s behavior into easily manageable &#8220;chunks&#8221; or states.</p>
<p style="text-align:center;"><strong>Example:</strong></p>
<p>The ghosts behavior in Pac-Man is implemented as a finite state machine. There is one Evade state, which is the same for all ghosts, and then each ghost has its own Chase state, the actions of which are implemented differently for each ghost. The input of the player eating one of the power pills is the condition for the transition from Chase to Evade. The input of a timer running down is the condition for the transition from Evade to Chase.</p>
<p style="text-align:center;"><strong>Advantages:</strong></p>
<p><em><strong>They are quick and simple to code: </strong><span style="font-style:normal;">There are many ways of programming a finite state machine and almost all of them are reasonably simple to implement.</span></em></p>
<p><strong><em>They are easy to debug: </em><span style="font-weight:normal;">Because a game agent&#8217;s behavior is broken down into easily manageable chunks, if an agent starts acting strangely, it can be debugged by adding traced code to each state.</span></strong></p>
<p><strong><em>They have little computational overhead: </em><span style="font-weight:normal;">Finite state machines use hardly any precious processor time because they essentially follow hardcoded rules. There is no real &#8220;thinking&#8221; involved beyond the if-<em>this</em>-then-<em>that </em>sort of thought process.</span></strong></p>
<p><strong><em>They are intuitive: </em><span style="font-weight:normal;">It&#8217;s human nature to think about things as being in one state or another and we often refer to ourselves as being in such and such a state.</span></strong></p>
<p><strong><em>They are flexible: </em><span style="font-weight:normal;">A game agent&#8217;s finite state machine can easily be adjusted and tweaked by the programmer to provide the behavior required by the game designer.</span></strong></p>
<p style="text-align:center;"><strong>The West World Project:</strong></p>
<p>As a practical example of how to create agents that utilize finite state machines, we are going to look at a game environment where agents inhabit an Old West-style gold mining town named West World.</p>
<p>Any state changes or output from state actions will be sent as text to the console window.</p>
<p>There are four locations in West World: a <em>gold mine</em>, a <em>bank</em> where Bob can deposit any nuggets he finds, a <em>saloon</em> in which he can quench his thirst, and <em>home-sweet-home</em> where he can sleep the fatigue of the day away. Exactly where he goes, and what he does when he gets there, is determined by Bob&#8217;s current state. He will change states depending on variables like thirst, fatigue, and how much gold he has found hacking away down in the gold mine.</p>
<p style="text-align:left;"><strong>The Miner States:</strong></p>
<p>The gold miner will be able to enter one of four states:</p>
<p><em>EnterMineAndDigForNugget:</em><em> </em>If the miner is not located at the gold mine, he changes location. If already at the gold mine, he digs for nuggets of gold. When his pockets are full, Bob changes state to <em>VisitBankAndDepositGold</em>, and if while digging he finds himself thirsty, he will stop and change state to <em>QuenchThirst</em>.</p>
<p><em>VisitBankAndDepositGold: </em>In this state the miner will walk to the bank and deposit any nuggets he is carrying. If he then considers himself wealthy enough, he will change state to <em>GoHomeAndSleepTilRested</em>. Otherwise he will change state to <em>EnterMineAndDigForNugget</em>.</p>
<p><em>GoHomeAndSleepTilRested: </em>In this state the miner will return to his shack and sleep until his fatighe level drops below an acceptable level. He will then change state to <em>EnterMineAndDigForNugget.</em></p>
<p><em>QuenchThirst: </em>If at any time the miner feels thirsty (diggin&#8217; for gold is thusty work,a don&#8217;t aya know), he changes to this state and visits the saloon in order to buy a whiskey. When his thirst is quenched, he changes state to <em>EnterMineAndDigForNugget.</em></p>
<p style="text-align:left;"><strong>The Miner&#8217;s Wife States:</strong></p>
<p style="text-align:left;">Elsa is the miner&#8217;s wife and her states are the following:</p>
<p style="text-align:left;"><em>WifesGlobalState: </em>This state will execute always, because is global. When Elsa needs to go to the bathroom she will change to <em>VisitBathroom </em>state. When the miner send her the message &#8220;Msg_HiHoneyImHome&#8221;, then she will change to <em>CookStew</em> state. &#8220;</p>
<p style="text-align:left;"><em>DoHouseWork:</em> The most usual work will be the house work.</p>
<p style="text-align:left;"><em>VisitBathroom: </em>Elsa will do her needs and then he will revert back t her preovious state.</p>
<p style="text-align:left;"><em>CookStew: </em>In this state she will send herself the message &#8220;Msg_StewReady&#8221; and when she receive the message, she will send the message &#8220;Msg_StewReady&#8221; to his husband and she will revert back to his previous state.</p>
<p style="text-align:left;"><strong>Doggy States:</strong></p>
<p style="text-align:left;">In addition to this application I created Doggy, the family&#8217;s pet.  Its states are the following:</p>
<p style="text-align:left;"><em>AtDogHouse: </em>In this state, Doggy is playing and resting at the dog house. When it feels hungry, it will change to <em>WaitingFood </em>state.</p>
<p style="text-align:left;"><em>WaitingFood: </em>In this state Doggy will send the message &#8220;Msg_DogIsHungry&#8221; to Elsa because it needs to eat. When Elsa sends its the message &#8220;Msg_DogFoodReady&#8221;, Doggy changes to <em>EatingFood </em>state.</p>
<p style="text-align:left;"><em>EatingFood: </em>In this state, Doggy is eating. When it is satisfied, it will change to <em>AtDogHouse</em> state.</p>
<p style="text-align:left;"><em><span style="font-style:normal;"><br />
</span></em></p>
<br />Posted in Artificial Intelligence  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nicolasbertoa.wordpress.com/228/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nicolasbertoa.wordpress.com/228/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/nicolasbertoa.wordpress.com/228/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/nicolasbertoa.wordpress.com/228/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/nicolasbertoa.wordpress.com/228/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/nicolasbertoa.wordpress.com/228/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/nicolasbertoa.wordpress.com/228/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/nicolasbertoa.wordpress.com/228/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/nicolasbertoa.wordpress.com/228/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/nicolasbertoa.wordpress.com/228/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/nicolasbertoa.wordpress.com/228/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/nicolasbertoa.wordpress.com/228/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/nicolasbertoa.wordpress.com/228/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/nicolasbertoa.wordpress.com/228/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nicolasbertoa.wordpress.com&amp;blog=6698356&amp;post=228&amp;subd=nicolasbertoa&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://nicolasbertoa.wordpress.com/2009/09/22/finite-state-machines/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">nicolasbertoa</media:title>
		</media:content>
	</item>
		<item>
		<title>Igor</title>
		<link>http://nicolasbertoa.wordpress.com/2009/05/27/igor/</link>
		<comments>http://nicolasbertoa.wordpress.com/2009/05/27/igor/#comments</comments>
		<pubDate>Wed, 27 May 2009 16:34:20 +0000</pubDate>
		<dc:creator>Nicolas Bertoa</dc:creator>
				<category><![CDATA[Game Development]]></category>

		<guid isPermaLink="false">http://nicolasbertoa.wordpress.com/?p=95</guid>
		<description><![CDATA[Description: Igor is a 3D FPS made with C++, Irrlicht engine and IrrWizard framework. I learned to use the Irrlicht engine first and I found IrrWizard. It is a game framework that helped me to develop the game. It contains things like weapon and enemy&#8217;s managers, pathdinfing, etc. I fixed some bugs and added and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nicolasbertoa.wordpress.com&amp;blog=6698356&amp;post=95&amp;subd=nicolasbertoa&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>Description:</strong><br />
Igor is a 3D FPS made with C++, <a href="http://irrlicht.sourceforge.net/">Irrlicht engine</a> and <a href="http://irrwizard.sourceforge.net/wiki/index.php/Main_Page">IrrWizard framework</a>. I learned to use the Irrlicht engine first and I found IrrWizard. It is a game framework that helped me to develop the game. It contains things like weapon and enemy&#8217;s managers, pathdinfing, etc. I fixed some bugs and added and changed some code that I needed. You are a warrior and must kill all the monsters at each level. When you killed all the level&#8217;s monters you must kill the boss. There are two levels and you can use two different weapons. This was my first 3D game.</p>
<p><strong>User Input: </strong>I used events to manage user input. They are integrated with the Irrlicht engine.</p>
<p><strong>GUI: </strong>I used the GUI that comes with Irrlicht engine.</p>
<p><strong>Audio: </strong>Set up with <a href="http://audiere.sourceforge.net/">Audiere</a> library.</p>
<p><strong>Project Team: </strong><br />
Nicolas Bertoa (Programmer)</p>
<p><strong>Download Link:</strong><br />
<a href="http://www.mediafire.com/download.php?ljwzojnnvtz">http://www.mediafire.com/download.php?ljwzojnnvtz</a></p>
<p><strong>Code Samples:</strong><br />
<a href="http://nicolasbertoa.pastebin.com/f4ca18918">GameStateLevel02.h</a><br />
<a href="http://nicolasbertoa.pastebin.com/f4d962860">GameStateLevel02.cpp</a><br />
<a href="http://nicolasbertoa.pastebin.com/f326d693f">GameMenuState.h</a><br />
<a href="http://nicolasbertoa.pastebin.com/f7add605c">GameMenuState.cpp</a></p>
<p><strong>Screenshots and Video:</strong></p>
<div id="attachment_130" class="wp-caption alignnone" style="width: 507px"><img class="size-full wp-image-130" title="igor1" src="http://nicolasbertoa.files.wordpress.com/2009/05/igor11.png?w=497&#038;h=372" alt="Igor screenshot 1" width="497" height="372" /><p class="wp-caption-text">Igor screenshot 1</p></div>
<div id="attachment_126" class="wp-caption alignnone" style="width: 507px"><img class="size-full wp-image-126" title="igor2" src="http://nicolasbertoa.files.wordpress.com/2009/05/igor2.png?w=497&#038;h=372" alt="Igor ScreenShot 2" width="497" height="372" /><p class="wp-caption-text">Igor ScreenShot 2</p></div>
<span class='embed-youtube' style='text-align:center; display:block;'><object width='497' height='310'><param name='movie' value='http://www.youtube.com/v/b52i_tpet8k?version=3&rel=1&fs=1&showsearch=0&showinfo=1&iv_load_policy=1' /> <param name='allowfullscreen' value='true' /> <param name='wmode' value='opaque' /> <embed src='http://www.youtube.com/v/b52i_tpet8k?version=3&rel=1&fs=1&showsearch=0&showinfo=1&iv_load_policy=1' type='application/x-shockwave-flash' allowfullscreen='true' width='497' height='310' wmode='opaque'></embed> </object></span>
<br />Posted in Game Development  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nicolasbertoa.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nicolasbertoa.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/nicolasbertoa.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/nicolasbertoa.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/nicolasbertoa.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/nicolasbertoa.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/nicolasbertoa.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/nicolasbertoa.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/nicolasbertoa.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/nicolasbertoa.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/nicolasbertoa.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/nicolasbertoa.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/nicolasbertoa.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/nicolasbertoa.wordpress.com/95/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nicolasbertoa.wordpress.com&amp;blog=6698356&amp;post=95&amp;subd=nicolasbertoa&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://nicolasbertoa.wordpress.com/2009/05/27/igor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">nicolasbertoa</media:title>
		</media:content>

		<media:content url="http://nicolasbertoa.files.wordpress.com/2009/05/igor11.png" medium="image">
			<media:title type="html">igor1</media:title>
		</media:content>

		<media:content url="http://nicolasbertoa.files.wordpress.com/2009/05/igor2.png" medium="image">
			<media:title type="html">igor2</media:title>
		</media:content>
	</item>
		<item>
		<title>Ace Slayer</title>
		<link>http://nicolasbertoa.wordpress.com/2009/02/28/ace-slayer/</link>
		<comments>http://nicolasbertoa.wordpress.com/2009/02/28/ace-slayer/#comments</comments>
		<pubDate>Sat, 28 Feb 2009 09:08:56 +0000</pubDate>
		<dc:creator>Nicolas Bertoa</dc:creator>
				<category><![CDATA[Game Development]]></category>

		<guid isPermaLink="false">http://nicolasbertoa.wordpress.com/?p=23</guid>
		<description><![CDATA[Description: Ace Slayer is a 2D space shooter made with C++ and SDL. This was my first game project. I enjoy the experience because first I designed the object oriented diagram thinking in class functionality and then I developed the game. You can choose between 3 ships, each with different characteristics. You must kill all [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nicolasbertoa.wordpress.com&amp;blog=6698356&amp;post=23&amp;subd=nicolasbertoa&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>Description:</strong><br />
<strong><span style="font-weight:normal;">Ace Slayer is a 2D space shooter made with C++ and <a href="http://www.libsdl.org">SDL</a>. This was my first game project. I enjoy the experience because first I designed the object oriented diagram thinking in class functionality and then I developed the game. You can choose between 3 ships, each with different characteristics. You must kill all the ships at each level and then kill the boss. There are 3 levels.</span></strong></p>
<p><strong>User Input: </strong>I used SDL to control the user input.</p>
<p><strong>GUI: </strong>I used <a href="http://www.libsdl.org/projects/SDL_ttf/">SDL_Ttf</a> library to show fonts.<strong> </strong>I display the player&#8217;s score and boss life. The user can interact with the main menu through the keyboard.</p>
<p><strong>Audio: </strong> Set up audio with <a href="http://www.libsdl.org/projects/SDL_mixer/">SDL_Mixer</a> library</p>
<p><strong>Project Team:</strong><br />
Nicolas Bertoa (Programmer)<br />
Mariano Bertoa (Menu Designer)</p>
<p><strong>Code Samples:</strong><br />
<a href="http://nicolasbertoa.pastebin.com/f2eb09e85">bullet.h</a><br />
<a href="http://nicolasbertoa.pastebin.com/f2b034d21">bullet.cpp</a></p>
<p><strong>Download Link:<br />
<span style="font-weight:normal;"><a href="http://www.mediafire.com/?kydwj3mufml">http://www.mediafire.com/?kydwj3mufml</a></span></strong></p>
<p><strong>Screenshots and Video:</strong></p>
<div id="attachment_6" class="wp-caption alignnone" style="width: 507px"><img class="size-full wp-image-6" title="as-01" src="http://nicolasbertoa.files.wordpress.com/2009/02/as-03.jpg?w=497&#038;h=372" alt="Ace Slayer screenshot 1" width="497" height="372" /><p class="wp-caption-text">Ace Slayer screenshot 1</p></div>
<div id="attachment_5" class="wp-caption alignnone" style="width: 507px"><img class="size-full wp-image-5" title="as-02" src="http://nicolasbertoa.files.wordpress.com/2009/02/as-02.jpg?w=497&#038;h=372" alt="Ace Slayer screenshot 2" width="497" height="372" /><p class="wp-caption-text">Ace Slayer screenshot 2</p></div>
<span class='embed-youtube' style='text-align:center; display:block;'><object width='497' height='310'><param name='movie' value='http://www.youtube.com/v/3HB6SuySIvk?version=3&rel=1&fs=1&showsearch=0&showinfo=1&iv_load_policy=1' /> <param name='allowfullscreen' value='true' /> <param name='wmode' value='opaque' /> <embed src='http://www.youtube.com/v/3HB6SuySIvk?version=3&rel=1&fs=1&showsearch=0&showinfo=1&iv_load_policy=1' type='application/x-shockwave-flash' allowfullscreen='true' width='497' height='310' wmode='opaque'></embed> </object></span>
<br />Posted in Game Development  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nicolasbertoa.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nicolasbertoa.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/nicolasbertoa.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/nicolasbertoa.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/nicolasbertoa.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/nicolasbertoa.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/nicolasbertoa.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/nicolasbertoa.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/nicolasbertoa.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/nicolasbertoa.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/nicolasbertoa.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/nicolasbertoa.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/nicolasbertoa.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/nicolasbertoa.wordpress.com/23/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nicolasbertoa.wordpress.com&amp;blog=6698356&amp;post=23&amp;subd=nicolasbertoa&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://nicolasbertoa.wordpress.com/2009/02/28/ace-slayer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">nicolasbertoa</media:title>
		</media:content>

		<media:content url="http://nicolasbertoa.files.wordpress.com/2009/02/as-03.jpg" medium="image">
			<media:title type="html">as-01</media:title>
		</media:content>

		<media:content url="http://nicolasbertoa.files.wordpress.com/2009/02/as-02.jpg" medium="image">
			<media:title type="html">as-02</media:title>
		</media:content>
	</item>
	</channel>
</rss>
