<?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>Struct.ca &#187; Game Design</title>
	<atom:link href="http://struct.ca/category/game-design/feed/" rel="self" type="application/rss+xml" />
	<link>http://struct.ca</link>
	<description>Words On Play</description>
	<lastBuildDate>Sun, 23 Oct 2011 20:41:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>In Defence of Freemium</title>
		<link>http://struct.ca/2011/in-defence-of-freemium/</link>
		<comments>http://struct.ca/2011/in-defence-of-freemium/#comments</comments>
		<pubDate>Sat, 22 Oct 2011 03:10:14 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Game Design]]></category>

		<guid isPermaLink="false">http://struct.ca/?p=790</guid>
		<description><![CDATA[Note: this was originally intended to be a comment on Adam Saltsman&#8217;s &#8220;Contrivance and Extortion II&#8221; post on Gamasutra, but it got way too long, so I decided to post it here instead Hey Adam, I&#8217;m glad that you&#8217;re bringing &#8230; <a href="http://struct.ca/2011/in-defence-of-freemium/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><em>Note: this was originally intended to be a comment on Adam Saltsman&#8217;s &#8220;<a href="http://www.gamasutra.com/blogs/AdamSaltsman/20111020/8703/Contrivance_and_Extortion_II_Clarifications_Feedback__Suggestions.php">Contrivance and Extortion II</a>&#8221; post on Gamasutra, but it got way too long, so I decided to post it here instead</em></p>
<p>Hey Adam, I&#8217;m glad that you&#8217;re bringing all these issues up and starting this discussion, and I think (maybe) I can convince you of the benefits of freemium games, or at least present an alternative viewpoint. I should also point out that I&#8217;ve never made a freemium game, and that I usually make the kind of games I imagine you&#8217;d <a href="http://trainyard.ca">enjoy</a>.</p>
<p>To start off, I think we need to talk about perspective.</p>
<p>You (just like me, and a lot of other people here), approach games as a game designer first. This has a bunch of interesting side-effects. The first is that we have &#8220;game-designer-itis&#8221;, where we play a lot of games, but usually only play them long enough to grok what they&#8217;re about and to experience whatever it is that makes them unique. This is why people like us love games like Braid where there&#8217;s very little repetition. Every single level introduces a new element, a new twist. There&#8217;s no fluff, no filler.</p>
<p>On the other hand, we never finish most blockbuster games for the same reason. They just get too repetitive. I&#8217;ve never finished Halo, Gears of War, GTA, etc. It&#8217;s not because I couldn&#8217;t finish them, in fact, it&#8217;s just the opposite: I knew I could finish them, so I didn&#8217;t see the point; I had already explored all of the systems that the game had to offer.</p>
<p>Now let&#8217;s be clear, there&#8217;s absolutely nothing wrong with the way we approach games, but I don&#8217;t think it&#8217;s fair to assume all gamers are the same as us. A lot of people play games purely as a form of entertainment, and so they want as much of it as they can. They&#8217;re not nearly as concerned about whether each moment they&#8217;re experiencing is unique or not, they just play games as a way to escape normal life, a way to kill time, a way to be someone they aren&#8217;t.</p>
<p>Ok, so how does this all tie in with freemium games? There was a fantastic presentation at GDC 2011 called &#8220;The Fantasy of Labor&#8221;. If you have access to the <a href="http://www.gdcvault.com/">GDC Vault</a>, I highly recommend you check it out. The ideas I&#8217;m writing about here are rooted in the concepts that were presented there.</p>
<p>The core idea of the talk is that all games require three things from a player, in varying amounts depending on the game: skill, luck, and labor. A game like Street Fighter requires mostly skill, a game like roulette requires mostly luck, Farmville requires mostly labor, etc.</p>
<p>The common attitude in both the game development and &#8220;hardcore gamer&#8221; communities is heavily biased towards skill-based games. These games are appealing to the majority of the traditional gaming community, but they have flaws. The talk goes into detail into quite a few issues, but the most important take-away is this: *a lot of players do not want to play games that require skill*.</p>
<p>Now let&#8217;s move from skill to labour. There are a huge number of players (a large portion of the &#8220;casual&#8221; demographic) who *enjoy* games that are labour based, and dislike games that are skill based. They want a game where they know that the longer they work, they will always improve, no matter what.</p>
<p>It took me a long time to come to grips with the fact that some players really don&#8217;t want a game with interesting gameplay or systems for them to grok. They just want something where the more time they spend, the more results they&#8217;ll get. They aren&#8217;t looking to be rescued by some well-meaning game designer, saving the day, saying &#8220;no, this is what games really are! Try all these interesting systems, look how intrinsically motivating this game is!&#8221;, instead they just want to check boxes on a checklist. They *want* to.</p>
<p>Alright, now for the final piece of the puzzle. In your post you implied that the only reason someone will pay to skip ahead is if their urge to complete the extrinsic checklist overpowers their enjoyment of the intrinsic mechanics of the game. I heard someone summarize the main take-away of your post as this: &#8220;If a game lets you pay to skip playing, it&#8217;s not fun. Why wouldn&#8217;t you want to play?&#8221;.</p>
<p>One issue with this argument is that it doesn&#8217;t consider all of the other elements that make up a game, especially the aesthetics and mythology. I think we can agree that it&#8217;s possible for these to motivate certain players way more than &#8220;the desire to experience the mechanics&#8221; or &#8220;the desire to improve their skill&#8221;. Players will sometimes want to advance just so they can experience more of the story or more of the aesthetics, and there&#8217;s nothing wrong with that.</p>
<p>Now coming back to the checklist. I think this is probably the main point I want to make: some people actually enjoy filling out the checklist. And really, it&#8217;s not just some people, but a large portion of players in the casual gaming space. Even more importantly, they don&#8217;t enjoy the kind of games that *you or I* wish they would enjoy. Specifically, they don&#8217;t want games that require skill, and they don&#8217;t want games with interesting mechanics (unless there&#8217;s also a checklist attached).</p>
<p>One more thing: even if you think I&#8217;m completely fabricating the existence of this type of player (I can assure you, I&#8217;m not), I think we can probably agree that even regular gamers can become this type of player *some of the time*. For example, long after I&#8217;d grokked all of the core mechanics of Tiny Tower, I kept playing for weeks because of the desire to see my tower get taller, and I loved every minute of it.</p>
<p>So to wrap up: freemium games are giving players what they want.</p>
<p>&nbsp;</p>
<p><em>An afterword: I really want to be clear that I&#8217;m not saying &#8220;freemium games can do no evil&#8221;, because they can, and a lot of them do. I simply want to point out that the core mechanics of these games are not inherently evil, and that they fulfill the needs of certain types of players.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://struct.ca/2011/in-defence-of-freemium/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>Luna Soul</title>
		<link>http://struct.ca/2011/luna-soul/</link>
		<comments>http://struct.ca/2011/luna-soul/#comments</comments>
		<pubDate>Sun, 18 Sep 2011 03:27:31 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Game Design]]></category>
		<category><![CDATA[iDevBlogADay]]></category>
		<category><![CDATA[iOS Development]]></category>

		<guid isPermaLink="false">http://struct.ca/?p=772</guid>
		<description><![CDATA[This iDevBlogADay post is about Luna Soul, the game I made during the game jam at the 360iDev conference last week. The Conference I really want to keep this post short, so I won&#8217;t go into too many details about &#8230; <a href="http://struct.ca/2011/luna-soul/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This <a href="http://idevblogaday.com">iDevBlogADay</a> post is about Luna Soul, the game I made during the game jam at the <a href="http://360idev.com">360iDev</a> conference last week.</p>
<h2>The Conference</h2>
<p>I really want to keep this post short, so I won&#8217;t go into too many details about 360iDev itself. I could spend more than a few paragraphs just talking about all the things I ate, but instead I&#8217;ll  summarize the whole conference: it was great.  I loved learning and being inspired by presentations, I loved eating copious amounts of meat and fried food, and I loved hanging out with &#8220;old&#8221; friends and meeting new ones that&#8217;d I&#8217;d previously only known through Twitter.</p>
<h2>The Jam</h2>
<p>A game jam is usually where a bunch of people get together and make games over a short period of time, and the 360iDev game jam was no different. It started on Tuesday at 8pm and went through the night. There was no defined end time, except that the games had to be done by noon on Wednesday so they could be presented to everyone else. This was a pretty crazy schedule, especially considering that Wednesday was a regular conference day.</p>
<h2>The Theme</h2>
<p>The theme for the jam was &#8220;opposite&#8221;, which was announced at noon on Tuesday, giving everyone about 6 hours to come up with a game idea. I had already decided that no matter what the theme was, I wanted to make a &#8220;freemium style&#8221; game. This isn&#8217;t really because I enjoy that kind of game, but more because I wanted to try that genre out so I could learn more about it.</p>
<p>I struggled with combining &#8220;opposite&#8221; and &#8220;freemium&#8221; for a while, and actually didn&#8217;t come up with an idea until 45 minutes *after* the jam had started. I considering things like magnets and &#8220;opposites attract&#8221;, but it wasn&#8217;t until I thought about actual opposites, like &#8220;hot and cold&#8221; and &#8220;up and down&#8221;, that I found my starting point: &#8220;night and day&#8221;.</p>
<p><a href="http://struct.ca/wp-content/uploads/2011/09/Screen-shot-2011-09-17-at-10.46.17-PM.png"><img class="alignnone size-full wp-image-779" title="Luna Soul " src="http://struct.ca/wp-content/uploads/2011/09/Screen-shot-2011-09-17-at-10.46.17-PM.png" alt="" width="640" height="480" /></a></p>
<h2>The Result</h2>
<p>I spent the first 7 hours in the jam room, and the last 5 in my hotel room, where it was quieter, finally finishing at 10am. The result is a game I call &#8220;Luna Soul&#8221;, a play on luna (moon) and sol (sun). The game features a constant day-night cycle. In daytime, flowers grow, and at night, mushrooms grow. Your job is to harvest both types of plants and combine them as herbal &#8220;recipes&#8221;, which you then sell. You can use the money from selling plants to buy more complicated recipes.</p>
<p><a href="http://struct.ca/wp-content/uploads/2011/09/Screen-shot-2011-09-17-at-10.49.00-PM.png"><img class="alignnone size-full wp-image-780" title="Recipes" src="http://struct.ca/wp-content/uploads/2011/09/Screen-shot-2011-09-17-at-10.49.00-PM.png" alt="" width="640" height="480" /></a></p>
<p>I developed the game in Flash, because of just how fast it is to develop in, and because I knew I wanted to have a bunch of animations. I used Adobe&#8217;s AIR-to-iOS packager, so people could actually play the game on my iPad at the jam. Due to the magic of Flash, you can even <a href="http://struct.ca/games/lunasoul">play the game right now</a>. This is the *exact state* the game was in at the end of the game jam after 12 hours of work. I haven&#8217;t changed anything since then.</p>
<h2>The Music</h2>
<p>The final thing I wanted to mention is the music. The multi-talented <a href="http://twitter.com/PhilHassey">Phil Hassey</a> (creator of <a href="http://galcon.com">Galcon</a>) brought his fiddle to the game jam and offered to create music for anyone that wanted it. There were four games that ended up using his music, including mine. It really helps to signify the exact change between night and day, and more importantly, it adds a lot of character to the game. I&#8217;ve included a video of him performing at the jam below.</p>
<p><object width="640" height="385" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/njDFC84aXSk?fs=1&amp;hl=en_US" /><param name="allowfullscreen" value="true" /><embed width="640" height="385" type="application/x-shockwave-flash" src="http://www.youtube.com/v/njDFC84aXSk?fs=1&amp;hl=en_US" allowFullScreen="true" allowscriptaccess="always" allowfullscreen="true" /></object></p>
<h2>Wrapping Up</h2>
<p>Luna Soul is far from perfect but I&#8217;m pretty proud of how far I got with it. I&#8217;m not sure if I&#8217;m going to do anything else with the game, but I do have a bunch of ideas for how it could be improved.</p>
<p>One last thing: make sure you check out all of the other <a href="http://gamejam.360idev.com">game jam entries</a>,  there were lots of really impressive games demoed at the jam, so it&#8217;s worth browsing that site to see how much stuff was made in a single night. If I had to pick a favourite entry, I think it&#8217;d be <a href="http://gamejam.360idev.com/vocab-bots/">Vocab Bots</a> by <a href="http://twitter.com/rwenderlich">Ray</a> and <a href="http://twitter.com/vwenerlich">Vicki</a> Wenderlich. Great idea and great execution.</p>
<p>Thanks for reading this post. As usual, if you have any feedback, you can post it here or send it to <a href="http://twitter.com/MattRix">@MattRix on Twitter</a>. Cheers!</p>
]]></content:encoded>
			<wfw:commentRss>http://struct.ca/2011/luna-soul/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Engineering An Update &#8211; Part Two</title>
		<link>http://struct.ca/2011/engineering-an-update-part-2/</link>
		<comments>http://struct.ca/2011/engineering-an-update-part-2/#comments</comments>
		<pubDate>Mon, 05 Sep 2011 08:50:08 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[App Store]]></category>
		<category><![CDATA[Game Design]]></category>
		<category><![CDATA[iOS Development]]></category>
		<category><![CDATA[Trainyard]]></category>

		<guid isPermaLink="false">http://struct.ca/?p=743</guid>
		<description><![CDATA[Recap I wrote a post last week about my struggles and dilemmas while creating the new Trainyard Engineer Update. This week I&#8217;d like to talk about what I actually did in this update. I&#8217;m not going to get too technical, but &#8230; <a href="http://struct.ca/2011/engineering-an-update-part-2/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><span class="Apple-style-span" style="color: #000000; font-size: 22px; line-height: 32px;">Recap</span></p>
<p>I wrote a post <a href="http://struct.ca/2011/engineering-an-update-part-1">last week</a> about my struggles and dilemmas while creating the new <a href="http://trainyard.ca">Trainyard</a> Engineer Update. This week I&#8217;d like to talk about what I actually did in this update. I&#8217;m not going to get too technical, but if you have technical questions about anything I did, I&#8217;d love to answer them, just ask in the comments section.</p>
<h2>Backend</h2>
<p>The backend for this update was probably the biggest area of concern for me. I was seriously considering switching to something like Amazon Web Services, but eventually decided to stick with my current backend (PHP+MySQL on Dreamhost PS). I finally got around to learning a whole lot more about SQL (big thanks to <a href="http://twitter.com/torontogamejam">Jim McGinley</a>) and optimized the database with better indexes and smarter queries. I also wrote dozens of new scripts for handling uploaded puzzles, solutions, and other user data.</p>
<p>I rewrote most of the frontend code on the website, creating &#8220;AJAX-style&#8221; <a href="http://trainyard.ca/puzzles">puzzle and solution browsing systems</a>. I added the ability to comment on puzzles, and the ability to open puzzles directly from the site if you&#8217;re browsing on an iOS device with Trainyard installed.</p>
<h2>The editor</h2>
<p>The in-game puzzle editor itself was a huge amount of work, and took a ton of planning to get right. I went through pages and pages of sketches and potential interface designs before I settled on its current look and flow. I&#8217;m really happy with how it turned out, but man, it took a lot of effort to get there.</p>
<p>Although creating the puzzle editor itself took a lot of time, I spent even more time creating all the extra stuff to surround it. For example, there&#8217;s a screen to enter the puzzle name and description, a screen to let you solve your own puzzles, and even a screen to show you the data you&#8217;re about to submit, so you can verify that it&#8217;s correct before submitting it.</p>
<p>On top of all that, there are also tons of little subtle features that most people will never see. One small example: if you submit a puzzle that&#8217;s identical to a puzzle someone else submitted, it&#8217;ll warn you and even allow you to download their puzzle instead.</p>
<p>If you want to see how the editor works and the whole process of creating a puzzle,  just watch the video below:</p>
<p><object width="640" height="385" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/XbyT_pRzoDs?fs=1&amp;hl=en_US" /><param name="allowfullscreen" value="true" /><embed width="640" height="385" type="application/x-shockwave-flash" src="http://www.youtube.com/v/XbyT_pRzoDs?fs=1&amp;hl=en_US" allowFullScreen="true" allowscriptaccess="always" allowfullscreen="true" /></object></p>
<h2>Browsing</h2>
<p>Creating the system for browsing puzzles was also a lot of work. One of the key issues for me was discovery; I needed players to be able to find great puzzles without having to shuffle through thousands of so-so puzzles. The solution I arrived at is now called &#8220;featured puzzles&#8221;. This is a list of puzzles that I&#8217;ve hand-picked, and that I can update online at any time. This ensures that there will always be a stream of fresh, interesting puzzles.</p>
<p>For players that are brave enough to explore all of the user-made puzzles, I made a &#8220;worldwide puzzles&#8221; section. There are a bunch of different search options there, so for example, you can find puzzles that are new, popular, or unsolved. I also created a Facebook-ish &#8220;like&#8221; system where players can choose to like a puzzle after they&#8217;ve solved it. As of writing this 5 days after release, there have already been over 10000 likes submitted.</p>
<p>The last two areas of puzzles are &#8220;my puzzles&#8221; and &#8220;saved puzzles&#8221;. &#8220;My puzzles&#8221; is a list of puzzles that the user has created, regardless of whether they&#8217;ve been submitted or they&#8217;re still being created. &#8220;Saved puzzles&#8221; is a list of all the puzzles that a given user has tried, whether they&#8217;re solved or not.</p>
<p>The video below shows me going through all the different puzzle browsing sections so you can see how they work:</p>
<p><object width="640" height="385" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/EmMmemETgQg?fs=1&amp;hl=en_US" /><param name="allowfullscreen" value="true" /><embed width="640" height="385" type="application/x-shockwave-flash" src="http://www.youtube.com/v/EmMmemETgQg?fs=1&amp;hl=en_US" allowFullScreen="true" allowscriptaccess="always" allowfullscreen="true" /></object></p>
<h2>Wrenches</h2>
<p>If you&#8217;re familiar with the normal game in Trainyard, you&#8217;ll remember that all puzzles award &#8220;stars&#8221; when solved. I decided to do the same thing in engineer mode, but with &#8220;wrenches&#8221; (spanners for you UK people). I let users assign their puzzles an arbitrary wrench count between 1 and 30 when they submit the puzzle. In theory the wrench count represents the difficulty of the puzzle, but in reality it&#8217;s not always accurate, which is totally fine. I considered some more accurate systems for determining puzzle difficulty, but it just wasn&#8217;t worth the effort, because wrenches really don&#8217;t matter for anything anyway.</p>
<h2>Goodies</h2>
<p>The last major thing I added to the game is the &#8220;Goodies&#8221; section. Goodies is essentially just a catch-all for all the features I had wanted to add but didn&#8217;t have a chance. It&#8217;s also very flexible so it&#8217;s super easy to add more features to it in the future if needed. Here are the items that are there right now: News, Achievements, Tutorials, Mailing List, Tips &amp; Tricks, Solutions.</p>
<h2>Goodies: News</h2>
<p>News is a list of Trainyard related news items for users to read. The data comes from an xml file hosted on Amazon S3. Each news item has HTML content that can be shown in a webview, which allows for stuff like embedding YouTube videos.</p>
<p>If I want I can also specify that a news item is an &#8220;alert&#8221;, and then it will pop up when the user starts the game. I can also do things like targeting news alerts to specific users, for example, to those who have a certain version of the game, or to those for whom this version is an update (rather than the first time they&#8217;ve played).</p>
<h2>Goodies: Achievements</h2>
<p>One of the biggest requests for Trainyard has been Game Center support, so I finally decided to put it in this version. The tough part of integrating it was that Trainyard allows you to have two local users, so I had to figure out how to make that work with Game Center.</p>
<p>What I ended up doing is making it so that the local data is authoritative on achievements. The game will never download achievement progress from Game Center. Instead, if an achievement has more progress locally than in Game Center, it&#8217;ll automatically push that progress to the server.</p>
<p>This has the benefit that both of the local users can still earn achievements by themselves independently. It doesn&#8217;t matter what has happened in Game Center. It&#8217;s almost like Game Center acts like a &#8220;high score list&#8221; for your achievements, they&#8217;re only submitted when they&#8217;ve improved.</p>
<p>I also have a really cool technical system for keeping track of the achievements. I won&#8217;t go into it here too much, but basically any time something good happens, an &#8220;achievement source&#8221; gets incremented. You can base multiple achievements on a single achievement source (ex solve 1 puzzle, solve 5 puzzles, solve 10 puzzles). It also has a system for tracking uniqueness, so that if you solve the same puzzle 10 times, it&#8217;ll only count as one puzzle in the &#8220;solve a puzzle&#8221; achievement.</p>
<p>All of this was pretty complicated to create, but now I have an extremely robust and flexible way to do achievements that will work for any kind of game in the future.</p>
<h2>Goodies: Compare Stars</h2>
<p>It&#8217;s not in the actual &#8220;Goodies&#8221; list, but Compare Stars is an option under Achievements. It&#8217;s basically just a Game Center high scores list where you can compare how many stars you&#8217;ve earned to how many your friends have earned.</p>
<h2>Goodies: Tutorials</h2>
<p>A tutorial list has been a highly requested feature for a long time. Normally the tutorials are interspersed throughout the levels, but this makes them a lot easier to browse through.</p>
<h2>Goodies: Mailing List</h2>
<p>I&#8217;ve had a Trainyard mailing list set up for a long time, but it&#8217;s always been on an obscure area of the Trainyard site where it was super hard to find. I decided I&#8217;d finally make it easier to sign up in this update. I&#8217;ve been using MailChimp, and they have a super easy API that was really easy to integrate.</p>
<p>Since the update went live 5 days ago, more than 200 people have signed up for the mailing list. That&#8217;s not too shabby considering there were only 300 people in the list a week ago. The way I look at it, that&#8217;s 200 people who are likely to buy whatever my next game is. I wish I&#8217;d put it in sooner.</p>
<h2>Goodies: Tips &amp; Tricks</h2>
<p>I really wasn&#8217;t sure about this section but I threw it in at the last minute. It works similarly to the news section, but each item just contains a single YouTube video. Each of the videos is a short tutorial on some aspect of the game. You can watch them all in this <a href="http://www.youtube.com/playlist?list=PL260A80266AF67A2E">YouTube playlist</a> if you want.</p>
<h2>Goodies: Solutions</h2>
<p>Not much to say about this. It&#8217;s just a link to <a href="http://trainyard.ca/solutions">http://trainyard.ca/solutions</a>. I&#8217;m hoping it&#8217;ll cut down on the number of &#8220;How do I solve *****?&#8221; emails, and if I&#8217;m really lucky, it&#8217;ll cut down on the number of &#8220;Trainyard Solutions&#8221; copycat apps as well.</p>
<h2>Wrapping Up</h2>
<p>Phew. Ok, a golden horse to everyone who made it this far. There were a ton of other smaller features that I didn&#8217;t cover in this post, but I think I hit on most of the major ones. Once you consider creating all of these elements and integrating them all cleanly (and mostly buglessly), I think you can probably see why this update took me 3 months to make, hah.</p>
<p>I hope you enjoyed these last two posts. If you have any questions, especially about technical stuff, I&#8217;d love to hear it, so just leave a comment down below. As usual you can also reach me on Twitter at <a href="http://twitter.com/MattRix">@MattRix</a>, cheers!</p>
]]></content:encoded>
			<wfw:commentRss>http://struct.ca/2011/engineering-an-update-part-2/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Big Runner</title>
		<link>http://struct.ca/2011/big-runner/</link>
		<comments>http://struct.ca/2011/big-runner/#comments</comments>
		<pubDate>Thu, 14 Jul 2011 22:13:00 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Game Design]]></category>
		<category><![CDATA[Other Games]]></category>

		<guid isPermaLink="false">http://struct.ca/?p=693</guid>
		<description><![CDATA[This past Sunday I attended the first ever Guelph Game Jam. In this post I&#8217;ll explain a little bit about the game jam, and then I&#8217;ll talk about the game I made (note: it&#8217;s a Flash game, so you can &#8230; <a href="http://struct.ca/2011/big-runner/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><em>This past Sunday I attended the first ever <a href="http://guelphgamejam.com">Guelph Game Jam</a>. In this post I&#8217;ll explain a little bit about the game jam, and then I&#8217;ll talk about the game I made (note: it&#8217;s a Flash game, so you can actually play it, woot!). </em></p>
<h2>The Guelph Game Jam</h2>
<p>This is the second game jam I&#8217;ve participated in. The first was <a href="http://tojam.ca">TOJam</a>, which I <a href="http://struct.ca/2011/wjh/">wrote about</a> back in May. I enjoyed TOJam so much that when I heard about another game jam in the area, I just had to go. The jam was organized by <a href="http://twitter.com/OwenGoss">Owen Goss</a>, and despite being the first Guelph Game Jam ever, it went really smoothly (great job Owen!).</p>
<p>If you&#8217;re not familiar with what a game jam is, it&#8217;s basically just when a group of people get together to make games over a short period of time. In the case of the GGJ, it went from 12pm until 7:30pm (with a 30 minute dinner break), so it lasted only 7 hours. This may seem like a really short amount of time, and it was, but everyone was still able to make some cool stuff. The theme of the jam was &#8220;Big&#8221;, and there were a total of 16 participants. If you want to see the other games, I encourage you to <a href="http://guelphgamejam.com/">check them out on the GGJ site</a>, there are some really interesting games there.</p>
<p><img class="alignnone size-full wp-image-707" title="GGJSetup" src="http://struct.ca/wp-content/uploads/2011/07/GGJSetup.jpg" alt="" width="640" height="427" /></p>
<h2>Ideas and Technologies</h2>
<p>I spent some time during the week leading up the jam trying to come up with an idea for a game, but I was having a hard time arriving at a solid idea that could also be executed in only 7 hours. Knowing that the theme was &#8220;Big&#8221;, I came up with a lot of concepts for physics games, but none of them really stuck out to me.</p>
<p>At this time I also wasn&#8217;t 100% sure of what technology/platform I wanted to create the game with. I had just received my <a href="http://struct.ca/2011/icademanager">iCade</a>, so I knew I wanted to create something that used it, but I wasn&#8217;t sure whether I wanted to create a game for the iPad or a Flash game. After a ton of internal debating, I finally settled on going with Flash. Using Flash would give me a lot more development flexibility and speed, especially when it came to making art and animations.</p>
<p>On the morning of the jam, I knew what tech I was going to use, but I still didn&#8217;t have a game idea. The trip from my home (in Mississauga) to Guelph takes about an hour, so I figured I could finalize the game as I was driving. The game I came up with on that trip became &#8220;Big Runner&#8221;.</p>
<p><img class="alignnone size-full wp-image-708" title="GameScreen" src="http://struct.ca/wp-content/uploads/2011/07/GameScreen.jpg" alt="" width="640" height="341" /></p>
<h2>The Big Idea</h2>
<p>The gist of &#8220;Big Runner&#8221; is that the main character is a skinny guy, but his goal is to burn as many calories as he can, so he&#8217;s trying to get as fat as possible so he can burn more calories. The catch is that the fatter he is, the slower he&#8217;ll move, and the screen is constantly moving, so he can&#8217;t get too fat or else he&#8217;ll go off the edge of the screen. I realize this game makes no sense, and I can&#8217;t be bothered to make up a decent story for it, so you&#8217;re just going to have to invent your own.</p>
<p>I decided that there&#8217;d be cake in the game as the food that makes him fat, because I love cake. Nom. I knew I was using the iCade and wanted him to be able to do more than just move around, so I planned on giving him two actions: puke (to make him lose weight), and jump (to burn extra calories &#8211; I later took this out).</p>
<div style="margin-bottom: 25px;">
      <div id="banner_container" class="jj_swf_object_container" style="height:260px;overflow:hidden;">
        <div id="banner" class="jj_swf_object_container_wrapper" style="width:640px;height:260px;overflow:hidden;">
          <img src='wp-content/uploads/2011/07/FatPulseShare.jpg' />
        </div>
      </div>
      <script type="text/javascript">
        swfobject.embedSWF("/wp-content/uploads/2011/07/FatPulseShare.swf", "banner", "640", "260", "9.0.0", "http://struct.ca/wp-content/plugins/jj-swfobject/swfobject/expressInstall.swf", {}, {}, {});
      </script></div>
<h2>The Big Animations</h2>
<p>When the jam started, I quickly sketched out what the guy might look like as he gets fat, and then I then started making all the assets in Flash. If you have Flash enabled, you can see some of the awful sketches and the animation above. I knew I had to work fast, because with only 7 hours, I couldn&#8217;t afford to spend very much time on art.</p>
<p>I made the guy, the cake, and the street background. I also had to make a bunch of UI elements (main menu, score, etc.).  The key with the guy was that I wanted him to visibly get fat, and do it gradually, rather than simply snapping to different fatness levels. Flash&#8217;s shape-tweens really helped to create a seamless transition between different amounts of fatness.</p>
<p>Late in the jam, I still needed some sort of &#8220;enemy&#8221;, and I happened to overhear Connor Pridham (son of <a href="https://twitter.com/madgarden">@madgarden</a>) jokingly saying something about how every game should have tanks. I realized that tanks would be a perfect fit for Big Runner, so I decided to put them in. Oh, and it turns out that Connor was working on a sweet mix of tanks and Minecraft called <a href="http://guelphgamejam.com/2011/07/11/tankcraft/">TankCraft</a>.</p>
<p><img class="alignnone size-full wp-image-715" title="GGJScreen" src="http://struct.ca/wp-content/uploads/2011/07/GGJScreen2.jpg" alt="" width="640" height="427" /></p>
<h2>The Big Finish</h2>
<p>I spent 2 hours on art and animation, and the rest of the time coding. I finished implementing the tanks right as the jam ended at 7:30 (ok, a few minutes after). The &#8220;finished&#8221; game was playable with the iCade, and it was actually kind of fun. The music was made by Guelph local <a href="http://ftylershaw.com/">Tyler Shaw</a>. My request to Tyler was &#8220;music that sounds kinda super-nintendoish, and upbeat, with the melody from Happy Birthday&#8221;, and he nailed it (Tyler also made the music for a few other games during the same time period &#8211; impressive!).</p>
<p>That 7-hour version had a bunch of things missing, including sound effects and a jumping mechanic. There are also some weird bugs and the hit areas on the tanks are really bad. I hadn&#8217;t finalized what I wanted to do with the puking mechanic, so you can puke almost all the time. Through the magic of Flash, you can <a href="http://struct.ca/games/flash/BigRunnerOriginal">play the original version right now</a>.</p>
<h2>Polish</h2>
<p>On the drive home from the jam, I came up with a bunch of ideas for how to tweak the game. The next day, I spent two hours adding sound effects, changing how the puking works, and fixing most of the bugs. I decided it was good enough to put on Kongregate (a popular Flash games site), so I spent another hour implementing the Kongregate API (highscores, achievements, etc), and then I put it up there on Wednesday, after a total of 10 hours of work. <a href="http://www.kongregate.com/games/MattRix/big-runner">You can play the Kongregate version here</a>. See if you can beat 1500 calories.</p>
<h2>Game Design</h2>
<p>The game is a simple side-scroller with very few elements, and yet it has a surprising amount of depth. The original version allowed you to puke whenever you wanted, so you could control your weight precisely, but I realized that having that much control actually took a way a lot of the decision making and planning. The final version has the limitation that you can only puke when you&#8217;re at your fattest, which adds a lot of interesting dynamics.</p>
<p>I really wanted the way you play the game to naturally change and evolve as you play it, and that&#8217;s exactly what happens. At the start of the game, you want to eat all the cakes you can, so you&#8217;re running around trying to collect cakes. By the later stages of the game, you actually want to stay skinny, so you start having to avoid the cakes. I think twisting something good into something bad over the course of a run is a pretty novel way to create depth and choices for the player, and at the end of the day, this is a game about trade-offs.</p>
<p>There were many happy accidents with the game design of the game, and one of them was with the tank; I really like how the tank&#8217;s turret gives a visual warning that the tank is coming. It comes far ahead of the tank&#8217;s hit area, so in the early stages of the game, you can tell exactly where the tank is going to come from before the full body of the tank arrives on screen &#8211; a subtle but interesting element.</p>
<p><img class="alignnone size-full wp-image-713" title="GGJWorking" src="http://struct.ca/wp-content/uploads/2011/07/GGJWorking2.jpg" alt="" width="640" height="427" /></p>
<h2>Wrapping up</h2>
<p>I think that&#8217;s just about all I have to say about Big Runner. Please <a href="http://www.kongregate.com/games/MattRix/big-runner">try out the game</a> and let me know what you think! Feel free to send it around on Twitter and Google+ too, I&#8217;d love to see how high the scores can go. Also, make sure you check out the <a href="http://guelphgamejam.com">other Guelph Game Jam games</a>, there are some cool projects there. As usual, you can post your comments here or send them <a href="http://twitter.com/MattRix">@MattRix</a>. Cheers.</p>
]]></content:encoded>
			<wfw:commentRss>http://struct.ca/2011/big-runner/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>What Just Happened?!</title>
		<link>http://struct.ca/2011/wjh/</link>
		<comments>http://struct.ca/2011/wjh/#comments</comments>
		<pubDate>Thu, 19 May 2011 20:36:45 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Game Design]]></category>
		<category><![CDATA[Other Games]]></category>

		<guid isPermaLink="false">http://struct.ca/?p=615</guid>
		<description><![CDATA[Last weekend I went to TOJam, and it was awesome. In this post I&#8217;m going to explain a little bit about what TOJam is, and then I&#8217;ll explain what I ended up making there. TOJam TOJam is Toronto&#8217;s big annual &#8230; <a href="http://struct.ca/2011/wjh/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><em>Last weekend I went to <a href="http://tojam.ca">TOJam</a>, and it was awesome. In this post I&#8217;m going to explain a little bit about what TOJam is, and then I&#8217;ll explain what I ended up making there.</em></p>
<h2>TOJam</h2>
<p>TOJam is Toronto&#8217;s big annual game jam. This year there were over 250 game devs all making crazy games for 3 days straight. Everyone got there on Friday and worked through the weekend. Some people even slept at the building (or didn&#8217;t sleep at all!). It was held at the George Brown College Autodesk Building, and there were tons of great computers (dual quad core Mac Pros with 12gb ram) and great monitors (Apple 24&#8243;) for everyone to use.</p>
<p>Being at TOJam was a great experience. Everyone had a ton of energy and enthusiasm the whole weekend long. There seemed to be a pretty even mix of artists to coders, so I got to see tons of game art getting made over the course of the weekend. Lots of people were using Unity to make their games, although I think the most popular tech was still Flash.</p>
<h2>Bonus</h2>
<p>One of the best things about TOJam was how much free food there was. It was completely free to attend, and yet throughout the weekend there was a TON of stuff being given away. There were bagel and pastry breakfasts, a chinese food dinner, a pizza dinner, and an unending supply of candy, chips, and drinks. I was given the opportunity to sponsor something at TOJam, and so I decided to sponsor the candy area, which was named &#8220;Trainyard&#8217;s Candy Yard&#8221;.</p>
<p><a href="http://struct.ca/wp-content/uploads/2011/05/candy-yard.jpg"><img class="alignnone size-full wp-image-621" title="candy-yard" src="http://struct.ca/wp-content/uploads/2011/05/candy-yard.jpg" alt="" width="640" height="478" /></a></p>
<h2>Who?!</h2>
<p>I didn&#8217;t dare do my first game jam ever by myself. I partnered up with <a href="http://twitter.com/OwenGoss">Owen Goss</a> and <a href="http://twitter.com/wblackall">Whitaker Blackall</a>. Together we formed Team RGB (Rix, Goss, Blackall). The plan was for Owen and me to do art and coding, and then Whit, who lives in Chicago, would do all the sounds and music remotely.</p>
<p><a href="http://struct.ca/wp-content/uploads/2011/05/dreamteam.jpg"><img class="alignnone size-full wp-image-619" title="dreamteam" src="http://struct.ca/wp-content/uploads/2011/05/dreamteam.jpg" alt="" width="640" height="361" /></a></p>
<h2>What?!</h2>
<p>Alright, so what did we actually make? Well, the theme of the jam was &#8220;What Just Happened!?&#8221; and so we decided to make a gameshow style party game called &#8220;What Just Happened?!&#8221; (note the punctuation, hah). The idea was that something would happen, and then as a player, you&#8217;d have to answer a question about what just happened. The key was that each player would have their own device to play on, and so we could do things like giving different information to each player and making them work together (or not) to answer correctly.</p>
<p><a href="http://struct.ca/wp-content/uploads/2011/05/logo.png"><img class="alignnone size-full wp-image-622" title="logo" src="http://struct.ca/wp-content/uploads/2011/05/logo.png" alt="" width="516" height="282" /></a></p>
<h2>How?!</h2>
<p>Neither Owen or I had done much work with HTML5 Canvas stuff, yet we decided that it was the best option. It was kind of a strange choice considering that we&#8217;re both professional iOS developers, but it really just made sense. We wanted to make something that anyone could play just by going to a website on their phone, rather than having to download a specific app. Creating it in HTML5 also meant that it would work on all kinds of devices, including iPhones, iPads, Android phones, and even Playbooks.</p>
<p>The golden rule of game jams is that you should use tech you&#8217;re very familiar with, but we blatantly disregarded that. Luckily, we found a framework called <a href="http://easeljs.com/">EaselJS</a> which let us get up-and-running with HTML5 dev pretty quickly. The backend multiplayer code is written with <a href="http://nodejs.org/">Node.js</a> and <a href="http://socket.io">Socket.io</a>, which I had used once before when creating <a href="http://nodetris.com">Nodetris</a>.</p>
<p>We split up the coding work pretty evenly between us. Owen did the majority of the frontend UI work, and I did most of the backend stuff and minigames, although we definitely switched roles a few times over the weekend (the Goat minigame was 100% Owen, for example). All of the work on art was also split between Owen and me, with some small debates about what style to use for the buttons and the logo, among other things <img src='http://struct.ca/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>We gave Whit the rough guideline of &#8220;create music that sounds like an old game show, something like The Price Is Right or Jeopardy&#8221;, and he did an amazing job. Whit also did all the announcer voices and other sound effects as well, all of which were spot-on.</p>
<p>Whit&#8217;s The Price Is Right style theme: <!-- degradable html5 audio and video plugin --><div class="audio_wrap html5audio"><div style="display:none;"><a href="http://struct.ca/wp-content/uploads/2011/05/music_mainTheme.mp3" title="Click to open" id="f-html5audio-0">Audio MP3</a><script type="text/javascript">AudioPlayer.embed("f-html5audio-0", {soundFile: "http://struct.ca/wp-content/uploads/2011/05/music_mainTheme.mp3"});</script></div><audio controls autobuffer id="html5audio-0" class="html5audio"><source src="http://struct.ca/wp-content/uploads/2011/05/music_mainTheme.mp3" type="audio/mpeg" /><a href="http://struct.ca/wp-content/uploads/2011/05/music_mainTheme.mp3" title="Click to open" id="f-html5audio-0">Audio MP3</a><script type="text/javascript">AudioPlayer.embed("f-html5audio-0", {soundFile: "http://struct.ca/wp-content/uploads/2011/05/music_mainTheme.mp3"});</script></audio></div><script type="text/javascript">if (jQuery.browser.mozilla) {tempaud=document.getElementsByTagName("audio")[0]; jQuery(tempaud).remove(); jQuery("div.audio_wrap div").show()} else jQuery("div.audio_wrap div *").remove();</script></p>
<p>Whit&#8217;s Jeopardy style theme: <!-- degradable html5 audio and video plugin --><div class="audio_wrap html5audio"><div style="display:none;"><a href="http://struct.ca/wp-content/uploads/2011/05/music_waiting.mp3" title="Click to open" id="f-html5audio-1">Audio MP3</a><script type="text/javascript">AudioPlayer.embed("f-html5audio-1", {soundFile: "http://struct.ca/wp-content/uploads/2011/05/music_waiting.mp3"});</script></div><audio controls autobuffer id="html5audio-1" class="html5audio"><source src="http://struct.ca/wp-content/uploads/2011/05/music_waiting.mp3" type="audio/mpeg" /><a href="http://struct.ca/wp-content/uploads/2011/05/music_waiting.mp3" title="Click to open" id="f-html5audio-1">Audio MP3</a><script type="text/javascript">AudioPlayer.embed("f-html5audio-1", {soundFile: "http://struct.ca/wp-content/uploads/2011/05/music_waiting.mp3"});</script></audio></div><script type="text/javascript">if (jQuery.browser.mozilla) {tempaud=document.getElementsByTagName("audio")[0]; jQuery(tempaud).remove(); jQuery("div.audio_wrap div").show()} else jQuery("div.audio_wrap div *").remove();</script></p>
<h2>The Result</h2>
<p>So after 3 days, TOJam ended at 8pm on Sunday night, and we finished right on time. The final game has six different minigame types (clock, robot, numbers, colours, penguins, goats). Each minigame has 3-4 possible questions that could be asked. For example, in the number game, it puts a different number on each person&#8217;s screen for a few seconds, and then asks a question like &#8220;which number was on the most screens&#8221; or &#8220;what&#8217;s the total of all the numbers that were shown&#8221;. Every minigame has tons of random variables, so no two games will ever be the same. Below is a quick quick demo video I made of the game:</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/jm3nBXhrTKw?fs=1&amp;hl=en_US" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="640" height="385" src="http://www.youtube.com/v/jm3nBXhrTKw?fs=1&amp;hl=en_US" allowfullscreen="true" allowscriptaccess="always"></embed></object></p>
<h2>Try it out</h2>
<p>If you want to try it out right now, just go to <a href="http://whatjh.com">WhatJH.com</a>. It&#8217;s set up so that you can create a room at whatever subdomain you want. You can play it by yourself by opening up a few browser tabs, although it&#8217;s a lot more fun to play with real people. It&#8217;s worth noting that if you want the awesome sounds+music, the host should be run in a real browser with Flash, because <a href="http://www.phoboslab.org/log/2011/03/the-state-of-html5-audio">HTML5 audio support is awful</a>.</p>
<p>So that&#8217;s about it! Let me know what you think in a comment or on Twitter. I&#8217;ve also included Owen&#8217;s demo video of it below, because he does a great job of showing what it looks like to go through a full game.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/lp6wQNGRlgU?fs=1&amp;hl=en_US" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="640" height="385" src="http://www.youtube.com/v/lp6wQNGRlgU?fs=1&amp;hl=en_US" allowfullscreen="true" allowscriptaccess="always"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://struct.ca/2011/wjh/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
<enclosure url="http://struct.ca/wp-content/uploads/2011/05/music_mainTheme.mp3" length="1520872" type="audio/mpeg" />
<enclosure url="http://struct.ca/wp-content/uploads/2011/05/music_waiting.mp3" length="309387" type="audio/mpeg" />
		</item>
		<item>
		<title>Game Makeover: MicroSquares</title>
		<link>http://struct.ca/2010/game-makeover-microsquares/</link>
		<comments>http://struct.ca/2010/game-makeover-microsquares/#comments</comments>
		<pubDate>Wed, 03 Nov 2010 06:40:03 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[App Store]]></category>
		<category><![CDATA[Game Design]]></category>
		<category><![CDATA[iDevBlogADay]]></category>
		<category><![CDATA[iOS Development]]></category>

		<guid isPermaLink="false">http://struct.ca/?p=473</guid>
		<description><![CDATA[For this week&#8217;s iDevBlogADay post, I&#8217;m going to do something a little different. Ok, it&#8217;s actually a lot different. Instead of talking about one of my own games, I&#8217;m going to talk about someone else&#8217;s game. I&#8217;ve been exchanging emails &#8230; <a href="http://struct.ca/2010/game-makeover-microsquares/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>For this week&#8217;s <a href="http://idevblogaday.com">iDevBlogADay</a> post, I&#8217;m going to do something a little different. Ok, it&#8217;s actually a lot different. Instead of talking about one of my own games, I&#8217;m going to talk about <em>someone else&#8217;s game</em>.</p>
<p>I&#8217;ve been exchanging emails over the last couple weeks with Parker, the developer of an iPhone game called MicroSquares. He originally emailed me to ask some questions about what he could do to improve the popularity of his game, and wondered if I had any tips to help bring his game to the next level. After looking at his game, I realized that it had potential, but there were definitely some things that could use improvement.</p>
<p>In the same timeframe I also had some similar conversations with other developers, and I realized that it would be great to make my suggestions for MicroSquares public, so that other developers could adapt them, learn from them and discuss them. Parker hasn&#8217;t heard any of these suggestions yet, but he did give me permission to post this on my blog.</p>
<p>I should point out that I&#8217;m definitely no expert at any of this stuff; these are just my opinions and sometimes they may be completely wrong. My marketing advice comes from my experience with Trainyard, my design and usability advice comes from my days as a Flash developer, and my gameplay advice comes from hundreds of hours playing iOS games and working on games of my own. This post will probably come across as a bit critical, but I&#8217;m just being honest about the things I think Parker will have to do to make MicroSquares succeed. There are plenty of great aspects to the game, but I&#8217;m intentionally focusing on the negative because that&#8217;s the stuff that needs improvement. He&#8217;s got the core of a good game here and it really does have potential, but there&#8217;s still some solid work ahead.</p>
<p><a href="http://struct.ca/wp-content/uploads/2010/11/photo.jpg"><img class="alignnone size-full wp-image-487" title="photo" src="http://struct.ca/wp-content/uploads/2010/11/photo.jpg" alt="" width="481" height="320" /></a></p>
<h2>What is MicroSquares?</h2>
<p>MicroSquares (<a href="http://itunes.apple.com/app/microsquares/id397648393?mt=8">iTunes link</a>, 99c) is Parker&#8217;s first and only iPhone game. it works like this: you&#8217;re a square floating among other squares of varying sizes. You tilt to move, and grow if you eat smaller squares and die if you&#8217;re hit by bigger squares.  The game is relatively simple and not entirely unique, but it&#8217;s fun. Some extra flavour is added via powerups that give you abilities such as &#8220;boost&#8221; and &#8220;magnetism&#8221;. I&#8217;d highly recommend downloading the game so you can &#8220;follow along at home&#8221;, it&#8217;s only 99c and I&#8217;m sure Parker would appreciate it! I&#8217;ll be providing screenshots here in the post so you can see what I&#8217;m talking about.</p>
<p><a href="http://struct.ca/wp-content/uploads/2010/11/photo4.png"><img class="alignnone size-full wp-image-489" title="photo4" src="http://struct.ca/wp-content/uploads/2010/11/photo4.png" alt="" width="480" height="320" /></a></p>
<h2>Visuals</h2>
<p>I want to get the visuals out of the way, because I think that&#8217;s the area where the game needs the most tweaking. I heard this simple rule from someone who is a much better designer than me: &#8220;never use gradients with vector art&#8221;, and I think it&#8217;s true 99% of the time. There are definitely some high-end graphic artists who can pull it off, but for us mere mortals, it&#8217;s best to stay away from it. Gradients give vector art a cheesy &#8220;amateur Flash animation&#8221; vibe. If Parker replaces all the little gradients with flat colours I think it&#8217;ll give the whole thing a cleaner look.</p>
<p>On the topic of the squares, the main square is just a green box. That&#8217;s OK, but this&#8217;d be a great place to create a character with some personality. It doesn&#8217;t have to be Pixar level stuff, just slap a couple eyeballs on him and see how he looks. I think this is the sort of game that could really benefit from having a unique lead character. It would give the game a bit more of a &#8220;fun&#8221; vibe, and it&#8217;d add the potential to create other characters, sequels, and a eventually a whole brand.</p>
<p><a href="http://struct.ca/wp-content/uploads/2010/11/Greenie.png"><img title="Greenie" src="http://struct.ca/wp-content/uploads/2010/11/Greenie.png" alt="" width="633" height="275" /></a></p>
<p>It&#8217;d be cool if the powerups had icons on them instead of letters like &#8220;B&#8221; and &#8220;I&#8221;. Icons are a handy way to let users build up associations quickly, and I don&#8217;t think there would be any trouble coming up with icons for each power-up.</p>
<p>The score seems to be the most important stat, so I feel like it should be given more emphasis, right now it&#8217;s tiny and tucked away in the top corner.</p>
<p><a href="http://struct.ca/wp-content/uploads/2010/11/photo1.png"><img class="alignnone size-full wp-image-491" title="photo1" src="http://struct.ca/wp-content/uploads/2010/11/photo1.png" alt="" width="480" height="320" /></a></p>
<p>For the menus, the font needs to change. Fonts should always match and support the subject matter, and I feel pretty strongly that marker/handwritten fonts should only be used for drawing apps and kids apps.  The rest of the game has a fairly clean look, and the story is &#8220;sciency&#8221;, but the font *really* throws it all into confusion. A nice clean font would do wonders for the look of the entire UI. In my opinion, this is the number one problem with the overall look of the game right now.</p>
<h2>Audio</h2>
<p>The music is *very* ambient and drone-y. At first I didn&#8217;t like it, but it started to grow on me. That being said, I still don&#8217;t think it suits the feel of the game. Music that&#8217;s upbeat and intense would make the game much more exciting.</p>
<p>The sound effects also need some love. Some are just subtle but others are non existent. The current &#8220;eat&#8221; sound is just a click, but I think it should be an upward &#8220;growth&#8221;sound. The powerups hardly make any sound, and there isn&#8217;t even a sound for when you die. This could all be remedied with a few well-picked sound effects.</p>
<h2>Gameplay</h2>
<p>Overall, I think the gameplay is great. It takes a little getting used to, but it&#8217;s fun to float around eating and avoiding. I like the on-screen &#8220;re-centering&#8221; button, but the tilt controls need to be a bit more sensitive. I found I was tilting my device too much while playing. Any time I&#8217;m giving advice on a tilt game, I always have to recommend <a href="http://itunes.apple.com/app/tilt-to-live/id335454448?mt=8">Tilt to Live</a> and <a href="http://itunes.apple.com/app/dark-nebula-episode-two/id375116167?mt=8">Dark Nebula</a>. These games aren&#8217;t just good examples, they&#8217;re the absolute pinnacle of tilt control on the iPhone. Parker should have a close look at both of these games to try to model his controls after them as closely as possible, as they really are perfect.</p>
<p><a href="http://struct.ca/wp-content/uploads/2010/11/photo8.png"><img class="alignnone size-full wp-image-495" title="photo8" src="http://struct.ca/wp-content/uploads/2010/11/photo8.png" alt="" width="480" height="320" /></a></p>
<p>I think Parker needs to decide whether he wants this game to be a &#8220;zen&#8221; game, or an intense &#8220;survive-at-all-costs&#8221; game. Right now I think it feels too mellow, and the pace just needs to be amped up a couple notches. The game offers four difficulty modes: Easy, Normal, Hard and Insane. I think that&#8217;s too many. Most games like this only need a normal mode and an insane mode. The normal mode should start easy, but get hard pretty quickly. With too many difficulty options the player will just get confused about whether they&#8217;re playing in the right mode or the best mode for them, and they&#8217;ll be frustrated. As I was playing the current game, in the easier modes (all the way up to hard), the game was really too easy and it took a long, long time to finally die. I think it&#8217;d be best to keep the average &#8220;normal&#8221; game time in the 1-3 minute range, right now it feels like it&#8217;s way longer.</p>
<p><a href="http://struct.ca/wp-content/uploads/2010/11/photo6.png"><img class="alignnone size-full wp-image-492" title="photo6" src="http://struct.ca/wp-content/uploads/2010/11/photo6.png" alt="" width="480" height="320" /></a></p>
<p>At this point, MicroSquares only has local highscores. I think it&#8217;d be in Parker&#8217;s best interest to invest some time into learning and implementing OpenFeint or GameCenter. I think he&#8217;ll be surprised at just how easy it is. Online scoreboards could help a game like this to thrive and build a following.</p>
<h2>Marketing</h2>
<p>I know most of us developers hate the marketing side of things, but it&#8217;s a necessary evil. MicroSquares doesn&#8217;t have a YouTube trailer, but it needs one. A video is a fantastic way to show people what your game is all about, and you can reuse it all over place, especially on your promotion site instead of a wall-of-text explaining your game. Making a trailer really isn&#8217;t that hard to do, even if you&#8217;ve never done it before, and there are plenty of people out there who&#8217;ll be happy to point you in the right direction if you need help.</p>
<p>The actual content in the app description for MicroSquares is great, but the order needs some tweaking. Users often only see the first two lines, so make sure you say the most important bits there! I like to follow this up those lines with a bunch of bullet points, and then finally the paragraph-heavy description stuff last.</p>
<p><a href="http://struct.ca/wp-content/uploads/2010/11/photo7.png"><img class="alignnone size-full wp-image-494" title="photo7" src="http://struct.ca/wp-content/uploads/2010/11/photo7.png" alt="" width="480" height="320" /></a></p>
<p>Just one small note for the credits screen. It&#8217;s great to ask for reviews, but Apple actually allows devs to link directly to the review page, so that&#8217;s something every single developer should utilize. Do everything you can to make it as easy as possible for users to review your game!</p>
<p><a href="http://struct.ca/wp-content/uploads/2010/11/icon.png"><img class="alignnone size-full wp-image-493" title="icon" src="http://struct.ca/wp-content/uploads/2010/11/icon.png" alt="" width="194" height="193" /></a></p>
<p>I&#8217;m not a designer, so I can&#8217;t say exactly what needs to change here, but this icon definitely needs some work. This is one of those places where a professional designer can really come in handy.</p>
<h2>Miscellaneous</h2>
<p>Just a few random notes for MicroSquares:</p>
<ul>
<li>It seems to crash on the iPad. Not the end of the world since it&#8217;s not Universal, but still should be fixed.</li>
<li>Currently the pause button gets shown when we&#8217;re already in the pause menu (and in every menu), which seems a little weird.</li>
<li>I love how Parker is tracking tons of stats, but I think they need to be presented in a bit more of a fun way, right now it&#8217;s just a plain bulleted list.</li>
<li>The red titles on the blue background in the menus clash heavily. I think if it was just blue and green with no red, that&#8217;d probably be best.</li>
<li>The tutorial is basically fine, but it needs bigger &#8220;left&#8221;, &#8220;right&#8221;, and &#8220;exit&#8221; buttons.</li>
<li>The powerups are decent, but I think they&#8217;d be way more fun if there were more visual effects, like particle trails and other cool stuff.</li>
</ul>
<h2>Wrapping up</h2>
<p>That&#8217;s about it! I realize this post is strange compared to the sort of things I usually post, but I really wanted to try something different as an experiment. It was fun. I&#8217;m sure Parker will find this handy, and I hope that the rest of you will pick up some useful things too.</p>
<p><em>PS: I&#8217;m going to check in on MicroSquares &#8220;after the transformation&#8221; to see how things have changed, watch for that post in a few months.</em></p>
<p><em>UPDATE: I&#8217;ve heard from Parker that he got a lot out of this post, and he&#8217;s going to be working to implement most of the changes that were suggested. Stay tuned!<br />
</em></p>
<p><em><br />
</em></p>
]]></content:encoded>
			<wfw:commentRss>http://struct.ca/2010/game-makeover-microsquares/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>Training</title>
		<link>http://struct.ca/2010/training/</link>
		<comments>http://struct.ca/2010/training/#comments</comments>
		<pubDate>Wed, 06 Oct 2010 04:58:33 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Game Design]]></category>
		<category><![CDATA[iDevBlogADay]]></category>
		<category><![CDATA[iOS Development]]></category>
		<category><![CDATA[Trainyard]]></category>

		<guid isPermaLink="false">http://struct.ca/?p=314</guid>
		<description><![CDATA[For today&#8217;s iDevBlogADay post, I&#8217;m going to be talking about in-game tutorials. I&#8217;ll explain what they are, why you should use them, and how I implemented them in Trainyard and Trainyard Express. A foreword: I know a lot of people &#8230; <a href="http://struct.ca/2010/training/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>For today&#8217;s <a href="http://idevblogaday.com">iDevBlogADay</a> post, I&#8217;m going to be talking about in-game tutorials. I&#8217;ll explain what they are, why you should use them, and how I implemented them in Trainyard and Trainyard Express.</p>
<p><em>A foreword: I know a lot of people are expecting me to talk about how Trainyard Express has performed since being released last Thursday. Well, it&#8217;s been doing amazingly and blowing away all of my expectations. It&#8217;s currently the #1 free app in Italy and it&#8217;s climbing quickly in the UK and in Canada. There&#8217;s a lot I could say about it, but I feel like it&#8217;s only getting started and I really don&#8217;t have any hard conclusions to provide yet&#8230; Only to say that doing a lite version was 100% the right thing to do. I feel like I&#8217;m probably giving away too much content, but I think that&#8217;s what I have to do to get noticed, and it&#8217;s working, so I&#8217;m ok with that. Now back to your regularly scheduled post:</em></p>
<h2>What are in-game tutorials?</h2>
<p>In-game tutorials are a visual way to show a user how to play your game within the game itself, usually using the game&#8217;s own engine. I think it might be easier to explain what they are by explaining what they&#8217;re not: They&#8217;re not instructions screens, controls screens, or long-winded paragraphs of text.</p>
<h2>Why use in-game tutorials?</h2>
<p>If you want users to enjoy your game, they&#8217;re going to have to be able to actually play it. I know it seems simple, but I&#8217;ve played way too many iOS games where it felt like figuring out HOW to play was a puzzle in itself. A paragraph of text is never a good way to teach somehow how to play your game. Your instructions will probably introduce all sorts of terminology that the user won&#8217;t be familiar with, which&#8217;ll just confuse them. I&#8217;d be willing to bet a lot of money that most users don&#8217;t read ANY of the text they see in games anyway.</p>
<p>I haven&#8217;t done any localization in Trainyard, but my two biggest sales regions this past week were Japan and Italy. I believe this is in large part to the in-game tutorials, because players can get a complete understanding of how the game works even if they don&#8217;t understand English. As a part-time dev, I can&#8217;t justify spending money on localization, but having great in-game tutorials is the next best thing. Here&#8217;s an interesting challenge: replace all of your game&#8217;s text with wingdings or some other gibberish font, then give it to someone who&#8217;s never played it before, and just watch (no helping!) as they try to ∂learn the game.</p>
<p>I know the usual alternative to a &#8220;wall of text&#8221; is to create a few pages of instructions. These are usually quite visual, with screenshots of the game itself and little arrows showing what certain things are and what they do. This approach is much better than text, and it&#8217;s good enough for some games, but it&#8217;s still not ideal. You&#8217;ve got your whole game engine sitting there, why not use it? If it&#8217;s at all possible, you show what it looks like when the game is actually being played. I know I learn way more about how a game works from watching a Youtube video of someone playing it than I do by reading it&#8217;s instruction screens. There&#8217;s something to be said for &#8220;discoverable mechanics&#8221;, and you definitely don&#8217;t have to give it all away, but the user shouldn&#8217;t ever feel like they might be playing the game wrong.</p>
<h2>How did you do tutorials in Trainyard?</h2>
<p>The tutorials in Trainyard are spread out over the first 10 &#8220;cities&#8221; of puzzles. That means that there&#8217;s a tutorial roughly every five puzzles. I didn&#8217;t want to swamp the user right at the start, so I only gave them the bare minimum amount of information they needed at any given time. I think it worked out pretty well and gave the game a nice flow.</p>
<p><img class="alignnone size-full wp-image-323" title="Welcome" src="http://struct.ca/wp-content/uploads/2010/10/photo3.png" alt="" width="320" height="480" /></p>
<p>The tutorials are made from a few components, but the key thing is that they look like the game and they use the game&#8217;s engine. I made a hand that dispatches fake touch events on the Trainyard grid just like real touches do.  The ridiculously ugly hand has an over-the-top tapping animation so that it&#8217;s really easy to see what it&#8217;s doing at any given point in time.</p>
<p><img class="alignnone size-full wp-image-324" title="Hands" src="http://struct.ca/wp-content/uploads/2010/10/Hands.png" alt="" width="600" height="133" /></p>
<p>There are multiple tutorials on each different concept, and each individual tutorial is broken into steps. A step is a section of the tutorial that plays out and then waits for user input to continue. I never assume the player has a certain reading speed, so any time there&#8217;s text on the screen, I let them choose when to continue. Each step is broken into actions, which are basically any of the things that can happen, like moving the hand, showing text, and resetting the puzzle.</p>
<p><img class="alignnone size-full wp-image-325" title="Drag a line" src="http://struct.ca/wp-content/uploads/2010/10/photo5.png" alt="" width="320" height="480" /></p>
<p>I wanted everything to be dynamic and easy to edit and tweak, so I built a simple xml file to describe the tutorials. I won&#8217;t go into details about what I do with each node, but feel free to ask me if you&#8217;ve got questions about how I implemented any specific part of it. I know the schema is a bit weird, but it makes a lot of sense once you get how the system works. You can see the xml for all the tutorials here: <a href="http://struct.ca/files/trainyard/tutorials.xml">http://struct.ca/files/trainyard/tutorials.xml</a></p>
<h2>Random Tidbits</h2>
<p>In the original 1.00 build of the game, there was no tutorial skip button. It was a common request from beta testers, but I decided against it because I was willing to risk aggravating users early on to keep them from getting aggravated later (by not knowing a technique to solving a puzzle). This was such a common request after release that I eventually caved and put it in, but with a little adjustment: If players try to skip a puzzle, they&#8217;ll get an &#8220;Are you sure you want to skip this tutorial?&#8221; popup, so they have to think hard about their decision.</p>
<p><img class="alignnone size-full wp-image-328" title="Are you sure?" src="http://struct.ca/wp-content/uploads/2010/10/photo1fixed.png" alt="" width="320" height="480" /></p>
<p>Another first-release complaint was with the speed of the tutorials. Everyone complained that they were way too slow, so I shortened every single delay and generally made it all run much faster. I also took out quite a few of the text popups, and even took out one tutorial entirely (the one that explains how to go around rocks).</p>
<p>It wasn&#8217;t until the last 20% of Trainyard&#8217;s development that I switched to using in-game tutorials. I had written and implemented a whole pile of text-only instructions/tutorials for the first set of puzzles, but it just seemed rushed and amateur. The in-game tutorial system probably added a month&#8217;s work to the project (working part time), but I think it was worth every minute I spent.</p>
<p><em>PS: The whole &#8220;text vs. gameplay&#8221; thing also plays an important role in marketing. Why have bunch of bullet points about your game on your site, when you could put a video of someone playing it instead? (ala </em><a href="http://minecraft.net"><em>minecraft.net</em></a><em>).</em></p>
]]></content:encoded>
			<wfw:commentRss>http://struct.ca/2010/training/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Going 8-bit</title>
		<link>http://struct.ca/2010/going-8-bit/</link>
		<comments>http://struct.ca/2010/going-8-bit/#comments</comments>
		<pubDate>Wed, 22 Sep 2010 03:35:41 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Game Design]]></category>
		<category><![CDATA[iDevBlogADay]]></category>
		<category><![CDATA[iOS Development]]></category>
		<category><![CDATA[The Future Game]]></category>

		<guid isPermaLink="false">http://struct.ca/?p=220</guid>
		<description><![CDATA[In last week&#8217;s iDevBlogADay post I talked about how I was considering making my next game in the “doodle” style, but I eventually decided otherwise. This week, I’ll talk about the style I’m going with instead: 8-bit. What is 8-bit? &#8230; <a href="http://struct.ca/2010/going-8-bit/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>In last week&#8217;s <a href="http://idevblogaday.com/">iDevBlogADay</a> post I talked about how I was considering making my next game in the “doodle” style, but I eventually decided otherwise. This week, I’ll talk about the style I’m going with instead: <strong>8-bit</strong>.<br />
<img class="alignnone size-full wp-image-227" style="font-family: Georgia, 'Bitstream Charter', serif; color: #444444; line-height: 1.5; max-width: 640px; margin: 0px; border: 0px initial initial;" title="NES" src="http://struct.ca/wp-content/uploads/2010/09/nesA.png" alt="" width="300" height="297" /></p>
<h2>What is 8-bit?</h2>
<p>The 8-bit name comes from 8-bit computer architecture, but the 8-bit style itself is really based on games from the 8-bit console era (NES and Master System). These days, the name “8-bit” seems to cover stuff from the 16-bit era as well. 8-bit graphics are called <a href="http://en.wikipedia.org/wiki/Pixel_art">pixel art</a>, and they have low resolution and low colour depth.  The music in 8-bit games has a very distinct sound and is often called “<a href="http://en.wikipedia.org/wiki/Chiptunes">chiptunes</a>”.</p>
<p><a href="http://eboy.com"><img class="alignnone size-full wp-image-225" title="eBoy" src="http://struct.ca/wp-content/uploads/2010/09/eboy.png" alt="" width="592" height="428" /></a></p>
<h2>Why 8-bit?</h2>
<p>Let&#8217;s be honest: it’s just plain cool. Unlike doodle graphics, I get the sense that using pixel art adds credibility instead of taking it away. It’s been used a lot, and yet it never really seems overused. Pixel art is also a ton of fun to create. It requires a certain amount of skill, but it’s much easier to make (for me) than the style I was originally considering for my next game (pre-rendered 3D).</p>
<p>8-bit inspired music is also awesome, with a style all its own. I’m planning to make the music for this game myself, mostly because I’d love to dabble in making music that sounds like this: <a href="http://georgeandjonathan.com">http://georgeandjonathan.com/</a>.</p>
<p><a style="font-family: Georgia, 'Bitstream Charter', serif; color: #0066cc; line-height: 1.5;" href="http://georgeandjonathan.com/"><img class="alignnone size-full wp-image-231" style="font-family: Georgia, 'Bitstream Charter', serif; color: #444444; line-height: 1.5; max-width: 640px; margin: 0px; border: 0px initial initial;" title="The Best Music" src="http://struct.ca/wp-content/uploads/2010/09/TheBestMusic.png" alt="" width="528" height="82" /></a></p>
<h2>Implementing 8-bit</h2>
<p>I’m not 100% certain of the approach I’m going end up taking to get the graphics to look right. The general idea I’ve seen in most 8-bit iOS games is that they double the pixel sizes, so that each in-game pixel takes up four real screen pixels(sixteen on the Retina display). For now, I’m actually using double-sized assets and rendering in 480&#215;320 but I may move to using a half-size buffer and assets so that it’s truly low-res.</p>
<p>I’ve seen different 8-bit games use different approaches. For example, Super Quick Hook has low res in-game sprites, but the text is actually pretty small and high res:</p>
<p><a href="http://itunes.apple.com/app/super-quickhook/id375941471?mt=8"><img class="alignnone size-full wp-image-239" title="SQHA" src="http://struct.ca/wp-content/uploads/2010/09/SQHA.png" alt="" width="480" height="320" /></a></p>
<h2>8-bit tools</h2>
<h3><a href="http://arstechnica.com/apple/reviews/2010/05/review-sprite-something-for-ipad-retro-pixel-based-design.ars"><strong>Sprite Something</strong></a></h3>
<p>Sprite something is *awesome*. It’s an iPad app for creating pixel art sprites, and it’s what convinced me that 8-bit was the right style for my game. You can use it to easily create pixel drawings, which it’ll export as transparent sprite sheets. Well worth the $2.99</p>
<h3><a href="http://www.drpetter.se/project_sfxr.html"><strong>SFXR</strong></a></h3>
<p>SFXR is a simple 8-bit retro sound generator that was created as a way for devs at Ludum Dare to create sound effects really quickly.  It’s open source, and has been ported to Flash for convenient in-browser use: <a href="http://www.superflashbros.net/as3sfxr/">http://www.superflashbros.net/as3sfxr/</a></p>
<h3><strong><a href="http://www.warmplace.ru/soft/sunvox/index.php">SunVox</a></strong></h3>
<p>SunVox is a free cross-platform music making application.  I have to admit that I haven’t used SunVox yet, but it looks really cool, and I’ve heard some awesome music created with it. For music creation on the go, there&#8217;s also a <a href="http://itunes.apple.com/app/sunvox/id324462544?mt=8">SunVox iPhone app</a> ($4.99).</p>
<h2>Inspirational 8-bit iOS games</h2>
<p><a href="http://itunes.apple.com/app/the-incident/id385533456?mt=8">The Incident</a><br />
<a href="http://itunes.apple.com/app/the-incident/id385533456?mt=8"><img class="alignnone size-full wp-image-230" title="The Incident" src="http://struct.ca/wp-content/uploads/2010/09/the_incident_2.png" alt="" width="480" height="320" /></a></p>
<p><a href="http://itunes.apple.com/app/super-quickhook/id375941471?mt=8">Super Quick Hook</a><br />
<a href="http://itunes.apple.com/app/super-quickhook/id375941471?mt=8"><img title="Super Quick Hook" src="http://struct.ca/wp-content/uploads/2010/09/superQuickHook.jpg" alt="" width="480" height="320" /></a></p>
<p><a href="http://itunes.apple.com/app/canabalt/id333180061?mt=8"> Canabalt</a><br />
<a href="http://itunes.apple.com/app/canabalt/id333180061?mt=8"><img class="alignnone size-full wp-image-224" title="Canabalt" src="http://struct.ca/wp-content/uploads/2010/09/canabalt-02.png" alt="" width="480" height="320" /></a></p>
<p><a href="http://itunes.apple.com/app/gravity-hook-hd/id381641994?mt=8"> Gravity Hook HD</a><br />
<a href="http://itunes.apple.com/app/gravity-hook-hd/id381641994?mt=8"><img class="alignnone size-full wp-image-226" title="Gravity Hook HD" src="http://struct.ca/wp-content/uploads/2010/09/gravity-hook-hd_2.jpg" alt="" width="320" height="480" /></a><a href="http://itunes.apple.com/ca/app/gravity-hook-hd/id381641994?mt=8"><img class="alignnone size-full wp-image-246" title="Gravity Hook Classic" src="http://struct.ca/wp-content/uploads/2010/09/gravityhooklowres.jpg" alt="" width="320" height="480" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://struct.ca/2010/going-8-bit/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>The Doodle Dilemma</title>
		<link>http://struct.ca/2010/the-doodle-dilemma/</link>
		<comments>http://struct.ca/2010/the-doodle-dilemma/#comments</comments>
		<pubDate>Wed, 15 Sep 2010 00:59:57 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[App Store]]></category>
		<category><![CDATA[Game Design]]></category>
		<category><![CDATA[iDevBlogADay]]></category>

		<guid isPermaLink="false">http://struct.ca/?p=201</guid>
		<description><![CDATA[Over the past week I've been considering using the "doodle" style for one of my upcoming games. I mentioned it on twitter and got a variety of responses, most of them very opposed to doodle games. I completely understand everyone's reactions, as they're the same as my own, but it's a question that I found interesting, because it gets to the roots of why some developers make (or don't make) some types of game. For this week's iDevBlogADay article, I'm going to delve a little deeper into the Doodle Dilemma. <a href="http://struct.ca/2010/the-doodle-dilemma/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Over the past week I&#8217;ve been considering using the &#8220;doodle&#8221; style for one of my upcoming games. I <a href="http://twitter.com/MattRix/status/23256567792">mentioned it on twitter</a> and got a variety of responses, most of them very opposed to doodle games. I completely understand everyone&#8217;s reactions, as they&#8217;re the same as my own, but it&#8217;s a question that I found interesting, because it gets to the roots of why some developers make (or don&#8217;t make) some types of games. For this week&#8217;s <a href="http://idevblogaday.com">iDevBlogADay</a> article, I&#8217;m going to delve a little deeper into the Doodle Dilemma.</p>
<p><a href="http://itunes.apple.com/ca/app/doodle-jump-be-warned-insanely/id307727765?mt=8"><img class="alignnone size-full wp-image-206" title="Doodle Jump" src="http://struct.ca/wp-content/uploads/2010/09/Doodle-Jump.jpg" alt="" width="480" height="360" /></a></p>
<h2>What is a doodle game?</h2>
<p>If you&#8217;ve only played one doodle game, it&#8217;s probably Doodle Jump. Doodle Jump is the granddaddy of all doodle games. There were other doodle-style games before it (like Crayon Physics), but <a href="http://toucharcade.com/2010/06/25/doodle-jump-surpasses-5-million-downloads/">Doodle Jump&#8217;s 5 million sales</a> are what really brought the style into the mainstream. Since then a <a href="http://appshopper.com/search/?cat=1&amp;device=all&amp;sort=rel&amp;dir=desc&amp;search=doodle">bajillion doodle games</a> have popped up on the app store. It&#8217;s important to note that &#8220;doodle&#8221; is just a graphical style, not an actual genre, so there are doodle games in just about every games category. The vast majority are terrible, but there are some truly great ones like <a href="http://toucharcade.com/2010/07/03/doodle-god-your-very-own-chemistry-set-of-life/">Doodle God</a>.</p>
<p><span style="font-size: 23px; color: #000000; line-height: 35px;">Why make a doodle game?</span></p>
<p>The first and most obvious reason to make a doodle game is to cash in on some of Doodle Jump&#8217;s success. Having &#8220;doodle&#8221; in your game&#8217;s name means it&#8217;ll be more likely to come up when users search for Doodle Jump. When doodle games started appearing after Doodle Jump got popular, it was a common reaction to <a href="http://blog.louisgray.com/2010/03/step-1-rip-off-popular-iphone-game-step.html">think they were sequels to the original game</a>. I imagine a lot of users still think the same thing upon seeing games with &#8220;doodle&#8221; in the title and hand drawn visuals.</p>
<p>The second reason to consider making a doodle game is because it&#8217;s easier to produce the graphics. Let&#8217;s be honest, a lot of us developers don&#8217;t have great artistic abilities. Doodle visuals are a great way for us to make passable art pretty quickly by ourselves. Some developers seem to take the opportunity to make their doodle games look as awful as possible, but I really think that even doodle games take a lot of polish and planning to get everything just right. Take a look at the Doodle God screenshot below for an example of a well polished doodle game.</p>
<p><a href="http://itunes.apple.com/us/app/doodle-god/id376374689?mt=8"><img title="Doodle God" src="http://struct.ca/wp-content/uploads/2010/09/Doodle-God.png" alt="" width="535" height="389" /></a></p>
<h2>What&#8217;s wrong with doodle games?</h2>
<p>Nothing, when it comes to the visual style. As long as the hand-drawn looks makes sense for the type of game you&#8217;re making, I see absolutely no problem using it. With games like Crayon Physics, the doodle style totally makes sense, but with other games, the style really feels like a stretch. The real problems have to do with using &#8220;Doodle&#8221; in your game&#8217;s name. It just feels icky and unoriginal. It makes it seem like you&#8217;re trying really hard to mooch off Doodle Jump&#8217;s success. It&#8217;s purely a business decision, rather than an artistic or creative one, so it&#8217;s pretty much the closest thing in the iOS world to &#8220;selling out&#8221;. This leads me to the next question:</p>
<h2>Why do you make games?</h2>
<p>Do you make games to express yourself, or do you make games to make money? These two things aren&#8217;t mutually exclusive, but I&#8217;d bet most people who read this blog would be slightly closer to the &#8220;express yourself&#8221; side of the scale. I know that&#8217;s definitely the side I was on when I made Trainyard, but as I&#8217;ve been working on my next game and deciding its brand, I&#8217;ve arrived at the real Doodle Dilemma: is it worth selling out in the short term so that I can make the games I really want to make in the long term?</p>
<p><img class="alignnone size-full wp-image-209" title="Sellout!" src="http://struct.ca/wp-content/uploads/2010/09/sellout.jpg" alt="" width="300" height="262" /></p>
<h2>Decision time</h2>
<p>I&#8217;ve decided to not make my next game a doodle game, or even in the hand-drawn style. If making a doodle game guaranteed a hit, then maybe I&#8217;d do it, but I&#8217;d rather not put the reputation I&#8217;ve built from making Trainyard on the line. However, it is seriously tempting to set up a secondary &#8220;crapware&#8221; company, just to see what sticks. I&#8217;ve also made a promise that if my next game doesn&#8217;t do well, I&#8217;ll rebrand it as a doodle game (perhaps under the crapware label) and do some good old a/b testing. Maybe you&#8217;ll even see &#8220;<a href="http://twitter.com/kwigbo/statuses/24001568474">Doodle Trains</a>&#8221; at some point in the future.</p>
<p><em>Sidenote A: I&#8217;ve always wondered if Doodle Jump&#8217;s success was influenced more by having &#8221;WARNING: HIGHLY ADDITIVE&#8221; in its title rather than its actual visual style.</em></p>
<p><em>Sidenote B: Ngmoco just released &#8220;We Doodle&#8221;, which is basically a rebranded freemium version of their &#8220;Charadium&#8221; game. I&#8217;d say this shows that even the big studios aren&#8217;t immune from making doodle games.</em></p>
<p><em>Random thoughts: There seems to be a lot of pressure in the indie games world to constantly create new and unique game concepts, and for some reason, along with that, intentional marketing and business tactics are often frowned upon. I get the idea that the devs of some games, like Canabalt, even feel that having a 99c sale would be a form of selling out. I&#8217;ve also noticed that indie iOS devs take a ton of flak about things like in-app-payments, often moreso than their big studio counterparts.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://struct.ca/2010/the-doodle-dilemma/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Trains on Paper</title>
		<link>http://struct.ca/2010/trains-on-paper/</link>
		<comments>http://struct.ca/2010/trains-on-paper/#comments</comments>
		<pubDate>Tue, 10 Aug 2010 23:40:14 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Game Design]]></category>
		<category><![CDATA[iDevBlogADay]]></category>
		<category><![CDATA[Trainyard]]></category>
		<category><![CDATA[Workflow]]></category>

		<guid isPermaLink="false">http://struct.ca/?p=40</guid>
		<description><![CDATA[When I started coming up with ideas for my first iDevBlogADay post, I considered writing about everything from procrastination to Xcode folder references. It took a couple helpful tweets to make me realize I should write about something I really know about: the Trainyard development process. <a href="http://struct.ca/2010/trains-on-paper/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>When I started coming up with ideas for my first <a href="http://idevblogaday.com">iDevBlogADay</a> post, I considered writing about everything from procrastination to Xcode folder references. It took a couple helpful tweets to make me realize I should write about something I really know about: the process of developing Trainyard.</p>
<p>Trainyard is my iPhone game. It’s a grid-based logic puzzle game where the goal is to get each train from its initial station to a goal station. Every train starts out a certain colour, and most puzzles require the player to mix and merge trains together so that the correctly coloured trains end up at the right stations. The player&#8217;s only method of input is drawing tracks for the trains to follow. It’s kind of hard to explain with words, so if you’re confused you should <a href="http://www.youtube.com/watch?v=xWtIb7NEYgM">watch the trailer</a>.</p>
<p>I came up with the idea for the game a year and a half ago, during a period where I was actually working on ideas for Flash games. At that time I didn’t have any iPhone development experience, and had barely even looked into Objective-C. I did, however, have an hour long commute by train which gave me plenty of time to come up with interesting game ideas. My main game prototyping tools were (and still are) a notepad and an Acer Asprire One netbook. Yes, a netbook. I’ll probably write more about that little guy in a future post. For now let’s focus on the notepad.</p>
<p>Every game designer should carry around a notepad as much as possible. You never know when the spark of a great game idea is going to come to you. I went through notepads and notebooks of all shapes and sizes while working on Trainyard, so I really don’t think it matters which kind you use as long as you’ve got one. I suppose you could try an iPhone app for recording ideas, but there’s something special about being able to sketch with a pen.</p>
<p><img class="alignnone size-full wp-image-50" title="Trainyard Moleskine Page 1" src="http://struct.ca/wp-content/uploads/2010/08/moleskine-01.jpg" alt="" width="640" height="504" /></p>
<p>A notepad is more than a place to write down the gist of an idea, it’s also a great place to flesh concepts out and figure out how you’re going to execute them. In the case of Trainyard, my initial idea (as you can see on the page above) was “each train starts with a solid colour that they have to mix and deliver”. So far so good. Ok, let’s look a little further down that page: “[trains] can collide, have two cars, and pick up paint”. That’s quite different. My original idea was that each train had several cars to pull, and each train would also have its own control panel where you could adjust the speed before pressing “Go”. Confusing? Yes. Would it make for a good game? Maybe, but it&#8217;s definitely not Trainyard.</p>
<p><img class="alignnone size-full wp-image-51" title="Trainyard Moleskine Page 2" src="http://struct.ca/wp-content/uploads/2010/08/moleskine-02.jpg" alt="" width="640" height="504" /></p>
<p>On this second page you can see some more questionable ideas: “Game could be hex based instead of square”, “limitations include fixed quantities of pieces”.  At this point in the process I was thinking of limiting the user’s selection of pieces like a lot of other similar puzzle games do. After thinking through the mechanic over the next few days, I realized that I could make it work without limiting the user&#8217;s piece selection. I think the flexible unlimited-track nature of Trainyard is now something that really makes it unique. At one point a lot later in the prototype process I even made a <a href="http://trainyard.ca/share/wip/HexGridTest.swf">hex based prototype</a> (flash link)  just for fun, but it felt weird and confusing.</p>
<p>After those first few sketches, I worked over the course of a few days to eliminate most of the extraneous ideas and the concept gradually got closer and closer to what it is today. About a week after coming up with the initial idea the core gameplay mechanic was transformed into something nearly identical to what it is now. Keep in mind that at that point I still hadn’t coded anything; it was all on paper. I even have a sheet of paper with a detailed solution to the very first Trainyard puzzle ever created, which actually made it into the game as <a href="http://www.trainyard.ca/solutions/theOriginal">The Original</a>. Unfortunately I couldn&#8217;t find that piece of paper in time for this post, but when I do I&#8217;ll be sure to put it here.</p>
<p>The moral of the story: as developers, we&#8217;re often tempted to go straight to our computers to make prototypes and tests, but sometimes it&#8217;s good to just sit down with a pen and paper and flesh out an idea.</p>
<p>I hope you enjoyed this first little look into the Trainyard development process. I’m planning to post at least a couple times a week, so please add <a href="http://struct.ca/feed/">http://struct.ca/feed/</a> to your RSS readers and whatnot. I&#8217;ve never had my own blog, so my writing style is going to be a bit rough for a while, but bear with me, it&#8217;ll get better over time <img src='http://struct.ca/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  If you didn’t come here from <a href="http://idevblogaday.com">iDevBlogADay</a>, make sure you check all those other blogs out, there’s some great stuff there.</p>
]]></content:encoded>
			<wfw:commentRss>http://struct.ca/2010/trains-on-paper/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>

