<?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>No Time To Play</title>
	<atom:link href="http://notimetoplay.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://notimetoplay.org</link>
	<description>When development IS the game</description>
	<lastBuildDate>Tue, 15 May 2012 14:34:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>The Future of MMO&#8217;s &#8230; and RPGs too?</title>
		<link>http://notimetoplay.org/2012/05/15/the-future-of-mmos-and-rpgs-too/</link>
		<comments>http://notimetoplay.org/2012/05/15/the-future-of-mmos-and-rpgs-too/#comments</comments>
		<pubDate>Tue, 15 May 2012 14:34:49 +0000</pubDate>
		<dc:creator>Cheetah</dc:creator>
				<category><![CDATA[Review]]></category>

		<guid isPermaLink="false">http://notimetoplay.org/?p=1238</guid>
		<description><![CDATA[It&#8217;s been awhile since I&#8217;ve posted; I&#8217;ve literally had no time to play as it turns out!  But as things have settled down, I&#8217;ve had a little more time.  Mostly occupied with my web comic (warning: blatant plug). Anyway!  I had a lot of fun with a game last night, and I wanted to share [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://notimetoplay.org/2012/05/15/the-future-of-mmos-and-rpgs-too/guild-wars-2/" rel="attachment wp-att-1239"><img class=" wp-image-1239 alignright" src="http://notimetoplay.org/wp-content/uploads/2012/05/Guild-Wars-2-320x240.jpg" alt="Guild Wars 2 Logo" width="224" height="168" /></a>It&#8217;s been awhile since I&#8217;ve posted; I&#8217;ve literally had no time to play as it turns out!  But as things have settled down, I&#8217;ve had a little more time.  Mostly occupied with my <a href="http://www.headforthehillscomic.com">web comic</a> (warning: blatant plug).</p>
<p>Anyway!  I had a lot of fun with a game last night, and I wanted to share it.</p>
<p><span id="more-1238"></span></p>
<p>I&#8217;m very MMO weary; World of Warcraft ultimately left me with a really bad taste in my mouth.  Mostly because it was very competitive in ways that I did not enjoy.  Competitive being the polite way to put it; in short, in a world without consequence where having a selfish attitude ultimately saves you time and energy, it makes more sense to run up and take things from other people than to help them.  This has been my experience at least.</p>
<p>Since I dropped WoW years ago now, I never really played another MMO.  I gave a couple of free ones a shot, but found them all depressingly WoW-like.  However, an MMO has finally come along that has convinced me to purchase it.  And indeed, after playing the stress test for it, I can&#8217;t help but wonder if this is the next thing that&#8217;s going to be copied and imitated by the rest.</p>
<p>Specifically, I picked up <a href="http://www.guildwars2.com">Guild Wars 2</a>.  I never played Guild Wars 1; it just didn&#8217;t really seem like my cup of tea, I wasn&#8217;t very interested.  However, after hearing a description of GW2 and watching over someone&#8217;s shoulder during the open beta, I decided to give it a shot.</p>
<p>Part of why I was willing to give it a chance was because of its pricing model.  With GW2, you pay for it once.  You buy the game and that&#8217;s it; no monthly subscription.  They have a cash shop and do the &#8220;micro-transaction&#8221; thing where you can buy stuff you don&#8217;t technically need instead.  I&#8217;m actually okay with this; one of my problems with a game like World of Warcraft, is if I&#8217;m playing $15.00 a month to play, I feel an obligation.  I&#8217;m &#8220;throwing money away&#8221; if I don&#8217;t want to play it for a month or two.  With Guild Wars 2, I&#8217;ll feel okay putting it down for awhile if I want/need to; it&#8217;s considerably less committed.</p>
<p><a href="http://notimetoplay.org/2012/05/15/the-future-of-mmos-and-rpgs-too/gw2-races/" rel="attachment wp-att-1240"><img class="alignleft size-medium wp-image-1240" src="http://notimetoplay.org/wp-content/uploads/2012/05/gw2-races-320x184.jpg" alt="Guild Wars 2 Races" width="320" height="184" /></a>So!  What&#8217;s the game like?  For one thing, there&#8217;s no &#8220;factions&#8221;.  There&#8217;s PvP (which I did not attempt) that is &#8220;realm vs. realm&#8221; (or rather, server vs. server) but when you&#8217;re running around questing, there&#8217;s no &#8220;other team&#8221; running around out there with you.</p>
<p>Secondly, the game plays more or less like you&#8217;re all in one group.  Most MMO&#8217;s have a concept of &#8220;grouping&#8221;, getting together with other players to do something.  The big benefits are shared loot and shared quest objectives, among other things (safety in numbers, the ability to do bigger things, etc.)  GW2 has groups, but if you&#8217;re just running around by yourself, you are sort of implicitly grouped with the people around you.</p>
<p>So, if you run up and help someone who&#8217;s in trouble &#8212; <strong>you actually get rewarded!</strong>  In fact, anybody can &#8220;resurrect&#8221; anybody else in the field &#8212; <strong>and get experience for it!</strong>  This is the first time I&#8217;ve played an MMO and actually felt &#8230; well, like a part of the world.  My natural desire to be helpful and good to the people around me is actually rewarded; and in turn, I get treated likewise.  This game actually fosters camaraderie; we are really in this thing together, and by rewarding &#8220;good Samaritan&#8221; behavior, its making being part of the team a core part of the game.</p>
<p><a href="http://notimetoplay.org/2012/05/15/the-future-of-mmos-and-rpgs-too/guild-wars-2-open-beta-dynamic-quest-01-1024x678/" rel="attachment wp-att-1241"><img class="alignright size-medium wp-image-1241" src="http://notimetoplay.org/wp-content/uploads/2012/05/Guild-Wars-2-Open-Beta-Dynamic-Quest-01-1024x678-320x211.jpg" alt="Screen Shot Doing Quests" width="320" height="211" /></a>Secondly, and this is something Mass Effect 3 touched on and I think we&#8217;ll see more of in RPGs, quests are more about your location than about talking to an NPC with a ! over his head.  Quests have kind of &#8220;radii&#8221; around them; when you enter a &#8220;quest radius&#8221; you get a little notification in the corner of your screen.  What I said before about implicit grouping?  That works for quests, too.  Everyone gets rated a &#8220;medal&#8221; for participation; bronze, silver, or gold.  If you walk in at the end of the quest, you still complete the quest &#8212; you just get &#8220;bronze&#8221; level participation.</p>
<p>I didn&#8217;t get to play long enough to really know the implication of the different &#8220;participation&#8221; levels, but I found the basic concept really compelling.  The world is dynamic, too; NPCs run up to you and ask for help.  You can ignore them if you want, but if you query them, they will tell you where quests are nearby.  While the game does mark places on the map where there are NPCs that have quest information, most of the quests I did I just found by wandering around.</p>
<p>The world feels rich and alive.  There&#8217;s just &#8220;stuff&#8221; going on, and you can join in whenever and however you want.  And when other people are around, doing the same quest, you don&#8217;t think &#8220;aww damn, they&#8217;re going to take all the pigs I have to kill and make me have to wait for the respawn&#8221;.  It&#8217;s more of a relief thing; now you&#8217;ve got someone watching your back.</p>
<p><a href="http://notimetoplay.org/2012/05/15/the-future-of-mmos-and-rpgs-too/16-engineer-girls-explosions/" rel="attachment wp-att-1242"><img class="alignleft size-medium wp-image-1242" src="http://notimetoplay.org/wp-content/uploads/2012/05/16-Engineer-Girls-Explosions-320x200.jpg" alt="Engineer Girls Blowing Stuff Up" width="320" height="200" /></a>On the topic of quests, GW2 has this concept of sort of &#8230; &#8220;quest tools&#8221; I think is the best way to put it.  You can pick things off the ground &#8212; some of them are silly, like broken bottles at a bar (I guess for bar fights?  I never quite figured that out) but other things are fun.  For instance, there&#8217;s a &#8220;Ghost Busters&#8221; style quest where you pick up a staff and you get a bunch of new abilities.  You use the staff to capture ghosts.  Other things are kind of silly, too &#8212; like there&#8217;s a quest where you pick up unexploded mortar shells and return them to the NPCs.  If a bad guy interrupts you, you can throw the mortar at them and it will explode!</p>
<p>The quest tools override your normal ability-set and give you something fun and new to explore.  Which brings another interesting point; your &#8220;ability menu&#8221; is based on the weapon you&#8217;re holding.  Each weapon type has a different set of skills available to it.  Your skills are therefore a combination of weapon type and class, which means each class has a LOT of different play styles.  It&#8217;s not so much about &#8220;rotations&#8221; of buttons &#8212; WoW Simon &#8212; you get to pick how you want to play your class and use the abilities that make sense to you.</p>
<p>This kind of feels like the tip of the iceberg; GW2 is a really different game from the other MMO&#8217;s, and also expands on things that I think general RPGs are starting to adopt.  I highly recommend the game, and I think we&#8217;ll probably be seeing much more in this vein in the future.  And I look forward to it!</p>
]]></content:encoded>
			<wfw:commentRss>http://notimetoplay.org/2012/05/15/the-future-of-mmos-and-rpgs-too/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fun with voxels</title>
		<link>http://notimetoplay.org/2012/05/15/fun-with-voxels/</link>
		<comments>http://notimetoplay.org/2012/05/15/fun-with-voxels/#comments</comments>
		<pubDate>Tue, 15 May 2012 05:05:51 +0000</pubDate>
		<dc:creator>Felix Pleșoianu</dc:creator>
				<category><![CDATA[Gamedev]]></category>
		<category><![CDATA[2.5D]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://notimetoplay.org/?p=1220</guid>
		<description><![CDATA[I&#8217;ve been working on a new game lately, with a nice pseudo-3D effect for the display. After a while, it dawned on me that what I was doing there essentially amounted to voxels. Which was strange, because while I had read about voxels before, my interest in the topic was academic at best. But now [...]]]></description>
			<content:encoded><![CDATA[<div style="Float: right;"><a href="http://www.flickr.com/photos/zaffi/7046355743/" title="SymbiosisO: Voxel Fashion Party w/@crossproduct by rasdourian, on Flickr"><img src="http://farm8.staticflickr.com/7076/7046355743_06f982d88b_m.jpg" width="240" height="240" alt="SymbiosisO: Voxel Fashion Party w/@crossproduct"></a></div>
<p>I&#8217;ve been working on a new game lately, with a nice pseudo-3D effect for the display. After a while, it dawned on me that what I was doing there essentially amounted to voxels. Which was strange, because while I had read about voxels before, my interest in the topic was academic at best. But now the connection was made, I decided to take a closer look, just to know what possibilities I might be overlooking.</p>
<p>But first, what exactly are voxels?</p>
<p><span id="more-1220"></span></p>
<p>You know what pixels are, right? On the computer, an ordinary two-dimensional image is made of little dots arranged in a grid. Whenever you want to see what the image represents, you simply draw each dot on the screen, row after row, making sure the dots in each row line up vertically. Well, voxels are exactly the same thing, except in 3D.</p>
<p><a href="http://notimetoplay.org/wp-content/uploads/2012/05/pixels-vs-voxels.png"><img src="http://notimetoplay.org/wp-content/uploads/2012/05/pixels-vs-voxels.png" alt="" title="pixels-vs-voxels" width="480" height="320" class="aligncenter size-full wp-image-1231" /></a></p>
<p>Which brings up an obvious question: short of an actual <a href="https://en.wikipedia.org/wiki/Volumetric_display">volumetric display</a>, how do you present a three-dimensional grid of dots to a viewer? Why, via <a href="https://en.wikipedia.org/wiki/3D_projection">3D projection</a> of course! And as I demonstrated in a <a href="http://notimetoplay.org/2010/09/29/in-2-5-dimensions/">previous article</a>, that&#8217;s really easy to do for the basic case.</p>
<pre><code>var TwoPointFive = {
    Camera: function (x, y, z, f) {
        this.x = x || 0;
        this.y = y || 0;
        this.z = z || 0;
        this.f = f || 200;
    },

    project: function (x, y, z, camera) {
        x -= camera.x;
        y -= camera.y;
        z -= camera.z;
        var scale = camera.f / z;
        var px = x * scale;
        var py = y * scale;
        return [px, py, scale];
    }
}
</code></pre>
<p>With that in place, all we have to do is go over each layer in turn and plot the coordinates of each voxel on screen.</p>
<pre><code>for (var z = DEPTH - 1; z &gt;=0; z++) {
    for (var x = 0; x &lt; WIDTH; x++) {
        for (var y = 0; y &lt; HEIGHT; y++) {
            var p = TwoPointFive.project(x, y, z, camera);
            // Determine the voxel's color somehow.
            var color = getColor(x, y, z);
            // Paint your voxel here.
        }
    }
}
</code></pre>
<p>Here, I make sure to start from the back and come towards the camera, a.k.a. <a href="https://en.wikipedia.org/wiki/Painter%27s_algorithm">painter&#8217;s algorithm</a>. A more popular option nowadays is to generate a cube around each voxel and let OpenGL worry about the rendering; but then, that would take care of the 3D projection as well. As it is, I simply paint each voxel as a square, scaled according to distance from the camera (<a href="http://felix.plesoianu.ro/pub/games/voxel-tests/flat-image.html">see source code</a>).</p>
<p><a href="http://notimetoplay.org/wp-content/uploads/2012/05/tux-screenshot.png"><img src="http://notimetoplay.org/wp-content/uploads/2012/05/tux-screenshot.png" alt="" title="tux-screenshot" width="480" height="320" class="aligncenter size-full wp-image-1230" /></a></p>
<p>Wait&#8230; isn&#8217;t it cheating to use a flat image in a discussion of <em>volumetric</em> pixels? That&#8217;s more like&#8230; a texture! No, really, it is. It&#8217;s also the same basic principle; with voxels, we simply have layer after layer of data, instead of just one. Which presents a problem.</p>
<p><img src="http://notimetoplay.org/wp-content/uploads/2012/05/pyramids-screenshot.png" alt="" title="pyramids-screenshot" width="480" height="380" class="aligncenter size-full wp-image-1225" /></p>
<p>Believe it or not, this coarse scene &#8212; <a href="http://notimetoplay.org/wp-content/uploads/2012/05/true-volume.html">full code here</a> &#8212; contains as many voxels as the one before. (Though mostly obtained by mirroring.) The <a href="https://en.wikipedia.org/wiki/Square-cube_law">square-cube law</a> ensures that the amount of data required increases fast with resolution. Luckily, there are ways to mitigate this problem.</p>
<p><img src="http://notimetoplay.org/wp-content/uploads/2012/05/heightmap-screenshot.png" alt="" title="heightmap-screenshot" width="480" height="320" class="aligncenter size-full wp-image-1223" /></p>
<p>This is an ordinary heightmap (<a href="http://felix.plesoianu.ro/pub/games/voxel-tests/heightmap.html">see code</a>), except rendered with voxels instead of polygons. The height of each data point is encoded in its shade of gray. It works because we&#8217;re only interested in the surface &#8212; and as a bonus, we can still use the same value to color the voxel. (Under realistic conditions, a color map would be in order.) Note how I&#8217;ve drawn the voxels taller than they are wide in order to hide the seams, and it&#8217;s still not perfect. I guess there&#8217;s a reason polygons are more popular.</p>
<p>What&#8217;s the point of using voxels, then? Nowadays, they are mostly used as a stylistic choice, as they give games a very distinctive appearance. They also naturally enable fully modifiable environments, something rather difficult to implement in a polygonal world. Otherwise, polygons are better studied and directly supported by the commodity GPUs built into almost any computer.</p>
<p>Back around 1997, however, before 3D acceleration was ubiquitous, voxels were enjoying considerable attention. Quite a few famous games used voxels for some or all of their graphics, Blade Runner being my favorite example. See, voxels are easy to understand, and require very simple calculations. But the comparative difficulty of animating voxel objects, together with the march of technology, relegated them to just another tool in the toolbox. Use wisely.</p>
<p><small>(Illustration: <a href="http://www.flickr.com/photos/zaffi/7046355743/">Voxel Fashion Party</a>, by <a href="http://www.flickr.com/photos/zaffi/">Raffi Asdourian</a>; CC-BY. Tux icon courtesy of <a href="http://openclipart.org/">OpenClipart.org</a>.)</small></p>
<p><a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-sa/3.0/80x15.png" /></a><br /><span xmlns:dct="http://purl.org/dc/terms/" href="http://purl.org/dc/dcmitype/Text" property="dct:title" rel="dct:type">Fun with voxels</span> by <a xmlns:cc="http://creativecommons.org/ns#" href="http://notimetoplay.org/author/shadow/" property="cc:attributionName" rel="cc:attributionURL">Felix Pleșoianu</a> is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/">Creative Commons Attribution-ShareAlike 3.0 Unported License</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://notimetoplay.org/2012/05/15/fun-with-voxels/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Original Ramus story and more</title>
		<link>http://notimetoplay.org/2012/03/24/original-ramus-story-and-more/</link>
		<comments>http://notimetoplay.org/2012/03/24/original-ramus-story-and-more/#comments</comments>
		<pubDate>Sat, 24 Mar 2012 09:16:37 +0000</pubDate>
		<dc:creator>Felix Pleșoianu</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[interactive fiction]]></category>
		<category><![CDATA[ramus]]></category>

		<guid isPermaLink="false">http://notimetoplay.org/?p=1189</guid>
		<description><![CDATA[This announcement is one week late (pesky real life&#8230;) but just after I published my port of Starborn &#8212; and Nitku graciously promoted it &#8212; a new user of Ramus surfaced and promptly did some very nice things with it. Meet Conrad Cook. Not only he posted a minimal, &#8220;starter&#8221; Ramus document, a useful thing [...]]]></description>
			<content:encoded><![CDATA[<p>This announcement is one week late (pesky real life&#8230;) but just after I published my port of Starborn &#8212; and Nitku graciously promoted it &#8212; a new user of Ramus surfaced and promptly did some very nice things with it.</p>
<p>Meet <a href="http://onewetsneaker.wordpress.com/">Conrad Cook</a>. Not only he posted a <a href="http://www.intfiction.org/forum/viewtopic.php?f=16&amp;t=4678">minimal, &#8220;starter&#8221; Ramus document</a>, a useful thing I failed to do myself, but followed up immediately with an original work called Unicorn Story. Which I am now <a href="http://ramus.notimetoplay.org/index.php/Main/WorksMadeWithRamus">hosting on the Ramus website</a> at his request. Thank you, Conrad.</p>
<p>I also took the opportunity to flesh out the aforementioned website a little more, including an answer to the frequently asked question about (not using) jQuery. Hope this helps.</p>
]]></content:encoded>
			<wfw:commentRss>http://notimetoplay.org/2012/03/24/original-ramus-story-and-more/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ramus in the real world</title>
		<link>http://notimetoplay.org/2012/03/18/ramus-in-the-real-world/</link>
		<comments>http://notimetoplay.org/2012/03/18/ramus-in-the-real-world/#comments</comments>
		<pubDate>Sun, 18 Mar 2012 17:55:48 +0000</pubDate>
		<dc:creator>Felix Pleșoianu</dc:creator>
				<category><![CDATA[Gamedev]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[interactive fiction]]></category>
		<category><![CDATA[ramus]]></category>

		<guid isPermaLink="false">http://notimetoplay.org/?p=1184</guid>
		<description><![CDATA[No, don&#8217;t get too excited. This is something I did myself, and it&#8217;s not even an original work but a port of Juhana Leinonen&#8216;s Starborn. I meant to do it when the game first came out, but there was too much going on behind the scenes, or so it seemed from looking at the source [...]]]></description>
			<content:encoded><![CDATA[<p>No, don&#8217;t get too excited. This is something I did myself, and it&#8217;s not even an original work but a port of <a href="http://nitku.net/blog/">Juhana Leinonen</a>&#8216;s Starborn. I meant to do it when the game first came out, but there was too much going on behind the scenes, or so it seemed from looking at the source code, and I hesitated. In the mean time, Nitku ported it to Undum himself, thus proving that in a keyword-based game a few boolean flags may well be able to replace a full-blown world model. So I took a closer look, and it turned out that more than half of the original Inform 7 code was dedicated to disabling the parser, implementing keywords as a game concept and other such changes.</p>
<p>On the Ramus side, development turned out to be very easy indeed. The only real problem is that I keep typing <code>href</code> instead of <code>rel</code> &#8212; understandable after over a decade of Web development. It may be worth implementing URL autodetection, like in HTML TADS, but my laziness is stronger than the annoyance factor.</p>
<p>Anyway, you can <a href="http://ramus.notimetoplay.org/index.php/Main/WorksMadeWithRamus">download the game here</a>. Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://notimetoplay.org/2012/03/18/ramus-in-the-real-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A look at Alan 3</title>
		<link>http://notimetoplay.org/2012/03/05/a-look-at-alan-3/</link>
		<comments>http://notimetoplay.org/2012/03/05/a-look-at-alan-3/#comments</comments>
		<pubDate>Mon, 05 Mar 2012 08:44:51 +0000</pubDate>
		<dc:creator>Felix Pleșoianu</dc:creator>
				<category><![CDATA[Gamedev]]></category>
		<category><![CDATA[Review]]></category>
		<category><![CDATA[interactive fiction]]></category>
		<category><![CDATA[languages]]></category>

		<guid isPermaLink="false">http://notimetoplay.org/?p=1179</guid>
		<description><![CDATA[Created in 1985 (according to IFWiki), Alan may well be the oldest interactive fiction authoring system still in active development. Despite that, it never achieved much popularity. IFDB lists 46 Alan games; Baf&#8217;s Guide, only 42 of them. To put things in perspective, that&#8217;s the number of IFComp entries on a good year. That&#8217;s too [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://notimetoplay.org/wp-content/uploads/2012/03/alan-logo.png"><img class="alignright size-thumbnail wp-image-1180" title="alan-logo" src="http://notimetoplay.org/wp-content/uploads/2012/03/alan-logo-240x200.png" alt="" width="240" height="200" /></a></p>
<p>Created in 1985 (according to IFWiki), <a href="http://www.alanif.se/">Alan</a> may well be the oldest interactive fiction authoring system still in active development. Despite that, it never achieved much popularity. IFDB lists <a href="http://ifdb.tads.org/search?searchfor=system%3AAlan&amp;searchgo=Search+Games">46 Alan games</a>; Baf&#8217;s Guide, <a href="http://www.wurb.com/if/platform/17">only 42 of them</a>. To put things in perspective, that&#8217;s the number of IFComp entries on a good year. That&#8217;s too bad, because the system has unique qualities.</p>
<p>I downloaded the binary archive of Alan 3 beta 2 for Linux, the latest stable version as of this writing. The system falls under the open source Artistic License; beware that both the website and readme files may still refer to the old &#8220;register-ware&#8221; terms in places.</p>
<p><span id="more-1179"></span></p>
<p>Speaking of the manual, it comes as a 227-page PDF which apparently describes the system in its entirety. That&#8217;s possible because Alan is a specialized programming language, with all the needed functionality hardcoded into the runtime, and the (otherwise ample) standard library is merely a bonus. That&#8217;s in contrast with platforms such as Inform 6 and the Z-Machine, which can and have been used for things <a href="http://ifwiki.org/index.php/Z-abuse">other than interactive fiction</a>.</p>
<p>While on the topic of the standard library, the Alan Beginner&#8217;s Guide recommends copying it into every project and customizing in-place. That has the undesirable side effect of forcing you to distribute the customized version with your game&#8217;s source code, should you wish to make it public; be sure to read the Artistic License if you do.</p>
<p>If on the other hand you go without the standard library, it turns out the game doesn&#8217;t understand any verb at all by default, except for whatever exit names you define (and &#8220;undo&#8221;, oddly enough). At the very least, you&#8217;ll want something along the lines of:</p>
<pre><code>verb 'look', l does look. end verb 'look'. verb 'save' does save. end verb 'save'. verb 'restore' does restore. end verb 'restore'. verb 'quit' does quit. end verb 'quit'. verb transcript_on does transcript on. end verb transcript_on. syntax transcript_on = 'transcript' 'on'. verb transcript_off does transcript off. end verb transcript_off. syntax transcript_off = 'transcript' 'off'. </code></pre>
<p>Section 3.17 of the manual appears to suggest you can reuse language keywords as verb identifiers, but in reality you need to do it like in the code above, as per the sample game Saviour. We can expect a documentation fix soon; Thomas Nilsson was very nice and prompt in answering my e-mail.</p>
<p>By the way, I kind of expected to use the same identifier for an exit and the location it points at, but that was probably unreasonable. On the plus side, exit names are arbitrary. (There is no built-in concept of a compass, but you can simulate one easily enough.) That, coupled with the ease of declaring verbs per location, makes Alan a natural fit for keyword-driven games, and those just happen to be in vogue.</p>
<p>Overall, Alan looks like a nice combination of simplicity and advanced features. It even has rules, like the much more advanced Inform 7, and the ability to nest ordinary rooms provides an elegant solution to multi-presence objects and, yes, vehicles. On the other hand, there is no way to manipulate exits once defined, doors have to be implemented with manual checks inside said exits, and the built-in score system is quite limited; even the official documentation recommends making your own instead.</p>
<p>Last but not least, the verbose syntax suggests that intricate puzzles might be tedious to code, which would make the system better suited for literary pieces. (But see the above remark on clever features.) Illustrations and sounds are supported, but only in the most basic way. All in all, Alan has a very distinct flavor, and it&#8217;s worth keeping it in mind as an option.</p>
<p><small>(Alan logo used with permission.)</small></p>
<p><a href="http://creativecommons.org/licenses/by-sa/3.0/" rel="license"><img style="border-width: 0;" src="http://i.creativecommons.org/l/by-sa/3.0/80x15.png" alt="Creative Commons License" /></a><br />
<span>A look at Alan 3</span> by <a href="http://notimetoplay.org/author/shadow/" rel="cc:attributionURL">Felix Pleșoianu</a> is licensed under a <a href="http://creativecommons.org/licenses/by-sa/3.0/" rel="license">Creative Commons Attribution-ShareAlike 3.0 Unported License</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://notimetoplay.org/2012/03/05/a-look-at-alan-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What porting can teach you</title>
		<link>http://notimetoplay.org/2012/02/27/what-porting-can-teach-you/</link>
		<comments>http://notimetoplay.org/2012/02/27/what-porting-can-teach-you/#comments</comments>
		<pubDate>Mon, 27 Feb 2012 08:21:11 +0000</pubDate>
		<dc:creator>Felix Pleșoianu</dc:creator>
				<category><![CDATA[Gamedev]]></category>
		<category><![CDATA[interactive fiction]]></category>

		<guid isPermaLink="false">http://notimetoplay.org/?p=1171</guid>
		<description><![CDATA[In game development, one of the most important learning experiences is releasing a complete, polished title, no matter how small and simple. You know what else is? Porting a game to a different platform. Now, with most kinds of games, the challenge is adapting to the input and output capabilities of the new platform; the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://notimetoplay.org/wp-content/uploads/2012/02/catch-that-cat-qtads.png"><img src="http://notimetoplay.org/wp-content/uploads/2012/02/catch-that-cat-qtads-240x185.png" alt="" title="catch-that-cat-qtads" width="240" height="185" class="alignright size-thumbnail wp-image-1172" /></a></p>
<p>In game development, one of the most important learning experiences is releasing a complete, polished title, no matter how small and simple. You know what else is? Porting a game to a different platform.</p>
<p>Now, with most kinds of games, the challenge is adapting to the input and output capabilities of the new platform; the game logic, if well designed, can stay the same. But with a text adventure, it&#8217;s the other way around; gameplay remains essentially unchanged, but the internals can change considerably. That&#8217;s because an interactive fiction platform isn&#8217;t just a virtual machine, but also a world model, and the programming languages themselves, while of course equivalent, can have very different philosophies.</p>
<p><span id="more-1171"></span></p>
<p>For example: by design, the original Catch That Cat can&#8217;t be made unwinnable; you&#8217;d think that arranging the same puzzles in the same layout would be enough to maintain the invariant. Nope&#8230; it broke because TADS 3 handles objects in the dark differently. Don&#8217;t skimp on beta-testing.</p>
<p>Another thing that can change is player expectations. In a two-word-parser title, one expects sketchiness; on a mainstream platform, you can&#8217;t get away with nearly as much. Especially in a small game, where extra responses can make half the fun. What I wrote last time about leaving out verbs? Bad idea.</p>
<p>Last but not least, there is the little big issue of going with the grain and making a port that fits the new platform instead of fighting it, even if that means changing certain details. Or even central elements, such as how you communicate with the human NPC in order to obtain a vital item. It would have been easy to do it exactly like in the original, but the game would have been poorer for it. After all, that particular approach addressed an engine limitation which doesn&#8217;t carry over.</p>
<p>On the flip side, be on the lookout for things you can easily keep the same, as well as things you can&#8217;t keep at all. In my case, <code>ShuffledEventList</code> messages, and explicitly listed exits. The latter are an interesting case: what is a built-in option in TADS 3 comes as an extension in Inform 7, and is outright impossible in Alan 3 (unless I missed something). As this happens to be a basic feature of my game, choosing the wrong target platform could have compromised the whole effort.</p>
<p>Best of all, working on this gave me improvement ideas I was able to backport into the original implementation, so I ended with two improved versions for the price of one. Now, to put all this newfound experience to good use&#8230;</p>
<p><a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-sa/3.0/80x15.png" /></a><br /><span xmlns:dct="http://purl.org/dc/terms/" href="http://purl.org/dc/dcmitype/Text" property="dct:title" rel="dct:type">What porting can teach you</span> by <a xmlns:cc="http://creativecommons.org/ns#" href="http://notimetoplay.org/author/shadow/" property="cc:attributionName" rel="cc:attributionURL">Felix Pleșoianu</a> is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/">Creative Commons Attribution-ShareAlike 3.0 Unported License</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://notimetoplay.org/2012/02/27/what-porting-can-teach-you/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adventures in Interactive Fiction</title>
		<link>http://notimetoplay.org/2012/02/20/adventures-in-interactive-fiction/</link>
		<comments>http://notimetoplay.org/2012/02/20/adventures-in-interactive-fiction/#comments</comments>
		<pubDate>Mon, 20 Feb 2012 18:08:27 +0000</pubDate>
		<dc:creator>Felix Pleșoianu</dc:creator>
				<category><![CDATA[Gamedev]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[browser games]]></category>
		<category><![CDATA[interactive fiction]]></category>
		<category><![CDATA[languages]]></category>

		<guid isPermaLink="false">http://notimetoplay.org/?p=1142</guid>
		<description><![CDATA[It&#8217;s been almost a year since I last looked into IF authoring systems, and the market has shifted again. A Hugo title became the most talked about game in 2011 &#8212; one that features extensive multimedia and random combat to boot. Yay for Cryptozookeeper! There is also an ever-increasing number of (choice-based) Web games, outnumbering [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://notimetoplay.org/2012/02/20/adventures-in-interactive-fiction/catch-that-cat-tads/" rel="attachment wp-att-1143"><img src="http://notimetoplay.org/wp-content/uploads/2012/02/catch-that-cat-tads-198x240.png" alt="" title="catch-that-cat-tads" width="198" height="240" class="alignright size-thumbnail wp-image-1143" /></a></p>
<p>It&#8217;s been almost a year since I last looked into <abbr>IF</abbr> authoring systems, and the market has shifted again. A Hugo title became the most talked about game in 2011 &#8212; one that features extensive multimedia and random combat to boot. Yay for <a href="http://www.joltcountry.com/index.php/robbsherwin_videogame/cryptozookeeper">Cryptozookeeper</a>! There is also an ever-increasing number of (choice-based) Web games, outnumbering those written for my new favorite platform, TADS 3.</p>
<p>Speaking of that, soon after a <a href="http://tads3.livejournal.com/7082.html">new release of TADS</a> came out with Web play support, thus bringing the old powerhouse in line with its main competitor, the news spread like fire that a <a href="http://playfic.com/">new online service</a> came out enabling people to author Inform 7 stories online. To top it all, mere days later the young Quest system <a href="http://www.textadventures.co.uk/blog/2012/02/16/introducing-quest-webeditor-create-text-adventures-online-in-your-browser/">announced official support</a> for a similar feature!</p>
<p><span id="more-1142"></span></p>
<p>All that rekindled my interest in authoring, so what started as a test drive last year turned into a serious porting effort. Whether a tiny, retro-styled text adventure is a good match for a modern authoring system and the current IF scene remains to be seen. But whatever happens, the porting process taught me invaluable lessons.</p>
<p>On the one hand, a more sophisticated authoring system requires some adaptations. Puzzle solutions that couldn&#8217;t be implemented with a two-word parser become the default; others must be adapted to the full containment model. Unimplemented nouns become unacceptable and so on.</p>
<p>But! Not everything needs to be changed. The <a href="http://notimetoplay.org/our-games/jaiffa/">original Catch That Cat</a> relies entirely on nonverbal communication with the NPCs, and that still makes perfect sense for the cat. Using explicitly listed objects to decorate a room, as opposed to flowery prose, is part of the game concept, and that works even better when you can outright mark them as Decoration.</p>
<p>Verbs are more of an issue. Two verbs that any casual <abbr>IF</abbr> player <em>will</em> try are TALK TO and USE. Luckily, TADS 3 has the former by default, as for the latter, the default response for non-existing verbs is:</p>
<blockquote>
<p>The word &#8220;use&#8221; is not necessary in this story.</p>
</blockquote>
<p>which cuts down on the number of extraneous verbs I need to implement. (That, and TADS 3 has an enormous list of built-in verbs.) On the minus side, those verbs I can&#8217;t get away without involve more boilerplate than I&#8217;m used to. Oh well.</p>
<p>One stumbling block was turning a large, hairy block of if-else instructions into declarative code. Not only it required considerable lateral thinking &#8212; not my strong point &#8212; but it resulted in more code, not less. At least the interaction is more natural now, and hey, that&#8217;s the kind of thing that makes game development as fun for me as playing games.</p>
<p>Last but not least, I managed with a bit of work to install the latest <a href="http://tads.org/frobtads.htm">FrobTads</a> and figure out how to use it, only to realize I will still need the official Windows version to build stand-alone games, as well as for syntax highlighting, until I can find or make my own.</p>
<p>Looks like the adventure is just starting&#8230; again.</p>
<p>P.S. I found the <a href="http://www.ifarchive.org/indexes/if-archiveXprogrammingXtads3XlibraryXcontributions">TADS 3 library extensions</a> in the mean time. Durr!</p>
<p><a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-sa/3.0/80x15.png" /></a><br /><span xmlns:dct="http://purl.org/dc/terms/" href="http://purl.org/dc/dcmitype/Text" property="dct:title" rel="dct:type">Adventures in Interactive Fiction</span> by <a xmlns:cc="http://creativecommons.org/ns#" href="http://notimetoplay.org/author/shadow/" property="cc:attributionName" rel="cc:attributionURL">Felix Pleșoianu</a> is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/">Creative Commons Attribution-ShareAlike 3.0 Unported License</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://notimetoplay.org/2012/02/20/adventures-in-interactive-fiction/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Effort, quality and compromises</title>
		<link>http://notimetoplay.org/2012/02/13/effort-quality-and-compromises/</link>
		<comments>http://notimetoplay.org/2012/02/13/effort-quality-and-compromises/#comments</comments>
		<pubDate>Mon, 13 Feb 2012 07:00:36 +0000</pubDate>
		<dc:creator>Felix Pleșoianu</dc:creator>
				<category><![CDATA[Opinion]]></category>
		<category><![CDATA[rants]]></category>

		<guid isPermaLink="false">http://notimetoplay.org/?p=1134</guid>
		<description><![CDATA[There&#8217;s been much talk lately about Unity 3D. A combination of rich toolset, portability, price and other factors conspire to make it increasingly popular. The recently released Indie Games Developer magazine opens with an article on it, and this sentence jumped at me: In fact, [Unity] is so simple that it sometimes scares people off [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://notimetoplay.org/2012/02/13/effort-quality-and-compromises/effort/" rel="attachment wp-att-1139"><img src="http://notimetoplay.org/wp-content/uploads/2012/02/effort.png" alt="" title="effort" width="205" height="205" class="alignright size-full wp-image-1139" /></a></p>
<p>There&#8217;s been much talk lately about <a href="http://unity3d.com/">Unity 3D</a>. A combination of rich toolset, portability, price and other factors conspire to make it increasingly popular. The recently released <a href="http://www.indiegamesdeveloper.com/">Indie Games Developer</a> magazine opens with an article on it, and this sentence jumped at me:</p>
<blockquote>
<p>In fact, [Unity] is so simple that it sometimes scares people off initially as they do not believe that something so easy to use can produce professional quality games and that there must be compromises to be made.</p>
</blockquote>
<p><span id="more-1134"></span></p>
<p>To which Nightwrath replied, &#8220;easy for whom? professionals who have used such tools for years?&#8221; And I remembered something else he told me recently (and which matches my own observations), namely that many amateur projects seem to fizzle at the stage where a character model loads and can be moved around on a simple map. You may say that&#8217;s burnout: they used up all their energy to get to this point, and they have nothing left for the game itself. And I admit that being able to focus on making the game proper is a good thing.</p>
<p>But you see, that&#8217;s the real difficulty.</p>
<p>There, I said it. Making the engine is laborious, but straightforward and exciting. You know exactly what your goal is, and all you have to do is tackle the various problems one by one. But once you get to making the actual game, suddenly we&#8217;re talking hard decisions. And if you thought programming was fiddly, wait until you get to polishing.</p>
<p>Tell you what. Fire up your favorite 3D modeler and model the rooms in your own apartment (just the walls and such for now). Done? Now furnish it. Grabs some premade models off the net, we&#8217;re just playing. Tired yet? Animate the doors to make them swing. (You did add doors, right?) Make the light switches flippable, too. And do you have textures on everything? Good. Now multiply that by 50 or 100 for a single building. How many of those were you planning to have in your game?</p>
<p>If you haven&#8217;t run away by now, maybe we can talk about collisions, interactions, AI waypoints, the AI proper, dialogues, flavor text&#8230; Or assembling all of that in a game that&#8217;s playable, winnable and fun.</p>
<p>You want all these operations to be as easy as possible. You want to, because you&#8217;ll be doing them again and again, way past the point where it stops being fun. That&#8217;s plenty of effort right there, never mind that effort in itself does not imply quality results. As for the need to make compromises, when did that become a problem? You can&#8217;t even do engineering, or design (which is a branch thereof), without plenty of compromising. Don&#8217;t you think Shigeru Miyamoto had to compromise with Mario? Or Gunpei Yokoi with the Game Boy? And yet they are the most popular video game character, and the best-selling gaming device ever, respectively.</p>
<p><a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-sa/3.0/80x15.png" /></a><br /><span xmlns:dct="http://purl.org/dc/terms/" href="http://purl.org/dc/dcmitype/Text" property="dct:title" rel="dct:type">Effort, quality and compromises</span> by <a xmlns:cc="http://creativecommons.org/ns#" href="http://notimetoplay.org/author/shadow/" property="cc:attributionName" rel="cc:attributionURL">Felix Pleșoianu</a> is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/">Creative Commons Attribution-ShareAlike 3.0 Unported License</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://notimetoplay.org/2012/02/13/effort-quality-and-compromises/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How cool is that?!</title>
		<link>http://notimetoplay.org/2012/02/07/how-cool-is-that/</link>
		<comments>http://notimetoplay.org/2012/02/07/how-cool-is-that/#comments</comments>
		<pubDate>Tue, 07 Feb 2012 16:00:45 +0000</pubDate>
		<dc:creator>Felix Pleșoianu</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[rants]]></category>

		<guid isPermaLink="false">http://notimetoplay.org/?p=1132</guid>
		<description><![CDATA[So, earlier today Nightwrath shows me this video tutorial for Unity 3D (on YouTube). It&#8217;s not my thing at all, but I watch a little out of curiosity. Wait&#8230; this bloke sounds like a twelve-year-old. That picks my interest, and I click through to his profile, then his blog. Which is full of game and [...]]]></description>
			<content:encoded><![CDATA[<p>So, earlier today <a href="http://notimetoplay.org/author/nightwrath/">Nightwrath</a> shows me this video tutorial for Unity 3D (on YouTube). It&#8217;s not my thing at all, but I watch a little out of curiosity. Wait&#8230; this bloke sounds like a twelve-year-old. That picks my interest, and I click through to <a href="http://www.youtube.com/user/Computoguy">his profile</a>, then <a href="http://thecomputoguy.wordpress.com/">his blog</a>. Which is full of game and console reviews, and more video tutorials. To top it all, he makes music as well. And what do you know&#8230; he actually is twelve! How cool is that?</p>
<p>No, I won&#8217;t give you an &#8220;in the old days&#8221; speech. Things were different back then. But I&#8217;m thrilled to live in an age when so many people can make a contribution to the world&#8217;s culture, without having to ask anyone for permission. As Michael Masnick put it recently, <a href="http://www.techdirt.com/articles/20120131/23562317608/were-living-most-creative-time-history.shtml">We&#8217;re Living In the Most Creative Time In History</a>, and that&#8217;s not a given. Be grateful for this freedom. Fight for it.</p>
<p>And don&#8217;t forget to check out <a href="http://thecomputoguy.wordpress.com/">Computoguy&#8217;s blog</a>.</p>
<p><a href="http://creativecommons.org/licenses/by-sa/3.0/" rel="license"><img style="border-width: 0;" src="http://i.creativecommons.org/l/by-sa/3.0/80x15.png" alt="Creative Commons License" /></a><br />
<span>How cool is that?!</span> by <a href="http://notimetoplay.org/author/shadow/" rel="cc:attributionURL">Felix Pleșoianu</a> is licensed under a <a href="http://creativecommons.org/licenses/by-sa/3.0/" rel="license">Creative Commons Attribution-ShareAlike 3.0 Unported License</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://notimetoplay.org/2012/02/07/how-cool-is-that/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>New Ramus website</title>
		<link>http://notimetoplay.org/2012/01/31/new-ramus-website/</link>
		<comments>http://notimetoplay.org/2012/01/31/new-ramus-website/#comments</comments>
		<pubDate>Tue, 31 Jan 2012 17:02:51 +0000</pubDate>
		<dc:creator>Felix Pleșoianu</dc:creator>
				<category><![CDATA[Gamedev]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[interactive fiction]]></category>
		<category><![CDATA[ramus]]></category>

		<guid isPermaLink="false">http://notimetoplay.org/?p=1128</guid>
		<description><![CDATA[As promised last time, I got around to setting up a new website for Ramus. Right now, it contains the exact same information as the original web page, except this time it has room to grow. And because it&#8217;s a wiki, you can suggest additions directly inline! See you there, and thanks.]]></description>
			<content:encoded><![CDATA[<p>As promised last time, I got around to setting up a <a href="http://ramus.notimetoplay.org/">new website for Ramus</a>. Right now, it contains the exact same information as the original web page, except this time it has room to grow. And because it&#8217;s a wiki, you can suggest additions directly inline! See you there, and thanks.</p>
]]></content:encoded>
			<wfw:commentRss>http://notimetoplay.org/2012/01/31/new-ramus-website/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

