<?xml version="1.0" encoding="utf-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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>Comments on: Take Off Every Zag</title>
	<atom:link href="http://grandtextauto.org/2004/06/15/take-off-every-zag/feed/" rel="self" type="application/rss+xml" />
	<link>http://grandtextauto.org/2004/06/15/take-off-every-zag/</link>
	<description>A group blog about computer narrative, games, poetry, and art.</description>
	<lastBuildDate>Thu, 30 Sep 2010 22:43:57 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
	<item>
		<title>By: Michael</title>
		<link>http://grandtextauto.org/2004/06/15/take-off-every-zag/comment-page-1/#comment-1422</link>
		<dc:creator>Michael</dc:creator>
		<pubDate>Wed, 30 Nov -0001 00:00:00 +0000</pubDate>
		<guid isPermaLink="false">/?p=350#comment-1422</guid>
		<description>I&#039;ve been using Zag on both the PC and Mac for some Glulx work I&#039;m doing. I&#039;ll write more about this in a future post, but one of my students, Ari Lamstein, and I are experimenting with hooking a search-based drama manager to an IF piece. We&#039;re using Michael Gentry&#039;s &lt;a href=&quot;http://www.wurb.com/if/game/17&quot;&gt;Anchorhead&lt;/a&gt; - Michael was kind enough to give us the Inform source for our research. I recently finished porting Anchorhead to Glulx, both because it is so large that the additional content we&#039;ll be adding would make it too large for the Z-machine and because Glulx&#039;s support for file I/O can serve as a poor man&#039;s inter-process communication mechanism for connecting an inform IF to an external AI engine. Actually, even as is the Anchorhead source was to big to compile under inform - I&#039;m not sure how Michael ever got it to build for the Z-machine in the first place. The port was a relatively painful process - the standard libraries had been rather extensively modified for Anchorhead, so I couldn&#039;t just use the bi-platform libraries. Instead I had to manually merge the bi-platform libraries with the several-year-old and customized inform libraries, switch menuing libraries (the one he was using, menus.h, uses Z-machine opcodes for screen manipulation), of course change all the style code (more nasty Z-machine opcodes), and figure out how to use the file I/O routines (the crucial but undocumented ChangeAnyToCString() - thanks to Adam Cadre for his &lt;a href=&quot;http://adamcadre.ac/gull/gull.html&quot;&gt;Gull manual&lt;/a&gt; that put me on the &lt;a href=&quot;http://adamcadre.ac/gull/gull-2q.html&quot;&gt;right track&lt;/a&gt;, though he incorrectly calls the function ConvertAnyToCString(), which had me going for a little while). But now I finally have a Glulx Anchorhead that does some file I/O in the main loop to allow an external process to talk to it. Whew. 



Of course the real solution for inter-process communication is modifying Glulx to support generalized stream I/O, including sockets. But that is also a topic for another post. Fortunately, the frequency of drama manager interactions is low enough that file I/O will work for this. 
</description>
		<content:encoded><![CDATA[<p>I&#8217;ve been using Zag on both the PC and Mac for some Glulx work I&#8217;m doing. I&#8217;ll write more about this in a future post, but one of my students, Ari Lamstein, and I are experimenting with hooking a search-based drama manager to an IF piece. We&#8217;re using Michael Gentry&#8217;s <a href="http://www.wurb.com/if/game/17">Anchorhead</a> &#8211; Michael was kind enough to give us the Inform source for our research. I recently finished porting Anchorhead to Glulx, both because it is so large that the additional content we&#8217;ll be adding would make it too large for the Z-machine and because Glulx&#8217;s support for file I/O can serve as a poor man&#8217;s inter-process communication mechanism for connecting an inform IF to an external AI engine. Actually, even as is the Anchorhead source was to big to compile under inform &#8211; I&#8217;m not sure how Michael ever got it to build for the Z-machine in the first place. The port was a relatively painful process &#8211; the standard libraries had been rather extensively modified for Anchorhead, so I couldn&#8217;t just use the bi-platform libraries. Instead I had to manually merge the bi-platform libraries with the several-year-old and customized inform libraries, switch menuing libraries (the one he was using, menus.h, uses Z-machine opcodes for screen manipulation), of course change all the style code (more nasty Z-machine opcodes), and figure out how to use the file I/O routines (the crucial but undocumented ChangeAnyToCString() &#8211; thanks to Adam Cadre for his <a href="http://adamcadre.ac/gull/gull.html">Gull manual</a> that put me on the <a href="http://adamcadre.ac/gull/gull-2q.html">right track</a>, though he incorrectly calls the function ConvertAnyToCString(), which had me going for a little while). But now I finally have a Glulx Anchorhead that does some file I/O in the main loop to allow an external process to talk to it. Whew. </p>
<p>Of course the real solution for inter-process communication is modifying Glulx to support generalized stream I/O, including sockets. But that is also a topic for another post. Fortunately, the frequency of drama manager interactions is low enough that file I/O will work for this.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

