<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;D08ERHw4fip7ImA9WhRUGUg.&quot;"><id>tag:blogger.com,1999:blog-6127132400597215190</id><updated>2012-01-30T12:36:45.236-08:00</updated><category term="gadgets" /><category term="BlockZombies" /><category term="graphics" /><category term="HLSL" /><category term="XBLIG" /><category term="WP7" /><category term="music" /><category term="XML" /><category term="art" /><category term="game" /><category term="XNA" /><category term="networking" /><category term="Tunescape" /><category term="C#" /><category term="ld48" /><category term="unmanaged" /><category term="audio" /><category term="game design" /><category term="water" /><category term="TV3D" /><category term="wireless" /><category term="terrain" /><category term="WPF" /><category term="vista" /><category term="KFF" /><title>Nostatic Software Dev Blog</title><subtitle type="html" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://blog.nostatic.org/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://blog.nostatic.org/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/6127132400597215190/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Mike</name><uri>http://www.blogger.com/profile/13599208082890099005</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_1eC00ALSHt4/TQadQYzk0dI/AAAAAAAAFyY/KozsMa89wKA/S220/AvatarRetro2.png" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>116</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/MikesCodeBlog" /><feedburner:info uri="mikescodeblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;Ck8NRnk5fSp7ImA9WhRUFk0.&quot;"><id>tag:blogger.com,1999:blog-6127132400597215190.post-6424635431530979376</id><published>2012-01-26T09:59:00.000-08:00</published><updated>2012-01-26T10:01:37.725-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-26T10:01:37.725-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="BlockZombies" /><category scheme="http://www.blogger.com/atom/ns#" term="XNA" /><category scheme="http://www.blogger.com/atom/ns#" term="XBLIG" /><category scheme="http://www.blogger.com/atom/ns#" term="game" /><title>Block Zombies Review Round-up</title><content type="html">Block Zombies has been out for a week now, and a number of reviews have popped up around the internet. The verdict? They like it!&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://trendygamers.com/2012/01/23/block-zombies-review/"&gt;Trendy Gamers&lt;/a&gt; gave it a 9/10, saying it "&lt;i&gt;&lt;b&gt;may just be the most outrageously fun and charming game a single dollar can buy&lt;/b&gt;&lt;/i&gt;".&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.armlessoctopus.com/2012/01/23/block-zombies-review-night-of-the-living-legos/"&gt;Armless Octopus&lt;/a&gt; gave it 4/5 stars,&amp;nbsp; saying "&lt;i&gt;&lt;b&gt;the game’s carefree visual style and upbeat tempo makes Block Zombies! an absolute delight to play&lt;/b&gt;&lt;/i&gt;". They also awarded it their &lt;a href="http://www.armlessoctopus.com/2012/01/25/xblig-new-release-roundup-for-the-week-of-january-15/"&gt;"Bloody Tentacle" of the week&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://did-not-finish.com/2012/01/did-finish-block-zombies/"&gt;Did Not Finish&lt;/a&gt; says "&lt;i&gt;&lt;b&gt;Block Zombies is the embodiment of everything that is right with Xbox Live Independent Games&lt;/b&gt;&lt;/i&gt;".&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://otakudgamereviews.blogspot.com/2012/01/block-zombies-xblig-voxel-zombie-shmup.html"&gt;OtakuDante's Gaming&lt;/a&gt; says it offers "&lt;b&gt;&lt;i&gt;escape from the normal zombie titles that plague the video game marketplace&lt;/i&gt;&lt;/b&gt;".&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.dealspwn.com/xbligotw-avatar-grand-prix-2-block-zombies-ocean-drive-challenge-90769#more-90769"&gt;Dealspwn&lt;/a&gt; calls Block Zombies "&lt;i&gt;&lt;b&gt;a damn fine shooter&lt;/b&gt;&lt;/i&gt;".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6127132400597215190-6424635431530979376?l=blog.nostatic.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MikesCodeBlog/~4/LYg9hP8SquA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.nostatic.org/feeds/6424635431530979376/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.nostatic.org/2012/01/block-zombies-review-round-up.html#comment-form" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6127132400597215190/posts/default/6424635431530979376?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6127132400597215190/posts/default/6424635431530979376?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MikesCodeBlog/~3/LYg9hP8SquA/block-zombies-review-round-up.html" title="Block Zombies Review Round-up" /><author><name>Mike</name><uri>http://www.blogger.com/profile/13599208082890099005</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_1eC00ALSHt4/TQadQYzk0dI/AAAAAAAAFyY/KozsMa89wKA/S220/AvatarRetro2.png" /></author><thr:total>3</thr:total><feedburner:origLink>http://blog.nostatic.org/2012/01/block-zombies-review-round-up.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEYARHw_eyp7ImA9WhRVGUk.&quot;"><id>tag:blogger.com,1999:blog-6127132400597215190.post-6703540765103077060</id><published>2012-01-18T19:01:00.000-08:00</published><updated>2012-01-18T19:02:25.243-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-18T19:02:25.243-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="BlockZombies" /><category scheme="http://www.blogger.com/atom/ns#" term="XNA" /><category scheme="http://www.blogger.com/atom/ns#" term="XBLIG" /><category scheme="http://www.blogger.com/atom/ns#" term="game" /><title>Block Zombies Released!</title><content type="html">&lt;iframe allowfullscreen="" frameborder="0" height="360" src="http://www.youtube.com/embed/ubch2QsQN8I" width="640"&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;br /&gt;
I did up a little release trailer for Block Zombies, which is now available on the Indie Games section of the Xbox marketplace.&lt;br /&gt;
&lt;br /&gt;
The marketplace game page is &lt;a href="http://marketplace.xbox.com/en-US/Product/Block-Zombies/66acd000-77fe-1000-9115-d80258550a59"&gt;here&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Now on to the next game... :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6127132400597215190-6703540765103077060?l=blog.nostatic.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MikesCodeBlog/~4/N-SM1RoLMgA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.nostatic.org/feeds/6703540765103077060/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.nostatic.org/2012/01/block-zombies-released.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6127132400597215190/posts/default/6703540765103077060?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6127132400597215190/posts/default/6703540765103077060?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MikesCodeBlog/~3/N-SM1RoLMgA/block-zombies-released.html" title="Block Zombies Released!" /><author><name>Mike</name><uri>http://www.blogger.com/profile/13599208082890099005</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_1eC00ALSHt4/TQadQYzk0dI/AAAAAAAAFyY/KozsMa89wKA/S220/AvatarRetro2.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://img.youtube.com/vi/ubch2QsQN8I/default.jpg" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://blog.nostatic.org/2012/01/block-zombies-released.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUEBQnc9eip7ImA9WhRWF0w.&quot;"><id>tag:blogger.com,1999:blog-6127132400597215190.post-4913581962537356733</id><published>2012-01-04T13:40:00.001-08:00</published><updated>2012-01-04T13:47:33.962-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-04T13:47:33.962-08:00</app:edited><title>Quiet, Please! Post Compo Version</title><content type="html">&lt;a href="http://lh4.googleusercontent.com/-bN1IdIwxobM/TwTBMyz4KAI/AAAAAAAAGd4/vLMsTJxQX8c/s800/QuietPleasePC1.png"&gt;&lt;img alt="QuietPlease" border="0" src="http://lh4.googleusercontent.com/-bN1IdIwxobM/TwTBMyz4KAI/AAAAAAAAGd4/vLMsTJxQX8c/s640/QuietPleasePC1.png" style="cursor: pointer;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Since making "Quiet, Please!" for Ludum Dare 22, I've taken some time to improve on it and add additional content. I was really happy with what I was able to accomplish in the 48hr time period, but I had a lot of ideas that I was not able to get to.&lt;br /&gt;
&lt;br /&gt;
The biggest criticism of the compo version was its length. This updated version has new areas, new and improved puzzles, an intro and a lot more sound and art assets.&lt;br /&gt;
&lt;br /&gt;
The new version of "Quiet, Please!" can be played in a web browser (Unity) here:&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://dl.dropbox.com/u/25705372/QuietPleasePC.html"&gt;Quiet, Please! Post Compo Version&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
The original, 48hr entry is &lt;a href="http://www.ludumdare.com/compo/ludum-dare-22/?action=preview&amp;amp;uid=3184"&gt;here&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Here are a few screenshots from the new version of the game:&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://lh6.googleusercontent.com/-r-LTkjnZZkg/TwTBMbj09vI/AAAAAAAAGec/Lnb8C72ROco/s800/QuietPleasePC2.png"&gt;&lt;img alt="QuietPlease" border="0" src="http://lh6.googleusercontent.com/-r-LTkjnZZkg/TwTBMbj09vI/AAAAAAAAGec/Lnb8C72ROco/s640/QuietPleasePC2.png" style="cursor: pointer;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://dl.dropbox.com/u/25705372/QuietPlayer.html"&gt;&lt;img alt="QuietPlease" border="0" src="http://lh4.googleusercontent.com/-r8cQ-vTA-JM/TwTBMiQZkiI/AAAAAAAAGds/AHHl41DnH6M/s640/QuietPleasePC4.png" style="cursor: pointer;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://lh6.googleusercontent.com/-07gp50rTKn4/TwTBMpjbCFI/AAAAAAAAGd8/_HGe9KkDjIw/s800/QuietPleasePC3.png"&gt;&lt;img alt="QuietPlease" border="0" src="http://lh6.googleusercontent.com/-07gp50rTKn4/TwTBMpjbCFI/AAAAAAAAGd8/_HGe9KkDjIw/s640/QuietPleasePC3.png" style="cursor: pointer;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6127132400597215190-4913581962537356733?l=blog.nostatic.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MikesCodeBlog/~4/-0YNlN-dE18" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.nostatic.org/feeds/4913581962537356733/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.nostatic.org/2012/01/quiet-please-post-compo-version.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6127132400597215190/posts/default/4913581962537356733?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6127132400597215190/posts/default/4913581962537356733?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MikesCodeBlog/~3/-0YNlN-dE18/quiet-please-post-compo-version.html" title="Quiet, Please! Post Compo Version" /><author><name>Mike</name><uri>http://www.blogger.com/profile/13599208082890099005</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_1eC00ALSHt4/TQadQYzk0dI/AAAAAAAAFyY/KozsMa89wKA/S220/AvatarRetro2.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.googleusercontent.com/-bN1IdIwxobM/TwTBMyz4KAI/AAAAAAAAGd4/vLMsTJxQX8c/s72-c/QuietPleasePC1.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.nostatic.org/2012/01/quiet-please-post-compo-version.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUQDRn89fip7ImA9WhRVFUw.&quot;"><id>tag:blogger.com,1999:blog-6127132400597215190.post-2165715815525346456</id><published>2011-12-25T09:06:00.001-08:00</published><updated>2012-01-13T19:56:17.166-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-13T19:56:17.166-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="BlockZombies" /><title>Merry Christmas!</title><content type="html">&lt;a href="http://lh5.googleusercontent.com/-v7n-S9DoKmA/TvYIJ5XbFmI/AAAAAAAAGb0/PpwD40gcnac/s1024/ZombieXmas.png"&gt;&lt;img alt="Crappy TV Effect" border="0" src="http://lh5.googleusercontent.com/-v7n-S9DoKmA/TvYIJ5XbFmI/AAAAAAAAGb0/PpwD40gcnac/s640/ZombieXmas.png" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6127132400597215190-2165715815525346456?l=blog.nostatic.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MikesCodeBlog/~4/wmF57qmj11s" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.nostatic.org/feeds/2165715815525346456/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.nostatic.org/2011/12/merry-christmas.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6127132400597215190/posts/default/2165715815525346456?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6127132400597215190/posts/default/2165715815525346456?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MikesCodeBlog/~3/wmF57qmj11s/merry-christmas.html" title="Merry Christmas!" /><author><name>Mike</name><uri>http://www.blogger.com/profile/13599208082890099005</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_1eC00ALSHt4/TQadQYzk0dI/AAAAAAAAFyY/KozsMa89wKA/S220/AvatarRetro2.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.googleusercontent.com/-v7n-S9DoKmA/TvYIJ5XbFmI/AAAAAAAAGb0/PpwD40gcnac/s72-c/ZombieXmas.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.nostatic.org/2011/12/merry-christmas.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE8CQXs7eSp7ImA9WhRXGE4.&quot;"><id>tag:blogger.com,1999:blog-6127132400597215190.post-505490800465493081</id><published>2011-12-19T11:10:00.001-08:00</published><updated>2011-12-25T09:07:40.501-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-25T09:07:40.501-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ld48" /><category scheme="http://www.blogger.com/atom/ns#" term="game" /><title>Quiet, Please!</title><content type="html">&lt;a href="http://dl.dropbox.com/u/25705372/QuietPlayer.html"&gt;&lt;img alt="Crappy TV Effect" border="0" src="http://lh5.googleusercontent.com/-Dhp6dtdjWYc/Tu-Jvo_jUzI/AAAAAAAAGag/-v-g02A5ZYQ/MainShot.png" style="cursor: pointer;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
This past weekend, I made a little adventure game for the &lt;a href="http://www.ludumdare.com/compo/"&gt;Ludum Dare&lt;/a&gt; 48-hour competition.&lt;br /&gt;
&lt;br /&gt;
Whenever I do something like this, I'm amazed at how much it is possible to accomplish in two short days when you really focus. I'm also reminded how hard it is to complete a game in a short period of time...&lt;br /&gt;
&lt;br /&gt;
Anyway, have a go at the game. It is called "Quiet, Please!" and it is about a girl who just wants to be alone (the theme for the competition was "Alone").&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://dl.dropbox.com/u/25705372/QuietPlayer.html"&gt;Play it on the web here&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.ludumdare.com/compo/ludum-dare-22/?action=preview&amp;amp;uid=3184"&gt;Ludum Dare entry page here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6127132400597215190-505490800465493081?l=blog.nostatic.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MikesCodeBlog/~4/ErnCnZl7LEo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.nostatic.org/feeds/505490800465493081/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.nostatic.org/2011/12/quiet-please.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6127132400597215190/posts/default/505490800465493081?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6127132400597215190/posts/default/505490800465493081?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MikesCodeBlog/~3/ErnCnZl7LEo/quiet-please.html" title="Quiet, Please!" /><author><name>Mike</name><uri>http://www.blogger.com/profile/13599208082890099005</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_1eC00ALSHt4/TQadQYzk0dI/AAAAAAAAFyY/KozsMa89wKA/S220/AvatarRetro2.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.googleusercontent.com/-Dhp6dtdjWYc/Tu-Jvo_jUzI/AAAAAAAAGag/-v-g02A5ZYQ/s72-c/MainShot.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.nostatic.org/2011/12/quiet-please.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D08EQn07eSp7ImA9WhdbFkw.&quot;"><id>tag:blogger.com,1999:blog-6127132400597215190.post-3691430330179266513</id><published>2011-10-14T11:10:00.000-07:00</published><updated>2011-10-14T11:10:03.301-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-14T11:10:03.301-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="BlockZombies" /><category scheme="http://www.blogger.com/atom/ns#" term="XNA" /><category scheme="http://www.blogger.com/atom/ns#" term="XBLIG" /><category scheme="http://www.blogger.com/atom/ns#" term="game" /><title>Title Screen Sequence for Block Zombies</title><content type="html">&lt;iframe width="640" height="360" src="http://www.youtube.com/embed/TBRVXPGrErE?hd=1" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;br /&gt;
I added a bit of violence to the title screen sequence in Block Zombies.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6127132400597215190-3691430330179266513?l=blog.nostatic.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MikesCodeBlog/~4/a-L6np-6i6g" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.nostatic.org/feeds/3691430330179266513/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.nostatic.org/2011/10/title-screen-sequence-for-block-zombies.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6127132400597215190/posts/default/3691430330179266513?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6127132400597215190/posts/default/3691430330179266513?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MikesCodeBlog/~3/a-L6np-6i6g/title-screen-sequence-for-block-zombies.html" title="Title Screen Sequence for Block Zombies" /><author><name>Mike</name><uri>http://www.blogger.com/profile/13599208082890099005</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_1eC00ALSHt4/TQadQYzk0dI/AAAAAAAAFyY/KozsMa89wKA/S220/AvatarRetro2.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://img.youtube.com/vi/TBRVXPGrErE/default.jpg" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://blog.nostatic.org/2011/10/title-screen-sequence-for-block-zombies.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUMDRnc_fCp7ImA9WhdbEEU.&quot;"><id>tag:blogger.com,1999:blog-6127132400597215190.post-494353650796427638</id><published>2011-10-08T08:24:00.000-07:00</published><updated>2011-10-08T08:24:37.944-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-08T08:24:37.944-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="BlockZombies" /><category scheme="http://www.blogger.com/atom/ns#" term="art" /><category scheme="http://www.blogger.com/atom/ns#" term="XNA" /><category scheme="http://www.blogger.com/atom/ns#" term="XBLIG" /><category scheme="http://www.blogger.com/atom/ns#" term="game" /><title>First stab at box art for Block Zombies</title><content type="html">&lt;a href="http://lh4.googleusercontent.com/-8_pUorxuWyM/TpBpZPOHRAI/AAAAAAAAGQQ/aHoeSTE7VpE/BoxArt.jpg"&gt;&lt;img alt="Block Zombies Box Art" border="0" src="http://lh4.googleusercontent.com/-8_pUorxuWyM/TpBpZPOHRAI/AAAAAAAAGQQ/aHoeSTE7VpE/s512/BoxArt.jpg" style="cursor: pointer;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
As part of putting together a playtest build of Block Zombies I took an initial shot at doing some box art. I'm going for something simple, but (hopefully) eye-catching.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6127132400597215190-494353650796427638?l=blog.nostatic.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MikesCodeBlog/~4/9yaypyXr9Ws" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.nostatic.org/feeds/494353650796427638/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.nostatic.org/2011/10/first-stab-at-box-art-for-block-zombies.html#comment-form" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6127132400597215190/posts/default/494353650796427638?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6127132400597215190/posts/default/494353650796427638?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MikesCodeBlog/~3/9yaypyXr9Ws/first-stab-at-box-art-for-block-zombies.html" title="First stab at box art for Block Zombies" /><author><name>Mike</name><uri>http://www.blogger.com/profile/13599208082890099005</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_1eC00ALSHt4/TQadQYzk0dI/AAAAAAAAFyY/KozsMa89wKA/S220/AvatarRetro2.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.googleusercontent.com/-8_pUorxuWyM/TpBpZPOHRAI/AAAAAAAAGQQ/aHoeSTE7VpE/s72-c/BoxArt.jpg" height="72" width="72" /><thr:total>4</thr:total><feedburner:origLink>http://blog.nostatic.org/2011/10/first-stab-at-box-art-for-block-zombies.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0MMSHg4eyp7ImA9WhdbEE4.&quot;"><id>tag:blogger.com,1999:blog-6127132400597215190.post-8952556742745205251</id><published>2011-10-07T17:58:00.000-07:00</published><updated>2011-10-07T17:58:09.633-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-07T17:58:09.633-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="BlockZombies" /><category scheme="http://www.blogger.com/atom/ns#" term="XNA" /><category scheme="http://www.blogger.com/atom/ns#" term="XBLIG" /><category scheme="http://www.blogger.com/atom/ns#" term="game" /><title>Flamethrower and RPG in Block Zombies</title><content type="html">&lt;iframe width="640" height="360" src="http://www.youtube.com/embed/2-VUy-v_-og?hd=1" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;br /&gt;
I've added a flamethrower and an RPG to round out the array of weapons in Block Zombies. I think that should just about do it for the core combat mechanics.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6127132400597215190-8952556742745205251?l=blog.nostatic.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MikesCodeBlog/~4/ERbdR5NMLI8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.nostatic.org/feeds/8952556742745205251/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.nostatic.org/2011/10/flamethrower-and-rpg-in-block-zombies.html#comment-form" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6127132400597215190/posts/default/8952556742745205251?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6127132400597215190/posts/default/8952556742745205251?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MikesCodeBlog/~3/ERbdR5NMLI8/flamethrower-and-rpg-in-block-zombies.html" title="Flamethrower and RPG in Block Zombies" /><author><name>Mike</name><uri>http://www.blogger.com/profile/13599208082890099005</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_1eC00ALSHt4/TQadQYzk0dI/AAAAAAAAFyY/KozsMa89wKA/S220/AvatarRetro2.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://img.youtube.com/vi/2-VUy-v_-og/default.jpg" height="72" width="72" /><thr:total>4</thr:total><feedburner:origLink>http://blog.nostatic.org/2011/10/flamethrower-and-rpg-in-block-zombies.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkEBSXY5eip7ImA9WhdWFUQ.&quot;"><id>tag:blogger.com,1999:blog-6127132400597215190.post-2643334989309695155</id><published>2011-09-09T11:57:00.001-07:00</published><updated>2011-09-09T11:57:38.822-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-09T11:57:38.822-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="BlockZombies" /><category scheme="http://www.blogger.com/atom/ns#" term="XNA" /><category scheme="http://www.blogger.com/atom/ns#" term="XBLIG" /><category scheme="http://www.blogger.com/atom/ns#" term="game" /><title>Block Zombies Playable Credits</title><content type="html">&lt;iframe width="640" height="390" src="http://www.youtube.com/embed/ufCr6FFDYak?hd=1" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;br /&gt;
Block Zombies will carry on my tradition of having playable credits in my games. This is what I have so far.&lt;br /&gt;
&lt;br /&gt;
I haven't decided exactly what the "game" will be yet. Maybe you get a trophy if you manage to take out all of the zombies.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6127132400597215190-2643334989309695155?l=blog.nostatic.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MikesCodeBlog/~4/Bkt__HQfI34" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.nostatic.org/feeds/2643334989309695155/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.nostatic.org/2011/09/block-zombies-playable-credits.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6127132400597215190/posts/default/2643334989309695155?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6127132400597215190/posts/default/2643334989309695155?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MikesCodeBlog/~3/Bkt__HQfI34/block-zombies-playable-credits.html" title="Block Zombies Playable Credits" /><author><name>Mike</name><uri>http://www.blogger.com/profile/13599208082890099005</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_1eC00ALSHt4/TQadQYzk0dI/AAAAAAAAFyY/KozsMa89wKA/S220/AvatarRetro2.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://img.youtube.com/vi/ufCr6FFDYak/default.jpg" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://blog.nostatic.org/2011/09/block-zombies-playable-credits.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkIFQX49eip7ImA9WhdXGUU.&quot;"><id>tag:blogger.com,1999:blog-6127132400597215190.post-3272854891376874705</id><published>2011-09-02T11:35:00.000-07:00</published><updated>2011-09-02T11:35:10.062-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-02T11:35:10.062-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="BlockZombies" /><category scheme="http://www.blogger.com/atom/ns#" term="XNA" /><category scheme="http://www.blogger.com/atom/ns#" term="XBLIG" /><category scheme="http://www.blogger.com/atom/ns#" term="graphics" /><category scheme="http://www.blogger.com/atom/ns#" term="game" /><title>Block Zombies: Aerial News Footage of the Infected Zone</title><content type="html">&lt;iframe width="640" height="510" src="http://www.youtube.com/embed/FpNFkiHr5FY?hd=1" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;br /&gt;
Here is a video using the CRT screen effect I mentioned in my last blog post.&lt;br /&gt;
&lt;br /&gt;
I'm planning on using something like this as an intro scene, or perhaps as the backdrop for my game menus.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6127132400597215190-3272854891376874705?l=blog.nostatic.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MikesCodeBlog/~4/OyZX5a0W7_A" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.nostatic.org/feeds/3272854891376874705/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.nostatic.org/2011/09/block-zombies-aerial-news-footage-of.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6127132400597215190/posts/default/3272854891376874705?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6127132400597215190/posts/default/3272854891376874705?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MikesCodeBlog/~3/OyZX5a0W7_A/block-zombies-aerial-news-footage-of.html" title="Block Zombies: Aerial News Footage of the Infected Zone" /><author><name>Mike</name><uri>http://www.blogger.com/profile/13599208082890099005</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_1eC00ALSHt4/TQadQYzk0dI/AAAAAAAAFyY/KozsMa89wKA/S220/AvatarRetro2.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://img.youtube.com/vi/FpNFkiHr5FY/default.jpg" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://blog.nostatic.org/2011/09/block-zombies-aerial-news-footage-of.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMMQng9fip7ImA9WhdXF0s.&quot;"><id>tag:blogger.com,1999:blog-6127132400597215190.post-4331411116600996968</id><published>2011-08-30T15:08:00.000-07:00</published><updated>2011-08-30T20:14:43.666-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-30T20:14:43.666-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="BlockZombies" /><category scheme="http://www.blogger.com/atom/ns#" term="XNA" /><category scheme="http://www.blogger.com/atom/ns#" term="HLSL" /><category scheme="http://www.blogger.com/atom/ns#" term="XBLIG" /><category scheme="http://www.blogger.com/atom/ns#" term="graphics" /><title>Using shaders to create an old CRT TV screen effect</title><content type="html">&lt;a href="http://lh3.googleusercontent.com/-8ynnMXLAfaA/Tl1dxaDQBVI/AAAAAAAAGMg/rTJ-7RBBlqA/ZombieTV.jpg"&gt;&lt;img alt="Crappy TV Effect" border="0" src="http://lh3.googleusercontent.com/-8ynnMXLAfaA/Tl1dxaDQBVI/AAAAAAAAGMg/rTJ-7RBBlqA/s640/ZombieTV.jpg" style="cursor: pointer;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
I've been playing around with adding an effect to make Block Zombies look like it is playing on an old, crappy TV. It still needs tweaking, but it is starting to get close to what I want.&lt;br /&gt;
&lt;br /&gt;
Using a couple of screen-space shaders, I'm blurring, adding scanlines, desaturating and adding darkened corners.&lt;br /&gt;
&lt;br /&gt;
I'm not planning on using this effect in-game, but I'm thinking that the intro will be some sort of news-ticker with footage of the scene of the zombie outbreak.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6127132400597215190-4331411116600996968?l=blog.nostatic.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MikesCodeBlog/~4/qiqFgkCPBYw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.nostatic.org/feeds/4331411116600996968/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.nostatic.org/2011/08/crappy-tv-effect.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6127132400597215190/posts/default/4331411116600996968?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6127132400597215190/posts/default/4331411116600996968?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MikesCodeBlog/~3/qiqFgkCPBYw/crappy-tv-effect.html" title="Using shaders to create an old CRT TV screen effect" /><author><name>Mike</name><uri>http://www.blogger.com/profile/13599208082890099005</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_1eC00ALSHt4/TQadQYzk0dI/AAAAAAAAFyY/KozsMa89wKA/S220/AvatarRetro2.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.googleusercontent.com/-8ynnMXLAfaA/Tl1dxaDQBVI/AAAAAAAAGMg/rTJ-7RBBlqA/s72-c/ZombieTV.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.nostatic.org/2011/08/crappy-tv-effect.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEIAR3oycCp7ImA9WhdXE0U.&quot;"><id>tag:blogger.com,1999:blog-6127132400597215190.post-694214114906070525</id><published>2011-08-26T12:22:00.001-07:00</published><updated>2011-08-26T12:22:26.498-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-26T12:22:26.498-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="BlockZombies" /><category scheme="http://www.blogger.com/atom/ns#" term="XNA" /><category scheme="http://www.blogger.com/atom/ns#" term="XBLIG" /><category scheme="http://www.blogger.com/atom/ns#" term="graphics" /><category scheme="http://www.blogger.com/atom/ns#" term="game" /><title>Block Zombies: Dark and Stormy Gameplay</title><content type="html">&lt;iframe width="640" height="390" src="http://www.youtube.com/embed/y35chfaVEl4?hd=1" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;br /&gt;
I've been working on adding darkness, thunder and lightning to Block Zombies.&lt;br /&gt;
&lt;br /&gt;
I used a modified version of the technique &lt;a href="http://blog.nostatic.org/2011/04/lightning-and-thunder.html"&gt;I used for Kung Fu FIGHT!&lt;/a&gt; - tweaking parameters in my bloom shader to do most of the work. Because Block Zombies is 3D, I also mess with the light direction, which does fun things with the shadows when lightning strikes.&lt;br /&gt;
&lt;br /&gt;
Because the effect is just manipulating lighting and bloom parameters, it is basically cost-free. I haven't added in actual rain yet, since that definitely wouldn't be cost-free, and I'm not sure I can afford the extra overhead.&lt;br /&gt;
&lt;br /&gt;
The glowy zombie eyes, windows and sparks are done by reserving a section of my color palette that my shaders recognize and treat as being self-lit.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6127132400597215190-694214114906070525?l=blog.nostatic.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MikesCodeBlog/~4/Dccwb-ZQrDM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.nostatic.org/feeds/694214114906070525/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.nostatic.org/2011/08/block-zombies-dark-and-stormy-gameplay.html#comment-form" title="5 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6127132400597215190/posts/default/694214114906070525?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6127132400597215190/posts/default/694214114906070525?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MikesCodeBlog/~3/Dccwb-ZQrDM/block-zombies-dark-and-stormy-gameplay.html" title="Block Zombies: Dark and Stormy Gameplay" /><author><name>Mike</name><uri>http://www.blogger.com/profile/13599208082890099005</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_1eC00ALSHt4/TQadQYzk0dI/AAAAAAAAFyY/KozsMa89wKA/S220/AvatarRetro2.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://img.youtube.com/vi/y35chfaVEl4/default.jpg" height="72" width="72" /><thr:total>5</thr:total><feedburner:origLink>http://blog.nostatic.org/2011/08/block-zombies-dark-and-stormy-gameplay.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkAHSXc4fCp7ImA9WhdXEEg.&quot;"><id>tag:blogger.com,1999:blog-6127132400597215190.post-2772607507775813782</id><published>2011-08-22T12:41:00.001-07:00</published><updated>2011-08-22T17:18:58.934-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-22T17:18:58.934-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="BlockZombies" /><category scheme="http://www.blogger.com/atom/ns#" term="XNA" /><category scheme="http://www.blogger.com/atom/ns#" term="XBLIG" /><category scheme="http://www.blogger.com/atom/ns#" term="game" /><title>Block Zombies</title><content type="html">&lt;iframe width="640" height="390" src="http://www.youtube.com/embed/2N_aSxMysUI?hd=1" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;br /&gt;
Here is the first work-in-progress gameplay video from Block Zombies - my next game for Xbox LIVE Indie Games.&lt;br /&gt;
&lt;br /&gt;
The core gameplay is mostly done, and I'm now working on adding more variety to the enemies and environments.&lt;br /&gt;
&lt;br /&gt;
I'm hoping to get it out the door in the next month or so.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6127132400597215190-2772607507775813782?l=blog.nostatic.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MikesCodeBlog/~4/gV83uk_aCr4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.nostatic.org/feeds/2772607507775813782/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.nostatic.org/2011/08/block-zombies.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6127132400597215190/posts/default/2772607507775813782?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6127132400597215190/posts/default/2772607507775813782?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MikesCodeBlog/~3/gV83uk_aCr4/block-zombies.html" title="Block Zombies" /><author><name>Mike</name><uri>http://www.blogger.com/profile/13599208082890099005</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_1eC00ALSHt4/TQadQYzk0dI/AAAAAAAAFyY/KozsMa89wKA/S220/AvatarRetro2.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://img.youtube.com/vi/2N_aSxMysUI/default.jpg" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://blog.nostatic.org/2011/08/block-zombies.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkACQ3s9fip7ImA9WhdXEEg.&quot;"><id>tag:blogger.com,1999:blog-6127132400597215190.post-2251673174699438470</id><published>2011-08-04T21:29:00.000-07:00</published><updated>2011-08-22T17:19:22.566-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-22T17:19:22.566-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="XNA" /><category scheme="http://www.blogger.com/atom/ns#" term="KFF" /><category scheme="http://www.blogger.com/atom/ns#" term="WP7" /><category scheme="http://www.blogger.com/atom/ns#" term="game" /><title>Kung Fu FIGHT! now on WP7</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-AOGdau_8uCo/TjtvHmmo4kI/AAAAAAAAGLA/LpBWpRWD3VE/s1600/KungFu128x128.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-AOGdau_8uCo/TjtvHmmo4kI/AAAAAAAAGLA/LpBWpRWD3VE/s1600/KungFu128x128.png" /&gt;&lt;/a&gt;&lt;/div&gt;The Windows Phone 7 version of Kung Fu FIGHT! is now available!&lt;br /&gt;
&lt;br /&gt;
I was worried about how it would translate to the phone, but it runs really well - even with the downgrade to 30fps.&lt;br /&gt;
&lt;br /&gt;
I was also concerned about the touch controls, but that ended up not being a problem.&lt;br /&gt;
&lt;br /&gt;
If anything, I think I might prefer the phone version to the Xbox one - it works really well with the "pick up and play for a bit" affordance that the handheld device offers.&lt;br /&gt;
&lt;br /&gt;
If you have a Windows phone, you can grab it here:&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://windowsphone.com/s?appid=89dcc775-28f9-422d-835f-7ac68352e16b"&gt;Kung Fu FIGHT! for Windows Phone&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6127132400597215190-2251673174699438470?l=blog.nostatic.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MikesCodeBlog/~4/3hzJ1syKGFc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.nostatic.org/feeds/2251673174699438470/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.nostatic.org/2011/08/windows-phone-7-version-of-kung-fu.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6127132400597215190/posts/default/2251673174699438470?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6127132400597215190/posts/default/2251673174699438470?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MikesCodeBlog/~3/3hzJ1syKGFc/windows-phone-7-version-of-kung-fu.html" title="Kung Fu FIGHT! now on WP7" /><author><name>Mike</name><uri>http://www.blogger.com/profile/13599208082890099005</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_1eC00ALSHt4/TQadQYzk0dI/AAAAAAAAFyY/KozsMa89wKA/S220/AvatarRetro2.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-AOGdau_8uCo/TjtvHmmo4kI/AAAAAAAAGLA/LpBWpRWD3VE/s72-c/KungFu128x128.png" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://blog.nostatic.org/2011/08/windows-phone-7-version-of-kung-fu.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0cASXc7fCp7ImA9WhdTGEk.&quot;"><id>tag:blogger.com,1999:blog-6127132400597215190.post-7284164701626225479</id><published>2011-07-16T11:30:00.001-07:00</published><updated>2011-07-16T11:30:48.904-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-16T11:30:48.904-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="XNA" /><category scheme="http://www.blogger.com/atom/ns#" term="KFF" /><category scheme="http://www.blogger.com/atom/ns#" term="WP7" /><category scheme="http://www.blogger.com/atom/ns#" term="game" /><title>Kung Fu FIGHT! on WP7</title><content type="html">&lt;a href="http://lh3.googleusercontent.com/-L6tiV23CTts/TiHWRHG5gQI/AAAAAAAAGJE/gs9Nmhwzo0M/KungFuWP7.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="Kung Fu FIGHT! on WP7" border="0" src="http://lh3.googleusercontent.com/-L6tiV23CTts/TiHWRHG5gQI/AAAAAAAAGJE/gs9Nmhwzo0M/s640/KungFuWP7.jpg" style="cursor: pointer;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
The past few days I've been working on getting Kung Fu FIGHT! working on WP7. When creating the game, I was very careful to keep portability in mind. That has paid off, since it is already mostly done.&lt;br /&gt;
&lt;br /&gt;
I just need to do some more tweaking on the UI and tighten up my touch controls.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6127132400597215190-7284164701626225479?l=blog.nostatic.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MikesCodeBlog/~4/EAhSpvp7Q7A" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.nostatic.org/feeds/7284164701626225479/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.nostatic.org/2011/07/kung-fu-fight-on-wp7.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6127132400597215190/posts/default/7284164701626225479?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6127132400597215190/posts/default/7284164701626225479?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MikesCodeBlog/~3/EAhSpvp7Q7A/kung-fu-fight-on-wp7.html" title="Kung Fu FIGHT! on WP7" /><author><name>Mike</name><uri>http://www.blogger.com/profile/13599208082890099005</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_1eC00ALSHt4/TQadQYzk0dI/AAAAAAAAFyY/KozsMa89wKA/S220/AvatarRetro2.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.googleusercontent.com/-L6tiV23CTts/TiHWRHG5gQI/AAAAAAAAGJE/gs9Nmhwzo0M/s72-c/KungFuWP7.jpg" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://blog.nostatic.org/2011/07/kung-fu-fight-on-wp7.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D08CRnw7cCp7ImA9WhdTGE4.&quot;"><id>tag:blogger.com,1999:blog-6127132400597215190.post-8700181687975460807</id><published>2011-07-05T12:02:00.000-07:00</published><updated>2011-07-16T10:04:27.208-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-16T10:04:27.208-07:00</app:edited><title>MapCache - Offline Maps for WP7</title><content type="html">&lt;b&gt;Update:&lt;/b&gt; MapCache is now available in the Windows Phone Marketplace here: &lt;a href="http://social.zune.net/External/LaunchZuneProtocol.aspx?pathuri=navigate%3FphoneAppID%3Da673fb1a-b2ac-e011-a53c-78e7d1fa76f8"&gt;MapCache Offline Maps for WP7&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;
&lt;img alt="Offline Maps for WP7" border="0" src="http://lh4.googleusercontent.com/-zxwbnjjUqIY/ThNX-_dt4LI/AAAAAAAAGH8/KvlwIjdom5k/MapCache2.png" /&gt;&lt;/div&gt;
&lt;div style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;
&lt;img alt="Offline Maps for WP7" border="0" src="http://lh5.googleusercontent.com/-LZh6whZoY9w/ThNiOprncMI/AAAAAAAAGIQ/14mkbd-YdBs/MapCache1.png" /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style="clear: left;"&gt;
I have a shiny WP7 smartphone, but I don't have a data plan. I just don't need it enough to justify the hefty monthly fee. I like paying the roughly $8 a month that GoPhone service costs me.&lt;/div&gt;
&lt;br /&gt;
Still, the phone has that nice GPS functionality, and having a map in your pocket can really come in handy sometimes. But how can you have access to a map without a data plan?&lt;br /&gt;
&lt;br /&gt;
The solution - map caching. MapCache is an application that lets you browse around a map while you have a connection, all the while caching the map areas you view for later use offline.&lt;br /&gt;
&lt;br /&gt;
Note that this isn't just useful for people like me without data plans. In can also be useful when:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;you have a limited data plan that you want to minimize use of&lt;/li&gt;
&lt;li&gt;you want to avoid prohibitive roaming charges&lt;/li&gt;
&lt;li&gt;you want maps when you are in an area of limited or no coverage&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
A while back, &lt;a href="http://menuinprogress.com/2011/06/day-in-tj-with-tourista-libre.html"&gt;I was in Tijuana&lt;/a&gt; with a group of people, many of whom had smartphones with data plans. Everyone wanted to use maps on their phones, but the roaming data charge was so expense that it just didn't make sense. A pre-cached map would have solved the problem.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;
&lt;img alt="Offline Maps for WP7" border="0" src="http://lh6.googleusercontent.com/-hrc1ueSVfTM/ThNX_sU0dcI/AAAAAAAAGIE/JMthVlkdDTA/MapCache3.png" /&gt;&lt;/div&gt;
&lt;div style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;
&lt;img alt="Offline Maps for WP7" border="0" src="http://lh3.googleusercontent.com/-xQ2alsZTtqo/ThNX-o59uFI/AAAAAAAAGH4/jVZkQZlbGTo/MapCache4.png" /&gt;&lt;/div&gt;
&lt;br /&gt;
MapCache has most of the features you would expect from a smartphone mapping application. It locates you via GPS, and you can browse around the map or use search tools to find places or businesses. The map tile data comes from openstreetmap.org which, unlike map services from Google or Microsoft, allows you to cache data. Place and local business search are provided by Yahoo! PlaceFinder and Local Search.&lt;br /&gt;
&lt;br /&gt;
The application is pretty much finished. I'm wrapping up a few remaining items on my todo list, and plan to submit it to the WP7 marketplace shortly.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6127132400597215190-8700181687975460807?l=blog.nostatic.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MikesCodeBlog/~4/QqxJV3RjrBo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.nostatic.org/feeds/8700181687975460807/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.nostatic.org/2011/07/mapcache-offline-maps-for-wp7.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6127132400597215190/posts/default/8700181687975460807?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6127132400597215190/posts/default/8700181687975460807?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MikesCodeBlog/~3/QqxJV3RjrBo/mapcache-offline-maps-for-wp7.html" title="MapCache - Offline Maps for WP7" /><author><name>Mike</name><uri>http://www.blogger.com/profile/13599208082890099005</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_1eC00ALSHt4/TQadQYzk0dI/AAAAAAAAFyY/KozsMa89wKA/S220/AvatarRetro2.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.googleusercontent.com/-zxwbnjjUqIY/ThNX-_dt4LI/AAAAAAAAGH8/KvlwIjdom5k/s72-c/MapCache2.png" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://blog.nostatic.org/2011/07/mapcache-offline-maps-for-wp7.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0UHRnw8fSp7ImA9WhZbE04.&quot;"><id>tag:blogger.com,1999:blog-6127132400597215190.post-5141453404886024261</id><published>2011-06-17T11:24:00.001-07:00</published><updated>2011-06-17T11:27:17.275-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-17T11:27:17.275-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="XNA" /><category scheme="http://www.blogger.com/atom/ns#" term="KFF" /><category scheme="http://www.blogger.com/atom/ns#" term="XBLIG" /><category scheme="http://www.blogger.com/atom/ns#" term="game" /><title>Kung Fu FIGHT! Released!</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://marketplace.xbox.com/en-US/Product/Kung-Fu-FIGHT/66acd000-77fe-1000-9115-d802585508ad" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img alt="Kung Fu FIGHT!" src="http://lh6.googleusercontent.com/-U2PdYmawPHg/TfuHGYQxwMI/AAAAAAAAGF4/V_lNYIEDAFI/s200/BoxArt2.jpg" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;Kung Fu FIGHT! is now available on Xbox LIVE.&lt;br /&gt;
&lt;br /&gt;
You can find it in the web-based marketplace here:&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://marketplace.xbox.com/en-US/Product/Kung-Fu-FIGHT/66acd000-77fe-1000-9115-d802585508ad"&gt;Download Kung Fu FIGHT!&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6127132400597215190-5141453404886024261?l=blog.nostatic.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MikesCodeBlog/~4/WL0SxQUyIgE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.nostatic.org/feeds/5141453404886024261/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.nostatic.org/2011/06/kung-fu-fight-released.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6127132400597215190/posts/default/5141453404886024261?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6127132400597215190/posts/default/5141453404886024261?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MikesCodeBlog/~3/WL0SxQUyIgE/kung-fu-fight-released.html" title="Kung Fu FIGHT! Released!" /><author><name>Mike</name><uri>http://www.blogger.com/profile/13599208082890099005</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_1eC00ALSHt4/TQadQYzk0dI/AAAAAAAAFyY/KozsMa89wKA/S220/AvatarRetro2.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.googleusercontent.com/-U2PdYmawPHg/TfuHGYQxwMI/AAAAAAAAGF4/V_lNYIEDAFI/s72-c/BoxArt2.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.nostatic.org/2011/06/kung-fu-fight-released.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0QHQXY4eip7ImA9WhZUGUU.&quot;"><id>tag:blogger.com,1999:blog-6127132400597215190.post-6253005070870194542</id><published>2011-06-13T11:22:00.000-07:00</published><updated>2011-06-13T11:22:10.832-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-13T11:22:10.832-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="XNA" /><category scheme="http://www.blogger.com/atom/ns#" term="KFF" /><category scheme="http://www.blogger.com/atom/ns#" term="XBLIG" /><category scheme="http://www.blogger.com/atom/ns#" term="game" /><title>Kung Fu FIGHT! Dream Build Play 2011 Trailer</title><content type="html">&lt;object height="385" width="640"&gt;&lt;param name="movie" value="http://www.youtube.com/v/AINZ_OqMHWI?fs=1&amp;amp;hl=en_US&amp;amp;rel=0&amp;amp;hd=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/AINZ_OqMHWI?fs=1&amp;amp;hl=en_US&amp;amp;rel=0&amp;amp;hd=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;
&lt;br /&gt;
This is the trailer I put together when submitting Kung Fu FIGHT! to the 2011 &lt;a href="http://www.dreambuildplay.com/"&gt;Dream Build Play&lt;/a&gt; competition.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6127132400597215190-6253005070870194542?l=blog.nostatic.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MikesCodeBlog/~4/l6WEY4n1yd8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.nostatic.org/feeds/6253005070870194542/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.nostatic.org/2011/06/kung-fu-fight-dream-build-play-2011.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6127132400597215190/posts/default/6253005070870194542?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6127132400597215190/posts/default/6253005070870194542?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MikesCodeBlog/~3/l6WEY4n1yd8/kung-fu-fight-dream-build-play-2011.html" title="Kung Fu FIGHT! Dream Build Play 2011 Trailer" /><author><name>Mike</name><uri>http://www.blogger.com/profile/13599208082890099005</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_1eC00ALSHt4/TQadQYzk0dI/AAAAAAAAFyY/KozsMa89wKA/S220/AvatarRetro2.png" /></author><thr:total>2</thr:total><feedburner:origLink>http://blog.nostatic.org/2011/06/kung-fu-fight-dream-build-play-2011.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C08DQHY9cSp7ImA9WhZUEEk.&quot;"><id>tag:blogger.com,1999:blog-6127132400597215190.post-9167788920919963687</id><published>2011-06-02T12:11:00.000-07:00</published><updated>2011-06-02T12:11:11.869-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-02T12:11:11.869-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="XNA" /><category scheme="http://www.blogger.com/atom/ns#" term="WP7" /><title>OpenStreetMap Slippy Map in WP7</title><content type="html">&lt;a href="https://lh4.googleusercontent.com/-TKXl2aUGWVw/TefeJCWUpSI/AAAAAAAAGEw/OhDUOlf7q7g/Map.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="OpenStreetMap SlippyMap in WP7" border="0" src="https://lh4.googleusercontent.com/-TKXl2aUGWVw/TefeJCWUpSI/AAAAAAAAGEw/OhDUOlf7q7g/s640/Map.jpg" style="cursor: pointer;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
I'm procrastinating putting the final touches on Kung Fu FIGHT! and have been messing around more with WP7.&lt;br /&gt;
&lt;br /&gt;
I've pretty quickly been able to put together a simple draggable map using &lt;a href="http://www.openstreetmap.org/"&gt;OpenStreetMap &lt;/a&gt;tile data. It is definitely cool to have such a high quality source of map data freely available. Fun stuff.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6127132400597215190-9167788920919963687?l=blog.nostatic.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MikesCodeBlog/~4/TqiSWxg85Iw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.nostatic.org/feeds/9167788920919963687/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.nostatic.org/2011/06/openstreetmap-slippy-map-in-wp7.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6127132400597215190/posts/default/9167788920919963687?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6127132400597215190/posts/default/9167788920919963687?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MikesCodeBlog/~3/TqiSWxg85Iw/openstreetmap-slippy-map-in-wp7.html" title="OpenStreetMap Slippy Map in WP7" /><author><name>Mike</name><uri>http://www.blogger.com/profile/13599208082890099005</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_1eC00ALSHt4/TQadQYzk0dI/AAAAAAAAFyY/KozsMa89wKA/S220/AvatarRetro2.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh4.googleusercontent.com/-TKXl2aUGWVw/TefeJCWUpSI/AAAAAAAAGEw/OhDUOlf7q7g/s72-c/Map.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.nostatic.org/2011/06/openstreetmap-slippy-map-in-wp7.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE4GQnw6eSp7ImA9WhRXGE4.&quot;"><id>tag:blogger.com,1999:blog-6127132400597215190.post-854207538461260837</id><published>2011-05-02T09:11:00.001-07:00</published><updated>2011-12-25T09:08:43.211-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-25T09:08:43.211-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ld48" /><category scheme="http://www.blogger.com/atom/ns#" term="game" /><title>Quite a Weekend</title><content type="html">Pork butt was smoked:&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://lh3.ggpht.com/_1eC00ALSHt4/Tb7WHTwzcSI/AAAAAAAAGBA/jG5xbdURLSI/s800-h/c4052264-4790-4598-ab2e-cb7305074dd5.jpg"&gt;&lt;img alt="" border="0" src="http://lh3.ggpht.com/_1eC00ALSHt4/Tb7WHTwzcSI/AAAAAAAAGBA/jG5xbdURLSI/s640/c4052264-4790-4598-ab2e-cb7305074dd5.jpg" style="cursor: pointer;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Beer was brewed (a west-coast double IPA):&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://lh5.ggpht.com/_1eC00ALSHt4/Tb7WIT05OTI/AAAAAAAAGBE/hPq0g5fQpZU/s800-h/3c873dff-b437-4548-be95-634036c76cc4.jpg"&gt;&lt;img alt="" border="0" src="http://lh5.ggpht.com/_1eC00ALSHt4/Tb7WIT05OTI/AAAAAAAAGBE/hPq0g5fQpZU/s640/3c873dff-b437-4548-be95-634036c76cc4.jpg" style="cursor: pointer;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
And a game was made:&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://lh3.googleusercontent.com/_1eC00ALSHt4/Tb7WftMGqKI/AAAAAAAAGBQ/VGsXnIF6-RE/AscentLD2.png"&gt;&lt;img alt="" border="0" src="http://lh3.googleusercontent.com/_1eC00ALSHt4/Tb7WftMGqKI/AAAAAAAAGBQ/VGsXnIF6-RE/s640/AscentLD2.png" style="cursor: pointer;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
The game is called "Ascent of Kings" and I made it for LD20. You can get it from the Ludum Dare website &lt;a href="http://www.ludumdare.com/compo/ludum-dare-20/?action=rate&amp;amp;uid=3184"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6127132400597215190-854207538461260837?l=blog.nostatic.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MikesCodeBlog/~4/VE1tW2Vsxxw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.nostatic.org/feeds/854207538461260837/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.nostatic.org/2011/05/quite-weekend.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6127132400597215190/posts/default/854207538461260837?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6127132400597215190/posts/default/854207538461260837?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MikesCodeBlog/~3/VE1tW2Vsxxw/quite-weekend.html" title="Quite a Weekend" /><author><name>Mike</name><uri>http://www.blogger.com/profile/13599208082890099005</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_1eC00ALSHt4/TQadQYzk0dI/AAAAAAAAFyY/KozsMa89wKA/S220/AvatarRetro2.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/_1eC00ALSHt4/Tb7WHTwzcSI/AAAAAAAAGBA/jG5xbdURLSI/s72-c/c4052264-4790-4598-ab2e-cb7305074dd5.jpg" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://blog.nostatic.org/2011/05/quite-weekend.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0QBRHs4eCp7ImA9WhZXEEw.&quot;"><id>tag:blogger.com,1999:blog-6127132400597215190.post-3324011419794723503</id><published>2011-04-28T11:29:00.000-07:00</published><updated>2011-04-28T11:29:15.530-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-28T11:29:15.530-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="XNA" /><category scheme="http://www.blogger.com/atom/ns#" term="KFF" /><category scheme="http://www.blogger.com/atom/ns#" term="XBLIG" /><category scheme="http://www.blogger.com/atom/ns#" term="game" /><title>Spikes</title><content type="html">&lt;a href="http://lh3.googleusercontent.com/_1eC00ALSHt4/Tbmw4fK8EmI/AAAAAAAAGAs/yBvFCpQQUVs/KungFuSpikes.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="Spikes" border="0" src="http://lh3.googleusercontent.com/_1eC00ALSHt4/Tbmw4fK8EmI/AAAAAAAAGAs/yBvFCpQQUVs/s640/KungFuSpikes.jpg" style="cursor: pointer;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
What game wouldn't be made better with the addition of a few spikes?&lt;br /&gt;
&lt;br /&gt;
Another new way of many to meet your demise in Kung Fu FIGHT!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6127132400597215190-3324011419794723503?l=blog.nostatic.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MikesCodeBlog/~4/4tMKH53L8kI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.nostatic.org/feeds/3324011419794723503/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.nostatic.org/2011/04/spikes.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6127132400597215190/posts/default/3324011419794723503?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6127132400597215190/posts/default/3324011419794723503?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MikesCodeBlog/~3/4tMKH53L8kI/spikes.html" title="Spikes" /><author><name>Mike</name><uri>http://www.blogger.com/profile/13599208082890099005</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_1eC00ALSHt4/TQadQYzk0dI/AAAAAAAAFyY/KozsMa89wKA/S220/AvatarRetro2.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.googleusercontent.com/_1eC00ALSHt4/Tbmw4fK8EmI/AAAAAAAAGAs/yBvFCpQQUVs/s72-c/KungFuSpikes.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.nostatic.org/2011/04/spikes.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0cMQ38_fyp7ImA9WhZQFEQ.&quot;"><id>tag:blogger.com,1999:blog-6127132400597215190.post-817617727825002742</id><published>2011-04-22T12:04:00.001-07:00</published><updated>2011-04-22T12:04:42.147-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-22T12:04:42.147-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="XNA" /><category scheme="http://www.blogger.com/atom/ns#" term="KFF" /><category scheme="http://www.blogger.com/atom/ns#" term="XBLIG" /><category scheme="http://www.blogger.com/atom/ns#" term="game" /><title>Alpha Version of Kung Fu FIGHT! (Act I) Available</title><content type="html">&lt;a href="https://lh5.googleusercontent.com/_1eC00ALSHt4/TbHNQx_Ac9I/AAAAAAAAGAI/BlKmTtnM6To/KungFuChandalier.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="Kung Fu FIGHT!" border="0" src="https://lh5.googleusercontent.com/_1eC00ALSHt4/TbHNQx_Ac9I/AAAAAAAAGAI/BlKmTtnM6To/s640/KungFuChandalier.jpg" style="cursor: pointer;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
The first section of Kung Fu FIGHT! is now pretty much done, so I am making a new windows alpha version available for people to have a go at.&lt;br /&gt;
&lt;br /&gt;
This version is built with DirectX. I've tried to keep the dependencies to a minimum. Here's what you need:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;DirectX (June 2010 build). Get it here: &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3"&gt;DirectX End-User Runtime&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;.NET 2.0. Comes with Vista and Windows 7. Otherwise, get it here: &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?familyid=0856EACB-4362-4B0D-8EDD-AAB15C5E04F5&amp;amp;displaylang=en"&gt;.NET 2.0&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;And of course you need Kung Fu Fight!:&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://dl.dropbox.com/u/25705372/KungFuFight.zip"&gt;Kung Fu FIGHT! Act I Alpha&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Give it a try, and let me know what you think.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6127132400597215190-817617727825002742?l=blog.nostatic.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MikesCodeBlog/~4/oBLaEOocTro" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.nostatic.org/feeds/817617727825002742/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.nostatic.org/2011/04/alpha-version-of-kung-fu-fight-act-i.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6127132400597215190/posts/default/817617727825002742?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6127132400597215190/posts/default/817617727825002742?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MikesCodeBlog/~3/oBLaEOocTro/alpha-version-of-kung-fu-fight-act-i.html" title="Alpha Version of Kung Fu FIGHT! (Act I) Available" /><author><name>Mike</name><uri>http://www.blogger.com/profile/13599208082890099005</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_1eC00ALSHt4/TQadQYzk0dI/AAAAAAAAFyY/KozsMa89wKA/S220/AvatarRetro2.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh5.googleusercontent.com/_1eC00ALSHt4/TbHNQx_Ac9I/AAAAAAAAGAI/BlKmTtnM6To/s72-c/KungFuChandalier.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.nostatic.org/2011/04/alpha-version-of-kung-fu-fight-act-i.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU4HSXk6cCp7ImA9WhZRGEU.&quot;"><id>tag:blogger.com,1999:blog-6127132400597215190.post-2553606944615223819</id><published>2011-04-15T10:18:00.001-07:00</published><updated>2011-04-15T10:18:58.718-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-15T10:18:58.718-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="XNA" /><category scheme="http://www.blogger.com/atom/ns#" term="KFF" /><category scheme="http://www.blogger.com/atom/ns#" term="XBLIG" /><category scheme="http://www.blogger.com/atom/ns#" term="game" /><title>Lightning and Thunder</title><content type="html">&lt;object height="385" width="640"&gt;&lt;param name="movie" value="http://www.youtube.com/v/53tYfYg-Jl8?fs=1&amp;amp;hl=en_US&amp;amp;rel=0&amp;amp;hd=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/53tYfYg-Jl8?fs=1&amp;amp;hl=en_US&amp;amp;rel=0&amp;amp;hd=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;
&lt;br /&gt;
I added some ambiance to the rainy section of Kung Fu FIGHT! with some thunder and lightning.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6127132400597215190-2553606944615223819?l=blog.nostatic.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MikesCodeBlog/~4/rwOZMmVqHZw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.nostatic.org/feeds/2553606944615223819/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.nostatic.org/2011/04/lightning-and-thunder.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6127132400597215190/posts/default/2553606944615223819?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6127132400597215190/posts/default/2553606944615223819?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MikesCodeBlog/~3/rwOZMmVqHZw/lightning-and-thunder.html" title="Lightning and Thunder" /><author><name>Mike</name><uri>http://www.blogger.com/profile/13599208082890099005</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_1eC00ALSHt4/TQadQYzk0dI/AAAAAAAAFyY/KozsMa89wKA/S220/AvatarRetro2.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.nostatic.org/2011/04/lightning-and-thunder.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0EERnk8eCp7ImA9WhZRFkk.&quot;"><id>tag:blogger.com,1999:blog-6127132400597215190.post-5057518429433153054</id><published>2011-04-12T13:53:00.001-07:00</published><updated>2011-04-12T13:53:27.770-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-12T13:53:27.770-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="XNA" /><category scheme="http://www.blogger.com/atom/ns#" term="KFF" /><category scheme="http://www.blogger.com/atom/ns#" term="XBLIG" /><category scheme="http://www.blogger.com/atom/ns#" term="game" /><title>Kung Fu FIGHT! Brutal Difficulty Gameplay Video</title><content type="html">&lt;object height="385" width="640"&gt;&lt;param name="movie" value="http://www.youtube.com/v/UQcDJK0tu8w?fs=1&amp;amp;hl=en_US&amp;amp;rel=0&amp;amp;hd=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/UQcDJK0tu8w?fs=1&amp;amp;hl=en_US&amp;amp;rel=0&amp;amp;hd=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;
&lt;br /&gt;
Here is a play through of the first section of Kung Fu FIGHT! on the Brutal difficulty level.&lt;br /&gt;
&lt;br /&gt;
My hand-eye coordination has definitely improved since I started working on this game :-)&amp;nbsp; I almost made it through without dying.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6127132400597215190-5057518429433153054?l=blog.nostatic.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MikesCodeBlog/~4/4cXntQ5iK6s" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.nostatic.org/feeds/5057518429433153054/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.nostatic.org/2011/04/kung-fu-fight-brutal-difficulty.html#comment-form" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6127132400597215190/posts/default/5057518429433153054?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6127132400597215190/posts/default/5057518429433153054?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MikesCodeBlog/~3/4cXntQ5iK6s/kung-fu-fight-brutal-difficulty.html" title="Kung Fu FIGHT! Brutal Difficulty Gameplay Video" /><author><name>Mike</name><uri>http://www.blogger.com/profile/13599208082890099005</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_1eC00ALSHt4/TQadQYzk0dI/AAAAAAAAFyY/KozsMa89wKA/S220/AvatarRetro2.png" /></author><thr:total>4</thr:total><feedburner:origLink>http://blog.nostatic.org/2011/04/kung-fu-fight-brutal-difficulty.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkUCRXY6fCp7ImA9WhZRFUs.&quot;"><id>tag:blogger.com,1999:blog-6127132400597215190.post-6689684806715471185</id><published>2011-04-11T14:59:00.001-07:00</published><updated>2011-04-11T15:17:44.814-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-11T15:17:44.814-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="XNA" /><category scheme="http://www.blogger.com/atom/ns#" term="game design" /><category scheme="http://www.blogger.com/atom/ns#" term="C#" /><title>Randomization In Games - Managing Player Expectations</title><content type="html">&lt;img alt="Block Village" border="0" src="http://lh3.googleusercontent.com/_1eC00ALSHt4/TaN5NhL9i_I/AAAAAAAAF-s/f7iAiLn1Ot4/KungFuRandom.png" /&gt;&lt;br /&gt;
&lt;br /&gt;
Generating random numbers for use in games is easy. In C#, it is as simple as creating an instance of the Random class and calling Next() on it. Want to decide if an event should occur given a particular probability? Easy, just call Random.Next() and check if the result is less that your probability (expressed as a value from 0 to 1).&lt;br /&gt;
&lt;br /&gt;
The results of this simple approach, however, do not always do a good job of creating behavior that corresponds to a player's expectations. This is because the results are truly random (ok, psuedorandom - but that's generally random enough) and events are independent. By independent, I mean that the result of a probability check does not depend in any interesting way on previous checks. Like flipping a coin, it doesn't matter if you have gotten 9 heads in a row - the probability of getting heads on the next flip is still exactly 50%.&lt;br /&gt;
&lt;br /&gt;
People, however, have a tendency to assume that past result *do* influence future ones. In the case of flipping a coin, this assumption is irrational. In other cases, though, it isn't so much. A key example of this is selecting items randomly from a collection. If you replace items between choosing, then each selection is random and independent of the others. If, however, you do not replace items that you have chosen, this is no longer the case.&lt;br /&gt;
&lt;br /&gt;
The notion of selecting items from a collection without replacement is a very useful one in games, and can result in random behavior that is much more in line with player expectations than independent probability checks.&lt;br /&gt;
&lt;br /&gt;
In working on Kung Fu FIGHT!, I ran into this problem a lot. For example, when an enemy throws a shuriken, I have to decide if they should throw high or low. I started with a simple 50% probability check, but this sometimes resulted in a long string of high or low throws in a row. Perfectly reasonable from a probability perspective, but not what I wanted. On the other hand, simply alternating between high and low seemed too regular.&lt;br /&gt;
&lt;br /&gt;
What to do?&lt;br /&gt;
&lt;br /&gt;
I created a simple helper class to allow me to select random values from a finite "bucket". Here is how it works for my shuriken throwing behavior. To initialize the bucket:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="csharpcode"&gt;Random random = &lt;span class="kwrd"&gt;new&lt;/span&gt; Random();

