<?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>Twofold Secret</title>
	<atom:link href="http://twofoldsecret.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://twofoldsecret.com</link>
	<description>We make games that we love</description>
	<lastBuildDate>Fri, 02 Mar 2012 23:12:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>The Buddy System</title>
		<link>http://twofoldsecret.com/2012/03/02/the-buddy-system/</link>
		<comments>http://twofoldsecret.com/2012/03/02/the-buddy-system/#comments</comments>
		<pubDate>Fri, 02 Mar 2012 23:12:33 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://twofoldsecret.com/?p=280</guid>
		<description><![CDATA[We&#8217;ve been experimenting a lot with our creative process. For a few months after we released Alight, Joel and I both worked on separate projects in some sort of creative version of communism. From each according to their ability, to each according to their need, right? Joel would do graphics for both projects, I&#8217;d write code for both, but we&#8217;d work separately on the design and story of each one. It was an interesting experiment&#8230; <a href="http://twofoldsecret.com/2012/03/02/the-buddy-system/">More</a>]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve been experimenting a lot with our creative process. For a few months after we released <em>Alight</em>, Joel and I both worked on separate projects in some sort of creative version of communism. From each according to their ability, to each according to their need, right? Joel would do graphics for both projects, I&#8217;d write code for both, but we&#8217;d work separately on the design and story of each one. It was an interesting experiment but not a successful one. We divided our talents more than we combined them and neither of us was that in love with the other&#8217;s idea, so instead of working hard on one project, we half-heartedly worked on two.</p>
<p>Now we&#8217;re working on a single concept, but we&#8217;re still tweaking our workflow. Although Joel and I live only about 25 minutes apart from each other, in the past we mainly worked together via IM. It was one of the laziest possible ways to collaborate, and though it worked fine for our previous projects, it seemed silly to use long-distance collaborative methods when we had a simple, powerful one easily available: just hang out.</p>
<p>We&#8217;ve had a standing weekly game-making date night since the new year, and I can say that it&#8217;s been an unqualified success for me. I&#8217;m having more fun working on this game, it&#8217;s inspired me to work harder in general, and I&#8217;ve got more structure when I code on my own. On random weekday nights, instead of throwing random features in based on what I think is needed or (more realistically) what&#8217;s interesting to code, I&#8217;m thinking about what I can work on that will make our in-person sessions productive. When we&#8217;re together, it feels like we&#8217;re playing creative leapfrog. I&#8217;ll add a feature, Joel fleshes it out with graphics and sounds. Joel builds out a level and needs a locked door, so I add that in. Synergy has become a buzzword but it&#8217;s the best word I can think for it.</p>
<p>(Joel, I am also finding out, mixes a mean gin and tonic.)</p>
<p>I&#8217;ve also been thinking a lot about how to structure our code. Lua imposes a lot less structure on your code than the Java-inspired ActionScript ever did. At first this is scary, as it&#8217;s easy to shoot yourself in the foot. My constant, annoying refrain when we&#8217;ve been working together has been <em>you forgot a <a href="http://forums.gaspowered.com/viewtopic.php?f=19&amp;t=9788">comma</a></em>. But once you realize it&#8217;s not so bad &#8212; at least, no worse than JavaScript &#8212; there are some interesting possibilities.</p>
<p>I&#8217;ve been thinking about ways I can make Joel more productive as a designer, e.g. how to make it easier for an idea in his head to become an actual thing he can test out. I think the most succinct way to explain how I&#8217;ve been doing it is, I&#8217;ve been separating configuration from mechanism.</p>
<p>To give you an example, we have bullets in our game. (Quelle surprise, right?) Joel as a designer isn&#8217;t particularly concerned with how a bullet aimed at a particular position onscreen decides <a href="http://sinepost.wordpress.com/2012/02/16/theyve-got-atan-you-want-atan2/">how to set its velocity components</a>. He is, however, very interested in the sprite each type of bullet uses, and how much damage it does to something it strikes. I&#8217;ve split up the definition of our Bullet class into two files. One is the traditional class definition with methods that handle aiming, playing the appropriate sound when it hits a wall, and so on. The second is full of statements like:</p>
<p><code>Weapons.basicBlaster.bullet = { width = 16, height = 16, damage = 10, speed = 800 }</code></p>
<p>It&#8217;s code, but only just barely. It&#8217;s closer to <em>shudder</em> XML in that it describes data only. So what? you may ask. This could easily be done with constants inside the class definition. But there are two advantages here:</p>
<ul>
<li>All of the data that we could consider user-accessible sits in a separate file &#8212; there&#8217;s no way to mess up the core behavior of the class by accident, nor does Joel have to understand a line of my code.</li>
<li>More importantly, it&#8217;s considerably easier to add new content. Imagine we have a Turret sprite set up in <a href="http://dambots.com/dame-editor/">DAME</a> that has a property named bulletType. To make a turret shoot a wholly new type of bullet, all Joel has to do is change the bulletType to a new name, then add a corresponding entry in the configuration file. I don&#8217;t have to write any code myself to make it happen.</li>
</ul>
<p>We&#8217;ve never separated mechanism and configuration this much previously; each time we needed to load some data from text file, I had to write a custom importer. It&#8217;s not difficult, but it is relatively time-consuming, especially because the easiest format to parse is <abbr title="comma-separated values">CSV</abbr>, but CSVs are brittle. Imagine that you decide a CSV list of enemies should have its lines formatted in this order:</p>
<ol>
<li>X position</li>
<li>Y position</li>
<li>Enemy type</li>
</ol>
<p>It&#8217;s fine until you realize you need to add a z-index so that bird enemies appear above snails. Either you append the new bit of data at the end of the line, which gets awkward as you keep amending the format, or you rewrite the importer to do the right thing. Either way, you&#8217;re spending time working on things that are not actively making your game better.</p>
<p>I realize this approach is adding complexity. It&#8217;s dangerous to spread the definition of a class out among several files, since you don&#8217;t want to play hide-and-seek in your code. But I think putting <code>require 'settings.weapons'</code> at the bottom of a source file is clear enough. The closest analogue I can think for this separation is the classic <a href="http://en.wikipedia.org/wiki/Header_file">.c/.h division</a> the C language makes.</p>
<p>It remains to be seen how effective this will turn out to be. We only started doing this last week, but it feels intuitively to me that we are going in the right direction. Ironically, the more independent we can make ourselves, the more productive I think we&#8217;ll be.</p>
]]></content:encoded>
			<wfw:commentRss>http://twofoldsecret.com/2012/03/02/the-buddy-system/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Mene, Mene, Tekel u-Pharsin (or: why our next game won&#8217;t be in Flash)</title>
		<link>http://twofoldsecret.com/2011/11/17/mene-mene-tekel-u-pharsin-or-why-our-next-game-wont-be-in-flash/</link>
		<comments>http://twofoldsecret.com/2011/11/17/mene-mene-tekel-u-pharsin-or-why-our-next-game-wont-be-in-flash/#comments</comments>
		<pubDate>Fri, 18 Nov 2011 04:16:33 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[ramblings]]></category>

		<guid isPermaLink="false">http://twofoldsecret.com/?p=254</guid>
		<description><![CDATA[&#8211; that being the message the first time anyone ever saw the writing on the wall. You have been weighed and found wanting; your empire will fall. When you&#8217;re God, you&#8217;ve got the freedom to etch your feelings into stone in house of the emperor of Babylon. Billion-dollar international corporations that are feeling a bit itchy about Q4 financial results, on the other hand, have to employ more subtlety. Adobe&#8217;s missives this past week have&#8230; <a href="http://twofoldsecret.com/2011/11/17/mene-mene-tekel-u-pharsin-or-why-our-next-game-wont-be-in-flash/">More</a>]]></description>
			<content:encoded><![CDATA[<p>&#8211; that being the message the first time anyone ever saw the <a href="http://www.biblegateway.com/passage/?search=Daniel+5&amp;version=NIV">writing on the wall</a>. <em>You have been weighed and found wanting; your empire will fall.</em> When you&#8217;re God, you&#8217;ve got the freedom to etch your feelings into stone in house of the emperor of Babylon. Billion-dollar international corporations that are feeling a bit itchy about <a href="http://www.zdnet.com/blog/btl/adobe-cuts-750-jobs-reaffirms-q4-revenue-target/62950">Q4 financial results</a>, on the other hand, have to employ <a href="http://blogs.adobe.com/flashplatform/2011/11/flash-to-focus-on-pc-browsing-and-mobile-apps-adobe-to-more-aggressively-contribute-to-html5.html">more subtlety</a>.</p>
<p>Adobe&#8217;s missives this past week have been fun to interpret in a bread-and-circuses way, as one more blow in the HTML5/Flash slugfest. But once you&#8217;re done glowering or cowering, you end up with the question: what does it mean for me and my work? I think <a href="http://www.photonstorm.com/archives/2568/the-reality-of-developing-web-games-with-flash-html5-and-unity">Richard Davey&#8217;s analysis</a> of the situation Flash game developers find themselves in is spot-on. Very little has changed this week for people who target Kongregate or Newgrounds, and it may not yet change for a good long while. But the crucial point is it <em>will </em>change. And I feel it&#8217;s likely we&#8217;re going to be left out in the cold.</p>
<p>Joel and I are the worst kind of Adobe customers: the kind that don&#8217;t pay them a cent. We use the <a href="http://opensource.adobe.com/wiki/display/flexsdk/Flex+SDK">free Flex SDK</a> to produce our SWFs, not Flash Professional. We write our code in FlashDevelop, not Flash Builder. Heck, we don&#8217;t even use Photoshop. I use <a href="http://www.gimp.org/">the GIMP</a> because I&#8217;m a cheapskate with no art skills, and Joel uses <a href="http://www.humanbalance.net/gale/us/">GraphicsGale</a> because it&#8217;s better suited to pixel art.</p>
<p>To be honest, this is the only reason why we were Flash developers in the first place. Joel has tried to sell me on the idea of using <a href="http://www.yoyogames.com/">Game Maker</a> or <a href="http://www.scirra.com/">Construct</a> (the old version, not the one that outputs to HTML5). I said no because I fundamentally believe that learning a proprietary programming language is a waste of time. The company goes poof and all the work and knowledge you invested your time into goes poof too.</p>
<p>If this were an Old Testament story, by now I would have been struck dead by a bolt of lightning for hypocrisy. ActionScript 3, while based on the open standard ECMAScript, is Adobe&#8217;s baby through and through. But I think I could plea my case down to a debilitating skin disease, because ActionScript 3 has an open spec and a free (with a lowercase F) compiler. At least that was what I told myself so that I could sleep at night.</p>
<p>So we were happy freeloaders until this week. When <a href="http://www.theregister.co.uk/2011/11/15/adobe_donates_flex_sdk_to_open_source/">Adobe announced</a> they were giving the Flex SDK the <a href="http://www.theregister.co.uk/2010/11/24/apache_google_wave/">Google Wave treatment</a>, it was the writing-on-the-wall moment for me. If I were going to guess what will happen next, it will be that Adobe will streamline Flash so that it becomes like Dreamweaver: a WYSIWYG tool that outputs to an open standard. I can see that this would be useful for tons of people, but not me. I never wanted a timeline or a library. I want to plug code and images and sounds into a compiler and get a game.</p>
<p>This week I&#8217;ve been looking at alternatives. My criteria have been:</p>
<ul>
<li>No proprietary languages!</li>
<li>Performance on par with Flash Player or higher. To give you an idea of what this means to me, I wrote a simple benchmark that creates as many sprites as possible that blit a static image onscreen and bounce up and down (using simple <a href="http://www.bukisa.com/articles/214747_creating-a-flash-platform-game-with-flixel-and-flex-jet-pack">Flixel-style physics</a> calculations). On the standalone player on my laptop, I can get about 2,000 simultaneous sprites before the FPS drops below 55. Not bad, Flash!</li>
<li>As cross-platform as possible.</li>
<li>As easy to code for as possible.</li>
</ul>
<h3>HTML5</h3>
<p>The obvious choice since it&#8217;s responsible for the aforementioned writing-on-the-wall. But it&#8217;s not a complete replacement for Flash&#8230; yet. For one, the audio format situation is a classic WWW problem. Every browser supports <a href="http://www.phoboslab.org/log/2011/03/the-state-of-html5-audio">a different set of audio formats</a>. What this means is that every sound you create has to be encoded in both Ogg Vorbis and MP3 format, which is annoying. I know there are command-line tools that you could leash together to automatically generate these formats, but I haven&#8217;t had the time to try to write a .bat script (ugh) to make it work.</p>
<p>The other bigger issue is packaging up the end result. You generally make money with a browser-based game by selling a license to a site and then locking a game to its domain, or by displaying ads in your game. Both methods are easily circumvented in HTML5 right now. Thanks to the mass of unreadable JavaScript code out there, there are tons of tools to help parse obfuscated code. And maybe you&#8217;ve heard of AdBlock?</p>
<p>I&#8217;m hopeful that someone really smart will come up with a way to make the existing publishing model work with HTML5 content &#8212; some way to wrap up all the individual files that go into a game into a single package. But I&#8217;m not sure it&#8217;s possible. Openness was a large part of why the WWW succeeded in the first place. Curious how someone made that text blink? View source&#8211; it&#8217;s right there. Trying to work against it seems similar to teaching a dog to walk on its hind legs: it may work for a little, but you&#8217;re trying to get something to do something it just wasn&#8217;t designed for. More likely, a new publishing model will have to be established. Either way, there&#8217;s room here for smart people to make a ton of money with a good idea.</p>
<p>So in summary, my feeling on HTML5 is similar to Richard Davey&#8217;s. It&#8217;s 80% of the way there and I can envision a day where it will be 100%. But I&#8217;d rather not fight the fight to get it there.</p>
<h3>PyGame, Pyglet</h3>
<p>Both of these are frameworks for Python that bind to existing libraries to do the heavy lifting of graphics rendering and sound output. <a href="http://www.pygame.org/">PyGame</a> uses SDL, which from what I can gather from skimming the Web is venerable but growing a bit long in the tooth. <a href="http://pyglet.org/">Pyglet</a> uses OpenGL directly. Both of them work on Windows, Mac, and Linux.</p>
<p>I preferred Pyglet&#8217;s API a bit more than PyGame&#8217;s, but both seemed reasonable. The showstopper for me was performance&#8211; I could get at most a thousand sprites onscreen before the FPS began to dwindle. Somewhat unbelievably, the performance hog was not drawing that many sprites onscreen, but the logic I wrote to handle the physics:</p>
<blockquote>
<pre>self.x = self.x + self.velocityX * elapsed
self.y = self.y + self.velocityY * elapsed

if (self.x &lt; 0 and self.velocityX &lt; 0) or \
   (self.x &gt; 640 and self.velocityX &gt; 0):
	self.velocityX = self.velocityX * -1

if (self.y &lt; 0 and self.velocityY &lt; 0) or \
   (self.y &gt; 480 and self.velocityY &gt; 0):
	self.velocityY = self.velocityY * -1</pre>
</blockquote>
<p>Not particularly spectacular, but as soon as I commented it out, performance shot up again. It seemed Python itself was the bottleneck. I tried using <a href="http://pypy.org/">PyPy</a> because it purports to improve performance considerably, but I couldn&#8217;t get it to work either on Windows or Mac. In both cases it crashed mysteriously.</p>
<p>So &#8212; perhaps good for games that aren&#8217;t overly ambitious. A thousand sprites is nothing to sneeze at. (The SNES only offered <a href="http://wiki.superfamicom.org/snes/show/Sprites">128</a>.) But I wondered if I could do better.</p>
<h3>C++ and SFML</h3>
<p>I thought perhaps it was time to bite the bullet and start using a Serious Language, and languages don&#8217;t get much more serious than C++. The last time I used C++ was in college, more than a decade ago now. After digging in a bit, it seems less scary to me than I remembered it. From a complete novice&#8217;s point of view, it looks like a lot of effort has been spent so that you never have to touch pointers directly anymore. There are classes in the <a href="http://en.wikipedia.org/wiki/Standard_Template_Library">STL</a> to handle basic data structures like vectors, and classes have been recently added that help manage memory via reference counting. Having spent some time in the past messing around with Objective C and iOS, it was oddly familiar to me, as if it were from an old dream, but I couldn&#8217;t exactly remember.</p>
<p><a href="http://www.sfml-dev.org/">SFML</a> is a cross-platform library that uses OpenGL for graphics and OpenAL for sound. People tout it as a more modern take than SDL, which evidently uses a software renderer for graphics, not a hardware one.</p>
<p>It took me a few tries to get Visual C++ Express 2010 running satisfactorily on my laptop, but it&#8217;s a nice IDE once set up. Likewise it took some time to find tutorials that gave me enough information to be able to write up a benchmark using SFML, but when I did, performance was nice &#8212; about 4,000 sprites possible, twice the number as in Flash.</p>
<p>Heartened, I tried adding some code to handle sprites and layers and promptly slammed into a wall. C++ is still a Serious Language, and though you can pick up a lot by skimming search results, I came to the conclusion that I was going to need to crack the books in order to know what I was really doing. While I was asking around for a good text to get me up to speed, I tried&#8230;</p>
<h3>LÖVE</h3>
<p><strong></strong>I remember looking at this when Andy Baio linked it off waxy.org years ago and thinking, &#8220;So, uh, where are the sprites?&#8221; <a href="http://love2d.org/">LÖVE</a> is not so much an library as it is a runtime. You write a function in <a href="http://www.lua.org/">Lua</a> to draw a single frame &#8212; for example telling to draw images at various spots onscreen &#8212; and LÖVE calls it as appropriate to produce animation. There&#8217;s no compile step, either; you drop a folder of code onto the app to run it. (Though there are apparently ways to package up a standalone app, too.)</p>
<p>I also remember looking into Lua some time ago and thinking, &#8220;So, uh, where are the classes?&#8221; Lua does in fact have classes, but they exist as an implementation detail, not a language construct. On top of this, they are prototype-based, the same way JavaScript ones work. I had been toying with JavaScript&#8217;s prototype mechanism back with my HTML5 experiments, and I actually liked it a lot. It&#8217;s strange if you&#8217;re used to the strict classical approach a language like Java takes, but once you understand it, it&#8217;s powerful.</p>
<p>It&#8217;s also very efficient. The bouncing sprites benchmark hit around 3,500 sprites. I hesitate to draw comparisons between this and my SFML benchmark, because the code is so totally different. But it&#8217;s clear to me that LÖVE is powerful enough to handle whatever we will need it to graphically, and it&#8217;s so much easier to write Lua than C++.</p>
<p>It seems like this is our sweet spot for now. I&#8217;ve been hard at work setting up a basic framework in LÖVE, and I&#8217;ve been mostly successful thus far. The documentation for LÖVE is spotty, but searching <a href="http://love2d.org/forums/">the forums</a> takes up a lot of slack. Lua error messages have been consistently confusing when I make basic syntax errors &#8212; I often type a period when I should be using a colon, or a colon when I should be using an equals sign. You have to type <code>object:method()</code> instead of <code>object.method()</code>, but you still use <code>object.property</code>. Likewise you have to write <code>{ prop = 'value' }</code> in Lua when you&#8217;d write <code>{ prop: 'value' }</code> in JavaScript. But I&#8217;m making fewer errors as I go, at least.</p>
<p>We&#8217;ll see how it goes. It&#8217;s an adventure, but then everything is an adventure.</p>
]]></content:encoded>
			<wfw:commentRss>http://twofoldsecret.com/2011/11/17/mene-mene-tekel-u-pharsin-or-why-our-next-game-wont-be-in-flash/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Artscape 2011, A Survivor&#8217;s Guide</title>
		<link>http://twofoldsecret.com/2011/07/19/artscape-2011-a-survivors-guide/</link>
		<comments>http://twofoldsecret.com/2011/07/19/artscape-2011-a-survivors-guide/#comments</comments>
		<pubDate>Tue, 19 Jul 2011 04:33:30 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[alight]]></category>
		<category><![CDATA[ramblings]]></category>

		<guid isPermaLink="false">http://twofoldsecret.com/?p=233</guid>
		<description><![CDATA[So we exhibited Alight at Gamescape this year, an exhibit at the Baltimore-based Artscape festival. And we survived! It was a fun to show the game off, and great to meet up with other game developers and talk shop. There are several big companies in the Baltimore/DC area, but thus far, it&#8217;s been hard to find other indie devs that are nearby. Go check out some photos from the event if you haven&#8217;t already. It&#8230; <a href="http://twofoldsecret.com/2011/07/19/artscape-2011-a-survivors-guide/">More</a>]]></description>
			<content:encoded><![CDATA[<p>So we exhibited <em>Alight </em>at <a href="http://artscape.org/visual-arts/visual-arts-detail/15">Gamescape</a> this year, an exhibit at the Baltimore-based Artscape festival. And we survived! It was a fun to show the game off, and great to meet up with other game developers and talk shop. There are <a href="http://www.zynga.com/">several</a> <a href="http://bethsoft.com/">big</a> companies in the Baltimore/DC area, but thus far, it&#8217;s been hard to find other indie devs that are nearby. Go check out <a href="http://www.facebook.com/media/set/?set=a.10150319138721346.385782.288464856345&amp;l=70416b6c72">some photos</a> from the event if you haven&#8217;t already.</p>
<p>It was also our first time showing off our work to the public, and while I think we had a pretty good first try, there were some lessons we learned along the way.</p>
<p><strong>Artscape is kid territory. </strong>Maybe it was because the Target Family Experience Tent (seriously, that was what it was called) was right outside our exhibit space, maybe it was the nature of video games, maybe it was because it was a free, family-friendly festival, but a huge portion of traffic to our booth were kids between 8 and 12 years old. Fortunately <em>Alight</em>&#8216;s game mechanics are fairly simple, so most kids could understand the general scenario and could hack the controls. Still, I inwardly quailed a little whenever the kids stopped to read the text &#8212; which a surprisingly high number did &#8212; because, well, <em>Alight </em>has a fairly grown-up sensibility. There&#8217;s no sexiness, but it&#8217;s a bit dark. I kind of wanted to refer them to the Shawn&#8217;s Bits table next to ours, which was demoing <em><a href="http://apps.shawnsbits.com/pondhopper/">Pond Hopper</a></em>, a logic puzzle game with cute, very kid-friendly graphics. Fortunately, though, none of the kids seemed particularly traumatized.</p>
<p>Interestingly, the most common question kids asked was: &#8220;What&#8217;s the goal of this game?&#8221; Adults instead asked, &#8220;What was your inspiration?&#8221;</p>
<p><strong>You need a real demo</strong>. We were showing off a fully playable version of <em>Alight</em>. I assumed people would try a level or two, then get bored or otherwise want to move on. Most grown-ups did, but there was a subset of kids who would happily sit in front of the game for twenty minutes or more. It&#8217;s a vote of confidence in the game, I hope, but I think it discouraged some people who might have tried <em>Alight</em> but saw someone else at the controls. I think even people who enjoyed the game needed a little prod to say, &#8220;Thanks for playing, you&#8217;re all done.&#8221; It&#8217;s just human nature to want to complete things.</p>
<p>The <a href="http://maniacalgames.com/">Maniacal Games</a> guys two tables down were demoing a single level that they told me was designed to take about six minutes, and that seemed like a really smart approach. On Sunday afternoon, I switched the demo to <em><a href="http://twofoldsecret.com/whereweremain/">Where We Remain</a></em> &#8211; Joel&#8217;s idea &#8212; and its quick-play nature seemed to work pretty well, too.</p>
<p><strong>You also need a bajillion giveaways. </strong>We wanted to give something to people with a Web address where they&#8217;d be able to play <em>Alight </em>once it was released, and we needed to do it on the cheap, so I bought some blank business card sheets from an office supply store and tried to print out a simple design. My printer, unfortunately, crapped out in the middle of the process so we had even fewer cards than we wanted. We ran out literally halfway through Artscape and were reduced to pointing out the addresses on the placards we had on our table. Not very cool.</p>
<p>I saw that other exhibitors at Gamescape were giving away glossy postcards, which seemed like the right mix of quality and size. I haven&#8217;t looked into how expensive printing those is, but I&#8217;m a little afeard to find out. As always, we&#8217;re on a $0 budget.</p>
<p><strong>People like big TVs.</strong> I brought my computer monitor to the exhibition space &#8212; it&#8217;s a 21&#8243; one, so fairly big as monitors go. When I got there, though, I noticed several exhibitors had set up flat panel TVs and metaphorically slapped my forehead. I forgot that the flat panel sitting in my living room had a VGA input. As always, people gravitate towards the shiniest objects.</p>
<p><strong>Eat and drink up. </strong>I figured that while I would be tired out by the end of each day, it wouldn&#8217;t be a particularly arduous experience. Gamescape was indoors and air-conditioned, and we had seats at our tables so we could chill out as much as we liked. I did not get off quite so easily. I ate lunch around 11 AM on Friday, then sat at the table until Joel got off work around 6. And though I drank a bunch of water bottles (thanks, Artscape organizers!), I was starting to go a bit spacy towards the end of my shift, and ended up collapsing into an unconscious, barely human pile afterwards. I basically needed to eat the entire contents of my girlfriend&#8217;s kitchen (thanks, kind understanding beautiful girlfriend!) in order to stand on my own two feet again.</p>
<p>I&#8217;m an introvert, so while showing off our game to strangers was a lot of fun, it was really draining. On subsequent days, I brought some Gatorade and munchable Goldfish with me, and it worked out a lot better. I was tired at the end of the day, but not dead on my feet.</p>
<p>The other thing I learned to do was let go. At first I wanted to hand-hold everyone through the game, but it&#8217;s just exhausting to do so. Eventually, I could tell who needed me to give them detailed instructions because they&#8217;re having trouble, and who I could let go for a bit and give myself some downtime.</p>
<p><strong>Lock it down. </strong>The main way to interact with the <em>Alight </em>demo was through a repurposed Xbox controller, so I wasn&#8217;t worried about anyone breaking the equipment. Still, a petulant 12-year-old girl decided she wanted to fiddle with the volume knob on the speakers and annoy everyone, so once she left, I moved the speakers behind the monitor. (To her credit, I suppose, she stopped fiddling as soon as I asked her to.) Someone else decided to use a laptop at another table that was supposed to demo the <a href="http://www.baltimoregamer.com/">Baltimore Gamer</a> web site to check on their Facebook. So, sadly, you have to run a tight ship.</p>
<p><strong>It&#8217;s worth it. </strong>While 99.99% of people who came up to the table were friendly, I only met one person who knew who we were. He came up to the table and asked me very politely if I was part of Twofold Secret. I said yes and introduced myself. I feel a little bad because while I think he said his name was David, I could be completely wrong &#8212; I said hello to so many people. David, or perhaps not-David-at-all, sat down and played, explaining to the woman he was with, &#8220;They did <em>Where We Remain.</em>&#8220; I didn&#8217;t narrate at all as he played and she watched. I wanted, maybe more than anything else that day, for them to enjoy it, to think it was as good and maybe even better than the two games we had done before, the ones that had made them remember us in the first place. This is the kind of experience you can&#8217;t get anywhere but in a venue like Gamescape. This was why I came.</p>
]]></content:encoded>
			<wfw:commentRss>http://twofoldsecret.com/2011/07/19/artscape-2011-a-survivors-guide/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>A little knowledge&#8230;</title>
		<link>http://twofoldsecret.com/2010/11/27/a-little-knowledge/</link>
		<comments>http://twofoldsecret.com/2010/11/27/a-little-knowledge/#comments</comments>
		<pubDate>Sat, 27 Nov 2010 17:27:39 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[ramblings]]></category>

		<guid isPermaLink="false">http://twofoldsecret.com/?p=224</guid>
		<description><![CDATA[Sometimes cliches really are true. When we first started working with Flixel, it was right after I tried writing a Zelda-like game entirely in JavaScript. (I called it Zelda&#8217;s Maze and almost all of the ideas in it showed up in Where We Remain.) The experiment kinda sorta worked. I got OK framerates in Chrome, but Firefox was all over the place and IE didn&#8217;t even support the &#60;canvas&#62; tag back then, so the results&#8230; <a href="http://twofoldsecret.com/2010/11/27/a-little-knowledge/">More</a>]]></description>
			<content:encoded><![CDATA[<p>Sometimes cliches really are true.</p>
<p>When we first started working with Flixel, it was right after I tried writing a Zelda-like game entirely in JavaScript. (I called it <em>Zelda&#8217;s Maze</em> and almost all of the ideas in it showed up in <em><a href="/games/whereweremain/">Where We Remain</a></em>.) The experiment kinda sorta worked. I got OK framerates in Chrome, but Firefox was all over the place and IE didn&#8217;t even support the &lt;canvas&gt; tag back then, so the results were mixed at best. The landscape is a bit different now &#8212; there are projects out there like <a href="http://www.kesiev.com/akihabara/">Akihabara</a> &#8212; but then, it seemed like the clear choice for browser-based game creation was Flixel. (<a href="http://flashpunk.net/">Flashpunk</a> didn&#8217;t exist back then, either!)</p>
<p>Switching to Flixel meant not only learning a new language, ActionScript, but also a new environment, the Flash runtime. ActionScript is basically a stronger-typed JavaScript, so it didn&#8217;t take that long to get comfortable with it. The Flash runtime, though, was a whole different story. Flixel is full-featured enough that you don&#8217;t need to learn anything at all about how the pixels actually get onscreen and the sounds get played &#8212; so we didn&#8217;t worry about those details with <em>Where We Remain</em>. As a result, the game<em> </em>hewed very closely to what was possible in Flixel then. There were a number of things we ended up cutting out because I couldn&#8217;t figure out how to make them work. The shoes everyone hated, for example, were originally going to allow you to either move through the trees on the map or maybe even through the mountain tiles, albeit at a slower speed. But at the time I couldn&#8217;t figure out how to selectively collide the map with the player. Joel was also keen on animating the map, especially for the water, but that was also beyond me.</p>
<p>Looking back on it, though, these limitations were more good than they were bad. They forced us to constrain our design. We couldn&#8217;t drift off into something that would take forever to implement, because we simply couldn&#8217;t do it. Nowadays, the situation is a bit different. With <em><a href="/games/sanctuary-17/">Sanctuary 17</a></em>, I started to peek under Flixel&#8217;s hood in order to implement dynamic lighting, and started working with the actual Flash classes that Flixel manipulates. Although it took me some time to get it working correctly, it was time well-spent. I can&#8217;t see how we could have done <em>Sanctuary </em>without that lighting system. It&#8217;s just an integral part of the game.</p>
<p>With the game we are working on now, I decided to dive head-first into the quote-unquote internals of Flixel, because I wanted to implement a couple things that would at first inspection would be impossible in Flixel. I don&#8217;t want to talk about details too much, but as a hint, look at the <a href="http://flixel.org/docs/org/flixel/FlxGame.html#FlxGame()">constructor of FlxGame</a> for one of the things we wanted to do. I ended up spending some serious time getting to know how Flixel handles graphics and collisions, which are the bread and butter of almost every action game. I learned a lot along the way, saw some ways to do some neat tricks&#8230; and wasted a lot of development time. I was spending a lot more time experimenting with technical gewgaws instead of thinking about what would actually make for a good game.</p>
<p>A couple weeks ago, we sat back and re-examined the original design we came up with for the game. We cut out a lot of things that weren&#8217;t working, and we refocused most of the rest. It also meant cutting a ton of code that simply wasn&#8217;t useful anymore. Kind of tough but <a href="http://www.youtube.com/watch?v=3qmtwa1yZRM">also necessary</a>. I&#8217;m really happy with how things are going now&#8230; we soon will have a prototype version we can start showing people and getting some feedback on the mechanics, as we start to fill out all the content we plan on creating. When you&#8217;re on a good creative path, you can just feel it, I think. And I feel it now.</p>
<p>But there will always be that temptation, I think. To spend a couple weeks if not months trying to do something supercool instead of thinking about design. I think this tension might even be inherent to making computer games, since they&#8217;re such a young medium. Even when you&#8217;re making games out of chunky pixels, you still want something that will grab people&#8217;s attention at first glance and make them go &#8220;woah.&#8221; Compare literature, whose quote-unquote technical innovations in recent times have been writing <a href="http://en.wikipedia.org/wiki/Lipogram">a novel without using the letter E</a> and the crazy typography of <em>House of Leaves. </em>This is not a criticism at all &#8212; I just think as a medium matures, people spend less time on trying to make a crazy leap forward and focus more on the content itself.</p>
<p>(I&#8217;m not sure how movies and this newfangled 3D fits into this theory.)</p>
<p>So to boil this all down into an aphorism of my own: <em>if you&#8217;re spending a lot of time worrying about your framerate, it&#8217;s probably because you have an unfocused design</em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://twofoldsecret.com/2010/11/27/a-little-knowledge/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>A crash course on publishing to Lulu for $0</title>
		<link>http://twofoldsecret.com/2010/08/04/a-crash-course-on-publishing-to-lulu-for-0/</link>
		<comments>http://twofoldsecret.com/2010/08/04/a-crash-course-on-publishing-to-lulu-for-0/#comments</comments>
		<pubDate>Thu, 05 Aug 2010 02:15:04 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[ramblings]]></category>
		<category><![CDATA[sanctuary]]></category>

		<guid isPermaLink="false">http://twofoldsecret.com/?p=219</guid>
		<description><![CDATA[The budget for the Sanctuary 17 manual, like pretty much everything we do, was $0. It took some adventuring to get the finished product we did, and I didn&#8217;t find many great guides out there with good advice. So here are some lessons I learned, in hopes that it saves someone else some time, too. Scribus is pretty good, but only if you use the beta. Scribus is basically your main choice for free desktop&#8230; <a href="http://twofoldsecret.com/2010/08/04/a-crash-course-on-publishing-to-lulu-for-0/">More</a>]]></description>
			<content:encoded><![CDATA[<p>The budget for the <em>Sanctuary 17 </em>manual, like pretty much everything we do, was $0. It took some adventuring to get the finished product we did, and I didn&#8217;t find many great guides out there with good advice. So here are some lessons I learned, in hopes that it saves someone else some time, too.</p>
<p><strong><a href="http://www.scribus.net/">Scribus</a> is pretty good, but only if you use the beta</strong>. Scribus is basically your main choice for free desktop publishing, unless I guess you happened to get Microsoft Publisher or something similar preinstalled on your computer. (And you shouldn&#8217;t want to use MS Publisher if you are a good-hearted person, anyway.) I normally pick stable versions of open-source stuff because I don&#8217;t feel like troubleshooting weird and/or known bugs. But in Scribus&#8217;s case, you get a better interface out of the beta, and &#8212; no joke &#8212; the ability to use the same master page for single-digit and double-digit page numbers. Yes, you read that correctly. In the stable version I was using, you had to create a separate master page once you hit page 10. I nearly did a spit take when I learned this.</p>
<p>Apart from quibbles like that, Scribus is a decent tool. The most complicated thing I needed it to do, wrap text around an arbitrary shape, was simple to accomplish once I found the <a href="http://www.opensubscriber.com/message/scribus@lists.scribus.info/14246532.html">right documentation</a>. I have experience with Quark XPress and InDesign, so the only thing that seemed weird to me was that it assumes there is always a selected page. In Quark and InDesign, you can only select text blocks or images or what-have-you, not a page per se. This had some weird side effects at first, but once I figured out what was going on, it actually seemed a little more reliable in operation. i.e. it&#8217;s much clearer when you cut an item and then hit Paste where it will show up.</p>
<p>The main Scribus keys to learn are F2, which brings up the properties inspector which lets you do pretty much everything, and F6, which opens the layers panel. Control-T, oddly enough, opens a story editor on a text block &#8212; I was used to inDesign&#8217;s Control-Y. Incidentally, Scribus really wants you to use the story editor. It has an edit-in-place mode, but at least for me, it runs very sluggishly.</p>
<p>The main thing I found that Scribus sucks at is hyphenation. You want to hyphenate your text if you justify it. <a href="http://ubiquitic.com/blog/2010/06/on-justified-text-in-reader.html.en">Trust me</a>. Unfortunately Scribus doesn&#8217;t know that much about hyphenation, as it would a) hyphenate a single letter, as in &#8220;a-postrophe,&#8221; and b) hyphenate two lines in a row. Both are typographical no-nos (see: <a href="http://webtypography.net/Rhythm_and_Proportion/Etiquette_of_Hyphenation_and_Pagination/2.4.1/">1</a>, <a href="http://webtypography.net/Rhythm_and_Proportion/Etiquette_of_Hyphenation_and_Pagination/2.4.3/">2</a>) and make reading awkward. I don&#8217;t really blame Scribus for its failings here &#8212; proper hyphenation is an unsexy black art &#8212; but it was a little disappointing to have to adjust my layout to deal with this shortcoming.</p>
<p><strong><a href="http://www.flickr.com/search/advanced/">Flickr Creative Commons Search</a> is a great tool. </strong>Again, no budget for a real cover image. Flickr&#8217;s advanced search has an option to find photos whose creators allow to be adapted for commercial purposes. I lucked into<a href="http://www.flickr.com/photos/pat_ossa/4341574558/"> this really fantastic photo</a> of a salt mine &#8212; the lighting is incredible and the emplacements look almost like a real-life embodiment of our pixelly room layouts.</p>
<p><strong>Likewise <a href="http://www.fontsquirrel.com/">Font Squirrel</a>.</strong> There are a ton of craptastic free font sites out there, but Font Squirrel is the only one I&#8217;ve seen out there that doesn&#8217;t have annoying ads or an annoying interface &#8212; and, on top of that, seems to avoid the <a href="http://www.1001freefonts.com/Arthritis.php">shovelware fonts</a> that plague most sites.</p>
<p><strong>Lulu and CafePress appear to be the main choices for on-demand printing right now.</strong> This is the area where I think I still have a lot to learn, but CafePress and Lulu seemed to be the best way to not worry about fulfillment at all (i.e. actually mailing out printed copies, dealing with returns). We went with Lulu because we wanted to do a full-color manual. CafePress only lets you have color on the cover, not on any of the interior pages.</p>
<p>Either way, your choices as far as page size go are fairly limited &#8212; their main use case is self-published novels, so the sizes run fairly large. My dreams of having a <a href="http://www.digitpress.com/library/manuals/nes/Zelda%20II%20-%20The%20Adventure%20of%20Link.pdf">NES-style pocket manual</a> were totally dashed. We ended up going with a trade paperback size, which was not that freakishly big, actually. Lulu appears to have some small page sizes if you look at their <a href="http://www.lulu.com/publish/poetry_books/">poetry book options</a>, but let&#8217;s be honest: whatever it is we are up to on this web site, it&#8217;s pretty far from poetry. That, and the only way it appears you&#8217;re able to get to that small paper size is to use their poetry book wizard, which not only a somewhat soul-deadening concept, but also doesn&#8217;t let you do your own layout.</p>
<p><strong>The rule of four still applies. </strong>That is, your publication still needs to have a page count that&#8217;s a multiple of four because of how printing works. The gotcha I ran into was that I counted the front and back covers, but they are printed in a totally separate process, so the test run of the manual had two blank pages stuck to its end. (Lulu does not warn you about this, by the way.) So I ended up creating a 14-page Scribus document, saving the covers as PNG at 300 dpi, and outputting the interior pages to PDF. This shift also had the somewhat annoying side effect of having to reset my master page mappings, since my even pages were now on the left side and odd pages on the right.</p>
<p><strong>Overprinting is only for the cover</strong>. Our original design for the manual had a subtle texture background for all the interior pages. Unfortunately, Lulu&#8217;s printing process is not that exact. Sometimes the background ran all the way to the edge of the page; other times, it stopped short and left an unsightly plain white edge. I ended up having to ax the background texture. On the cover, however, overprinting worked great.</p>
<p><strong>Colors gotta get corrected&#8230; somehow</strong>. Computer monitors create colors by mixing red, green, and blue bits together in an additive process; the more that a color component is added, the lighter the resulting color becomes. Printing works the opposite way, since it uses chemical inks, not light beams. Professionals deal with the difference by making their monitor imitate print output; however, I couldn&#8217;t find a color profile for Lulu. So&#8230; guesswork time. In the end, their printing came out pretty close to what I had done onscreen, though the gameplay screenshots were kind of a bitch to work with, since the game is so dark overall. Because the cover is a big mass of black, I also needed to bump up the subtitle&#8217;s size, because the black ink was smearing a little.</p>
<p><strong>You&#8217;ll need a proof</strong>. Well, duh. All kinds of problems became manifest as soon as I held an actual copy in my hand that were not obvious while grappling with a PDF.</p>
<p>It was an interesting little trip back into printland, all in all &#8212; regardless of how well it does, I&#8217;m looking forward to doing this again with our next project.</p>
]]></content:encoded>
			<wfw:commentRss>http://twofoldsecret.com/2010/08/04/a-crash-course-on-publishing-to-lulu-for-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why sell a paper manual for a Web game?</title>
		<link>http://twofoldsecret.com/2010/08/02/why-sell-a-paper-manual-for-a-web-game/</link>
		<comments>http://twofoldsecret.com/2010/08/02/why-sell-a-paper-manual-for-a-web-game/#comments</comments>
		<pubDate>Tue, 03 Aug 2010 03:26:53 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[ramblings]]></category>
		<category><![CDATA[sanctuary]]></category>

		<guid isPermaLink="false">http://twofoldsecret.com/?p=208</guid>
		<description><![CDATA[A very pertinent question. I admit it is a total anachronism&#8211; but I think it&#8217;s also an interesting experiment, too. My thought process began when we ran MochiAds during Where We Remain&#8216;s load sequence. We had a really good experience using Mochi. Their API is pretty much plug-and-play, and the user interface for submitting games and checking up on revenue is very nice. But the money we were seeing out of Mochi was pretty underwhelming, perhaps&#8230; <a href="http://twofoldsecret.com/2010/08/02/why-sell-a-paper-manual-for-a-web-game/">More</a>]]></description>
			<content:encoded><![CDATA[<p>A very pertinent question. I admit it is a total anachronism&#8211; but I think it&#8217;s also an interesting experiment, too. My thought process began when we ran <a href="http://www.mochimedia.com/">MochiAds</a> during <em><a href="/games/whereweremain/">Where We Remain</a></em>&#8216;s load sequence. We had a really good experience using Mochi. Their API is pretty much plug-and-play, and the user interface for submitting games and checking up on revenue is very nice. But the money we were seeing out of Mochi was pretty underwhelming, perhaps because the ads were a bit&#8230; mistargeted. As Toups pointed out on the Select Button forums, &#8220;<a href="http://forums.selectbutton.net/viewtopic.php?p=690767#690767">why did my browser start talking to me about dieting when I clicked the link</a>.&#8221; I certainly saw more than my fair share of Clorox ads while testing things out, and I don&#8217;t think I have ever had a serious thought in my life about laundry detergent. Our CPM, the amount of money we got for every thousand impressions, was embarrassingly low. And on top of that, because we only had an ad-supported version on our own site, our number of impressions was pretty low, too.</p>
<p>So far as I know, there are two ways to increase your ad revenue: show more ads or increase your CPM. The latter was out of our control &#8212; I&#8217;m curious if there are actually things Flash games can do in that regard when they&#8217;re using a third-party ad network. So that left showing more ads. It was either dump our games into the wild world of Flash game portals to get more overall views, add more ads to our games, or both. I&#8217;ve already talked about my feelings about Flash portals <a href="/2010/06/25/environment-and-experience/">elsewhere</a>, and adding more ads seemed so, um, adversarial. Squeezing more cents out of people more or less against their will. I mean, why else would an ad blocker be the top extension in Google&#8217;s and Mozilla&#8217;s galleries?</p>
<p>Then the question becomes, how can you try to make money in a less annoying fashion? <a href="http://bagfullofwrong.co.uk/bagfullofwords/">Rob Fearon</a> asks people to pay what they want &#8212; once. Any donation gets you all of his games. <a href="http://cactusquid.com/">Cactus</a> put ten copies of <em>Norrland </em>up for auction; once they&#8217;re sold, he will release it for free online. Both these seem like interesting ways to go about the problem, though I feel weird about locking up my games entirely and I don&#8217;t think we&#8217;re famous enough to pull off an eBay auction.</p>
<p>So&#8230; donations, maybe? I have to admit, I don&#8217;t think I have ever just straight up donated money to <a href="http://blogs.discovermagazine.com/notrocketscience/2010/07/15/caring-with-cash-or-how-radiohead-could-have-made-more-money/">anyone but a charity</a> on the Internet. There&#8217;s always a dollars-for-stuff exchange. And Joel and I both love manuals, endangered species that they are. It was a fun project to put the <em><a href="http://twofoldsecret.com/goodies/sanctuary-17/">Sanctuary 17 </a></em><a href="http://twofoldsecret.com/goodies/sanctuary-17/">manual</a> together, one I like to imagine we would do even if we weren&#8217;t putting it up for sale. I realize 12 pages for $10 feels like a strange economic proposition, but that&#8217;s not really the point. (And if we could have made it pay-what-you-want, we would have &#8212; but Lulu doesn&#8217;t offer that option.) We&#8217;d like it to be a way for, if you like our games, a way for you to support us and get something nice back.</p>
<p>If anything, I think that&#8217;s where we haven&#8217;t done things quite as successfully as we would want &#8212; I think people are seeing a pricetag and looking at it solely as a value proposition.</p>
<p>Oh, bonus question: why not offer a PDF version then? Because DRM sucks and in particular, <a href="http://ask.metafilter.com/36465/Help-me-remove-PDF-DRM">PDF DRM is trivial to crack</a>, and you wouldn&#8217;t even need a torrent to share the file&#8211; you could just email it. Why didn&#8217;t we throw the entire PDF up for free? That was a judgment call, and I think there are good arguments on both sides.</p>
<p>Later this week I&#8217;ll try to write up some notes for people who want to try out on-demand publishing, and in particular Lulu. There were a couple gotchas along the way.</p>
]]></content:encoded>
			<wfw:commentRss>http://twofoldsecret.com/2010/08/02/why-sell-a-paper-manual-for-a-web-game/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The Cutting Room Floor</title>
		<link>http://twofoldsecret.com/2010/07/28/the-cutting-room-floor/</link>
		<comments>http://twofoldsecret.com/2010/07/28/the-cutting-room-floor/#comments</comments>
		<pubDate>Wed, 28 Jul 2010 18:47:16 +0000</pubDate>
		<dc:creator>Joel</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[sanctuary]]></category>

		<guid isPermaLink="false">http://twofoldsecret.com/?p=202</guid>
		<description><![CDATA[As I mentioned in my last post, Sanctuary 17 underwent a lot of changes on the way to becoming a finished product.  As you might expect, that also means that a lot of things that were once in the design ended up bowing out along the way.  I thought it might be fun to take a look at some of the elements that just didn&#8217;t make the final cut, because I&#8217;m the kind of person&#8230; <a href="http://twofoldsecret.com/2010/07/28/the-cutting-room-floor/">More</a>]]></description>
			<content:encoded><![CDATA[<p>As I mentioned in my last post, Sanctuary 17 underwent a lot of changes on the way to becoming a finished product.  As you might expect, that also means that a lot of things that were once in the design ended up bowing out along the way.  I thought it might be fun to take a look at some of the elements that just didn&#8217;t make the final cut, because I&#8217;m the kind of person who would find that fun.</p>
<p><strong>Development Points</strong>: I touched on these briefly in the previous post, but one of the original concepts had the player bringing back energy to the central bunker to help improve the lives of the survivors.  Every time the player would bring back a full haul of energy, a certain number of hidden &#8220;development points&#8221; would be added, and as different point thresholds were hit, improvements would take place to the bunker.  Many of these consisted of the playing being given new equipment, which was the only way to acquire it at the time.  But as things got better and better for the survivors, they would actually start to expand into the surrounding maze, securing areas for you to create zones of safe passage.</p>
<p>The problem here, as I said before, was that this encouraged an awful lot of energy grinding, and anchored the player too closely with the bunker.  Plus, as the story evolved as well, it just didn&#8217;t fit thematically.</p>
<p><strong>The MCP</strong>: There was, at one point, an additional ending to the current three.  In this branch of the storyline, the player is able to locate the robot &#8220;nest&#8221; in their area, and tackles the robots at their source.  Facing down with the Master Control Program (as we called it), if the player is able to destroy it and its army of robot defenders, then the humans are free to continue living underground, unharassed.</p>
<p>Unfortunately, the whole sequence felt out of step with the rest of the game; it was far more action intensive, and just didn&#8217;t feel quite like it jived.  Thus&#8230; cut.</p>
<p><strong>The Conversion Gun</strong>: This is perhaps the element that hung around the longest before being dropped, and would have had a very large impact on gameplay.  In addition to the basic pistol and railgun that made it to the final release, there was a third weapon called the conversion gun.  Unlike the other two, the conversion gun didn&#8217;t destroy robots; it (as you probably guessed) turned them into allies.  With a very short range, and requiring three hits to fully convert a target, it was a tricky weapon to use.  Once converted, however, friendly robots would roam the maze, targeting enemy robots and creatures and just generally absorbing bullets for you.</p>
<p>While the conversion gun was certainly a lot of fun, it was not without problems.  First and foremost, there were the requisite technical issues; more importantly, though, was how it effected gameplay.  A skilled player armed with the conversion gun could have a literal army of robots roaming around the maze, blasting everything in sight (including, occasionally, the player).  In the end, in just proved to be too unbalancing both in energy usage and usefulness to the player, and thus it made a graceful exit.</p>
]]></content:encoded>
			<wfw:commentRss>http://twofoldsecret.com/2010/07/28/the-cutting-room-floor/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>A Long Way from A to B</title>
		<link>http://twofoldsecret.com/2010/07/23/a-long-way-from-a-to-b/</link>
		<comments>http://twofoldsecret.com/2010/07/23/a-long-way-from-a-to-b/#comments</comments>
		<pubDate>Fri, 23 Jul 2010 17:40:42 +0000</pubDate>
		<dc:creator>Joel</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[sanctuary]]></category>

		<guid isPermaLink="false">http://twofoldsecret.com/?p=196</guid>
		<description><![CDATA[The Sanctuary 17 that stands before you now has come a long way from the early concept sketches that began this whole process. The idea of making a new, enhanced Night Stalker is actually one I&#8217;ve been bouncing around for many years, but it wasn&#8217;t until we were getting towards the end of Where We Remain that I finally sat down and began work in earnest on a design document for what would eventually become&#8230; <a href="http://twofoldsecret.com/2010/07/23/a-long-way-from-a-to-b/">More</a>]]></description>
			<content:encoded><![CDATA[<p>The <em>Sanctuary 17 </em>that stands before you now has come a long way from the early concept sketches that began this whole process.</p>
<p>The idea of making a new, enhanced <em>Night Stalker</em> is actually one I&#8217;ve been bouncing around for many years, but it wasn&#8217;t until we were getting towards the end of <em>Where We Remain</em> that I finally sat down and began work in earnest on a design document for what would eventually become <em>S17</em>. Taken directly from the original design doc, here is the original Overview of the game:</p>
<blockquote><p>The PLAYER, trapped in a city where killer ROBOTS roam the streets, must make their way through the dark night with only a LIGHT to guide them and a GUN to defend themselves. AMMO is scarce, but the player has the benefit of a SAFE ZONE they can fall back to. Robots are not the only danger, as SPIDERS and BATS can also prove a nuisance; a lethal one, at times.</p>
</blockquote>
<p>Obviously, some elements still persist from this original description, but <em>S17 </em>has grown substantially from that early iteration. At first, players were confined to a single maze, and after killing enough robots, would be permitted to move on to the next one. It was very linear, very arcade, and just felt like <em>Night Stalker+</em>.</p>
<p>I started to focus on the themes I wanted to really develop, exploration and isolation, and how to provide a larger context for what exactly was going on in this world. The first big revision switched from discrete levels to a radial layout made up of three &#8220;rings&#8221; of rooms, where each room was its own distinct maze. Players began in the center, and the mazes would grow more difficult in layout and enemies as the player pushed further away.</p>
<p>The center of the maze became the home of the player&#8217;s band of survivors, which was running low on energy and in mortal peril. The player&#8217;s job was to head out into the robot-infested maze and bring back the energy needed to keep the survivors going. Once the central bunker was on a better footing, the player would then have to find the exit to the surface and secure a path for the survivors to reach it by reactivating the security terminals in each maze along the way. In this version, activating a security terminal in a room turned it into a safe area, destroying any existing robots and preventing further robots from spawning there.</p>
<p>While this version of the game certainly had more going on than the previous concept, it had two major problems.  First, the player used energy collected from the robots to do pretty much everything. Energy represented ammo, it powered the player items, it turned on the terminals, and it was required to improve the bunker situation for the survivors. Now, obviously energy management still plays a critical role in the final incarnation of <em>S17</em>, but at this stage, it was simply too vital. The player was stuck collecting energy for the sake of improving their own ability to collect energy. The second problem was that despite a more open maze, there was little impetus to explore other than to find the exit when the player was ready to finish the game. New items were acquired by taking energy back to the bunker, so the player had little reason to stray from the easier, central rooms, grinding out robots for energy.</p>
<p>All in all, not a very satisfying situation.</p>
<p>It was at that point that we decided to focus more on the idea of leaving the underground, rather than building up a central bunker. In turn, the story evolved into one of exile &#8212; the player was now cut off from their safe haven and thrust into the darkness. It was at this point that we shifted the map into a grid pattern. The player began at the bunker exit, and their endpoint was the exit to the surface hidden somewhere along the edge of the grid. This was getting closer to what I wanted, but at this point the grid was generated with a random start and end point, and connections between rooms formed a larger maze. <em>(We used a standard </em><a href="http://en.wikipedia.org/wiki/Maze_generation#Depth-first_search"><em>depth-first maze generation algorithm</em></a><em> for this. &#8212; Chris)</em> This had the effect of eliminating any sense of choice in terms of exploration, and also felt incredibly tedious for the player when they had to backtrack.</p>
<p>It seemed like the best way to get the full sense of exploration I wanted was to open the maze up completely. Sticking with the grid system, we made sure that each room connected to all adjacent rooms to create a far more organic ability for players to poke around at their whim. Items were moved into the randomly placed &#8220;supply&#8221; rooms as a bonus for discovery. On the story side of things, I finished a fleshed-out version of just how the player got into this situation, which lead directly to the creation of the &#8220;facility&#8221; rooms and the entire framework of communication with Rusty.</p>
<p>This is a somewhat trimmed-down version of the many iterations the project took along the way, but you can see that things changed an awful lot from day one. Next time, I&#8217;ll talk a little more in-depth about certain elements that didn&#8217;t make the final cut and ended up on the editing room floor&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://twofoldsecret.com/2010/07/23/a-long-way-from-a-to-b/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Humans, Robots, and Dark, Tight Spaces</title>
		<link>http://twofoldsecret.com/2010/07/20/humans-robots-and-dark-tight-spaces/</link>
		<comments>http://twofoldsecret.com/2010/07/20/humans-robots-and-dark-tight-spaces/#comments</comments>
		<pubDate>Tue, 20 Jul 2010 18:50:39 +0000</pubDate>
		<dc:creator>Joel</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[sanctuary]]></category>

		<guid isPermaLink="false">http://twofoldsecret.com/?p=184</guid>
		<description><![CDATA[As Chris has already announced, we&#8217;ve just released our newest title, Sanctuary 17.  It&#8217;s been just over six months since our first game, Where We Remain, came out, and after a very brief pause, we got to work on Sanctuary 17 with the hopes of knocking it out in a few short months.  Obviously, that didn&#8217;t go entirely according to plan. Sanctuary was born from my desire to re-imagine one of  my favorite games from&#8230; <a href="http://twofoldsecret.com/2010/07/20/humans-robots-and-dark-tight-spaces/">More</a>]]></description>
			<content:encoded><![CDATA[<p>As Chris has already announced, we&#8217;ve just released our newest title, <em>Sanctuary 17</em>.  It&#8217;s been just over six months since our first game, <em>Where We Remain</em>, came out, and after a very brief pause, we got to work on <em>Sanctuary 17</em> with the hopes of knocking it out in a few short months.  Obviously, that didn&#8217;t go entirely according to plan.</p>
<p><em>Sanctuary</em> was born from my desire to re-imagine one of  my favorite games from my childhood: <em>Night Stalker </em>(for the Intellivision).  A very simple game about a man trapped in a maze with an endless parade of deadly robots coming after him, it still managed to push my childhood fear button with great effect.  Taking those feelings &#8211; isolation, fear of what was coming next &#8211; and putting them into a larger context was the driving force behind my early designs for Sanctuary.</p>
<p>The game has changed a lot from my initial thoughts, both in story and in mechanics.  The world was more limited at first, more linear, but as we went through the early stages, the (to me) thrill of exploring the unknown almost demanded to be given more focus.  The plight of the survivors went through many iterations, until it grew into the story of a handful of dreamers with thoughts of freedom being exiled into the darkness.  With each change, more and more moving pieces came into play, and the project grew larger and larger.</p>
<p>Chris, as usual, kept it all together, deftly implementing our changing goals.  It was a learning experience for both of us, but certainly a good one.  Of course, as a project drags out longer and longer, you start to just want it finished. When all was said and done, though,  I feel we&#8217;ve created something we can look upon proudly, and hopefully something you will enjoy playing.</p>
]]></content:encoded>
			<wfw:commentRss>http://twofoldsecret.com/2010/07/20/humans-robots-and-dark-tight-spaces/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Sanctuary 17 Is Here</title>
		<link>http://twofoldsecret.com/2010/07/18/sanctuary-17-is-here/</link>
		<comments>http://twofoldsecret.com/2010/07/18/sanctuary-17-is-here/#comments</comments>
		<pubDate>Mon, 19 Jul 2010 03:35:31 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://twofoldsecret.com/?p=180</guid>
		<description><![CDATA[At long last, we have something new for you to play with: Sanctuary 17. Get with the robot blasting! Instead of displaying an (let&#8217;s be honest, annoying) ad every time you play our game, we are now offering a way for you to directly support us by purchasing a printed, full-color manual that includes details about the game world, strategy tips, and even some behind-the-scenes secrets. We&#8217;ve put up a couple pages from the manual&#8230; <a href="http://twofoldsecret.com/2010/07/18/sanctuary-17-is-here/">More</a>]]></description>
			<content:encoded><![CDATA[<p>At long last, we have something new for you to play with: <em>Sanctuary 17</em>. <a href="http://twofoldsecret.com/games/sanctuary-17/">Get with the robot blasting!</a></p>
<p>Instead of displaying an (let&#8217;s be honest, annoying) ad every time you play our game, we are now offering a way for you to directly support us by purchasing a printed, full-color manual that includes details about the game world, strategy tips, and even some behind-the-scenes secrets. We&#8217;ve put up <a href="http://www.scribd.com/doc/34509129/Sanctuary-17-A-Cave-Explorer-s-Guide-to-the-Future">a couple pages from the manual on Scribd</a> so you can get a sense of what&#8217;s it like before you buy. If you enjoy <em>Sanctuary</em>, please consider purchasing a copy!</p>
<p>More info, including some source code from <em>Sanctuary</em> you can steal use, to come this week.</p>
]]></content:encoded>
			<wfw:commentRss>http://twofoldsecret.com/2010/07/18/sanctuary-17-is-here/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

