<?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/"
	>

<channel>
	<title>Thallium Win</title>
	<atom:link href="http://nihilsys.com/wordpress/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://nihilsys.com/wordpress</link>
	<description>Poor Impulse Control</description>
	<pubDate>Mon, 31 Aug 2009 03:34:31 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>::Super Bean Kid::</title>
		<link>http://nihilsys.com/wordpress/?p=119</link>
		<comments>http://nihilsys.com/wordpress/?p=119#comments</comments>
		<pubDate>Mon, 31 Aug 2009 03:34:31 +0000</pubDate>
		<dc:creator>destroysound</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://nihilsys.com/wordpress/?p=119</guid>
		<description><![CDATA[Oh no. Not that.
Anything but that.
NO!
IT&#8217;S

Click to download.
]]></description>
			<content:encoded><![CDATA[<p>Oh no. Not that.<br />
Anything but that.<br />
NO!<br />
IT&#8217;S<br />
<img src="http://nihilsys.com/wordpress/wp-content/uploads/2009/08/superbeankid1-300x234.png" alt="superbeankid1" title="superbeankid1" width="300" height="234" class="alignnone size-medium wp-image-118" /><br />
<a href="http://nihilsys.com/ld15/destroysound%20-%20super%20bean%20kid%20-%20ld15.zip">Click to download.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://nihilsys.com/wordpress/?feed=rss2&amp;p=119</wfw:commentRss>
		</item>
		<item>
		<title>::ethergrind::</title>
		<link>http://nihilsys.com/wordpress/?p=111</link>
		<comments>http://nihilsys.com/wordpress/?p=111#comments</comments>
		<pubDate>Mon, 20 Apr 2009 14:07:39 +0000</pubDate>
		<dc:creator>destroysound</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://nihilsys.com/wordpress/?p=111</guid>
		<description><![CDATA[
:: ethergrind ::
:: distribution (source and win32 .exe) ::
:: source requires pygame and pgu ::
:: keys ::
:: arrows - move ::
:: space - shoot ::
:: enter - accept powerup ::
:: f - turn on high-quality visual effects ::
:: esc - quit (why would you want to do that?) ::
:: start main.exe or main.py with the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.ludumdare.com/compo/wp-content/uploads/2009/04/screenshot-ethergrind.png"><img class="alignnone size-medium wp-image-5811" src="http://www.ludumdare.com/compo/wp-content/uploads/2009/04/screenshot-ethergrind-300x234.png" alt="" width="300" height="234" /></a></p>
<p>:: <strong>ethergrind</strong> ::<br />
:: <a href="http://nihilsys.com/ld14/ethergrind.zip">distribution (source and win32 .exe)</a> ::<br />
:: source requires <a href="http://pygame.org">pygame</a> and <a href="https://sourceforge.net/project/showfiles.php?group_id=145281">pgu</a> ::</p>
<p>:: <strong>keys</strong> ::<br />
:: <em>arrows</em> - move ::<br />
:: <em>space</em> - shoot ::<br />
:: <em>enter</em> - accept powerup ::<br />
:: <em>f</em> - turn on high-quality visual effects ::<br />
:: <em>esc</em> - quit (why would you want to do that?) ::</p>
<p>:: start main.exe or main.py with the -f switch to run in full screen mode ::<br />
:: <a href="http://www.youtube.com/watch?v=IY7vMrKf4Es">timelapse</a> ::</p>
]]></content:encoded>
			<wfw:commentRss>http://nihilsys.com/wordpress/?feed=rss2&amp;p=111</wfw:commentRss>
		</item>
		<item>
		<title>Simple Line of Sight/Field of Vision</title>
		<link>http://nihilsys.com/wordpress/?p=101</link>
		<comments>http://nihilsys.com/wordpress/?p=101#comments</comments>
		<pubDate>Tue, 17 Mar 2009 20:34:20 +0000</pubDate>
		<dc:creator>destroysound</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://nihilsys.com/wordpress/?p=101</guid>
		<description><![CDATA[I&#8217;ve been working on a lot of tile-based games and thought I&#8217;d write up a series of tutorials on things I&#8217;ve learned. I&#8217;m going to try to keep these tutorials as concept-heavy as possible, but my implementation will always be in Python with Pygame. I&#8217;ll try to provide psudeocode whenever possible so that those of [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been working on a lot of tile-based games and thought I&#8217;d write up a series of tutorials on things I&#8217;ve learned. I&#8217;m going to try to keep these tutorials as concept-heavy as possible, but my implementation will always be in Python with Pygame. I&#8217;ll try to provide psudeocode whenever possible so that those of you who develop in other languages will have an easier time.</p>
<p>More below the cut.<br />
<span id="more-101"></span></p>
<h1>Why Calculate Line of Sight?</h1>
<p>Line of Sight is a concept that is extremely useful in not only Roguelikes, but strategy games of all sorts. In a game like Starcraft, where fog of war is an important part of the mechanics of the game, it is necessary to calculate what area of the map is &#8217;seeable&#8217; for each player.</p>
<p>Doing this is simple if we&#8217;re dealing with a terrain where there are no blocking obstacles: we simply use the distance formula to determine whether or not each cell is inside the line of sight radius for the particular unit we are examining. If it is, we mark that cell seeable; otherwise, we do not. In order to avoid iterating over the entire map, we can perform our operations on a subsection of the map of height R and width R, where R is the line of sight radius for the unit we&#8217;re examining. This algorithm will generate something like this:</p>
<p><img src="http://nihilsys.com/wordpress/wp-content/uploads/2009/03/distance-formula1-150x150.png" alt="" /></p>
<p>where the blue tile is the player, the grey tiles are unseeable, and the box is the area of the map we are iterating over.</p>
<p>As I said above, this is great for games with no obstructing obstacles. When you start modeling walls, mountains, hills, and other types of terrain, this algorithm fails to work. You need to start thinking about <em>raycasting</em>.</p>
<h1>What We Expect</h1>
<p>In general, we can expect that walls in a level will block visibility whenever a line from the player&#8217;s cell to the cell in question intersects a wall.</p>
<p>In short, we want this:</p>
<p><img src="http://nihilsys.com/wordpress/wp-content/uploads/2009/03/infinitelos-150x150.png" alt="" /></p>
<p>This shows a wall being viewed by a player with an infinite vision radius. Some limitations probably apply here. You usually do not want to calculate LOS for your entire map; that would be too costly. It is usually reasonable to assume that your player has a fairly limited range of vision (in general, the more claustrophobic your setting, the more stingy you can be here). So what we will end up with is a situation like this:</p>
<p><img src="http://nihilsys.com/wordpress/wp-content/uploads/2009/03/finitelos-150x150.png" alt="" /></p>
<h1>Line of Sight</h1>
<p>For each cell that encloses the field of view, we want to find all cells that lie along a line with its origin at the player. In other words, we want to walk along the lines starting at the player and ending at each square that encloses the field of vision. We will mark any cells visible that lie along these lines up until the point where we find a cell that blocks vision, at which point we will mark that cell visible and then stop traversing this line.</p>
<p>Here&#8217;s an illustration of a &#8220;line of sight&#8221; iteration in 2d:</p>
<p><img src="http://nihilsys.com/wordpress/wp-content/uploads/2009/03/rayofsight.png" alt="" /></p>
<p>Our main tool in drawing these lines will be <a href="http://en.wikipedia.org/wiki/Bresenham%27s_line_algorithm">Bresenham&#8217;s Algorithm</a>, a well known method for choosing cells in a grid to represent lines. Here&#8217;s a brief summary of the algorithm in english:</p>
<p><code><br />
### Initialization step:<br />
Begin with x1, Y1 being the coordinates of the starting point, and X2, Y2 being the coordinates of the ending point.<br />
&nbsp;&nbsp;Initialize the flag steep to true, and begin with an empty list of coordinates.<br />
&nbsp;&nbsp;Calculate the delta values dx = (x2 - x1) and dy = (y2 - y1)<br />
&nbsp;&nbsp;If dx is greater than 0, set sx = 1. Otherwise, set sx = 0. This will be the direction we iterate over the x axis.<br />
&nbsp;&nbsp;If dy is greater than 0, set sy = 1. Otherwise, set sy = 0.<br />
&nbsp;&nbsp;If abs(dy) &gt; abs(dx), swap the following values: x1 and y1, x2 and y2, dx and dy, sx and sy. This is responsible for making sure the line is drawn in the right direction (from start to finish). Set the flag steep to true.<br />
&nbsp;&nbsp;Calculate the starting offset d = (2 * abs(dy)) - abs(dx).<br />
&nbsp;&nbsp;Begin with x = x1 and y = y1.<br />
&nbsp;&nbsp;### Main loop:<br />
&nbsp;&nbsp;For each value between 0 and abs(dx):<br />
&nbsp;&nbsp;&nbsp;&nbsp;If steep:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Push (y, x) onto the result list.<br />
&nbsp;&nbsp;&nbsp;&nbsp;Else:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Push (x, y) onto the result list.<br />
&nbsp;&nbsp;&nbsp;&nbsp;While d &gt;= 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y = y + sy<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d = d - (2 * abs(dx))<br />
&nbsp;&nbsp;&nbsp;&nbsp;x = x + sx<br />
&nbsp;&nbsp;&nbsp;&nbsp;d = d + (2 * abs(dy))<br />
&nbsp;&nbsp;Push (x2, y2) onto the result list.<br />
&nbsp;&nbsp;Return the result list.<br />
</code></p>
<p>If you don&#8217;t follow this completely, don&#8217;t worry. You can find this algorithm written in most every programming language that exists. What matters is that you understand that when we feed Brensenham&#8217;s a start and end coordinate for a line, it will give us the series of coordinates that best correspond to a line between those points.</p>
<p>We could modify this algorithm to check the visibility of each coordinate before it is plotted, and then return the list if the coordinate blocks visibility. Alternatively, we can parse through the list after it&#8217;s plotted to check visibility. Here&#8217;s an example of that, in Python this time:</p>
<p><code><br />
def lineofsight(x1, y2, x2, y2):<br />
&nbsp;&nbsp;for i in brensenham_line(x1, y2, x2, y2):<br />
&nbsp;&nbsp;&nbsp;&nbsp;x, y = i<br />
&nbsp;&nbsp;&nbsp;&nbsp;maptiles[x][y].seeable = True<br />
&nbsp;&nbsp;&nbsp;&nbsp;if (maptiles[x][y].obstructing):<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return False<br />
</code></p>
<p>This will step through the list of coordinates returned by Bresenham&#8217;s, setting map tiles seeable, and stop when it finds an obstructing tile.</p>
<h1>Field of Vision</h1>
<p>In order to turn our line of sight algorithm into a field of vision algorithm, we just have to draw <strong>LOTS</strong> of lines of sight. There are a number of ways to handle this, but I&#8217;ll just describe one of the simplest ones here.</p>
<p><code>iterate i from 0 to ((max_vision_length*2)+1):<br />
&nbsp;&nbsp;lineofsight(player.x, player.y, player.x-max_vision_length+i, player.y-max_vision_length)<br />
&nbsp;&nbsp;lineofsight(player.x, player.y, player.x-max_vision_length+i, player.y+max_vision_length)<br />
&nbsp;&nbsp;lineofsight(player.x, player.y, player.x-max_vision_length, player.y-max_vision_length+i)<br />
&nbsp;&nbsp;lineofsight(player.x, player.y, player.x+max_vision_length, player.y-max_vision_length+i)<br />
</code></p>
<p>You should be able to see on inspection that this code will generate something like this:</p>
<p><img src="http://nihilsys.com/wordpress/wp-content/uploads/2009/03/fieldofvision.png" alt="" /></p>
<p>Which, when combined with the line of sight algorithm that we created above, is exactly what we want.</p>
<h1>Next Steps</h1>
<p>There&#8217;s a lot further to explore here. Here are some links that might help you further expand your ventures into this territory. One drawback to this technique is that as the visible radius is increased:</p>
<ul>
<li>more artifacts will begin to show up. (ie: walls that should be visible, but aren&#8217;t)</li>
<li>the cells around the center will be visited multiple times.</li>
</ul>
<p>There are many solutions to this, one of which is discussed <a href="http://roguebasin.roguelikedevelopment.org/index.php?title=FOV_using_recursive_shadowcasting">here</a>. Another solution is to draw lines to every square within the field of vision. This is more costly but will eliminate artifacting.</p>
<p>Other implementations of field of vision include creating raster shapes of shadows cast by different objects and combining them to make a custom raster based on the position of seeable objects. This can be super fast, because no actual math is done aside from copying the shadow map onto the field. A discussion of this can be found <a href="http://www.google.com/url?sa=t&amp;source=web&amp;ct=res&amp;cd=1&amp;url=http%3A%2F%2Fwww.gamedev.net%2Freference%2Farticles%2Farticle729.asp&amp;ei=G_u_SbaVK4SstgeDor1M&amp;usg=AFQjCNHKnC6Ya55HbPo_mSfz_6RaOpSAJw&amp;sig2=KzUiUDDW7fRzEQtRCUydqw">here</a>.</p>
<p><img src="http://nihilsys.com/wordpress/wp-content/uploads/2009/03/untitled-1.jpg" alt="Raycasting in my 7DRL: Whispers in the Void" /></p>
]]></content:encoded>
			<wfw:commentRss>http://nihilsys.com/wordpress/?feed=rss2&amp;p=101</wfw:commentRss>
		</item>
		<item>
		<title>7drl Review - Cypress Tree Manor</title>
		<link>http://nihilsys.com/wordpress/?p=77</link>
		<comments>http://nihilsys.com/wordpress/?p=77#comments</comments>
		<pubDate>Tue, 17 Mar 2009 01:46:21 +0000</pubDate>
		<dc:creator>destroysound</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[7drl]]></category>

		<category><![CDATA[reviews]]></category>

		<guid isPermaLink="false">http://nihilsys.com/wordpress/?p=77</guid>
		<description><![CDATA[
Cypress Tree Manor is one of those games that makes you click the X button in frustration, cursing and swearing, only to double click on &#8216;run.py&#8217; again seconds later (still muttering expletives).
For this reason alone, Nils Fagerburg should consider it a success.
The basic premise of the game is that there are zombies loose in an [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-thumbnail wp-image-78" title="screenshot-cypress-tree-manor" src="http://nihilsys.com/wordpress/wp-content/uploads/2009/03/screenshot-cypress-tree-manor-150x150.png" alt="screenshot-cypress-tree-manor" width="150" height="150" /></p>
<p>Cypress Tree Manor is one of those games that makes you click the X button in frustration, cursing and swearing, only to double click on &#8216;run.py&#8217; again seconds later (still muttering expletives).</p>
<p>For this reason alone, Nils Fagerburg should consider it a success.</p>
<p>The basic premise of the game is that there are zombies loose in an old manor house. Despite the popularity of the zombie meme, I&#8217;m getting a bit tired of all the zombie-based games these days. The real challenge in Cypress Tree Manor is getting past your fellow survivors. An individual zombie by itself poses little threat to an adventurer armed with a shovel or a chainsaw.</p>
<p>The real difficulty in Cypress Tree Manor is the win condition: search the many crates, bins and chests in the house and find the bunker key, then get to the bunker downstairs (which only has room for 1). Your computer opponents will murder each other (and you) on their way to find the key and get to safety.</p>
<p>This isn&#8217;t to say Cypress Tree Manor doesn&#8217;t have issues: on top of being fairly hard, it is controllable only with vim-keys. While this reviewer grew accustomed to the control scheme fairly quickly, it would be nice to see controls extended to the numpad. Additionally, it is possible for the game&#8217;s (admittedly bad by the author) random level generator to create unsolvable levels: see the screenshot included. However, in my 20+ games before writing this review, I only noticed this happening once, so I would guess it is pretty rare.</p>
<p>There&#8217;s also a strange AI glitch where some enemies will simply walk back and forth in place. This can be really irritating if you&#8217;re trying to kill them off. It&#8217;s a tribute to the design of this game that these bugs and limitations aren&#8217;t an immediate turnoff: but the gameplay and humor endeared themselves to me immediately.</p>
<p>Cypress Tree Manor has plenty of good stuff too: the zombies die leaving pools of ascii blood. The weapons include hammers, chainsaws, and shovels, and you can find chocolate chip cookies and sausages lying around. The title art and &#8220;you die&#8221; screens are hysterical (by the way, your brains were delicious).</p>
<p>If you&#8217;re looking for a complex dungeon crawler, this isn&#8217;t it. But if you&#8217;re looking for a way to kill 5-10 minutes while waiting for your coffee to brew, you should consider checking out Cypress Tree Manor. Don&#8217;t expect perfection; it was, afterall made in just 7 days. And don&#8217;t expect to win everytime either.</p>
<p>Cypress Tree Manor - <a href="http://fagerburg.com/nils/stuff/games/cypressTreeManor/">Website</a></p>
]]></content:encoded>
			<wfw:commentRss>http://nihilsys.com/wordpress/?feed=rss2&amp;p=77</wfw:commentRss>
		</item>
		<item>
		<title>Whispers in the Void 0.666 Released</title>
		<link>http://nihilsys.com/wordpress/?p=63</link>
		<comments>http://nihilsys.com/wordpress/?p=63#comments</comments>
		<pubDate>Sun, 15 Mar 2009 00:54:59 +0000</pubDate>
		<dc:creator>destroysound</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://nihilsys.com/wordpress/?p=63</guid>
		<description><![CDATA[Whispers in the Void 0.666 - Linux (python, pygame and pgu required)
Whispers in the Void 0.666 - Windows (stand alone executable)
- Update: If you downloaded this shortly after release, there was a bug included that crashed the game when you switched to fists or knife. This has been fixed.
]]></description>
			<content:encoded><![CDATA[
<a href='http://nihilsys.com/wordpress/?attachment_id=64' title='titled'><img src="http://nihilsys.com/wordpress/wp-content/uploads/2009/03/titled-150x150.png" width="150" height="150" class="attachment-thumbnail" alt="" /></a>
<a href='http://nihilsys.com/wordpress/?attachment_id=65' title='untitled-1'><img src="http://nihilsys.com/wordpress/wp-content/uploads/2009/03/untitled-1-150x150.jpg" width="150" height="150" class="attachment-thumbnail" alt="" /></a>
<a href='http://nihilsys.com/wordpress/?attachment_id=66' title='untitled-2'><img src="http://nihilsys.com/wordpress/wp-content/uploads/2009/03/untitled-2-150x150.jpg" width="150" height="150" class="attachment-thumbnail" alt="" /></a>
<a href='http://nihilsys.com/wordpress/?attachment_id=67' title='untitled-3'><img src="http://nihilsys.com/wordpress/wp-content/uploads/2009/03/untitled-3-150x150.jpg" width="150" height="150" class="attachment-thumbnail" alt="" /></a>
<a href='http://nihilsys.com/wordpress/?attachment_id=68' title='untitled-4'><img src="http://nihilsys.com/wordpress/wp-content/uploads/2009/03/untitled-4-150x150.jpg" width="150" height="150" class="attachment-thumbnail" alt="" /></a>
<a href='http://nihilsys.com/wordpress/?attachment_id=69' title='untitled-5'><img src="http://nihilsys.com/wordpress/wp-content/uploads/2009/03/untitled-5-150x150.jpg" width="150" height="150" class="attachment-thumbnail" alt="" /></a>
<a href='http://nihilsys.com/wordpress/?attachment_id=70' title='untitled-6'><img src="http://nihilsys.com/wordpress/wp-content/uploads/2009/03/untitled-6-150x150.jpg" width="150" height="150" class="attachment-thumbnail" alt="" /></a>
<a href='http://nihilsys.com/wordpress/?attachment_id=71' title='untitled-7'><img src="http://nihilsys.com/wordpress/wp-content/uploads/2009/03/untitled-7-150x150.jpg" width="150" height="150" class="attachment-thumbnail" alt="" /></a>
<a href='http://nihilsys.com/wordpress/?attachment_id=72' title='untitled-8'><img src="http://nihilsys.com/wordpress/wp-content/uploads/2009/03/untitled-8-150x150.jpg" width="150" height="150" class="attachment-thumbnail" alt="" /></a>

<p><a href="http://nihilsys.com/7drl/witv-0.666.tar.gz">Whispers in the Void 0.666</a> - Linux (python, <a href="http://pygame.org/">pygame</a> and <a href="http://www.imitationpickles.org/pgu/wiki/index">pgu</a> required)<br />
<a href="http://nihilsys.com/7drl/witv-0.666.zip">Whispers in the Void 0.666</a> - Windows (stand alone executable)</p>
<p>- Update: If you downloaded this shortly after release, there was a bug included that crashed the game when you switched to fists or knife. This has been fixed.</p>
]]></content:encoded>
			<wfw:commentRss>http://nihilsys.com/wordpress/?feed=rss2&amp;p=63</wfw:commentRss>
		</item>
		<item>
		<title>Whispers in the Void - The Final Stretch!</title>
		<link>http://nihilsys.com/wordpress/?p=57</link>
		<comments>http://nihilsys.com/wordpress/?p=57#comments</comments>
		<pubDate>Sat, 14 Mar 2009 06:15:48 +0000</pubDate>
		<dc:creator>destroysound</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://nihilsys.com/wordpress/?p=57</guid>
		<description><![CDATA[Oh wow, it&#8217;s almost time to release.
Okay, I&#8217;ve got a demo version for playtest purposes. There are some limitations in it, so just try to be gentle. If you find any bugs that I haven&#8217;t listed here, let me know!
Known limitations/bugs:

You have to close the game when you die.
The game crashes after you descend from [...]]]></description>
			<content:encoded><![CDATA[
<a href='http://nihilsys.com/wordpress/?attachment_id=58' title='voidb1'><img src="http://nihilsys.com/wordpress/wp-content/uploads/2009/03/voidb1-150x150.png" width="150" height="150" class="attachment-thumbnail" alt="" /></a>
<a href='http://nihilsys.com/wordpress/?attachment_id=59' title='voidb2'><img src="http://nihilsys.com/wordpress/wp-content/uploads/2009/03/voidb2-150x150.png" width="150" height="150" class="attachment-thumbnail" alt="" /></a>
<a href='http://nihilsys.com/wordpress/?attachment_id=60' title='voidb4'><img src="http://nihilsys.com/wordpress/wp-content/uploads/2009/03/voidb4-150x150.png" width="150" height="150" class="attachment-thumbnail" alt="" /></a>

<p>Oh wow, it&#8217;s almost time to release.</p>
<p>Okay, I&#8217;ve got a demo version for playtest purposes. There are some limitations in it, so just try to be gentle. If you find any bugs that I haven&#8217;t listed here, let me know!</p>
<p>Known limitations/bugs:</p>
<ul>
<li>You have to close the game when you die.</li>
<li>The game crashes after you descend from dlvl12 (this is the last level)</li>
<li>You can&#8217;t move in diagonals.</li>
</ul>
<p>There were a few things I haven&#8217;t managed to get into the game, but I don&#8217;t know how much more of them I&#8217;ll be attempting. The majority of tomorrow will be spent smoothing out the experience - adding intro screens, cutscenes with plot text, and other things to make the overall experience better.</p>
<p>Please leave comments!</p>
<p><a href="http://nihilsys.com/7drl/witv-0.666b.tar.gz">Whispers in the Void 0.666b</a> - Linux (python, <a href="http://pygame.org/">pygame</a> and <a href="http://www.imitationpickles.org/pgu/wiki/index">pgu</a> required)<br />
<a href="http://nihilsys.com/7drl/whispersinthevoid.0.666.beta.zip">Whispers in the Void 0.666b</a> - Windows (stand alone executable)</p>
]]></content:encoded>
			<wfw:commentRss>http://nihilsys.com/wordpress/?feed=rss2&amp;p=57</wfw:commentRss>
		</item>
		<item>
		<title>Whispers in the Void - Pre-Crunch Time</title>
		<link>http://nihilsys.com/wordpress/?p=54</link>
		<comments>http://nihilsys.com/wordpress/?p=54#comments</comments>
		<pubDate>Fri, 13 Mar 2009 05:53:11 +0000</pubDate>
		<dc:creator>destroysound</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://nihilsys.com/wordpress/?p=54</guid>
		<description><![CDATA[So close!
A bunch of new stuff today, cramming for a final night of testing on Friday. My 7 day deadline is Saturday at 8:00pm EST, and I won&#8217;t be releasing it until a few hours before that. Stuff that got done today:

Three types of grenades!
Adrenaline!
Ability to infrequently sense when monsters are nearby
Corpses

]]></description>
			<content:encoded><![CDATA[
<a href='http://nihilsys.com/wordpress/?attachment_id=51' title='void5'><img src="http://nihilsys.com/wordpress/wp-content/uploads/2009/03/void5-150x150.png" width="150" height="150" class="attachment-thumbnail" alt="" /></a>
<a href='http://nihilsys.com/wordpress/?attachment_id=52' title='void7'><img src="http://nihilsys.com/wordpress/wp-content/uploads/2009/03/void7-150x150.png" width="150" height="150" class="attachment-thumbnail" alt="" /></a>
<a href='http://nihilsys.com/wordpress/?attachment_id=53' title='void8'><img src="http://nihilsys.com/wordpress/wp-content/uploads/2009/03/void8-150x150.png" width="150" height="150" class="attachment-thumbnail" alt="" /></a>

<p>So close!</p>
<p>A bunch of new stuff today, cramming for a final night of testing on Friday. My 7 day deadline is Saturday at 8:00pm EST, and I won&#8217;t be releasing it until a few hours before that. Stuff that got done today:</p>
<ul>
<li>Three types of grenades!</li>
<li>Adrenaline!</li>
<li>Ability to infrequently sense when monsters are nearby</li>
<li>Corpses</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://nihilsys.com/wordpress/?feed=rss2&amp;p=54</wfw:commentRss>
		</item>
		<item>
		<title>Whispers in the Void - Many, many new things</title>
		<link>http://nihilsys.com/wordpress/?p=50</link>
		<comments>http://nihilsys.com/wordpress/?p=50#comments</comments>
		<pubDate>Thu, 12 Mar 2009 06:16:41 +0000</pubDate>
		<dc:creator>destroysound</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://nihilsys.com/wordpress/?p=50</guid>
		<description><![CDATA[
Tons of new stuff:

More weapons
Lots of new tiles
All enemies are in
Armor
Combat is nearly complete
You can progress to new dungeon levels
Powerups

]]></description>
			<content:encoded><![CDATA[<p><a href="http://nihilsys.com/7drl/void4.png"><img src="http://nihilsys.com/7drl/void4.png" alt="" width="320" height="200" /></a></p>
<p>Tons of new stuff:</p>
<ul>
<li>More weapons</li>
<li>Lots of new tiles</li>
<li>All enemies are in</li>
<li>Armor</li>
<li>Combat is nearly complete</li>
<li>You can progress to new dungeon levels</li>
<li>Powerups</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://nihilsys.com/wordpress/?feed=rss2&amp;p=50</wfw:commentRss>
		</item>
		<item>
		<title>Whispers in the Void - Beginning of Combat</title>
		<link>http://nihilsys.com/wordpress/?p=48</link>
		<comments>http://nihilsys.com/wordpress/?p=48#comments</comments>
		<pubDate>Wed, 11 Mar 2009 17:57:18 +0000</pubDate>
		<dc:creator>destroysound</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://nihilsys.com/wordpress/?p=48</guid>
		<description><![CDATA[
Time for another quick screeny. Some preliminary weapons stuff is in!
]]></description>
			<content:encoded><![CDATA[<p><a href="http://nihilsys.com/7drl/void3.png"><img src="http://nihilsys.com/7drl/void3.png" alt="" width="320" height="200" /></a></p>
<p>Time for another quick screeny. Some preliminary weapons stuff is in!</p>
]]></content:encoded>
			<wfw:commentRss>http://nihilsys.com/wordpress/?feed=rss2&amp;p=48</wfw:commentRss>
		</item>
		<item>
		<title>Whispers in the Void halfway point</title>
		<link>http://nihilsys.com/wordpress/?p=47</link>
		<comments>http://nihilsys.com/wordpress/?p=47#comments</comments>
		<pubDate>Wed, 11 Mar 2009 02:55:36 +0000</pubDate>
		<dc:creator>destroysound</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://nihilsys.com/wordpress/?p=47</guid>
		<description><![CDATA[
Making progress. Monster AI and pathfinding is in (mostly), status system works, time to start on combat!
]]></description>
			<content:encoded><![CDATA[<p><a href="http://nihilsys.com/7drl/void2.png"><img src="http://nihilsys.com/7drl/void2.png" alt="" width="320" height="200" /></a></p>
<p>Making progress. Monster AI and pathfinding is in (mostly), status system works, time to start on combat!</p>
]]></content:encoded>
			<wfw:commentRss>http://nihilsys.com/wordpress/?feed=rss2&amp;p=47</wfw:commentRss>
		</item>
	</channel>
</rss>