RandomBucket&amp;lt;&lt;span class="kwrd"&gt;bool&lt;/span&gt;&amp;gt; throwBucket = &lt;span class="kwrd"&gt;new&lt;/span&gt; RandomBucket&amp;lt;&lt;span class="kwrd"&gt;bool&lt;/span&gt;&amp;gt;(random).Add(&lt;span class="kwrd"&gt;true&lt;/span&gt;, 2).Add(&lt;span class="kwrd"&gt;false&lt;/span&gt;, 2);
&lt;/pre&gt;&lt;br /&gt;
What this does is initialize a bucket and fill it with two 'trues' and two 'falses'.&lt;br /&gt;
&lt;br /&gt;
Then, to decide to throw high or low, simply do:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;if&lt;/span&gt; (throwBucket.Choose())
{
  &lt;span class="rem"&gt;// throw high&lt;/span&gt;
}
&lt;span class="kwrd"&gt;else&lt;/span&gt;
{
  &lt;span class="rem"&gt;// throw low&lt;/span&gt;
}
&lt;/pre&gt;&lt;br /&gt;
Each time we call Choose(), a random value is selected from the bucket and take out of the list of available values. When we run out of values, the bucket is refilled with its original contents.&lt;br /&gt;
&lt;br /&gt;
The result of this is random behavior with local dependencies. Each time I select a value, the probability that I get that value again next time goes down. You can't get more than four trues or falses in a row - and even that is fairly unlikely. If we only put 1 true and one false in the bucket instead of two of each, the behavior becomes even more locally dependent. Adding more values in makes things more random.&lt;br /&gt;
&lt;br /&gt;
In addition to having nice properties for game randomness, the RandomBucket class also make for simple, clean code. For example, when I shoot out spark particles for bombs, I use a color bucket to choose what color a spark is:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="csharpcode"&gt;RandomBucket&amp;lt;Color&amp;gt; colors =
  &lt;span class="kwrd"&gt;new&lt;/span&gt; RandomBucket&amp;lt;Color&amp;gt;(random).Add(Color.Yellow, 1).Add(Color.Orange, 1).Add(Color.Red, 1);

