<?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>Chopper Defense</title>
	<atom:link href="http://chopperdefense.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://chopperdefense.com</link>
	<description>Behind the scenes</description>
	<lastBuildDate>Sat, 25 Jun 2011 15:48:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>The Sins of Accelerometer Controls</title>
		<link>http://chopperdefense.com/blog/2010/12/15/the-sins-of-accelerometer-controls/</link>
		<comments>http://chopperdefense.com/blog/2010/12/15/the-sins-of-accelerometer-controls/#comments</comments>
		<pubDate>Thu, 16 Dec 2010 00:34:02 +0000</pubDate>
		<dc:creator>Nikita</dc:creator>
				<category><![CDATA[Game controls]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://chopperdefense.com/?p=125</guid>
		<description><![CDATA[This is a second post in a series on gameplay usability. We've covered <a href="/blog/2010/12/15/virtual-controls-usability/">dual stick controls</a> already, future posts will be about situational awareness and helping players win. Subscribe to my <a href="/feed">RSS feed</a> not to miss these posts.

Accelerometer controls are not a big favorite among iOS gamers. Let's see how you can make your game better by examining one awesome and one less-than-awesome accelerometer-controlled game.]]></description>
			<content:encoded><![CDATA[<p><b>This is a second post in a series on gameplay usability. We&#8217;ve covered <a href="/blog/2010/12/15/virtual-controls-usability/">dual stick controls</a> already, future posts will be about situational awareness and helping players win. Subscribe to my <a href="/feed">RSS feed</a> not to miss these posts.</b></p>
<p>Accelerometer controls are not a big favorite among iOS gamers. Let&#8217;s see how you can make your game better by examining one awesome and one less-than-awesome accelerometer-controlled game.</p>
<h3>Tilt to Live</h3>
<p><a href="http://www.onemanleft.com/tilttolive/">Tilt to Live</a> is one of my favorite iOS games ever. In fact, it was I think during my ~53427th attempt at this game that I had an idea to add avoidance gameplay elements to Chopper Defense HD, which finally made the gameplay an order of magnitude more fun and intense. In Tilt to Live, you control an arrow in an arena filled with dots that always move in your direction, and there are always more and more of them appearing. You tilt your iPhone to avoid these deadly dots and pick up supercharged weapons.</p>
<h4>The Good</h4>
<p><b>Calibration presets</b> – Calibration means changing the default device position at which nothing happens (in our case, the arrow rests in one place). In accelerometer-controlled games, it&#8217;s a must. Tilt to Live goes one step further – it also has two calibration presets so that you don&#8217;t have to calibrate it manually 99% of the time.</p>
<p><b>Sensitivity settings</b> – The range of possible sensitivity values (i.e. how much you need to tilt your device) in Tilt to Live is very large and you can set X and Y sensitivities separately. Why the latter is important: iPhones are rectangular, not square, and to produce the same input (e.g. 10 degrees) requires that you move the edges of the device up/down by a larger distance in the X axis than in the Y axis, so you may feel that more tilting is required to move left/right than to move up/down.</p>
<p><img src='/blog/openfiles/accelerometer-tilting-difference.png' /></p>
<p><b>Input filtering</b> – Accelerometer data is not 100% precise, it follows a random distribution around the true values, so you should use a filter to smooth it. A simple <a href="http://stackoverflow.com/questions/2911529/iphone-accelerometer-changing-senstivity/2911612#2911612">low-pass filter</a> should solve 80% of your problems. In Tilt to Live, the arrow always points in the direction it moves. Normally that would cause rotational jitter at low speeds even with moderate accelerometer input filtering, but the arrow always rotates smoothly even when it stays in one place because 1) it starts rotating only when it gains some minimum speed, 2) there&#8217;s an additional low-pass filter on its rotation, 3) there&#8217;s a hard limit on rotation speed.</p>
<h4>The Bad</h4>
<p><b>No channel mixing</b> – Accelerometer data shows you at what angle your device is relative to the floor. In games where you use only 2 axes, you want the accelerometer inputs to be relative to the screen surface, not the floor. This is trivial to code using simple trigonometry and z axis data. To be fair though, I have not seen any games use that.</p>
<p><img src='/blog/openfiles/3d-tilting.png' /></p>
<p><b>No indication of max tilt</b> – The main problem for me with tilting controls is that it&#8217;s hard to understand if you&#8217;ve reached the maximum speed already or need to tilt more. As a gamer I usually work around this problem by setting near-maximum sensitivity, but game designers should really think on some visual indication of reaching maximum speed/tilt. The only time I&#8217;ve seen somewhat like that is in <a href="http://majicjungle.com/chopper2_iphone.html">Chopper 2</a> where helicopter trails appear when it flies at max. speed.</p>
<h3>Fly Effect Real 3D</h3>
<p>In <a href="http://itunes.apple.com/us/app/fly-effect-real-3d-lite/id386518298?mt=8">Fly Effect Real 3D</a> you fly your aircraft through steampunky 3D tunnels and rooms filled with obstacles. Despite nice art, this game is full of lessons of what not to do with regard to usability (just look at their <a href="http://www.ags-it.com/FlyEffect_real3D.html">website</a>).</p>
<h4>The Bad</h4>
<p><b>Broken automatic-only calibration</b> – In Fly Effect, Accelerometer controls are calibrated right before a game begins, so the way you hold your iPhone at that moment will become the fly-straight position. Reasonable idea, but terrible implementation: there are invisible limits to such calibration: it won&#8217;t calibrate properly, for example, if you&#8217;re holding your iPhone parallel to the floor – your aircraft will be heading down when the game starts. And there is no manual calibration option.</p>
<p><b>Blatant sensitivity bug</b> – If you start the game holding your iPad in front of your face (near vertically), the aircraft will go down too eagerly and go up too slowly – the maximum up and down speeds are heavily unbalanced. No, this is not gravity – if you hold your iPad nearly horizontally the bug will reverse – slow falls, sharp rises. The problem goes away only if you hold your iPad in a typical 45-degrees position.</p>
<p><b>Dead zone?</b> – Instead of properly filtering accelerometer input, left/right tilts smaller than some threshold angle are just ignored. This threshold is set way too high, and when it is reached the aircraft starts turning faster than expected. The real problem is that you don&#8217;t know where in the dead zone you are and therefore how much you need to tilt to start turning. // Actually, I&#8217;ve played it again and I can&#8217;t say it is exactly like I described, but something&#8217;s definitely wrong with small left/right tilt handling and/or the aircraft&#8217;s roll not corresponding properly to steering.</p>
<p><b>Non-aircraft controls</b> – OK, I admit I&#8217;ve played too few casual iOS flying games and know too much about airplanes, but if your aircraft is rolled 90 degrees to the right and you pull up, it should go further right, not up. In Fly Effect, it goes up. The whole control system in Fly Effect is about moving your aircraft left/right/up/down, not about controlling its ailerons and elevators, and frankly I don&#8217;t see the point of using accelerometer – it does not add any magic to the flight.</p>
<h3>Conclusion</h3>
<p>If you&#8217;re a game developer, it&#8217;s obligatory to learn from others&#8217; mistakes. You should try as many games as you can (especially those that are free!) to find great gameplay/design/usability ideas and see how not to fail. May I suggest that you consider Tilt to Live (<a href="http://itunes.apple.com/us/app/tilt-to-live-lite/id399657289?mt=8&#038;ign-mpt=uo%3D4">lite for iPhone</a> or <a href="http://itunes.apple.com/us/app/tilt-to-live-hd/id391837930?mt=8">free for iPad</a>), Fly Effect 3D (<a href="http://itunes.apple.com/us/app/fly-effect-real-3d-lite/id386518298?mt=8">lite for iPhone</a>, <a href="http://itunes.apple.com/us/app/fly-effect-real-3d-hd/id393863097?mt=8">$2.99 for iPad</a>) and [shameless plug] <a href="http://itunes.apple.com/us/app/chopper-defense-hd/id404983609?mt=8">Chopper Defense HD</a> ($.99 for iPad).</p>
<p>Last but not least, try different controls early in development. I mean, actually code them and ask yourself and alpha testers what they like more. Controls on such small devices heavily influence not only gameplay, but also game design – and these are the two most important components of a game.</p>
<p><b>Subscribe to my <a href="/feed">RSS feed</a> not to miss future posts!</b></p>
]]></content:encoded>
			<wfw:commentRss>http://chopperdefense.com/blog/2010/12/15/the-sins-of-accelerometer-controls/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Virtual Controls Usability</title>
		<link>http://chopperdefense.com/blog/2010/12/15/virtual-controls-usability/</link>
		<comments>http://chopperdefense.com/blog/2010/12/15/virtual-controls-usability/#comments</comments>
		<pubDate>Wed, 15 Dec 2010 23:36:44 +0000</pubDate>
		<dc:creator>Nikita</dc:creator>
				<category><![CDATA[Game controls]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://chopperdefense.com/?p=119</guid>
		<description><![CDATA[This is the first post in a series on gameplay usability. Future posts will be about <a href="http://chopperdefense.com/blog/2010/12/15/the-sins-of-accelerometer-controls/">accelerometer controls</a>, situational awareness and helping players win. Subscribe to my <a href="/feed">RSS feed</a> not to miss these posts.

Virtual dual stick controls are a standard choice for top-down shooters in App Store. Left stick usually controls player character's movement (speed vector), and right stick handles character's shooting angle. Let's examine the usability issues with this control scheme.]]></description>
			<content:encoded><![CDATA[<p><b>This is the first post in a series on gameplay usability. Future posts will be about <a href="http://chopperdefense.com/blog/2010/12/15/the-sins-of-accelerometer-controls/">accelerometer controls</a>, situational awareness and helping players win. Subscribe to my <a href="/feed">RSS feed</a> not to miss these posts.</b></p>
<p>Virtual dual stick controls are a standard choice for top-down shooters in App Store. Left stick usually controls player character&#8217;s movement (speed vector), and right stick handles character&#8217;s shooting angle. Let&#8217;s examine the usability issues with this control scheme.</p>
<h3>Indirection and channel mixing</h3>
<h4>Problem</h4>
<p>In top-down shooters players want to do two things: get their character to some point, and shoot at some target. With dual sticks this involves a lot of mental processing. Given these two coordinates, you need to determine which speed vector you want your character to move at, and then you need to determine which angle to shoot at. That&#8217;s a rather inconvenient indirection even if we could assume that dual sticks were perfect for specifying these two variables. To make things worse, the angle at which you need to shoot a fixed target changes as your character moves, effectively making it a moving target. Apart from forcing players to perform continuous angle corrections as they move, this also limits gameplay possibilities (e.g fast shooting and moving becomes very hard).</p>
<p><img src='/blog/openfiles/moving-target.png' /></p>
<h4>Solution</h4>
<p>In Chopper Defense, players hold an iPad in landscape mode and move their thumbs in bottom-left and bottom-right corners of the screen. There are no sticks, the left thumb moves the helicopter and the right thumb moves its attack cursor on the screen. They move the same way your fingers move, just at a larger scale (8.5x scale works best for full-screen iPad game imho), so if you want to move your chopper left by a bit, you move your finger left by a bit, and when the chopper reaches your desired point, it will rest there if you don&#8217;t move your finger any further, rather than go on and on in that direction.</p>
<p>Since you also control the cursor&#8217;s position directly, rather than via angle, where you shoot is independent of how you evade homing missiles, and you can do both very precisely at the same time. Note, however: controlling character&#8217;s position rather than speed vector works best when it moves fast enough not to create a huge gap between desired and actual position. Also, in Chopper Defense screen edges are the end of the world. In a bigger, scrollable world, my controls would need some modification. Here are Chopper Defense controls in action:</p>
<p><iframe src="http://player.vimeo.com/video/17260629" width="500" height="375" frameborder="0"></iframe></p>
<h3>Attack angle confusion</h3>
<h4>Problem</h4>
<p>Since the sticks are virtual, they don&#8217;t provide tactile feedback, so you don&#8217;t know your finger&#8217;s position relative to the stick&#8217;s center point. This is especially inconvenient for the shooting stick since you never know exactly how far and in what direction do you need to move your finger to start shooting at a desired angle (which is already your mental estimate based on the position of the target relative to your character). If you shoot slow projectiles rather than instantly appearing bullet rays, it is also hard to estimate your new attack angle after you rotate until your projectiles fly far enough for you to be able to estimate the new angle. Delays are never good in action games.</p>
<p><img src='/blog/openfiles/attack-angle-confusion.png' /></p>
<h4>Solution</h4>
<p>Within the dual sticks scheme, that issue can be partially mitigated by giving the player an attack cursor and locating it relatively to the player character the same way that the player&#8217;s finger is located relative to the center of the attack stick. It is not a perfect solution because players tend to try to put the cursor near the enemies, not merely in their direction, and it may not be possible if the enemies are far away. You could also give the player a weapon which does not need precise targeting, like bullet sprays or homing missiles, or make an option for aiming aid.</p>
<p>Another improvement that is surprisingly rarely used is to center control sticks on exactly the point the player first touched. That way if you get confused you can release your finger, then tap again and swipe in desired direction. Eases some pain.</p>
<h3>One weapon only, or else&#8230;</h3>
<h4>Problem</h4>
<p>With both hands on your sticks, how are you going to switch weapons without disrupting your movement or shooting? You probably have zombies chasing you after all. You could think of some interesting gameplay options like being able to select a weapon between every battle, or pick up a new weapon instead of your current one or as temporary upgrade. Or you could also detect taps on the back side of the iPad using accelerometer and microphone, but I&#8217;ve no idea how viable and App-Store approvable is that.</p>
<p>Instead, the standard switch UI, if there is any, is a virtual button. Its main disadvantage is immediately evident – you have to look at it to tap it for sure. And you have to actually stop shooting or moving for that fraction of a second.</p>
<h4>Solution</h4>
<p>Within the dual sticks framework, the best interface solution is to make the button large and within reach of the player&#8217;s finger near the attack stick. Also, make it so that the character stops shooting only ~200ms after the player releases their finger from attack stick, and don&#8217;t stop shooting for another ~200ms after the weapon switch button is tapped. That way shooting will not stop when switching weapons. </p>
<p>In Chopper Defense the second weapon is a blast cannon, which, unsurprisingly, blasts enemies around the cursor. It takes 2-4 seconds to reload, then the cursor lights up and you can blast again. Briefly release your left thumb from the screen and cursor will blast immediately. Your chopper will not stop moving, and when your left thumb touches the screen again, even if not exactly at the same point, your chopper will not twitch unexpectedly, it will continue to properly mimic your finger movement as if you didn&#8217;t release it at all.</p>
<h3>Conclusion</h3>
<p>Touch controls usually have poor usability, but a huge part of it comes from poor implementation. Take some time to address common usability issues, think beyond standard control schemes – and you&#8217;ll make totally comfortable controls. Don&#8217;t forget to playtest several alternative control schemes early in development since controls do influence gameplay and game design on small devices.</p>
<p><b>Subscribe to my <a href="/feed">RSS feed</a> not to miss future posts!</b></p>
]]></content:encoded>
			<wfw:commentRss>http://chopperdefense.com/blog/2010/12/15/virtual-controls-usability/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The game begins</title>
		<link>http://chopperdefense.com/blog/2010/11/27/the-game-begins/</link>
		<comments>http://chopperdefense.com/blog/2010/11/27/the-game-begins/#comments</comments>
		<pubDate>Sat, 27 Nov 2010 20:25:31 +0000</pubDate>
		<dc:creator>Nikita</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://chopperdefense.com/?p=56</guid>
		<description><![CDATA[Happy thanksgiving &#38; black friday everyone! Chopper Defense HD is now available in the App Store, and it has even been downloaded several dozen times already. Making this game I&#8217;ve learned a lot in marketing, programming and game design and will be sharing my experience on this blog. Add our RSS feed to your news reader [...]]]></description>
			<content:encoded><![CDATA[<p>Happy thanksgiving &amp; black friday everyone!</p>
<p>Chopper Defense HD is now <a href="http://itunes.apple.com/us/app/chopper-defense-hd/id404983609?mt=8">available in the App Store</a>, and it has even been downloaded several dozen times already.</p>
<p>Making this game I&#8217;ve learned a lot in marketing, programming and game design and will be sharing my experience on this blog. Add our <a href="/feed">RSS feed</a> to your news reader to get updates, or follow me (<a href="http://twitter.com/raquo">@raquo</a>) on twitter.</p>
]]></content:encoded>
			<wfw:commentRss>http://chopperdefense.com/blog/2010/11/27/the-game-begins/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
