<?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>Design - Undo Restart Restore</title>
	<atom:link href="/blog/category/craft/design/feed/" rel="self" type="application/rss+xml" />
	<link>/blog</link>
	<description>Interactive Fiction by Juhana Leinonen</description>
	<lastBuildDate>Mon, 19 Oct 2015 21:41:08 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.7.1</generator>
	<item>
		<title>What if we don&#039;t succeed?</title>
		<link>/blog/2015/10/what-if-we-dont-succeed/</link>
		
		<dc:creator><![CDATA[Juhana]]></dc:creator>
		<pubDate>Mon, 19 Oct 2015 23:29:11 +0000</pubDate>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[bttf]]></category>
		<guid isPermaLink="false">/blog/?p=1110</guid>

					<description><![CDATA[This is the second article in the Back to the Future theme week series. One of the most useful advice that has proved its worth to me again and again, both in creative work and in business life, is "fail early, fail often." It might sound counterintuitive, but it simply means "have a lot of <a href="/blog/2015/10/what-if-we-dont-succeed/" class="more-link">Continue reading <span class="screen-reader-text">What if we don't succeed?</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p><em>This is the second article in the <a href="/blog/2015/10/back-to-the-future-theme-week/">Back to the Future theme week</a> series.</em></p>
<hr>
<p>One of the most useful advice that has proved its worth to me again and again, both in creative work and in business life, is <strong>"fail early, fail often."</strong> It might sound counterintuitive, but it simply means "have a lot of ideas, discard the bad ones before you've spent too much time on them." The word "failure" is used here in the most positive connotation it can have.</p>
<p>Not all ideas are equal. In the best case scenario you get an idea, realize immediately that it's not viable, and discard it. Even though the idea was a failure it was useful because you can now focus on better ideas. If you have 100 ideas it's best to shift through them quickly instead of finding the hard way which of them is the gold nugget.</p>
<p>Even if a project is based on a good idea, the details will need constant revisiting. </p>
<div id="attachment_1245" style="width: 510px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-1245" loading="lazy" src="/blog/blogcontent/uploads/2015/10/point-of-no-return.jpg" title="Point of no return" alt="Doc Brown pointing at a sign in a miniature model that says &quot;Point of no return&quot;" width="500" height="420" class="size-full wp-image-1245" srcset="/blog/blogcontent/uploads/2015/10/point-of-no-return.jpg 500w, /blog/blogcontent/uploads/2015/10/point-of-no-return-150x126.jpg 150w, /blog/blogcontent/uploads/2015/10/point-of-no-return-300x252.jpg 300w" sizes="(max-width: 500px) 100vw, 500px" /><p id="caption-attachment-1245" class="wp-caption-text">Don't let a bad idea get past the point of no return.</p></div>
<p>The creators of <cite>Back to the Future</cite> had always envisioned Michael J. Fox to play the protagonist, Marty McFly. When the filming started Fox was unavailable because he was starring in a popular sitcom <cite>Family Ties</cite>. Eric Stoltz, an up-and-coming young actor, was cast instead.</p>
<div id="attachment_1122" style="width: 309px" class="wp-caption alignright"><img aria-describedby="caption-attachment-1122" loading="lazy" src="/blog/blogcontent/uploads/2015/08/fringe-bttf.jpg" alt="A billboard crediting Stoltz as the star of Back to the Future" width="299" height="226" class="size-full wp-image-1122" srcset="/blog/blogcontent/uploads/2015/08/fringe-bttf.jpg 299w, /blog/blogcontent/uploads/2015/08/fringe-bttf-150x113.jpg 150w" sizes="(max-width: 299px) 100vw, 299px" /><p id="caption-attachment-1122" class="wp-caption-text">In an alternate timeline, Stoltz was the star of the film. (Screen capture from <em>Fringe</em>.)</p></div>
<p>In late 1984, after a few weeks of filming, it became clear that Stoltz wasn't right for the part. He was by all accounts a good actor but he just didn't have the personality or the comedic sense that the part required. </p>
<p>At this point they had basically three choices. Keep filming with Stoltz, risking an inferior end result; change the lead to someone else; or try again to get Michael J. Fox on board. Thankfully they went with the third option and managed to strike a deal with Fox and the producers of <cite>Family Ties</cite>. Fox joined the cast, Stoltz had to go, and the movie was better for it.</p>
<p>Changing the lead actor was a dramatic decision and it was made right before the point of no return. Recognizing the failure earlier would have saved them a lot of money and wasted effort.</p>
<div id="attachment_1117" style="width: 610px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-1117" loading="lazy" src="/blog/blogcontent/uploads/2015/08/stoltz-fox.jpg" alt="Two pictures from the same scene where Marty McFly looks at his young father in the past, the first one with Eric Stolz and the second with Michael J. Fox as Marty McFly" width="600" height="734" class="size-full wp-image-1117" srcset="/blog/blogcontent/uploads/2015/08/stoltz-fox.jpg 600w, /blog/blogcontent/uploads/2015/08/stoltz-fox-123x150.jpg 123w, /blog/blogcontent/uploads/2015/08/stoltz-fox-245x300.jpg 245w, /blog/blogcontent/uploads/2015/08/stoltz-fox-520x636.jpg 520w" sizes="(max-width: 600px) 100vw, 600px" /><p id="caption-attachment-1117" class="wp-caption-text">Above: Eric Stoltz as the original Marty McFly.<br />Below: Michael J. Fox in the final film.</p></div>
<p>Other famous but less dramatic "failures" were the first drafts of the script where the time machine was built from a refrigerator instead of the iconic DeLorean, and the original ending in later scripts which involved getting the 1.21 gigawatts of energy to power the time machine by driving it into a nuclear explosion test.</p>
<div id="attachment_1155" style="width: 710px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-1155" loading="lazy" src="/blog/blogcontent/uploads/2015/10/atomic-test-storyboard.jpg" alt="A storyboard frame showing a nuclear test tower" width="700" height="355" class="size-full wp-image-1155" srcset="/blog/blogcontent/uploads/2015/10/atomic-test-storyboard.jpg 700w, /blog/blogcontent/uploads/2015/10/atomic-test-storyboard-150x76.jpg 150w, /blog/blogcontent/uploads/2015/10/atomic-test-storyboard-300x152.jpg 300w, /blog/blogcontent/uploads/2015/10/atomic-test-storyboard-520x264.jpg 520w" sizes="(max-width: 700px) 100vw, 700px" /><p id="caption-attachment-1155" class="wp-caption-text">A frame from an early version of the <em>Back to the Future</em> storyboard</p></div>
<p>The moral of the story is that it's best to <strong>fail as early as possible</strong>. It opens up a possibility for choosing something better.</p>
<p>The important thing to acknowledge is that <strong>you can't plan for success</strong> when you're doing experimental or creative work. Failure is <em>always</em> an option. The only time you can plan for success is when you're doing something that's already done and tested before, like assembling Ikea furniture or designing a game by cloning an existing one. When you're creating something new, no-one can tell if it's really going to work or not before you can see it in action.</p>
<p>It's also important to not take the principle too far. Some ideas need time to grow to their full potential, so discarding them would be a mistake. Balancing between being bold enough to discard probably bad ideas and holding on to potentially good ideas is the hard part.</p>
<h3>Identifying failure points</h3>
<p>Coming back to game design, failing early means identifying potential failure points, testing them, and making correcting moves or even discarding the project if needed.</p>
<p>Pretty much every aspect of game design is a potential failure point. To name just a few:</p>
<ul>
<li>Game mechanics
<li>Plot and story structure
<li>Characters and character relations
<li>Setting
<li>Geography
<li>User interface
</ul>
<p>The key is to think what will be this game's innovation. Tried and tested details probably won't be a problem, it's the things that are going for something new that are most likely to require repeated iterations.</p>
<p>Once a potential failure point is identified, the best way to find actual problems is prototyping. Make a small example that shows the thing in action; implement the game's core mechanism, at least partly; start writing from the climax of the story instead of from the beginning; write the key interaction between main characters first. Once you have something concrete, no matter how small, you can more easily get a sense of whether it will work or not.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Being brutally honest</title>
		<link>/blog/2015/10/being-brutally-honest/</link>
		
		<dc:creator><![CDATA[Juhana]]></dc:creator>
		<pubDate>Tue, 06 Oct 2015 23:05:51 +0000</pubDate>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[IFComp]]></category>
		<guid isPermaLink="false">/blog/?p=1294</guid>

					<description><![CDATA[I was writing a comment to The Many Authors of IFComp over at Sibyl Moon Games, but it became so long and slightly tangential that it's better to post a proper article instead. Historically there have been several parser IF writing communities with partially overlapping members. The "main" community, originating from rec.arts.int-fiction newsgroups before largely <a href="/blog/2015/10/being-brutally-honest/" class="more-link">Continue reading <span class="screen-reader-text">Being brutally honest</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>I was writing a comment to <cite><a href="http://www.sibylmoon.com/the-many-authors-of-ifcomp/">The Many Authors of IFComp</a></cite> over at Sibyl Moon Games, but it became so long and slightly tangential that it's better to post a proper article instead.</p>
<hr>
<p>Historically there have been several parser IF writing communities with partially overlapping members. The "main" community, originating from rec.arts.int-fiction newsgroups before largely migrating to the intfiction.org web forum, makes up for the bulk of the high-profile activity and covers the most diverse collection of authoring tools. Smaller communities are usually focused around individual authoring systems (ADRIFT, Quest).</p>
<p>The approach these communities take to providing feedback to authors varies greatly. The main community used to be on the far end of the scale: "brutally honest" would probably describe it best. The community expects and rewards quality, and things that don't work are meticulously brought out in reviews.</p>
<p>On the other side of the scale there are communities that reward effort. No matter how bad the game is, you get cheers and pats on the back just for releasing it. Feedback, if any, is overwhelmingly positive. The community doesn't necessarily even expect that published games would be open for criticism.</p>
<p>The games produced by these two extremes are also very different. Communities that only reward effort produce a lot of games that are almost without exception, to be brutally honest, utter crap. This is because of two main reasons: Firstly, there is no incentive to spend time designing, polishing and testing your game because you'll still get the same reward in positive responses no matter what the quality of the result is. Secondly there is no peer pressure: when no-one expects high-quality games, there's no outside push to aim there.</p>
<p>The brutally honest camp produces less games but they're generally of better quality. There's a sieve that the authors are pushed through: all work undergoes close scrutiny. Authors who can't handle the criticism will drop out, but those who stay are less likely to repeat their mistakes and more likely learn from the feedback and keep improving. The peer expectation of game quality is generally high and the authors aim higher in the first place.</p>
<p>The downside of unchecked criticism is that, from the point of view of an individual author, the feedback can feel unnecessarily harsh. A novice author can easily give up if the feedback is crushing, which is understandable; when you do things as a hobby, you want to have a positive experience or you go do something else.</p>
<p>The challenge is to combine the better parts of the two extremes. How to not punish anyone for producing creative work but at the same time encourage high quality? </p>
<p>The trend is already moving in this direction: some reviewers (including me) <a href="https://emshort.wordpress.com/2015/08/04/if-comp-prizes-and-prep/">post only reviews that are net positive</a> and events like Spring Thing have non-judged categories. This is only a partial solution. Lack of feedback shields authors from negative feedback but also leaves them without means to improve.</p>
<p>It would be great to have some kind of mentoring system where experienced authors could help out newcomers to design and polish their games. The downside is that it's not mass-reproducible: it would require a lot of effort from the mentors and the ratio of newcomers to experts is too high for everyone to get a mentor.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How to make a great IntroComp entry</title>
		<link>/blog/2015/06/how-to-make-a-great-introcomp-entry/</link>
		
		<dc:creator><![CDATA[Juhana]]></dc:creator>
		<pubDate>Thu, 25 Jun 2015 20:47:42 +0000</pubDate>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[IntroComp]]></category>
		<category><![CDATA[Testing]]></category>
		<guid isPermaLink="false">/blog/?p=957</guid>

					<description><![CDATA[It's IntroComp season again! IntroComp is one of the oldest active IF competitions, run yearly since 2002. The idea is to make a short intro that showcases a work-in-progress that will eventually be expanded into a full game. Competition judges are asked to rate the entries based on how much they would want to play <a href="/blog/2015/06/how-to-make-a-great-introcomp-entry/" class="more-link">Continue reading <span class="screen-reader-text">How to make a great IntroComp entry</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p><a href="http://allthingsjacq.com/introcomp/"><img loading="lazy" src="/blog/blogcontent/uploads/2015/06/ga-my4Gg.jpg" alt="IntroComp 2015 logo" width="256" height="256" class="alignright size-full wp-image-964" srcset="/blog/blogcontent/uploads/2015/06/ga-my4Gg.jpg 256w, /blog/blogcontent/uploads/2015/06/ga-my4Gg-150x150.jpg 150w" sizes="(max-width: 256px) 100vw, 256px" /></a> It's <a href="http://allthingsjacq.com/introcomp/">IntroComp</a> season again! IntroComp is one of the oldest active IF competitions, run yearly since 2002. The idea is to make a short intro that showcases a work-in-progress that will eventually be expanded into a full game. Competition judges are asked to rate the entries based on how much they would want to play the full version.</p>
<p>Here are some tips for competition participants on how to make the best of their entry.</p>
<h3 id="plan-further">Plan further than the intro</h3>
<p>This is perhaps the most common sin of IntroComp entries: the author has not designed the game beyond the entry itself, which makes it hard to continue building the full version.</p>
<p>It would be wise to have the story and gameplay thought out at least twice as far as the actual intro, preferably all the way to the end, at least conceptually. This includes visioning what happens immediately after the intro ends and what is the overall story structure: the intro is the beginning but what happens in the middle and how the full story is resolved in the end. Otherwise there's a good change that the intro ends in a creative dead end with no easy way forward.</p>
<p>It's not hard to tell if an author has planned the story beyond the intro. Intros with short term design are often tightly self-contained and convey no feeling of there being something else beyond what you see. When the world and the general plot is well thought out, it's almost automatically visible in the resulting work. (See also a <a href="/blog/2010/08/introcomp-2010-mini-reviews/">previous article</a> discussing the subject.)</p>
<h3 id="start-relevant">Start with the relevant story</h3>
<p>Sometimes the word "intro" is taken too literally and the entry ends before the actual story even gets to start.</p>
<p>A fictitious example: Your story is a retelling of the <a href="https://en.wikipedia.org/wiki/Labours_of_Hercules">12 labors of Hercules</a>. A good intro would contain the first labor to its completion; it would give a good indication of how the gameplay works and judges could easily imagine what the rest of the story would look like in its full version.</p>
<p>A bad intro would be about Hercules packing his backpack and a puzzle about finding a map for the location of the Nemean lion, and it would end just after reaching the entrance to the lion's cave. It would tell very little about what the game is actually like.</p>
<p>So cut off everything that's inconsequential to the big picture and start right from the action.</p>
<h3 id="proper-ending">Make a proper ending...</h3>
<p>Even though we're talking about introductions, it's still important that the entry reaches some kind of conclusion of its own. Sometimes that's easy to do when the story can be neatly divided into independent scenes (like in the 12 labors of Hercules example), but sometimes you'll have to work harder to find a good place to end the intro.</p>
<p>As a rough generalization you'd have one or two short term goals that are resolved during the intro while the overall goal is both left unresolved and made clear to the player.</p>
<h3 id="untied-loose-ends">...but leave some loose ends untied</h3>
<p>This comes back to the "plan ahead" advice. Even though it's good to resolve a short term goal or two, there should be some kind of hook that makes the player want to continue playing the finished work.</p>
<p>A cliffhanger is a traditional way to end the intro, but it shouldn't be the only hook. As said before, the intro's purpose is to build expectations for the full version. It shouldn't be self-contained: leave room for future expansion. A couple of locked doors, interesting inventory items with reuse potential, references to NPCs not yet encountered. Anything that makes the player's imagination run wild.</p>
<p>Remember though that it's important that you as the author know where the loose ends are going – you can't just drop a locked door somewhere without knowing where it leads. Anything that serves a purpose usually comes across as such in the writing, whereas pointless scenery is often easy to spot.</p>
<h3 id="betatest-intro">Have the entry betatested</h3>
<p>While technical issues are not explicitly in the judging criteria, bugs and spelling mistakes will reflect poorly on the entry. After all nobody wants to play a buggy game and the intro is taken as an indication of the finished entry's quality.</p>
<p>You don't need a whole army of testers, one or two should be sufficient for a short intro (although more is always better.) It's easier to find testers for IntroComp entries than for many other games because potential testers know that the game should be short and therefore doesn't require a huge time commitment. Testers can be recruited from the <a href="http://if.game-testing.org/">beta testing site</a> or from the <a href="http://www.intfiction.org/forum/viewforum.php?f=19">intfiction.org forum</a>, among other places.</p>
<p>Remember that choice-based entries need testing too for things such as spelling, tone, and pacing.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Players don&#039;t really read</title>
		<link>/blog/2010/07/players-dont-really-read/</link>
					<comments>/blog/2010/07/players-dont-really-read/#comments</comments>
		
		<dc:creator><![CDATA[Juhana]]></dc:creator>
		<pubDate>Thu, 08 Jul 2010 20:42:31 +0000</pubDate>
				<category><![CDATA[Design]]></category>
		<guid isPermaLink="false">/blog/?p=349</guid>

					<description><![CDATA[I've had to learn this lesson several times. Here's a couple of examples.]]></description>
										<content:encoded><![CDATA[<p>I've had to learn this lesson several times. Here's a couple of examples.<br />
<span id="more-349"></span><br />
In <a href="http://nitku.net/if/escapade">Escapade!</a> there's no limit to how many small items you can carry, but if you take a large item you automatically drop any other things you have to make room. In the initial design stages this mechanism was needed for a puzzle to work, but the puzzle was later removed. Since it's a one-room game and the game implicitly picks up any items before you use them and it lists everything on the floor when you take inventory, there was no need to remove the mechanism that was already implemented, right?</p>
<p>Wrong. Players would play for some while, then LOOK and go "Didn't I pick that up already?" or INVENTORY and "* BUG: I never dropped those items". They hadn't noticed or didn't remember anymore that the game had said "(first dropping X, Y and Z to make room)" when they had picked up something big earlier.</p>
<div id="EscapadeIntro" class="post">
<p>Another in the same vein: One of the puzzles is <a href="#" onclick="document.getElementById('EscapadeSpoiler').style.display = 'block'; document.getElementById('EscapadeIntro').style.display = 'none';return false;"><em>&lt;click to show spoiler&gt;</em></a></p>
</div>
<div id="EscapadeSpoiler" style="display:none" class="post">
<p>Another in the same vein: One of the puzzles is to find out that there's a hole that you can pick up and use elsewhere. I thought it'd be really clever to crack a little joke when the player typed TAKE ALL:</p>
<div class="transcript">
<div class="transcript-command">&gt;TAKE ALL</div>
<p>Item: Taken.<br />
Thing: Taken.<br />
Toilet hole: Taken. Wait, what?
</div>
<p>You guessed it: nobody noticed. Not only did they not notice the joke, they didn't even register that they had picked up the hole! They would later take a look at their inventory and be totally confused to find it there.</p></div>
<div id="YomommaIntro"  class="post">
<p>Similarly in <a href="http://nitku.net/if/yomomma">Yo Momma</a> there's a puzzle that involves <a href="#" onclick="document.getElementById('YomommaSpoiler').style.display = 'block'; document.getElementById('YomommaIntro').style.display = 'none';return false;"><em>&lt;click to show spoiler&gt;</em></a></p>
</div>
<div id="YomommaSpoiler" style="display:none"  class="post">
<p>
Similarly in <a href="http://nitku.net/if/yomomma">Yo Momma</a> there's a puzzle that involves finding a source of light. Personally I thought of this as a real non-puzzle: there's only 9 rooms and one of them's description is pretty much nothing but what you need:</p>
<div class="transcript">
<div class="transcript-roomname">Dark corner (SE corner)</div>
<div>The sharp spotlights in this corner of the club create dark and gloomy shadows around the tables.</div>
</div>
<p>Imagine my surprise when almost without exception the testers found it was one of the biggest stumbling blocks in the game. This was the puzzle that forced many to go for the walkthrough for the first time. Even the hive mind of <a href="http://www.allthingsjacq.com/intfic_clubfloyd_20100102.html">ClubFloyd</a> was stuck with this for a long time.</div>
<p>Lessons learned:</p>
<ul>
<li>Don't put relevant information to places where the players don't expect to find information. Players don't expect command clarifications to contain anything other than notifications of implicit actions, and they expect TAKE ALL to just list items and "taken", so they don't pay them any more attention than that.</li>
<li>Don't expect the players to read room descriptions anymore after the first time. If a room's description changes during the game and that change contains important information, make sure the players know they should re-read the description or convey the information to them also in some other way.</li>
<li>Don't expect the players to remember what they have read after a few turns.</li>
</ul>
<p>It'd be interesting to hook a couple of players with different levels of playing experience into an eye tracker and study what parts they tend to skip or skim when playing.</p>
]]></content:encoded>
					
					<wfw:commentRss>/blog/2010/07/players-dont-really-read/feed/</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
			</item>
		<item>
		<title>The IF Trainer project</title>
		<link>/blog/2010/06/the-if-trainer-project/</link>
					<comments>/blog/2010/06/the-if-trainer-project/#comments</comments>
		
		<dc:creator><![CDATA[Juhana]]></dc:creator>
		<pubDate>Mon, 07 Jun 2010 18:56:45 +0000</pubDate>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[WIP]]></category>
		<guid isPermaLink="false">/blog/?p=308</guid>

					<description><![CDATA[As you might have heard from elsewhere, I've been asked by the author of In the Company of Grues blog to design and code a game that would be suitable to teach newcomers how to play IF. This is a pretty sweet deal because we're having the entire development process completely transparent. The development wiki <a href="/blog/2010/06/the-if-trainer-project/" class="more-link">Continue reading <span class="screen-reader-text">The IF Trainer project</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>As you might have heard from elsewhere, I've been asked by the author of <a href="http://inthecompanyofgrues.com/">In the Company of Grues blog</a> to design and code a game that would be suitable to teach newcomers how to play IF. This is a pretty sweet deal because we're having the entire development process completely transparent. The development wiki is at <a href="http://inthecompanyofgrues.com/iftrainer">inthecompanyofgrues.com/iftrainer</a> where you can see how the game is coming along and <a href="http://www.inthecompanyofgrues.com/iftrainer/index.php?title=Community">leave your own comments</a>. </p>
<p>We're aiming to release at the beginning of September, in time for <a href="http://paxsite.com/">PAX Prime</a> and before <a href="http://ifcomp.org/">IFcomp</a> starts to avoid being overshadowed.</p>
<p><span id="more-308"></span></p>
<p>For my part the project progresses roughly according to following plan:</p>
<ol>
<li>Sketching the <strong>general theme</strong>, <strong>plot structure</strong> and <strong>characters</strong>.</li>
<li>Writing more accurate <strong>character bios</strong>, rough but complete <strong>plot</strong> from start to finish and details of the fictional <strong>world</strong> where the game takes place.</li>
<li><strong>Plot map</strong>, similar to the <a href="/blog/2010/03/designing-the-puzzles-of-escapade/">puzzle map used in Escapade!</a> (although the game is essentially linear so it's just an overview of puzzles and plot events.)</li>
<li><strong>Mock transcript</strong> of a complete playthrough of the game. When we start coding we'll use the mock transcript as a model with which to craft the game.</li>
<li><strong>Alpha testing</strong> where other people read through the mock transcript and other design documents and offer their opinions. The purpose is to find large-scale problems at this point (changes to plot or puzzles, map structure, character voices) that can be fixed <em>before</em> they are coded. When a project reaches beta-testing stage it's usually too late to do anything other than relatively minor changes to the game structure.</li>
<li><strong>Coding the game</strong>. Unlike <a href="/blog/2010/05/the-tads-fatigue/">previously announced</a>, this will be done in Inform 7 for two reasons: the main reason is that you can't play TADS games online yet, which is a major factor if you want the barrier to entry to be as low as possible. The other reason is that I'm more familiar with I7 so I don't have to spend the relatively short implementation time learning the system. I'll set up a project at <a href="http://code.google.com/">Google Code</a> where anyone can follow how the coding progresses and contribute to the issue tracker.</li>
<li><strong>Beta testing</strong>. This is the phase where bugs, typos and minor design problems are ironed out.</li>
<li><strong>Release</strong> at the beginning of September if everything goes as planned.</li>
</ol>
<p>Right now I've just started with #4. The schedule is such that approximately 1/3 of the time is used for preparations, 1/3 for coding and the rest 1/3 for testing. This seems like a reasonable divide, especially if the thorough planning speeds up the coding phase.</p>
<p>If you have any ideas regarding the project you can leave your comments here, <a href="http://www.inthecompanyofgrues.com/iftrainer/index.php?title=Community">on the wiki</a>, or by e-mail (juhana.if @ this blog's address.) We'll be needing people during alpha and beta testing so keep that in mind if you have extra time later this month and during August.</p>
]]></content:encoded>
					
					<wfw:commentRss>/blog/2010/06/the-if-trainer-project/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Designing the puzzles of Escapade!</title>
		<link>/blog/2010/03/designing-the-puzzles-of-escapade/</link>
					<comments>/blog/2010/03/designing-the-puzzles-of-escapade/#comments</comments>
		
		<dc:creator><![CDATA[Juhana]]></dc:creator>
		<pubDate>Wed, 10 Mar 2010 19:07:14 +0000</pubDate>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Puzzles]]></category>
		<guid isPermaLink="false">/blog/?p=250</guid>

					<description><![CDATA[An article about designing the puzzles of the 2008 game Escapade!, including the puzzle design map used in the process and discussion about how to create and use a similar map to design interactive fiction games.]]></description>
										<content:encoded><![CDATA[<p><em>(Please note: the following article discusses the game Escapade! in some depth, so it will contain spoilers.)</em></p>
<p>I'm not much of a puzzle enthusiast myself. The problem with puzzles is that they tend to come in the way of a good story. Now, to contradict myself completely, so far I have released mainly puzzle games myself. With <em><a href="http://nitku.net/if/escapade/">Escapade!</a></em> the purpose was to make a puzzle game I myself would enjoy as a player.</p>
<p>In <em>Escapade!</em> your goal is to escape a jail cell. The twist is that there are many ways of escaping, but after all but one of the escapes (the final puzzle) you are caught and returned to the cell. At the end of 2008 the game was submitted to the <a href="http://www.avventuretestuali.com/orgc/orgc2008_eng">One Room Game Competition 2008</a> where it took the second place.<br />
<span id="more-250"></span></p>
<h3>Design goals</h3>
<p>The number one problem for me when I play puzzle IF is that when I get stuck on a puzzle I don't have the patience to just stop and think about it or start hammering it until I find the answer. I would rather have several puzzles in front of me so that I can go work on another when I draw a blank on one. </p>
<p>The design goal here was just that -- to have more than one puzzle available for the player to work on at all times. (Until they are down to the last one, of course.) In <em>Escapade!</em> there are 11 ways to escape the jail cell, plus the initial puzzle of lighting the room, making a total of 12 (main) puzzles. As is the usual case, each puzzle requires taking some actions in sequence to solve it. Some puzzles require other puzzles to be solved first so that some precondition is met (usually that some item becomes available).</p>
<p>While I wanted multiple simultaneous puzzles, I didn't just want to throw all the puzzles to the player at once, so some of them had to become available gradually as the old ones were solved. Enter H.R., the sarcastic little black monster with acidic spit and a bottomless sack with stuff he's eager to trade. This was an extremely easy way to control what items the player was given and when. After an item was used to solve a puzzle, the player could trade it in for something else.</p>
<h3>The puzzle structure map</h3>
<p>After coming up with a couple of puzzles I had to find a way to write them down and not just keep everything in my head. Drawing some inspiration from Emily Short's <a href="http://www.inform-fiction.org/I7Downloads/Examples/bronze/Overview.html">Making of Bronze article</a> I made this mind map of the puzzles and the game states.</p>
<div id="attachment_251" style="width: 510px" class="wp-caption aligncenter"><a href="/blog/blogcontent/uploads/2010/03/Escapade_puzzle_structure.png"><img aria-describedby="caption-attachment-251" loading="lazy" src="/blog/blogcontent/uploads/2010/03/Escapade_puzzle_structure-e1268230268983.png" alt="A mind map that shows the puzzles, their solutions, and possible game states, interconnected with arrows." title="Escapade puzzle structure" width="500" height="210" class="size-full wp-image-251" /></a><p id="caption-attachment-251" class="wp-caption-text">The puzzle structure map for Escapade! (partial, click for full image)</p></div>
<p>(Those who have played the game before might notice that this doesn't represent the game's actual structure 100 % accurately. There were some minor changes made during the end stages of development when the map wasn't of as much use, so I just didn't bother to update it.)</p>
<p>The map was created with <a href="http://cmap.ihmc.us/">CmapTools</a>, a free multi-platform mind mapping software.</p>
<p>In this map</p>
<ul>
<li>yellow nodes are escapes, the final solutions to puzzles when the player scores a point.</li>
<li>green nodes are changes in the world state. </li>
<li>gray nodes are player actions. </li>
<li>nodes with no background (just one in this map) are external conditions: timers, plot devices, dei ex machinis, or compex conditions that can't be represented otherwise.</li>
</ul>
<p>There are arrows leading to and from each node. If an arrow leads from a state to an action, it means that the state makes the action possible: when the light is green (state) you can cross the street (action). These are if-and-only-if conditions: in other words the action requires the world state that is pointing to it. Unless all the state requirements are met, the action fails or does not lead to anywhere meaningful in regards of the world state. If an arrow is pointing from an action to a state, the state change is a result from that action.</p>
<p>There are several benefits to this kind of puzzle map and I used it all the way though the implementation up until the beta testing phase:</p>
<p><strong>1)</strong> the map makes sure that there aren't any loops in the puzzle solutions. A loop means you have to do A before you can do B, and you have to do B before you can do A. This is of course impossible which makes the game inevitably unsolvable. An example would be a safe that can't be opened without a key, but the key is inside the safe.</p>
<p><img loading="lazy" src="/blog/blogcontent/uploads/2010/03/loop.png" alt="A mind map with three nodes: 'unlock the safe with the key' points at 'safe is unlocked', which points at 'find the key', which points back at the first node, creating a loop." title="A loop in the puzzle structure" width="253" height="181" class="aligncenter size-full wp-image-252" srcset="/blog/blogcontent/uploads/2010/03/loop.png 253w, /blog/blogcontent/uploads/2010/03/loop-150x107.png 150w" sizes="(max-width: 253px) 100vw, 253px" /></p>
<p>While it might seem like nobody could make such a silly mistake, the image of the whole structure becomes more and more blurry when the design's complexity increases. The loop might consist of fifty nodes in complex patterns and a mistake might be left unnoticed. The developer no doubt notices that the game doesn't work at latest when they have implemented the puzzle, but in the worst case then they will have to re-design the puzzle and discard the unnecessary work they have made in implementing the nonfunctioning puzzle. This is of course less of a concern in a game with more linear plot and puzzles. </p>
<p>How do you know if there's a loop in the design? The rule is that if you can arrange the map so that every arrow points to the same direction, there are no loops. If you use CmapTools, there's a function (ctrl-L or command-L) to auto-arrange the map. The result is a nice and (usually) tidy picture with all arrows pointing down or to the right. If any of the arrows point to the wrong direction, there's a mistake in the design.</p>
<p><strong>2)</strong> you have a structure by which to program the game. You can track your progress on the map (I kept a printed copy where I checked off with a pen when a node was programmed). Even more importantly, when you feel like you need to add or change or remove a puzzle you can try the change on the map and see how it affects the rest of the structure.</p>
<p><strong>3)</strong> You can control the pacing and the amount of "knots" in the structure. A knot is what I call a puzzle that has to be solved before you can continue with any other puzzle in the game. A knot looks like this in the map (the yellow node):</p>
<p><img loading="lazy" src="/blog/blogcontent/uploads/2010/03/knot.png" alt="A mind map with blank nodes, flowing from left to right. At one point all previous nodes point at a single node that's colored in yellow. From this single node go arrows to the next set of nodes, i.e. everything passes through the yellow node, creating a knot." title="A knot in the design" width="451" height="251" class="aligncenter size-full wp-image-253" srcset="/blog/blogcontent/uploads/2010/03/knot.png 451w, /blog/blogcontent/uploads/2010/03/knot-150x83.png 150w, /blog/blogcontent/uploads/2010/03/knot-300x166.png 300w" sizes="(max-width: 451px) 100vw, 451px" /></p>
<p>I had one knot in the game, the initial puzzle. It was there to give a breather between the intro and the 'actual' game and to prevent information overload from overwhelming the player.</p>
<p>My goal was to give the player about three puzzles to solve at any given point, so I made sure the map stayed relatively evenly thick at all points. In different kind of projects you might want the structure to have more variation in this regard. </p>
<p>Consider the following example: in a scifi game the player must find parts to fix their shuttle and escape the moon base. The next scene takes place in a space station with no access back to the moon base. Fixing the shuttle should be a knot because otherwise something in the moon base is a requirement for a puzzle in the space station, and if the player didn't do the required action they've made the game unwinnable. (or you must make sure the required action is something the player can't avoid doing.) Moving from an area to another without the possibility to go back should thus show as a knot in the map. </p>
<p>If you don't mind making a <a href="http://www.plover.net/~davidw/crueltyscale.html">cruel</a> game this is all irrelevant of course. Just let the players know that's the case.</p>
<h3>Some reflections on the end result</h3>
<p>Overall I'm satisfied with the puzzle structure the game has. Some of the puzzles are not as successfull as others, although I don't consider any of them a complete flop. Apparently some players seemed to think so as well, considering that the game was nominated for the best puzzles and the best individual puzzle <a href="http://xyzzyawards.org/">XYZZYs</a>.</p>
<p>The game has quite a few pop culture references, but at the beginning it was supposed to have <em>a lot</em> more. Basically it started out as a patchwork of things loaned from other sources, but when the idea refined the characters and items started to form their own identities. (H.R. started out as the Alien from <a href="http://www.imdb.com/title/tt0078748/">the movie</a>; the Screaming Communists were at first Communist Nazis, borrowed from the Simpsons; Chell from <a href="http://en.wikipedia.org/wiki/Portal_%28video_game%29">Portal</a> was scheduled to make a cameo and so on.)</p>
<p>At first the idea was to have the "real" escape puzzles and some "bonus" escapes that would be very hard to find unless you knew some obscure reference. For example, you could say XYZZY and you would be teleported in front of the White House. The player character's name, Scotty, is a remnant of a vague idea of having the player "beam up"... This idea was, fortunately, dropped mostly because I couldn't think of any more bonus escapes besides those.</p>
<p>Personally I dislike the flux capasitor puzzle. Some players have specifically mentioned that they liked it, but I think it's too much of a direct steal... uh, loan from the <a href="http://en.wikipedia.org/wiki/Back_to_the_Future">BTTF movies</a>. I'm most content with the catapult puzzle in which you have to repair the catapult and then find something to use as ammunition. Too bad it appeared late in the game so most players probably didn't get that far unless they went back and went for the full score (the final puzzle becomes available after five points (out of the maximum score of 11) so it is possible to win the game before all puzzles are solved.)</p>
<p>The most enlightening part of the whole project was probably the realization of how useful the puzzle map was. I consulted it very often during the implementation because the non-linearity made it impossible to remember such a (relatively) complex structure. I successfully used the same technique with the <a href="http://nitku.net/if/yomomma">next game</a> and I have no reason not to use it again in future projects.</p>
]]></content:encoded>
					
					<wfw:commentRss>/blog/2010/03/designing-the-puzzles-of-escapade/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Five easy improvements to your game</title>
		<link>/blog/2009/12/five-easy-improvements-to-your-game/</link>
					<comments>/blog/2009/12/five-easy-improvements-to-your-game/#comments</comments>
		
		<dc:creator><![CDATA[Juhana]]></dc:creator>
		<pubDate>Thu, 10 Dec 2009 11:48:19 +0000</pubDate>
				<category><![CDATA[Design]]></category>
		<guid isPermaLink="false">/blog/?p=205</guid>

					<description><![CDATA[Here's a list of five easy things to do to give that final polish to your IF game.  These are all things that many players come to expect from a well-made game and experience has shown that the lack of these basic things suggests a lack of overall quality as well. ]]></description>
										<content:encoded><![CDATA[<p>Here's a list of five easy things to do to give that final polish to your IF game.  These are all things that many players come to expect from a well-made game and experience has shown that a lack of these basic things suggests a lack of overall quality as well. </p>
<p><span id="more-205"></span></p>
<h3>1. Proofread the intro</h3>
<p>Naturally you should proofread and have others proofread the entire game, but pay special attention to the intro text and the room description of the first room. Go through the text twice, then twice more, then with proofreading software, then let someone else proofread it. With every word you're not 100 % sure how to spell it, check it with a dictionary.</p>
<p>Players are willing to forgive occasional typos and stray punctuation the further in the game they are, but when they see one <em>right as the game starts</em> they go "oh, it's one of <em>those</em> games again" and it takes a lot of effort to win back their confidence.</p>
<h3>2. Add a description of the player character</h3>
<p>There's nothing that says low quality louder than "As good-looking as ever" or "You look the same as usual." Even if you have designed your player character to be <a href="http://www.ifwiki.org/wiki/AFGNCAAP">AFGNCAAP</a> you should have something to say about the main character of your story.</p>
<p>You don't have to spend hours fine-tuning the player character's description. Anything is better than the library default, even if it's just "You're ok." </p>
<p>At this point I would also like to add that having a witty twist of the default message, like "Not as good-looking as ever" or similar, has been done about ten million times already and is not witty anymore. The same goes with going for irony or trying to emphasize the anonymous nature of the player character by leaving the default message as it is on purpose -- it just won't work, and players won't get it.</p>
<h3>3. Add a response to ABOUT</h3>
<p>The players often want to know more about the game and its author. ABOUT could contain a summary of available in-game instructions and hints, credits, mention about other included files and feelies, game's home page and the author's email address. Making INFO and HELP synonyms to ABOUT is also a good idea (unless HELP is used to invoke a hint system.)</p>
<h3>4. Have VERBOSE on by default</h3>
<p>VERBOSE means that all room descriptions are fully shown every time the player enters a room, even when they have seen the description before. Brief mode in contrast shows the descriptions only for the first time the player enters the room and after that only when the player types LOOK.</p>
<p>This is possibly the controversial one of this list, but most players I know of turn long room descriptions on as soon as they see that they aren't already. I don't know of anyone who would switch to brief descriptions if verbose is enabled by default.</p>
<p><em><strong>Edit</strong>: The new Inform 7 release (6E59) has made VERBOSE mode the default and removed scenery from GET ALL, so thankfully future I7 games won't suffer from those faults.</em></p>
<p><del datetime="2010-06-21T12:22:28+00:00">The game can be set to verbose mode in Inform 7 with this line:</del></p>
<div class="inform">
      <del datetime="2010-06-21T12:22:28+00:00">Use full-length room descriptions.</del>
</div>
<p><del datetime="2010-06-21T12:22:28+00:00">TADS has verbose mode on by default. I don't know why Inform insists on preferring brief room descriptions; possibly because of historical reasons.</del></p>
<h3>5. Remove scenery from GET ALL</h3>
<p>In Inform when the player types GET ALL (or any other verb that supports multiple nouns) the game interprets it as an attempt to pick up absolutely everything in the location, including scenery, people and things fixed in place. It's a well known trick to type GET ALL to see all the objects that are implemented in the room and force the game to reveal its secrets.</p>
<p><del datetime="2010-06-21T12:22:28+00:00">These lines remove abovementioned things from GET ALL in Inform 7:</del> (fixed in 6E59)</p>
<div class="inform"><del datetime="2010-06-21T12:22:28+00:00"><br />
	Rule for deciding whether all includes scenery: it does not.<br />
	Rule for deciding whether all includes people: it does not.<br />
	Rule for deciding whether all includes fixed in place things: it does not. <span class="inform-comment">[this actually covers the previous rules as well]</span><br />
</del></div>
<p>(This is another thing that TADS's library handles better by default.)</p>
]]></content:encoded>
					
					<wfw:commentRss>/blog/2009/12/five-easy-improvements-to-your-game/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
	</channel>
</rss>