Color sparkColor = colors.Choose();&lt;/pre&gt;&lt;br /&gt;
Here I am spitting out the colors in equal volumes, but I could easily change the ratios by altering the numbers when seeding the bucket.&lt;br /&gt;
&lt;br /&gt;
Here is the RandomBucket class. As you can see, it is pretty simple. It doesn't generate garbage (an important quality for Xbox development) and it is quite efficient for reasonably small numbers of values, which should be the case since if you use a large number of values you might as well just use true randomness.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System;
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Collections.Generic;

&lt;span class="kwrd"&gt;namespace&lt;/span&gt; MyCoolNamespace
{
    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; RandomBucket&amp;lt;T&amp;gt;
    {
        List&amp;lt;T&amp;gt; chooseList = &lt;span class="kwrd"&gt;new&lt;/span&gt; List&amp;lt;T&amp;gt;();
        List&amp;lt;T&amp;gt; discardList = &lt;span class="kwrd"&gt;new&lt;/span&gt; List&amp;lt;T&amp;gt;();
        Random random;

        &lt;span class="kwrd"&gt;public&lt;/span&gt; RandomBucket(Random random)
        {
            &lt;span class="kwrd"&gt;this&lt;/span&gt;.random = random;
        }

        &lt;span class="kwrd"&gt;public&lt;/span&gt; RandomBucket&amp;lt;T&amp;gt; Add(T &lt;span class="kwrd"&gt;value&lt;/span&gt;, &lt;span class="kwrd"&gt;int&lt;/span&gt; number)
        {
            &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;int&lt;/span&gt; i = 0; i &amp;lt; number; i++)
            {
                chooseList.Add(&lt;span class="kwrd"&gt;value&lt;/span&gt;);
            }

            &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;this&lt;/span&gt;;
        }

        &lt;span class="kwrd"&gt;public&lt;/span&gt; T Choose()
        {
            &lt;span class="kwrd"&gt;if&lt;/span&gt; (chooseList.Count == 0)
            {
                List&amp;lt;T&amp;gt; tmp = chooseList;
                chooseList = discardList;
                discardList = tmp;
            }

            &lt;span class="kwrd"&gt;int&lt;/span&gt; pos = random.Next(chooseList.Count);

            T obj = chooseList[pos];

            chooseList.RemoveAt(pos);

            discardList.Add(obj);

            &lt;span class="kwrd"&gt;return&lt;/span&gt; obj;
        }

        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Clear()
        {
            chooseList.Clear();
            discardList.Clear();
        }
    }
}
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6127132400597215190-6689684806715471185?l=blog.nostatic.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MikesCodeBlog/~4/QKiq5GgHSr0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.nostatic.org/feeds/6689684806715471185/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.nostatic.org/2011/04/randomization-in-games-managing-player.html#comment-form" title="8 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6127132400597215190/posts/default/6689684806715471185?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6127132400597215190/posts/default/6689684806715471185?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MikesCodeBlog/~3/QKiq5GgHSr0/randomization-in-games-managing-player.html" title="Randomization In Games - Managing Player Expectations" /><author><name>Mike</name><uri>http://www.blogger.com/profile/13599208082890099005</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_1eC00ALSHt4/TQadQYzk0dI/AAAAAAAAFyY/KozsMa89wKA/S220/AvatarRetro2.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.googleusercontent.com/_1eC00ALSHt4/TaN5NhL9i_I/AAAAAAAAF-s/f7iAiLn1Ot4/s72-c/KungFuRandom.png" height="72" width="72" /><thr:total>8</thr:total><feedburner:origLink>http://blog.nostatic.org/2011/04/randomization-in-games-managing-player.html</feedburner:origLink></entry></feed>

