<?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>Ludum Dare &#187; GBGames</title>
	<atom:link href="http://www.ludumdare.com/compo/author/gbgames/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ludumdare.com/compo</link>
	<description>A tri-annual 48 hour solo game development competition.</description>
	<lastBuildDate>Wed, 08 Feb 2012 14:14:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Hot Potato Windows Port Now Available!</title>
		<link>http://www.ludumdare.com/compo/2011/05/04/hot-potato-windows-port-now-available/</link>
		<comments>http://www.ludumdare.com/compo/2011/05/04/hot-potato-windows-port-now-available/#comments</comments>
		<pubDate>Wed, 04 May 2011 20:28:03 +0000</pubDate>
		<dc:creator>GBGames</dc:creator>
				<category><![CDATA[LD #20 - It's Dangerous to go Alone! Take This!]]></category>

		<guid isPermaLink="false">http://www.ludumdare.com/compo/?p=52968</guid>
		<description><![CDATA[I updated my final Ludum Dare #20 Jam entry to include a link to the Windows port of Hot Potato. Whew! Now I can get back to working on Stop That Hero!. B-)]]></description>
			<content:encoded><![CDATA[<p>I updated my <a href="http://www.ludumdare.com/compo/ludum-dare-20/?action=preview&#038;uid=251">final Ludum Dare #20 Jam entry</a> to include a link to the Windows port of <i>Hot Potato</i>. Whew! Now I can get back to working on <i>Stop That Hero!</i>. B-)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ludumdare.com/compo/2011/05/04/hot-potato-windows-port-now-available/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hot Potato Development Time Lapse</title>
		<link>http://www.ludumdare.com/compo/2011/05/02/hot-potato-development-time-lapse/</link>
		<comments>http://www.ludumdare.com/compo/2011/05/02/hot-potato-development-time-lapse/#comments</comments>
		<pubDate>Tue, 03 May 2011 02:46:33 +0000</pubDate>
		<dc:creator>GBGames</dc:creator>
				<category><![CDATA[LD #20 - It's Dangerous to go Alone! Take This!]]></category>
		<category><![CDATA[timelapse]]></category>

		<guid isPermaLink="false">http://www.ludumdare.com/compo/?p=52320</guid>
		<description><![CDATA[Here&#8217;s a video of my desktop through almost 72 hours of development of Hot Potato compressed into less than 2.5 minutes:]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a video of my desktop through almost 72 hours of development of Hot Potato compressed into less than 2.5 minutes:</p>
<p><iframe width="425" height="349" src="http://www.youtube.com/embed/REEjow3U6sM" frameborder="0" allowfullscreen></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ludumdare.com/compo/2011/05/02/hot-potato-development-time-lapse/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hot Potato is Finished</title>
		<link>http://www.ludumdare.com/compo/2011/05/02/hot-potato-is-finished/</link>
		<comments>http://www.ludumdare.com/compo/2011/05/02/hot-potato-is-finished/#comments</comments>
		<pubDate>Tue, 03 May 2011 02:01:30 +0000</pubDate>
		<dc:creator>GBGames</dc:creator>
				<category><![CDATA[LD #20 - It's Dangerous to go Alone! Take This!]]></category>
		<category><![CDATA[final]]></category>

		<guid isPermaLink="false">http://www.ludumdare.com/compo/?p=52303</guid>
		<description><![CDATA[It&#8217;s complete. I&#8217;m not satisfied with the balance or the feel, but Hot Potato is finished and submitted. Oh. I should rebuild it on my Debian system since other people tend to have problems playing my game when I build a project on my Ubuntu system I might make a Windows port soon, but after [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s complete. I&#8217;m not satisfied with the balance or the feel, but <i>Hot Potato</i> is finished and submitted.</p>
<p><a href="http://www.flickr.com/photos/29086141@N03/5682406570/" title="Screenshot - Final with pedestrians by gbgames, on Flickr"><img src="http://farm6.static.flickr.com/5187/5682406570_26daf503a9.jpg" width="500" height="375" alt="Screenshot - Final with pedestrians"/></a></p>
<p><s>Oh. I should rebuild it on my Debian system since other people tend to have problems playing my game when I build a project on my Ubuntu system I might make a Windows port soon, but after 72 hours, I&#8217;m beat. I&#8217;ll update this post when I get those two things done. </s></p>
<p>Updated! I created the Windows port, and I rebuilt the game on my Debian system so that a wider variety of Linux-based systems should just work out of the box.</p>
<p>You can download it for:<br />
- <a href="http://dl.dropbox.com/u/9489022/gbgames-ld20-0.1.1-Linux.tar.gz"> GNU/Linux</a> (1.6MB tar.gz)<br />
- <a href="http://dl.dropbox.com/u/9489022/gbgames-ld20-Windows.zip">Windows </a> (3.12MB .zip)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ludumdare.com/compo/2011/05/02/hot-potato-is-finished/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Passing Through Chains of Entities Works Now</title>
		<link>http://www.ludumdare.com/compo/2011/05/02/passing-through-chains-of-entities-works-now/</link>
		<comments>http://www.ludumdare.com/compo/2011/05/02/passing-through-chains-of-entities-works-now/#comments</comments>
		<pubDate>Mon, 02 May 2011 21:07:36 +0000</pubDate>
		<dc:creator>GBGames</dc:creator>
				<category><![CDATA[LD #20 - It's Dangerous to go Alone! Take This!]]></category>

		<guid isPermaLink="false">http://www.ludumdare.com/compo/?p=52060</guid>
		<description><![CDATA[Even without Pedestrians, I might have implemented one of the items on the list since I wanted to change the behavior of package passing. Now when a package is being shoved down a chain, the last courier in the chain receives the package. Technically, the only entities that would break the chain are the VIP [...]]]></description>
			<content:encoded><![CDATA[<p>Even without Pedestrians, I might have implemented one of the items on the list since I wanted to change the behavior of package passing.</p>
<p>Now when a package is being shoved down a chain, the last courier in the chain receives the package.  Technically, the only entities that would break the chain are the VIP and the Enemy Agents, so it should work once Pedestrians are in. I won&#8217;t scratch it off my list, however, until I code up some Pedestrian entities and test it out. </p>
<p>I&#8217;m getting concerned that my game world is too big. As I playtest, I realize that I&#8217;ve never made it all the way across to the VIP before the agents intercept my couriers, and it&#8217;s kind of tedious to click click click to get there. If Pedestrians make it take even longer to get to the VIP, I might need to shrink the plaza to avoid player tedium and RSI.</p>
<p>What’s left:<br />
<s>- moving the agents towards the package holder</s><br />
<s>- win condition check</s><br />
<s>- lose condition check</s><br />
<s>- allow multiple couriers to move during move phase</s><br />
<s>- shove passes through chain of couriers to last courier instead of next one </s><br />
- shoving package through pedestrians<br />
- adding pedestrians<br />
- moving pedestrians</p>
<p>5 hours left to go. Who wants to go for a stroll through the plaza?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ludumdare.com/compo/2011/05/02/passing-through-chains-of-entities-works-now/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Multiple Couriers Can Move In One Phase</title>
		<link>http://www.ludumdare.com/compo/2011/05/02/multiple-couriers-can-move-in-one-phase/</link>
		<comments>http://www.ludumdare.com/compo/2011/05/02/multiple-couriers-can-move-in-one-phase/#comments</comments>
		<pubDate>Mon, 02 May 2011 18:30:34 +0000</pubDate>
		<dc:creator>GBGames</dc:creator>
				<category><![CDATA[LD #20 - It's Dangerous to go Alone! Take This!]]></category>

		<guid isPermaLink="false">http://www.ludumdare.com/compo/?p=51992</guid>
		<description><![CDATA[Moving multiple couriers was a little tricky, but it was mainly because I didn&#8217;t realize what exactly I was supposed to be checking in my code. I originally created a mapping of Courier pointers to bool values to represent whether a courier has been moved already. std::map&#60;Courier *, bool&#62; m_couriersHaveMoved; At the beginning of the [...]]]></description>
			<content:encoded><![CDATA[<p>Moving multiple couriers was a little tricky, but it was mainly because I didn&#8217;t realize what exactly I was supposed to be checking in my code.</p>
<p>I originally created a mapping of Courier pointers to bool values to represent whether a courier has been moved already. </p>
<p><code>std::map&lt;Courier *, bool&gt; m_couriersHaveMoved;</code></p>
<p>At the beginning of the Move phase, all of the values are set to false. When you select and move a Courier, its value is changed to true to indicate that it has already been moved. This way, during the Move phase, I can highlight only the active Couriers and prevent inactive Couriers from being clickable. As Couriers are moved, they become inactive and ineligible for later selection during this Move phase, and when it is time to move the Couriers again, they are reset to being active. Great!</p>
<p>The problem came when I tried to abuse those values to check if the move phase was completed.</p>
<p>It made sense at first. The Move phase is over when you have moved all of your Couriers. Checking if the Move phase is over was as simple as checking if any of the existing couriers had an associated false value in m_couriersHaveMoved.</p>
<p>Except there was a problem. If a courier COULD be moved but can&#8217;t due to the fact that all adjacent tiles are occupied, the Move phase would wait for you to click on a Courier, but none are selectable, so you wait forever, or at least until you pause the game and click &#8220;Return to Menu&#8221; to start over or quit in frustration.</p>
<p>So I tried to make sure that blocked couriers were considered finished with their move. Unfortunately, this had the side effect that if a courier is blocked at some point during the Move phase, it can&#8217;t be selected and moved later even if an adjacent tile opens up. Well, that&#8217;s unintuitive for the player! </p>
<p>Eventually I realized that I was trying to use the wrong solution to the problem.  The actual problem I&#8217;m trying to solve is knowing when the Move phase is completed. The solution has nothing to do with whether or not all of the couriers have made their moves. The solution is to check whether or not there are any tiles adjacent to ACTIVE couriers that are empty. </p>
<p>So now I have the ability to move multiple Couriers in the same Move phase, and I solved the new application-hanging problems that cropped up involving the difference between an inactive Courier and an active Courier that just happens to be unable to move at this time. </p>
<p>What’s left:<br />
<s>- moving the agents towards the package holder</s><br />
<s>- win condition check</s><br />
<s>- lose condition check</s><br />
<s>- allow multiple couriers to move during move phase</s><br />
- adding pedestrians<br />
- moving pedestrians<br />
- shoving package through pedestrians</p>
<p>Shoving is broken. It has been broken, but it wasn&#8217;t until I was able to use it more often that I can see what&#8217;s wrong. </p>
<p>Basically, shoving works fine if you shove a single Entity into the next empty square. There&#8217;s a potential bug when you shove entities into other entities. If an entity later down the chain can&#8217;t be shoved, it won&#8217;t be. But the entities earlier in the chain are still shoved, so it looks like one of the entities eats the other. </p>
<p>I need to do a complete chain check first before a shove is allowed. If the check says it is not possible, whether due to the existence of an unshoveable entity or the border of the game world, then no shove happens. If the check says it is possible, then the recursive shoving algorithm can go forward without a hitch. </p>
<p>Also, since shoving is how the package is passed off, I&#8217;d like the package to also shove through to the end of the chain if it is possible. Right now, it only passes to the first entity being shoved. </p>
<p>So with 7.5 hours left to go, I&#8217;m fixing shove mechanics before adding Pedestrians to make the game more interesting. After that, I suppose I would have time for sound effects and polish, but I hope to submit this game to the Jam long before the deadline so I can get back to actual work. Besides, it is Monday, and &#8220;Chuck&#8221; is on tonight.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ludumdare.com/compo/2011/05/02/multiple-couriers-can-move-in-one-phase/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Thrill of Victory, the Agony of Defeat</title>
		<link>http://www.ludumdare.com/compo/2011/05/02/the-thrill-of-victory-the-agony-of-defeat/</link>
		<comments>http://www.ludumdare.com/compo/2011/05/02/the-thrill-of-victory-the-agony-of-defeat/#comments</comments>
		<pubDate>Mon, 02 May 2011 15:44:22 +0000</pubDate>
		<dc:creator>GBGames</dc:creator>
				<category><![CDATA[LD #20 - It's Dangerous to go Alone! Take This!]]></category>

		<guid isPermaLink="false">http://www.ludumdare.com/compo/?p=51895</guid>
		<description><![CDATA[Behold, win and lose conditions are in! Basically, if an enemy agent is next to the courier holding the package, you lose. If, however, the VIP is next to the courier holding the package, you win. So technically, I have a game finished. It&#8217;s very unfun, very unpolished, and very uninteresting, but you can make [...]]]></description>
			<content:encoded><![CDATA[<p>Behold, win and lose conditions are in!</p>
<p><a href="http://www.flickr.com/photos/29086141@N03/5679839177/" title="Screenshot - Defeated In Delivery Battle by gbgames, on Flickr"><img src="http://farm6.static.flickr.com/5190/5679839177_792193eec9.jpg" width="500" height="375" alt="Screenshot - Defeated In Delivery Battle"></a></p>
<p>Basically, if an enemy agent is next to the courier holding the package, you lose.<br />
If, however, the VIP is next to the courier holding the package, you win.</p>
<p>So technically, I have a game finished. It&#8217;s very unfun, very unpolished, and very uninteresting, but you can make moves and eventually lose or win. </p>
<p>What’s left:<br />
<s>- moving the agents towards the package holder</s><br />
<s>- win condition check</s><br />
<s>- lose condition check</s><br />
- allow multiple couriers to move during move phase<br />
- adding pedestrians<br />
- moving pedestrians<br />
- shoving package through pedestrians</p>
<p>Right now, it is very difficult to get past the agents because it&#8217;s only possible to move a single courier in the move phase, and passing the package isn&#8217;t very effective. Allowing multipler couriers to move at once during the move phase should help even the odds and make it easier to pass the package around. </p>
<p>Randomly generated Pedestrians should add some flavor to the game. In a busy plaza, it might be difficult for couriers and agents to move around freely. Plus, shoving the package to teammates gets more fun if you can leverage innocent pedestrians, although it opens up some difficulties in the code and design. What if you shove a package into a Pedestrian who shoves it to another Pedestrian who ends up in an empty space? Should the package only get passed if you can end up with a courier at the end of the shoving chain? I&#8217;ll try to keep it simple and go from there.</p>
<p>The UI is a little frustrating. If you can make a move or if you can shove, you MUST. Currently, I have no way to say &#8220;No, I like where my couriers are, and I don&#8217;t feel like shoving this turn.&#8221; While I can fix it by adding a &#8220;Done with turn phase&#8221; button, maybe the requirement is fine. Checkers, if played correctly, enforces a &#8220;you must jump if you can jump&#8221; rule, which makes it very strategic. I&#8217;ll leave it until the end.</p>
<p>Another frustrating thing is that there is no way to cancel a decision before you&#8217;ve decided. If you click on a courier, you can&#8217;t change your mind and pick a different one. It&#8217;s fine if you&#8217;re playing chess to require that touched pieces must be moved, but if you accidentally click on the entity during the shove phase right after moving it, it can be annoying to see that you have to make a shove move that you didn&#8217;t want to make. Unfortunately, I&#8217;ll also leave a fix for this annoyance until the end.  </p>
<p>There are 10 hours left in the Jam. While I continue my work, you can watch this series of videos of someone playing <i>The Legend of Zelda</i>, only he decided to do so without taking &#8220;this&#8221;:</p>
<p><iframe width="560" height="349" src="http://www.youtube.com/embed/k2uYjIqE6Ao" frameborder="0" allowfullscreen></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ludumdare.com/compo/2011/05/02/the-thrill-of-victory-the-agony-of-defeat/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Looks Like Another Jam Entry for Me</title>
		<link>http://www.ludumdare.com/compo/2011/05/01/looks-like-another-jam-entry-for-me/</link>
		<comments>http://www.ludumdare.com/compo/2011/05/01/looks-like-another-jam-entry-for-me/#comments</comments>
		<pubDate>Mon, 02 May 2011 03:38:46 +0000</pubDate>
		<dc:creator>GBGames</dc:creator>
				<category><![CDATA[LD #20 - It's Dangerous to go Alone! Take This!]]></category>
		<category><![CDATA[foodphoto]]></category>

		<guid isPermaLink="false">http://www.ludumdare.com/compo/?p=51463</guid>
		<description><![CDATA[So 48 hours came and went, and I have no game to submit. B-( In the last few minutes of Submission Hour, I finally had Enemy Agents who moved towards the package holder. I need to make sure multiple couriers can move at once during the move phase. The agents currently have too much of [...]]]></description>
			<content:encoded><![CDATA[<p>So 48 hours came and went, and I have no game to submit. B-(</p>
<p>In the last few minutes of Submission Hour, I finally had Enemy Agents who moved towards the package holder.  I need to make sure multiple couriers can move at once during the move phase. The agents currently have too much of an advantage if you can only move one courier at a time.</p>
<p><a href="http://www.flickr.com/photos/29086141@N03/5678133961/" title="Screenshot - Run Away From The Agents by gbgames, on Flickr"><img src="http://farm6.static.flickr.com/5224/5678133961_017c04301c.jpg" width="500" height="375" alt="Screenshot - Run Away From The Agents"></a></p>
<p>I had to deal with a few seg faults getting to this point, but they were relatively easy to solve compared to what I&#8217;ve written about for this LD. </p>
<p>What&#8217;s left:<br />
<s>- moving the agents towards the package holder</s><br />
- adding pedestrians<br />
- moving pedestrians<br />
- win condition check<br />
- lose condition check<br />
- allow multiple couriers to move during move phase</p>
<p>And I have 24 hours to get all of it done and submit a Jam entry.</p>
<p>Actually, I now have enough to submit what could technically be called a game if I can code up the win and lose conditions. They&#8217;re easy and low-hanging fruit, so I&#8217;ll tackle those first thing in the morning. It&#8217;s too bad I don&#8217;t have one more hour, and it&#8217;s too bad it took so long to start working on the actual game play. My game could have been among the nearly 300 entries if I had less to do from scratch.</p>
<p>The good news is that next LD, I might be able to take this project and gut out just the <i>Hot Potato</i>-specific parts, and I&#8217;ll be able to build a simple, LD-ready project from the moment the theme is announced.  This LD showed me that I am finally starting to get a collection of boiler-plate code that&#8217;s easy to migrate from one project to another without too much hacking.</p>
<p><a href="http://www.flickr.com/photos/29086141@N03/5678713998/" title="00001 by gbgames, on Flickr"><img src="http://farm6.static.flickr.com/5141/5678713998_dbfd44cca2.jpg" width="500" height="375" alt="00001"></a></p>
<p>For now, I&#8217;m getting some rest. Congratulations to everyone who submitted on time, and good luck to all of the other jammers!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ludumdare.com/compo/2011/05/01/looks-like-another-jam-entry-for-me/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Moving Couriers and Game Play</title>
		<link>http://www.ludumdare.com/compo/2011/05/01/moving-couriers-and-game-play/</link>
		<comments>http://www.ludumdare.com/compo/2011/05/01/moving-couriers-and-game-play/#comments</comments>
		<pubDate>Mon, 02 May 2011 02:09:55 +0000</pubDate>
		<dc:creator>GBGames</dc:creator>
				<category><![CDATA[LD #20 - It's Dangerous to go Alone! Take This!]]></category>

		<guid isPermaLink="false">http://www.ludumdare.com/compo/?p=51166</guid>
		<description><![CDATA[In the final stretch, I can finally DO something in the game. In the Move phase, I can select couriers and move them to open adjacent tiles. In the Shove phase, I can select couriers and shove another courier, and if the shover has the package, it is passed off. What&#8217;s left: - moving the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/29086141@N03/5677661379/" title="Screenshot - Can Select And Move Couriers Now by gbgames, on Flickr"><img src="http://farm6.static.flickr.com/5103/5677661379_0a85982236.jpg" width="500" height="375" alt="Screenshot - Can Select And Move Couriers Now"></a></p>
<p>In the final stretch, I can finally DO something in the game. </p>
<p><a href="http://www.flickr.com/photos/29086141@N03/5677882033/" title="Screenshot - Shoving Is In by gbgames, on Flickr"><img src="http://farm6.static.flickr.com/5070/5677882033_b13f3e1f3d.jpg" width="500" height="375" alt="Screenshot - Shoving Is In"></a></p>
<p>In the Move phase, I can select couriers and move them to open adjacent tiles. </p>
<p>In the Shove phase, I can select couriers and shove another courier, and if the shover has the package, it is passed off. </p>
<p>What&#8217;s left:<br />
- moving the agents towards the package holder<br />
- adding pedestrians<br />
- moving pedestrians<br />
- win condition check<br />
- lose condition check</p>
<p>Can I get at least a good chunk of it done during Submission Hour? I hope so.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ludumdare.com/compo/2011/05/01/moving-couriers-and-game-play/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quick Dinner</title>
		<link>http://www.ludumdare.com/compo/2011/05/01/quick-dinner/</link>
		<comments>http://www.ludumdare.com/compo/2011/05/01/quick-dinner/#comments</comments>
		<pubDate>Mon, 02 May 2011 00:36:24 +0000</pubDate>
		<dc:creator>GBGames</dc:creator>
				<category><![CDATA[LD #20 - It's Dangerous to go Alone! Take This!]]></category>
		<category><![CDATA[foodphoto]]></category>

		<guid isPermaLink="false">http://www.ludumdare.com/compo/?p=50865</guid>
		<description><![CDATA[My fiancé is fantastic. 1.5 hours left.]]></description>
			<content:encoded><![CDATA[<p>My fiancé is fantastic. </p>
<p><a href="http://www.flickr.com/photos/29086141@N03/5678140754/" title="Baked potatoes and vegetables by gbgames, on Flickr"><img src="http://farm6.static.flickr.com/5106/5678140754_a02d23b1c9.jpg" width="500" height="375" alt="Baked potatoes and vegetables"></a></p>
<p>1.5 hours left. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.ludumdare.com/compo/2011/05/01/quick-dinner/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stupid Code&#8230;</title>
		<link>http://www.ludumdare.com/compo/2011/05/01/stupid-code/</link>
		<comments>http://www.ludumdare.com/compo/2011/05/01/stupid-code/#comments</comments>
		<pubDate>Mon, 02 May 2011 00:03:22 +0000</pubDate>
		<dc:creator>GBGames</dc:creator>
				<category><![CDATA[LD #20 - It's Dangerous to go Alone! Take This!]]></category>

		<guid isPermaLink="false">http://www.ludumdare.com/compo/?p=50799</guid>
		<description><![CDATA[Here&#8217;s a little C++ quiz for you. What&#8217;s wrong with this code? struct Foo { std::vector&#60;Bar&#62; bars; createBar(int x); }; void Foo::createBar(int x) { Bar bar; bars.push_back(bar); someOtherThing[x].pointerToBar = &#038;bars.back(); } { createBar(1); createBar(2); createBar(3); } [On that note, does anyone know a good C++ code renderer for WordPress? I apologize for the formatting.] What&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a little C++ quiz for you. What&#8217;s wrong with this code?</p>
<p><code>struct Foo<br />
{<br />
   std::vector&lt;Bar&gt; bars;<br />
   createBar(int x);<br />
};</code></p>
<p><code>void Foo::createBar(int x)<br />
{<br />
    Bar bar;<br />
    bars.push_back(bar);<br />
    someOtherThing[x].pointerToBar = &#038;bars.back();<br />
}</code></p>
<p><code>{<br />
    createBar(1);<br />
    createBar(2);<br />
    createBar(3);<br />
}</code></p>
<p>[On that note, does anyone know a good C++ code renderer for WordPress? I apologize for the formatting.]</p>
<p>What&#8217;s happening in the code is that you call createBar() to create a series of bars. These bars get stored in a vector of Bars, which is fine.</p>
<p>someOtherThing is using that vector to store a collection of pointers to those Bars. Seems innocent enough. </p>
<p>In fact, if you later did something like:</p>
<p>someOtherThing[3].pointerToBar-&gt;someBarThing();</p>
<p>It would work perfectly fine.</p>
<p>But if you did:</p>
<p>someOtherThing[1].pointerToBar-&gt;someBarThing();</p>
<p>You&#8217;d segfault.  Why is the 1st Bar suddenly invalid?</p>
<p>The problem is that someOtherThing is getting pointers to Bars that exist in the vector at that time they are requested. The next time a Bar gets added to the vector, however, might require the vector to be resized, and so while the Bars in the vector are all there, they basically moved house, so the pointers you stored while creating them are no longer valid.</p>
<p>And that is why I took so long to figure out why my Courier selection code would crash on only some of the Couriers, and that is why I probably won&#8217;t get an entry submitted for Ludum Dare #20.</p>
<p>2 hours left to go. I&#8217;m going to get dinner. </p>
<p>In the meantime, here&#8217;s a screenshot showing the couriers on the left and the enemy agents on the right. </p>
<p><a href="http://www.flickr.com/photos/29086141@N03/5676358859/" title="Screenshot - Now With Package by gbgames, on Flickr"><img src="http://farm6.static.flickr.com/5109/5676358859_ccf1d53f68.jpg" width="500" height="375" alt="Screenshot - Now With Package"></a></p>
<p>I now have the ability to select the courier you want to move once I moved the &#8220;store pointers&#8221; work into a batch operation. I thought not using pointers in the first place would save me headaches, but I guess I should have just new-ed up the Couriers in the first place. B-(</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ludumdare.com/compo/2011/05/01/stupid-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rendering the Plaza and The Highly-Anticipated Lunch</title>
		<link>http://www.ludumdare.com/compo/2011/05/01/rendering-the-plaza-and-the-highly-anticipated-lunch/</link>
		<comments>http://www.ludumdare.com/compo/2011/05/01/rendering-the-plaza-and-the-highly-anticipated-lunch/#comments</comments>
		<pubDate>Sun, 01 May 2011 18:04:40 +0000</pubDate>
		<dc:creator>GBGames</dc:creator>
				<category><![CDATA[LD #20 - It's Dangerous to go Alone! Take This!]]></category>
		<category><![CDATA[foodphoto]]></category>

		<guid isPermaLink="false">http://www.ludumdare.com/compo/?p=50007</guid>
		<description><![CDATA[I created a bunch of sprites, but they weren&#8217;t being drawn on the screen. I&#8217;ll fix that! I have a background, plus the cobblestone play area that represents the plaza. I thought it would be simple to draw the package recipient on top, but for some reason, he disappeared. After throwing in some debugging output [...]]]></description>
			<content:encoded><![CDATA[<p>I created a bunch of sprites, but they weren&#8217;t being drawn on the screen. I&#8217;ll fix that!</p>
<p>I have a background, plus the cobblestone play area that represents the plaza. I thought it would be simple to draw the package recipient on top, but for some reason, he disappeared. </p>
<p>After throwing in some debugging output and manually setting its position, I discovered just how weird this bug is.</p>
<p>If the VIP is standing to the left and up of a certain position, it gets drawn. To the right and down of that position, it was missing. </p>
<p>Wha-? I eventually saw that it was, indeed, getting rendered in the correct spot. It was just getting drawn under the cobblestone tiles in that area, so you couldn&#8217;t see it. </p>
<p>That&#8217;s bizarre. Now, my sprite rendering system does draw according to z-order. The basic way it works is that if Sprite A and Sprite B are to be drawn at the same (X, Y) position, but Sprite A has a Z-coordinate that is higher than Sprite B, then Sprite B gets drawn first so that Sprite A gets drawn on top. If the Z-coordinates are the same, then it checks the Y coordinate next, so sprites get rendered from the top of the screen first and the bottom of the screen last, which gives a nice overlapping effect. </p>
<p>But I didn&#8217;t set the z-order explicitly on any of these sprites. I verified that the default z-order for all sprites is 0. I find it odd that I can draw the VIP on top of the cobblestone for about a 10&#215;8 area in the upper left but not in a 2&#215;8 area at the bottom right. </p>
<p>So I set the z-order of the VIP to a high number, and it still wouldn&#8217;t get drawn on top. I set the z-order of the cobblestone tiles to a negative value, and suddenly it started to work correctly. </p>
<p>Now, normally I would look into this bug a lot more. The rendering system was designed so that sprites drawn from left to right and top to bottom would render overlapping correctly without the need for z-ordering to be set. </p>
<p>The only thing I can think is the problem is that I don&#8217;t actually draw the sprites until I collect all sprite-drawing orders and do them in a batch. So I can have a bunch of sprite-drawing requests, and they get sorted by the z-ordering rules I mentioned, and then the sprites get drawn. Actually, maybe that&#8217;s the problem. The background tile render requests are in the same batch as the VIP render request, and I have no control over how two sprites at the exact same position and z-order would get sorted before they are rendered. I&#8217;m not sure why the behavior is inconsistent depending on where the VIP is, but again, I&#8217;m not going to look into it now. I have a game to finish!</p>
<p>Here&#8217;s a screenshot of the VIP getting rendered on top of the plaza tiles correctly: </p>
<p><a href="http://www.flickr.com/photos/29086141@N03/5676079325/" title="Screenshot - The Plaza With VIP by gbgames, on Flickr"><img src="http://farm6.static.flickr.com/5028/5676079325_dc7d5c09d3.jpg" width="500" height="375" alt="Screenshot - The Plaza With VIP"></a></p>
<p>Yes, my programmer art will be very basic, which means it is quick to make.</p>
<p>After I got the basic rendering working, I had lunch. A number of people have told me that they are looking forward to my apparently famous peanut butter and pickle sandwich. I was actually planning on skipping it this LD since I thought people would be sick of seeing the same sandwich and food come up each time, but I can&#8217;t disappoint the fans!</p>
<p>So first we spread some peanut butter on the bread&#8230;uh, oh&#8230;.</p>
<p><a href="http://www.flickr.com/photos/29086141@N03/5676643616/" title="This is sad. Where's the peanut butter? by gbgames, on Flickr"><img src="http://farm6.static.flickr.com/5101/5676643616_e469ab4f0c.jpg" width="500" height="375" alt="This is sad. Where's the peanut butter?"></a></p>
<p>That&#8217;s not nearly enough. Where&#8217;s the peanut butter?</p>
<p><a href="http://www.flickr.com/photos/29086141@N03/5676645058/" title="What?! No peanut butter? by gbgames, on Flickr"><img src="http://farm6.static.flickr.com/5309/5676645058_14c6de1411.jpg" width="500" height="375" alt="What?! No peanut butter?"></a></p>
<p>No peanut butter? I&#8217;m out of peanut butter?! Unpossible! </p>
<p>Every Ludum Dare, I go through a checklist. I make sure I have a working Audacity and sfxr in case I have enough time to implement sound. I double-check that my time lapse software still works. I ensure that I can start a new git project so I can get to work right away. </p>
<p>For this LD, I even made sure I had a new jug of orange juice, and I did have a new jar of pickles, but I forgot to check if I needed more peanut butter. B-(</p>
<p>But fear not! In the interest of variety, I have other nut butters!  Walnut butter is too expensive to get regularly, but almond butter and cashew butter are delicious alternatives to peanut butter as well.  Since pickle juice tends to make the sandwich a bit drippy, I opted to go with cashew butter, which has a stickier consistency than almond butter. </p>
<p>And there you have it: the cashew butter and pickle sandwich! </p>
<p><a href="http://www.flickr.com/photos/29086141@N03/5676083505/" title="Cashew butter and pickle sandwich! by gbgames, on Flickr"><img src="http://farm6.static.flickr.com/5069/5676083505_53948dd295.jpg" width="500" height="375" alt="Cashew butter and pickle sandwich!"></a></p>
<p>I sprinkled some cinnamon inside before applying the pickles, and it makes a compact, nutritious, delightful snack!</p>
<p>And now, on with the show! </p>
<p>A little less than 8 hours left. I&#8217;m not gonna lie. I&#8217;m getting slightly worried. My game might not have sound effects. </p>
<p>Or game play. But I&#8217;m definitely worried about the lack of sound. B-)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ludumdare.com/compo/2011/05/01/rendering-the-plaza-and-the-highly-anticipated-lunch/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Coding the Plaza and Entities</title>
		<link>http://www.ludumdare.com/compo/2011/04/30/coding-the-plaza-and-entities/</link>
		<comments>http://www.ludumdare.com/compo/2011/04/30/coding-the-plaza-and-entities/#comments</comments>
		<pubDate>Sun, 01 May 2011 04:25:45 +0000</pubDate>
		<dc:creator>GBGames</dc:creator>
				<category><![CDATA[LD #20 - It's Dangerous to go Alone! Take This!]]></category>

		<guid isPermaLink="false">http://www.ludumdare.com/compo/?p=48808</guid>
		<description><![CDATA[So I&#8217;ve been tackling the Plaza, which was originally planned to be a simple representation of the play area grid. It also keeps track of each Entity running around. I keep Pedestrians, Couriers, and EnemyAgents in separate containers, and there is a single VIP (the goal) as well. All Entities have position, orientation, and a [...]]]></description>
			<content:encoded><![CDATA[<p>So I&#8217;ve been tackling the Plaza, which was originally planned to be a simple representation of the play area grid. </p>
<p>It also keeps track of each Entity running around. I keep Pedestrians, Couriers, and EnemyAgents in separate containers, and there is a single VIP (the goal) as well. All Entities have position, orientation, and a string that represents how to draw them. </p>
<p>Here&#8217;s how they differ:</p>
<p>Pedestrians also have a preferred turning direction. When they run into an occupied space, they try to turn in their preferred turning direction first. If that space is also occupied, then they try the other direction. If that space is also occupied, then they remain in their original orientation and stand still that turn. To illustrate, a Pedestrian with an affinity to turning left is facing to the right. In trying to move forward he finds that the tile is occupied by another Entity. So he tries to move up (turning left from his right-facing orientation) first before trying to move down. </p>
<p>Couriers can carry a package. There are plans to only allow one package in the game, so only one Courier will actually have the package at a time. </p>
<p>EnemyAgents have nothing special about them except that they cannot be shoved. If an Entity tries to shove into an EnemyAgent, the action won&#8217;t happen. Likewise if a chain of shoves results in an attempt to shove an EnemyAgent, the shoves won&#8217;t happen. </p>
<p>VIPs do not move, so they don&#8217;t have an orientation. They just stand in one place, waiting for the package to be delivered. </p>
<p>I&#8217;ve been wondering if I should have an explicit representation of the Package itself, but I&#8217;m getting sleepy and exhausted, so I figured it would be best not to make decisions like this until I&#8217;m awake enough to think them through.</p>
<p>Once I get these new objects rendering, I think the next task is to create some instances of Couriers and get them moving about the play area according to player input. </p>
<p>There are 21.5 hours left in the compo. I figure I&#8217;ll wake up with 13-14 hours left to go. Wee!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ludumdare.com/compo/2011/04/30/coding-the-plaza-and-entities/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Working High Level State Machine and Dinner</title>
		<link>http://www.ludumdare.com/compo/2011/04/30/working-high-level-state-machine-and-dinner/</link>
		<comments>http://www.ludumdare.com/compo/2011/04/30/working-high-level-state-machine-and-dinner/#comments</comments>
		<pubDate>Sun, 01 May 2011 01:45:26 +0000</pubDate>
		<dc:creator>GBGames</dc:creator>
				<category><![CDATA[LD #20 - It's Dangerous to go Alone! Take This!]]></category>
		<category><![CDATA[foodphoto]]></category>

		<guid isPermaLink="false">http://www.ludumdare.com/compo/?p=48639</guid>
		<description><![CDATA[The title screen doesn&#8217;t look very different from the splash screen: Still, there&#8217;s a lot of code powering that title screen now. I ended up borrowing more code from my other projects to get more boilerplate stuff in. I&#8217;m surprised how basic yet complex my boilerplate code is. Stuff like menu handling and basic input [...]]]></description>
			<content:encoded><![CDATA[<p>The title screen doesn&#8217;t look very different from the splash screen:</p>
<p><a href="http://www.flickr.com/photos/29086141@N03/5674312308/" title="Screenshot LD20 Title Screen by gbgames, on Flickr"><img src="http://farm6.static.flickr.com/5304/5674312308_e018ced9d2.jpg" width="500" height="375" alt="Screenshot LD20 Title Screen"></a></p>
<p>Still, there&#8217;s a lot of code powering that title screen now. I ended up borrowing more code from my other projects to get more boilerplate stuff in. I&#8217;m surprised how basic yet complex my boilerplate code is. Stuff like menu handling and basic input processing is a lot of code, and it sucks to rewrite it each time I participate in LD48. </p>
<p>In any case, I now have a high level state machine running the application. The main menu is one state, and clicking on &#8220;New Game&#8221; switches you to the in-game state. And since I have a way to get to it, the in-game state is where almost all of the work needs to be done next. </p>
<p>I need to implement:</p>
<ul>
<li> the plaza as the main playfield. </li>
<li> the Very Important Person as the delivery target and end goal. </li>
<li> the courier team. </li>
<li> the pedestrians. </li>
<li> the agents. </li>
<li> victory and defeat conditions. </li>
<li> and systems to run all of the above. </li>
</ul>
<p>Essentially, The Entire Game.</p>
<p>If I would have had boilerplate code that was ready to go, I would have been working on this code from the start.  Instead, I had to slog through getting each file to play nice with the relatively empty build.</p>
<p>Anyway, to prepare for the plaza, I&#8217;ve created a few tile images. I might end up using nothing but the &#8220;cobblestone&#8221;, but maybe I&#8217;ll get grass and dirt in for variety if I have time.</p>
<p><a href="http://www.flickr.com/photos/29086141@N03/5674344922/" title="Tile - Grass by gbgames, on Flickr"><img src="http://farm6.static.flickr.com/5103/5674344922_8c7dd817ab_s.jpg" width="75" height="75" alt="Tile - Grass"></a> <a href="http://www.flickr.com/photos/29086141@N03/5674344898/" title="Tile - Dirt by gbgames, on Flickr"><img src="http://farm6.static.flickr.com/5061/5674344898_cd6f7d345f_s.jpg" width="75" height="75" alt="Tile - Dirt"></a> <a href="http://www.flickr.com/photos/29086141@N03/5673776491/" title="Tile - Cobblestone by gbgames, on Flickr"><img src="http://farm6.static.flickr.com/5184/5673776491_8c3ff6c396_s.jpg" width="75" height="75" alt="Tile - Cobblestone"></a></p>
<p>I took a dinner break and had some cheese pizza from a great place called Marino&#8217;s. They make the best sauce!</p>
<p><a href="http://www.flickr.com/photos/29086141@N03/5674306946/" title="Marino's Cheese PIzza! by gbgames, on Flickr"><img src="http://farm6.static.flickr.com/5026/5674306946_ab7bcf0d5d.jpg" width="500" height="375" alt="Marino's Cheese PIzza!"></a></p>
<p>There&#8217;s a little over 24 hours left in the compo, and I don&#8217;t want a repeat of <a href="http://www.ludumdare.com/compo/2009/04/19/gbgames-presents-a-very-unfinished-game-walled-off/">Advancing Walls of Doom</a>. This game is getting made.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ludumdare.com/compo/2011/04/30/working-high-level-state-machine-and-dinner/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lunch and Birthing a New Project</title>
		<link>http://www.ludumdare.com/compo/2011/04/30/lunch-and-birthing-a-new-project/</link>
		<comments>http://www.ludumdare.com/compo/2011/04/30/lunch-and-birthing-a-new-project/#comments</comments>
		<pubDate>Sat, 30 Apr 2011 20:45:14 +0000</pubDate>
		<dc:creator>GBGames</dc:creator>
				<category><![CDATA[LD #20 - It's Dangerous to go Alone! Take This!]]></category>
		<category><![CDATA[foodphoto]]></category>

		<guid isPermaLink="false">http://www.ludumdare.com/compo/?p=47934</guid>
		<description><![CDATA[What&#8217;s faster than reheating leftovers? I&#8217;m going to need to eat some fruits and vegetables soon. Anyway, last time I had a working build. My next goal is to get an SDL window to open and close. This part will either just work or I&#8217;ll find some weird complication here, too. &#8230; Ok, so I [...]]]></description>
			<content:encoded><![CDATA[<p>What&#8217;s faster than reheating leftovers? </p>
<p><a href="http://www.flickr.com/photos/29086141@N03/5672754117/" title="Leftovers and chips, mmm mmm! by gbgames, on Flickr"><img src="http://farm6.static.flickr.com/5269/5672754117_67e1e0a395.jpg" width="500" height="375" alt="Leftovers and chips, mmm mmm!"></a></p>
<p>I&#8217;m going to need to eat some fruits and vegetables soon. </p>
<p>Anyway, last time I had a working build. My next goal is to get an SDL window to open and close. This part will either just work or I&#8217;ll find some weird complication here, too. </p>
<p>&#8230;</p>
<p>Ok, so I ended up copying a lot more files from other projects, but I finally managed to get to a point where I have something that might serve as a nice starting point for this and maybe future LDs. </p>
<p>For now, I have a splash screen. </p>
<p><a href="http://www.flickr.com/photos/29086141@N03/5673636694/" title="Screenshot - LD20 entry by GBGames by gbgames, on Flickr"><img src="http://farm6.static.flickr.com/5222/5673636694_cabb84a154.jpg" width="500" height="375" alt="Screenshot - LD20 entry by GBGames"></a></p>
<p>The name of the project is tentative to change, but at least it has been born. Now to raise it into a healthy young game. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.ludumdare.com/compo/2011/04/30/lunch-and-birthing-a-new-project/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Lose 40 Minutes During a Ludum Dare Compo</title>
		<link>http://www.ludumdare.com/compo/2011/04/30/how-to-lose-40-minutes-during-a-ludum-dare-compo/</link>
		<comments>http://www.ludumdare.com/compo/2011/04/30/how-to-lose-40-minutes-during-a-ludum-dare-compo/#comments</comments>
		<pubDate>Sat, 30 Apr 2011 18:26:30 +0000</pubDate>
		<dc:creator>GBGames</dc:creator>
				<category><![CDATA[LD #20 - It's Dangerous to go Alone! Take This!]]></category>

		<guid isPermaLink="false">http://www.ludumdare.com/compo/?p=47620</guid>
		<description><![CDATA[CMake, how I love it when you just work. CMake, how I hate it when you don&#8217;t work. I should have prepared for this compo by having a basic, buildable project ready to go. In trying to create the barest project for LD20, I&#8217;ve copied the directory structure and CMake build scripts from my LD18 [...]]]></description>
			<content:encoded><![CDATA[<p>CMake, how I love it when you just work.</p>
<p>CMake, how I hate it when you don&#8217;t work.</p>
<p>I should have prepared for this compo by having a basic, buildable project ready to go. </p>
<p>In trying to create the barest project for LD20, I&#8217;ve copied the directory structure and CMake build scripts from my LD18 game, which still builds just fine by the way, and changed references from LD18 to LD20. </p>
<p>And for some reason, with a basic main function and a bare-bones Game class that does nothing, I get a build error. </p>
<p>I notice that for some reason, even though I tell it to build the files in my source/game directory, it seems to be ignoring it. It doesn&#8217;t ignore it in my LD18 project, though.</p>
<p>First, for posterity (and my sanity), the command to get debug output is &#8220;make VERBOSE=1&#8243;. I always forget it and have to do searches online to find it, and sometimes CMake searches aren&#8217;t easy to do. I need to keep these notes somewhere handy for the future. </p>
<p>Next, I saw that it wasn&#8217;t finding my project library. Basically, my game has a main.cpp, and it links to the library created by the game subdirectory. What&#8217;s nice about having the game built as a library is that I can also build a test binary if I was using unit tests by linking to that same game library instead of building the object files twice.</p>
<p>After looking at the CMakeLists.txt files and comparing them to the ones in my LD18 project multiple times, I finally saw the culprit:</p>
<p><code>TARGET_LINK_LIBRARIES (gbgames-ld20-bin gbgamesld20-lib  ....</code></p>
<p>It should link to gbgames-ld20-lib. It was missing a frickin&#8217; dash. Looking closely at the error message, I would have seen the missing dash there as well, but&#8230;GAH! </p>
<p>And this is how you lose about 40 minutes during a Ludum Dare compo. B-(</p>
<p>Luckily, I finally got the project building and running, so now I can get some lunch.</p>
<p>1 day, seven and a half hours left. Eat fast.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ludumdare.com/compo/2011/04/30/how-to-lose-40-minutes-during-a-ludum-dare-compo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Prototyped Game Play</title>
		<link>http://www.ludumdare.com/compo/2011/04/30/prototyped-game-play/</link>
		<comments>http://www.ludumdare.com/compo/2011/04/30/prototyped-game-play/#comments</comments>
		<pubDate>Sat, 30 Apr 2011 17:09:17 +0000</pubDate>
		<dc:creator>GBGames</dc:creator>
				<category><![CDATA[LD #20 - It's Dangerous to go Alone! Take This!]]></category>

		<guid isPermaLink="false">http://www.ludumdare.com/compo/?p=47356</guid>
		<description><![CDATA[I used my trusty graph paper and my handy-dandy game design prototype toolbox to see if the game rules I came up with could be any fun. In this image, the hearts represent pedestrians walking across the plaza. They are oriented in the direction they are going, a nice characteristic of heart tokens as opposed [...]]]></description>
			<content:encoded><![CDATA[<p>I used my trusty graph paper and my <a href="http://gbgames.com/blog/2010/08/my-game-design-prototype-toolbox/">handy-dandy game design prototype toolbox</a> to see if the game rules I came up with could be any fun.</p>
<p><a href="http://www.flickr.com/photos/29086141@N03/5672422211/" title="Prototyping! by gbgames, on Flickr"><img src="http://farm6.static.flickr.com/5224/5672422211_1b245cc14c.jpg" width="500" height="375" alt="Prototyping!"></a></p>
<p>In this image, the hearts represent pedestrians walking across the plaza. They are oriented in the direction they are going, a nice characteristic of heart tokens as opposed to circles or stars. </p>
<p>The star represents the person you need to deliver the package to. The package is represented by the red gem, which is held by one of the three couriers represented by the Mans. The barrels represent the agents trying to stop the couriers. </p>
<p>Playing with the game in this way, I realized there were questions that needed answering:</p>
<ul>
<li> If two pedestrians try to walk into the same empty tile, what should happen? </li>
<li> Should pedestrians always try to go to the opposite wall they start on, or should they just go forward until they are forced to turn? </li>
<li> Should shoving be a second phase after moving your couriers, or should it be a result of moving into an occupied tile? </li>
<li> Should couriers be faster than agents? Than pedestrians? Slower? </li>
<li> Would randomness involved in the creation of pedestrians (where they spawn, what type they are, etc) be enough to prevent making the game mathematically solvable and therefore boring? </li>
</ul>
<p>And finally, what is in that package that seems to be so important to the agents in the first place? B-)</p>
<p>I played around with various solutions, and I was able to get a feel for what made the game more complex/confusing versus what made it simple and straightforward, especially from the player&#8217;s perspective.  Part of the game is being able to quickly read the status of the board and making moves with predictable results, so complicated shoving mechanics might not serve my goals. For example, if you shove an eastbound pedestrian north into a westbound pedestrian, should the westbound pedestrian get pushed east by the eastbound pedestrian? And if the westbound pedestrian is shoved into an southbound pedestrian, and if your couriers can be shoved back, it means that the end result is the eastbound pedestrian is in the same position it started from! The chain of shoves can get windy and interesting, but maybe it would be more straightforward and intuitive to force all shoves in one direction, so a chain is really just moving all pedestrians in a line. </p>
<p>There is one day, 9 hours left in the compo. I don&#8217;t think I need to solve all of these problems. I can always play with them as the game is developed. I have enough to start breaking ground on the code. Let&#8217;s get to work!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ludumdare.com/compo/2011/04/30/prototyped-game-play/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Good morning! And Design Thoughts</title>
		<link>http://www.ludumdare.com/compo/2011/04/30/good-morning-and-design-thoughts/</link>
		<comments>http://www.ludumdare.com/compo/2011/04/30/good-morning-and-design-thoughts/#comments</comments>
		<pubDate>Sat, 30 Apr 2011 15:22:09 +0000</pubDate>
		<dc:creator>GBGames</dc:creator>
				<category><![CDATA[LD #20 - It's Dangerous to go Alone! Take This!]]></category>
		<category><![CDATA[foodphoto]]></category>

		<guid isPermaLink="false">http://www.ludumdare.com/compo/?p=47136</guid>
		<description><![CDATA[I woke up this morning, and unfortunately my dreams didn&#8217;t help me come up with a cool game concept. I started the day with a typical breakfast. After my shower, I put on my custom Ludum Dare t-shirt. I wore that shirt at the Ludum Dare Meetup at GDC 2011. And as I type this, [...]]]></description>
			<content:encoded><![CDATA[<p>I woke up this morning, and unfortunately my dreams didn&#8217;t help me come up with a cool game concept.</p>
<p>I started the day with a typical breakfast. </p>
<p><a href="http://www.flickr.com/photos/29086141@N03/5672139285/" title="Start the day right.  by gbgames, on Flickr"><img src="http://farm6.static.flickr.com/5266/5672139285_92a892191c.jpg" width="500" height="375" alt="Start the day right. "></a></p>
<p>After my shower, I put on my custom Ludum Dare t-shirt. </p>
<p><a href="http://www.flickr.com/photos/29086141@N03/5672707982/" title="I'm wearing my custom LD shirt by gbgames, on Flickr"><img src="http://farm6.static.flickr.com/5184/5672707982_752f47ed05.jpg" width="500" height="375" alt="I'm wearing my custom LD shirt"></a></p>
<p>I wore that shirt at the Ludum Dare Meetup at GDC 2011. And as I type this, it has been covered in white cat hair. Thanks, Diego. B-(</p>
<p>Throughout my morning, I&#8217;ve been thinking about game mechanics that wouldn&#8217;t require a full AI engine or physics or anything else complex. At first I was keen on getting rid of any entities besides the player&#8217;s avatar. After all, you&#8217;re alone, right? </p>
<p>But then I realized that I could make other entities follow simple rules. There doesn&#8217;t have to be decision-making or goal-driven actions or complex evaluations. Enemies or hazards can simply follow basic rules, so any decision-making is in the code when I write it. </p>
<p>And more and more, I&#8217;ve liked my <i>Hot Potato</i> idea that I mentioned last time. So here&#8217;s what I&#8217;ve come up with so far:</p>
<p><i>Your crack team of couriers have to delivery a very important package to a very important man who works for a very important organization. This man is standing in a busy plaza in the hopes of blending in with the crowd to avoid detection from secret agents who hope to intercept the package. </i></p>
<p>The plaza will be tile-based grid.<br />
The play will be turn-based.<br />
And hopefully the AI will be quite simple and dumb, yet effective. B-)</p>
<p>Some basic rules:</p>
<ul>
<li> Entities can move into adjacent tiles if they are free. </li>
<li> Entities can also shove other entities into other tiles. </li>
<li> A shoved entity pushed into an occupied tile will shove the other entity in the direction he/she is facing. </li>
<li> Secret agents can&#8217;t be shoved. </li>
<li> The very important package can be passed along to a teammate directly.
<li>
<li> Alternatively, if the package handler shoves a chain of people who end up shoving a teammate, the package can be passed through the chain. </li>
<li> The very important man can only receive the package from the package handler directly. No chain can be used. </li>
<li> If an agent gets the package instead, it&#8217;s game over. </li>
<li> If the agents shove the package handler, it&#8217;s game over. </li>
</ul>
<p>I think it can be an compelling game. My intent is to design the game so that if you try to deliver the package using only one courier, the agents will easily stop you, so you must rely on passing off the package to get it past the agents. The crowd may or may not grow/shrink in size as the game progresses. I don&#8217;t know how it will turn out, but I&#8217;ll have to do some paper prototyping to see if it has a chance of succeeding. BRB.</p>
<p><a href="http://www.flickr.com/photos/29086141@N03/5672709044/" title="Off to go prototype, brb by gbgames, on Flickr"><img src="http://farm6.static.flickr.com/5102/5672709044_98a07c509c.jpg" width="500" height="375" alt="Off to go prototype, brb"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ludumdare.com/compo/2011/04/30/good-morning-and-design-thoughts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I Was Not Expecting This Theme</title>
		<link>http://www.ludumdare.com/compo/2011/04/29/i-was-not-expecting-this-theme/</link>
		<comments>http://www.ludumdare.com/compo/2011/04/29/i-was-not-expecting-this-theme/#comments</comments>
		<pubDate>Sat, 30 Apr 2011 04:00:43 +0000</pubDate>
		<dc:creator>GBGames</dc:creator>
				<category><![CDATA[LD #20 - It's Dangerous to go Alone! Take This!]]></category>

		<guid isPermaLink="false">http://www.ludumdare.com/compo/?p=45470</guid>
		<description><![CDATA[So the theme for Ludum Dare 20 is &#8220;It&#8217;s Dangerous To Go Alone! Take this!&#8221; I&#8217;m not really sure about it. I was really hoping for &#8220;Traps&#8221;, but you play the hand you&#8217;re dealt. I haven&#8217;t thought too much about the theme yet (I was busy play Jeopardy! for the Wii with friends when the [...]]]></description>
			<content:encoded><![CDATA[<p>So the theme for Ludum Dare 20 is &#8220;It&#8217;s Dangerous To Go Alone! Take this!&#8221;</p>
<p>I&#8217;m not really sure about it. I was really hoping for &#8220;Traps&#8221;, but you play the hand you&#8217;re dealt. </p>
<p>I haven&#8217;t thought too much about the theme yet (I was busy play <i>Jeopardy!</i> for the Wii with friends when the compo started), but here are some first draft game concepts:</p>
<ul>
<li> <strong>Your Guardian Pet:</strong> Think <em>Ico</em>, only you&#8217;re the helpless one, and you have to leave your protective dog sometimes to find a way to get it into areas you need to go. </li>
<li> <strong>Shove Off!:</strong> You&#8217;re among a crowd of prey (sheep?), and there are predators (wolves?) circling. You need to maneuver yourself into position to push, kick, or shove the other prey out of the crowd so the predators eat someone other than you. It&#8217;s more like &#8220;Take THIS!&#8221; </li>
<li> <strong>Hot Potato:</strong> There is a very important item, and your team needs to deliver it, but there are agents trying to stop you. If a team member gets isolated while holding the item, you lose, so try to pass off the item to someone else before the agents can corner you. </li>
</ul>
<p>One thing I want to try to do is avoid complexity, and while I&#8217;m more familiar with artificial intelligence, I&#8217;d rather not have to code up pathfinding or goal-driven agents. I&#8217;ll try to focus more on player-controlled mechanics and system interaction than on building a living, breathing world. </p>
<p>For now, I&#8217;m going to sleep on the problem, and in the morning, I&#8217;ll start prototyping some ideas.  Good night, Ludum Dare!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ludumdare.com/compo/2011/04/29/i-was-not-expecting-this-theme/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Stop That Hero! Didn&#8217;t Get Finished</title>
		<link>http://www.ludumdare.com/compo/2010/11/03/stop-that-hero-didnt-get-finished/</link>
		<comments>http://www.ludumdare.com/compo/2010/11/03/stop-that-hero-didnt-get-finished/#comments</comments>
		<pubDate>Thu, 04 Nov 2010 01:25:42 +0000</pubDate>
		<dc:creator>GBGames</dc:creator>
				<category><![CDATA[October Challenge 2010]]></category>

		<guid isPermaLink="false">http://www.ludumdare.com/compo/?p=28639</guid>
		<description><![CDATA[I&#8217;m disappointed that I didn&#8217;t get my game anywhere near done by the end of last month. I wrote an October Challenge post-mortem in which I tried to assess where I went wrong, in case you&#8217;re interested. I would like to say &#8220;Thank you!&#8221; to PoV for giving me a good way to hunker down [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m disappointed that I didn&#8217;t get my game anywhere near done by the end of last month. I wrote an <a href="http://gbgames.com/blog/2010/11/stop-that-hero-october-challenge-post-mortem/">October Challenge post-mortem</a> in which I tried to assess where I went wrong, in case you&#8217;re interested.</p>
<p>I would like to say &#8220;Thank you!&#8221; to PoV for giving me a good way to hunker down and try to focus on the attempt. Before October, I was spending some time wondering how long I should work on the commercial version of <i>Stop That Hero!</i>, not wanting to take too long for fear of running out of savings, and not wanting to take too little time for fear of putting out an unsellable game. With PoV&#8217;s deadline, I had a good compromise.</p>
<p>PoV, thank you! I have a good start to my project, a better idea of how to manage it, and a greater awareness of my strengths and weaknesses as a game developer. I&#8217;ll be continuing, and I plan on finishing and selling this game before the end of the year.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ludumdare.com/compo/2010/11/03/stop-that-hero-didnt-get-finished/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oh, Right, the Stop That Hero! Dev Blog</title>
		<link>http://www.ludumdare.com/compo/2010/10/17/oh-right-the-stop-that-hero-dev-blog/</link>
		<comments>http://www.ludumdare.com/compo/2010/10/17/oh-right-the-stop-that-hero-dev-blog/#comments</comments>
		<pubDate>Mon, 18 Oct 2010 01:00:37 +0000</pubDate>
		<dc:creator>GBGames</dc:creator>
				<category><![CDATA[October Challenge 2010]]></category>

		<guid isPermaLink="false">http://www.ludumdare.com/compo/?p=28366</guid>
		<description><![CDATA[I have been blogging about my efforts in the October Challenge, but I&#8217;ve been doing so at my own blog. I realized that if I do manage to submit the game, there should probably be some posts to go along with the journal. So if you&#8217;re interested, here are the links to my dev posts. [...]]]></description>
			<content:encoded><![CDATA[<p>I have been blogging about my efforts in the October Challenge, but I&#8217;ve been doing so at my own blog. I realized that if I do manage to submit the game, there should probably be some posts to go along with the journal. </p>
<p>So if you&#8217;re interested, here are the links to my dev posts. I&#8217;ll add links as the project develops. </p>
<p><a href="http://gbgames.com/blog/2010/09/an-inspiring-challenge/">An Inspiring Challenge</a>, where I write about my acceptance of the October Challenge. </p>
<p><a href="http://gbgames.com/blog/2010/10/ld18-stop-that-hero-post-mortem/">Stop That Hero! Post-Mortem</a>, in which I discuss what went right, what went wrong, and what I learned in developing my LD18 submission. I also say that I intend to rewrite the game for the Challenge. </p>
<p><a href="http://gbgames.com/blog/2010/10/stop-that-hero-development-challenges-and-concerns/">Stop That Hero! Development Challenges and Concerns</a>, in which I discuss the major issues I want to address in this update of the game. </p>
<p><a href="http://gbgames.com/blog/2010/10/designing-resource-usage-in-stop-that-hero/">Designing Resource Usage in Stop That Hero!</a>, in which I lay out the problems with the original game&#8217;s implementation of resources and analyze a number of different options to address those problems. </p>
<p><a href="http://gbgames.com/blog/2010/10/agile-alert-slow-project-progress/">Agile Alert: Slow Project Progress</a>, in which I express dismay at how slow my progress is and try to identify the major causes. </p>
<p><a href="http://gbgames.com/blog/2010/10/balancing-current-and-future-needs/">Balancing Current and Future Needs</a>, in which I explained my insistence on using Test-Driven Development and elaborate on my concerns for over-engineering versus making just enough to satisfy the deadline. </p>
<p><a href="http://gbgames.com/blog/2010/10/loading-an-arbitrary-stop-that-hero-level/">Loading an Arbitrary Stop That Hero! Level</a>, in which I briefly mention that the game can now load a sprite representing the world map and render it.</p>
<p><a href="http://gbgames.com/blog/2010/10/stop-that-hero-sprite-rendering-questions/">Stop That Hero! Sprite Rendering Questions</a>, in which I describe some nifty world map to screen resolution position scaling to render sprites in a consistent way. Thanks go to FuzzYspo0N for helping me with the details! </p>
<p><a href="http://gbgames.com/blog/2010/10/state-of-the-art-game-objects/">State of the Art Game Objects</a>, in which I describe my research on a component-based object system and give up on it after being overwhelmed by the immensity of what I was attempting in a short period of time. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.ludumdare.com/compo/2010/10/17/oh-right-the-stop-that-hero-dev-blog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

