<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Lane&#039;s Blog &#187; RSAGL</title>
	<atom:link href="http://blog.downstairspeople.org/category/rsagl/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.downstairspeople.org</link>
	<description>A blog of fleshlings and robots.</description>
	<lastBuildDate>Mon, 06 Sep 2010 18:06:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>ANN: Roguestar-0.4.0.1</title>
		<link>http://blog.downstairspeople.org/2010/06/17/ann-roguestar-0-4-0-1/</link>
		<comments>http://blog.downstairspeople.org/2010/06/17/ann-roguestar-0-4-0-1/#comments</comments>
		<pubDate>Fri, 18 Jun 2010 02:32:08 +0000</pubDate>
		<dc:creator>Lane</dc:creator>
				<category><![CDATA[RSAGL]]></category>
		<category><![CDATA[Roguestar]]></category>

		<guid isPermaLink="false">http://blog.downstairspeople.org/?p=150</guid>
		<description><![CDATA[Roguestar is a science fiction roguelike game written using Haskell and OpenGL.  It is in the early stages of development.  At this time, it is not a winnable game. $ cabal install roguestar-engine $ cabal install roguestar-gl $ ~/.cabal/bin/roguestar - or - $ git clone http://www.downstairspeople.org/git/roguestar.git $ cd roguestar $ git checkout 0.4.0.1 $ make [...]]]></description>
			<content:encoded><![CDATA[<p>Roguestar is a science fiction roguelike game written using Haskell and OpenGL.  It is in the early stages of development.  At this time, it is not a winnable game.</p>
<pre>$ cabal install roguestar-engine
$ cabal install roguestar-gl
$ ~/.cabal/bin/roguestar</pre>
<p>- or -</p>
<pre>$ git clone http://www.downstairspeople.org/git/roguestar.git
$ cd roguestar
$ git checkout 0.4.0.1
$ make install</pre>
<p>New gameplay features:</p>
<ul>
<li>Melee combat, sundering and disarming attacks</li>
<li>Weapons can sometimes overheat or explode</li>
<li>Gateway teleportation between planets</li>
<li>Use material-spheres to craft new tools</li>
<li>Use material-spheres to heal</li>
<li>Tab-completion of typed commands</li>
<li>Compass directions to significant artifacts</li>
<li>&#8220;Jump&#8221; short distances by teleporting</li>
</ul>
<p>New objects:</p>
<ul>
<li>Chromalite material spheres</li>
<li>Metallic material spheres</li>
<li>Gaseous material spheres</li>
<li>Energy sabres and fleurets</li>
<li>Gateways</li>
<li>Monoliths</li>
</ul>
<p>New graphics features:</p>
<ul>
<li>Randomly generated sky spheres and landscapes</li>
<li>Unique fractal trees</li>
<li>Zoom-in/zoom-out</li>
</ul>
<p>Changes under the hood:</p>
<ul>
<li>Major re-write of the RSAGL FRP architecture</li>
<li>Multi-threaded 3D scene assembly and rendering</li>
<li>Multi-threaded, anticipatory engine</li>
<li>Various OpenGL performance improvements</li>
</ul>
<p>For more information, links to the manual and git repository, visit <a href="http://roguestar.downstairspeople.org">http://roguestar.downstairspeople.org</a>.</p>
<p>Check it out!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.downstairspeople.org/2010/06/17/ann-roguestar-0-4-0-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FactoryArrow</title>
		<link>http://blog.downstairspeople.org/2009/08/09/factoryarrow/</link>
		<comments>http://blog.downstairspeople.org/2009/08/09/factoryarrow/#comments</comments>
		<pubDate>Sun, 09 Aug 2009 19:21:29 +0000</pubDate>
		<dc:creator>Lane</dc:creator>
				<category><![CDATA[Haskell]]></category>
		<category><![CDATA[RSAGL]]></category>

		<guid isPermaLink="false">http://blog.downstairspeople.org/?p=87</guid>
		<description><![CDATA[I&#8217;ve been playing around with an Arrow concept, which to my knowledge is original. I&#8217;ve decided to call this a FactoryArrow: newtype FactoryArrow m n a b = FactoryArrow { runFactory :: m (Kleisli n a b) } Where m and n are Monads. m is a single-pass initialization monad, while n is a multiple-pass [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been playing around with an Arrow concept, which <em>to my knowledge</em> is original.  I&#8217;ve decided to call this a FactoryArrow:</p>
<p><code><br />
newtype FactoryArrow m n a b = FactoryArrow { runFactory :: m (Kleisli n a b) }<br />
</code></p>
<p>Where <tt>m</tt> and <tt>n</tt> are Monads.  <tt>m</tt> is a single-pass initialization monad, while <tt>n</tt> is a multiple-pass working monad.  The arrow supports all of the standard accessory arrow typeclasses, including <tt>ArrowLoop</tt> if <tt>n</tt> implements <tt>MonadFix</tt>, and <tt>ArrowApply</tt> if <tt>m</tt> and <tt>n</tt> are the same.</p>
<p>This arrow simply captures a two-phase initialize-and-run design pattern.</p>
<p>To the best of my imagination, there cannot be a corresponding useful FactoryMonad.  I would be extremely interested if anyone can contradict me on that point.</p>
<p>My current interest is in using the FactoryArrow as a replacement for the mealy-style arrows by using IORefs (or potentially even STM transaction variables) to store automaton states instead of unevaluated thunks.</p>
<p>The <a href="http://roguestar.downstairspeople.org/gitweb?p=rsagl.git;a=blob;f=RSAGL/FRP2/FactoryArrow.hs;h=1b6b74732da7ef803819602a892adf3bfb5551e0;hb=d3a506aca2bd244596f6b8879ca16bc4bda44c49">corresponding implementation</a> as of the time of this writing.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.downstairspeople.org/2009/08/09/factoryarrow/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Vec is Good</title>
		<link>http://blog.downstairspeople.org/2009/05/05/vec-is-good/</link>
		<comments>http://blog.downstairspeople.org/2009/05/05/vec-is-good/#comments</comments>
		<pubDate>Tue, 05 May 2009 19:45:47 +0000</pubDate>
		<dc:creator>Lane</dc:creator>
				<category><![CDATA[Haskell]]></category>
		<category><![CDATA[RSAGL]]></category>

		<guid isPermaLink="false">http://blog.downstairspeople.org/?p=84</guid>
		<description><![CDATA[Last night I checked out Scott E. Dillard&#8217;s Vec library. It&#8217;s a good, fast, pure implementation of the basic matrix operations applicable to 3D graphics. Switching to Vec has shaved off quite a bit of time from one of my demo apps and relieved me of the need to maintain my own matrix manipulation code, [...]]]></description>
			<content:encoded><![CDATA[<p>Last night I checked out Scott E. Dillard&#8217;s <a href="http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Vec-0.9.6">Vec</a> library.  It&#8217;s a good, fast, pure implementation of the basic matrix operations applicable to 3D graphics.  Switching to Vec has shaved off quite a bit of time from one of my demo apps and relieved me of the need to maintain my own matrix manipulation code, which was causing me repeated headaches.</p>
<p>It&#8217;s very heavy with MPTCs, fundeps, and type families, which will cause ghc to render some pretty inane error messages, but if you&#8217;re already accustomed to this then it&#8217;s actually very straightforward to use.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.downstairspeople.org/2009/05/05/vec-is-good/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ANN: Roguestar 0.2</title>
		<link>http://blog.downstairspeople.org/2008/05/09/ann-roguestar-02/</link>
		<comments>http://blog.downstairspeople.org/2008/05/09/ann-roguestar-02/#comments</comments>
		<pubDate>Sat, 10 May 2008 01:20:21 +0000</pubDate>
		<dc:creator>Lane</dc:creator>
				<category><![CDATA[RSAGL]]></category>
		<category><![CDATA[Roguestar]]></category>

		<guid isPermaLink="false">http://blog.downstairspeople.org/2008/05/09/ann-roguestar-02/</guid>
		<description><![CDATA[website: http://roguestar.downstairspeople.org darcs 2: darcs get &#8211;lazy http://www.downstairspeople.org/darcs/roguestar tarball: http://www.downstairspeople.org/roguestar/roguestar-0.2.tar.gz After much delay, I&#8217;m happy to announce Roguestar 0.2. Roguestar is a science fiction themed roguelike (turn-based, chessboard-tiled, role playing) game written in Haskell. Roguestar uses OpenGL for graphics. This is still a very early release and several important things don&#8217;t work. This initial release [...]]]></description>
			<content:encoded><![CDATA[<p>website:        http://roguestar.downstairspeople.org<br />
darcs 2:        darcs get &#8211;lazy http://www.downstairspeople.org/darcs/roguestar<br />
tarball:        http://www.downstairspeople.org/roguestar/roguestar-0.2.tar.gz</p>
<p>After much delay, I&#8217;m happy to announce Roguestar 0.2.</p>
<p>Roguestar is a science fiction themed roguelike (turn-based,<br />
chessboard-tiled, role playing) game written in Haskell.  Roguestar uses<br />
OpenGL for graphics.  This is still a very early release and several<br />
important things don&#8217;t work.</p>
<p>This initial release allows you to play one of six alien races.  You begin<br />
the game stranded on an alien planet, fighting off an endless hoard of<br />
hostile robots.</p>
<p>RSAGL, the RogueStar Animation and Graphics Library, includes a<br />
domain-specific monad for 3D modelling of arbitrary parametric surfaces,<br />
as well as an animation monad and arrow, which is more or less like YAMPA<br />
as a stack of arrow transformers.  RSAGL was specifically designed for<br />
roguestar, but every effort has been made (including the license) to make<br />
it accessable to other projects that might benefit from it.  Performance<br />
is an issue, but there is a lot of low-hanging fruit in this area.</p>
<p>Roguestar is released under the Affero General Public License version 3.<br />
However, RSAGL uses a permissive license.</p>
<p>I would be absolutely thrilled to receive any feedback anyone may have on<br />
the design and aesthetics of the game, especially in the form of source<br />
code.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.downstairspeople.org/2008/05/09/ann-roguestar-02/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Walking</title>
		<link>http://blog.downstairspeople.org/2008/01/28/walking/</link>
		<comments>http://blog.downstairspeople.org/2008/01/28/walking/#comments</comments>
		<pubDate>Mon, 28 Jan 2008 05:37:27 +0000</pubDate>
		<dc:creator>Lane</dc:creator>
				<category><![CDATA[RSAGL]]></category>

		<guid isPermaLink="false">http://blog.downstairspeople.org/2008/01/28/walking/</guid>
		<description><![CDATA[In addition to implementing legs, I have improved the performance of the arrow-based animation very significantly.]]></description>
			<content:encoded><![CDATA[<p>In addition to implementing legs, I have improved the performance of the arrow-based animation very significantly.</p>
<p><a class="imagelink" href="http://blog.downstairspeople.org/wp-content/uploads/2008/01/walker_orb.jpg" title="walker_orb.jpg"><img id="image27" src="http://blog.downstairspeople.org/wp-content/uploads/2008/01/walker_orb.thumbnail.jpg" alt="walker_orb.jpg" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.downstairspeople.org/2008/01/28/walking/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Glowy Thingy</title>
		<link>http://blog.downstairspeople.org/2008/01/24/glowy-thingy/</link>
		<comments>http://blog.downstairspeople.org/2008/01/24/glowy-thingy/#comments</comments>
		<pubDate>Thu, 24 Jan 2008 22:55:09 +0000</pubDate>
		<dc:creator>Lane</dc:creator>
				<category><![CDATA[RSAGL]]></category>

		<guid isPermaLink="false">http://blog.downstairspeople.org/2008/01/24/glowy-thingy/</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><a class="imagelink" href="http://blog.downstairspeople.org/wp-content/uploads/2008/01/awesomeorb1.png" title="awesomeorb1.png"><img id="image25" src="http://blog.downstairspeople.org/wp-content/uploads/2008/01/awesomeorb1.thumbnail.png" alt="awesomeorb1.png" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.downstairspeople.org/2008/01/24/glowy-thingy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wrinkly Gold, uh, Thing</title>
		<link>http://blog.downstairspeople.org/2008/01/21/wrinkly-gold-uh-thing/</link>
		<comments>http://blog.downstairspeople.org/2008/01/21/wrinkly-gold-uh-thing/#comments</comments>
		<pubDate>Mon, 21 Jan 2008 06:16:44 +0000</pubDate>
		<dc:creator>Lane</dc:creator>
				<category><![CDATA[RSAGL]]></category>

		<guid isPermaLink="false">http://blog.downstairspeople.org/2008/01/21/wrinkly-gold-uh-thing/</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><a class="imagelink" href="http://blog.downstairspeople.org/wp-content/uploads/2008/01/wrinklything1.png" title="wrinklything1.png"><img id="image23" src="http://blog.downstairspeople.org/wp-content/uploads/2008/01/wrinklything1.thumbnail.png" alt="wrinklything1.png" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.downstairspeople.org/2008/01/21/wrinkly-gold-uh-thing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Behind the Monolith</title>
		<link>http://blog.downstairspeople.org/2008/01/14/behind-the-monlith/</link>
		<comments>http://blog.downstairspeople.org/2008/01/14/behind-the-monlith/#comments</comments>
		<pubDate>Mon, 14 Jan 2008 05:02:21 +0000</pubDate>
		<dc:creator>Lane</dc:creator>
				<category><![CDATA[RSAGL]]></category>

		<guid isPermaLink="false">http://blog.downstairspeople.org/2008/01/14/behind-the-monlith/</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><a class="imagelink" href="http://blog.downstairspeople.org/wp-content/uploads/2008/01/monolith-station21.png" title="monolith-station21.png"><img id="image22" src="http://blog.downstairspeople.org/wp-content/uploads/2008/01/monolith-station21.thumbnail.png" alt="monolith-station21.png" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.downstairspeople.org/2008/01/14/behind-the-monlith/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Monolith</title>
		<link>http://blog.downstairspeople.org/2008/01/12/monolith/</link>
		<comments>http://blog.downstairspeople.org/2008/01/12/monolith/#comments</comments>
		<pubDate>Sun, 13 Jan 2008 03:22:23 +0000</pubDate>
		<dc:creator>Lane</dc:creator>
				<category><![CDATA[RSAGL]]></category>

		<guid isPermaLink="false">http://blog.downstairspeople.org/2008/01/12/monolith/</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><a class="imagelink" href="http://blog.downstairspeople.org/wp-content/uploads/2008/01/monolith1.png" title="monolith1.png"><img id="image18" src="http://blog.downstairspeople.org/wp-content/uploads/2008/01/monolith1.thumbnail.png" alt="monolith1.png" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.downstairspeople.org/2008/01/12/monolith/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Progressive Model Construction in RSAGL</title>
		<link>http://blog.downstairspeople.org/2007/12/09/progressive-model-construction/</link>
		<comments>http://blog.downstairspeople.org/2007/12/09/progressive-model-construction/#comments</comments>
		<pubDate>Sun, 09 Dec 2007 15:24:24 +0000</pubDate>
		<dc:creator>Lane</dc:creator>
				<category><![CDATA[RSAGL]]></category>

		<guid isPermaLink="false">http://blog.downstairspeople.org/2007/12/09/progressive-model-construction/</guid>
		<description><![CDATA[Basically, the idea is that we want, for example, four levels of detail (LOD), with objects closest to the camera having the highest detail. But it takes time to generate models from their abstract description. So the solution is to generate the model at the lowest level of detail, and then fire off a thread [...]]]></description>
			<content:encoded><![CDATA[<p>Basically, the idea is that we want, for example, four levels of detail (LOD), with objects closest to the camera having the highest detail.  But it takes time to generate models from their abstract description.  So the solution is to generate the model at the lowest level of detail, and then fire off a thread to generate the remaining three levels of detail.  The resulting image looks worse, but the animation is more fluid.  It&#8217;s preferable to a three-second pause in the middle of a combat scene.  Visually what you see is a 3D model that increases in quality with time, much like a progressive JPEG.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.downstairspeople.org/2007/12/09/progressive-model-construction/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
