<?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>The Toolsmiths &#187; Usabilty</title>
	<atom:link href="http://thetoolsmiths.org/category/usabilty/feed/" rel="self" type="application/rss+xml" />
	<link>http://thetoolsmiths.org</link>
	<description></description>
	<lastBuildDate>Mon, 23 Aug 2010 18:22:43 +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>Reason 3 of 6 &#8211; Leveraging the Wrong Technology</title>
		<link>http://thetoolsmiths.org/2010/08/21/reason-3-of-6-leveraging-the-wrong-technology/</link>
		<comments>http://thetoolsmiths.org/2010/08/21/reason-3-of-6-leveraging-the-wrong-technology/#comments</comments>
		<pubDate>Sat, 21 Aug 2010 15:00:25 +0000</pubDate>
		<dc:creator>Dan Goodman</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tool Design]]></category>
		<category><![CDATA[Usabilty]]></category>
		<category><![CDATA[LinkedIn]]></category>
		<category><![CDATA[Six Reasons]]></category>

		<guid isPermaLink="false">http://thetoolsmiths.org/?p=523</guid>
		<description><![CDATA[This ongoing series delves more deeply into each of the “six reasons your game development tools suck” as argued in my very first post. At one company I worked for, we wrote our level design tool, as well as a cinematic tool on top of Maya.  The idea was that Maya already had an interface [...]]]></description>
			<content:encoded><![CDATA[<p>This ongoing series delves more deeply into each of the “<a href="http://toolssig.wordpress.com/2009/01/27/the-6-reasons-your-game-development-tools-suck/" target="_self">six reasons your game development tools suck</a>” as argued in my very first post.</p>
<p>At one company I worked for, we wrote our level design tool, as well as a cinematic tool on top of Maya.  The idea was that Maya already had an interface for drawing 3D objects and moving them around in the scene using well known controls.  Unfortunately, the design staff, many of which never used Maya, didn&#8217;t really get any benefit from a tool that was well understood by 3D artists. </p>
<p>With the number of interface elements visible in Maya, to a designer or even a programmer, it can seem overly complex and cluttered.  Add to that the fact that we added additional interface for the design tool itself, and you&#8217;ve got something completely unwieldy for the Maya novice.</p>
<p>In addition, as levels became more complex, load times in the tool became longer and longer, and the responsiveness when doing the simplest operations became slower and slower.  In order for the tool to be usable, everything except what you were interacting with had to be turned off, the management of which became another task that slowed down the users.  One programmer on the game team actually refused to ever open the tool, so when testing of a feature or fixing a design bug was required, he&#8217;d get someone else to do it for him.</p>
<p>I&#8217;ve been in other situations where building a level design tool inside of an art package was a consideration.  In those cases, it&#8217;s often recommended as a stop-gap solution.  The argument goes that getting something up and running in an interface that is well known and already supports certain features will be quicker than writing the tool from scratch.  Saving time is usually the best policy, but thinking that time will actually be saved by this method is a fallacy, and stop-gap solutions often become permanent ones.</p>
<p>Time saved on initial development of a 3D viewport with picking and move controls is wasted figuring out how to cram every new feature required by the design team into a limited interface.  The designers&#8217; time is wasted navigating an overly complex tool with buttons and menu options they will never use, nor understand. </p>
<p>In this situation, we eventually learned our lesson.  The next level design tool was a stand-alone program, but that was for the next project&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://thetoolsmiths.org/2010/08/21/reason-3-of-6-leveraging-the-wrong-technology/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reason 2 of 6 – The System Model of Design</title>
		<link>http://thetoolsmiths.org/2010/03/24/reason-2-of-6-%e2%80%93-the-system-model-of-design/</link>
		<comments>http://thetoolsmiths.org/2010/03/24/reason-2-of-6-%e2%80%93-the-system-model-of-design/#comments</comments>
		<pubDate>Wed, 24 Mar 2010 15:30:56 +0000</pubDate>
		<dc:creator>Dan Goodman</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tool Design]]></category>
		<category><![CDATA[Usabilty]]></category>
		<category><![CDATA[LinkedIn]]></category>
		<category><![CDATA[Six Reasons]]></category>

		<guid isPermaLink="false">http://thetoolsmiths.org/?p=393</guid>
		<description><![CDATA[This ongoing series delves more deeply into each of the “six reasons your game development tools suck” as argued in my very first post. Two of the most important concepts in software engineering are abstraction and modularity.  Abstraction allows us to categorize problems and write general code to handle all problems within a group, while modularity [...]]]></description>
			<content:encoded><![CDATA[<p>This ongoing series delves more deeply into each of the “<a href="http://toolssig.wordpress.com/2009/01/27/the-6-reasons-your-game-development-tools-suck/" target="_self">six reasons your game development tools suck</a>” as argued in my very first post.</p>
<p>Two of the most important concepts in software engineering are abstraction and modularity.  Abstraction allows us to categorize problems and write general code to handle all problems within a group, while modularity allows us to combine disparate abstract components to create unique solutions for a particular problem.  These two concepts give us the ability to write elegant, yet powerful systems that can solve many problems at once.</p>
<p>These systems often rely heavily on data, which is the glue that holds the abstract techniques together.  Data is used to configure which components plug into one another and how they behave. </p>
<p>As programmers, it makes a lot of sense to us to expose the raw data in the tool to the people responsible for making something useful with it.  After all, not only is this the easiest implementation, it&#8217;s also difficult to see another implementation that would not constrict the end user&#8217;s ability to get the full benefit of the system&#8217;s power.</p>
<p>If the tool was in our own hands, or even in the hands of another programmer, this would all be true.  Unfortunately, this is usually not the case.  The end users have to figure our very clever system out for themselves, often with no knowledge of our intention, the underlying data structures, or even basic software engineering or programming concepts.</p>
<p>Instead of empowering the end users with our uber-system that can handle any problem, we&#8217;ve saddled them with a system so intricate and burdensome, that they can&#8217;t wrap their minds around it, let alone do anything useful with it.</p>
<p>Training can help to a degree, but that turns into one-on-one training with every user for any one person to understand.  Documentation also helps, but often ignored, in reading as well as in writing/updating.  Usually, one person ends up being the expert that everyone relies on, but when only one person can use a tool, you know that it&#8217;s doomed to failure.</p>
<p>The answer is simple, yet hard to swallow.  The tool interface can not be designed around the data structures used by the underlying system.  The tool must be designed around the users, and the very specific things they want to do with it. </p>
<p>That will probably handle about 90% of the problems the system was designed to solve.  Most users will get along happily with that, and even find their own clever ways of getting some of the additional 10%.  They&#8217;ll be much happier with a tool that is easy to use than one that is all-powerful.</p>
]]></content:encoded>
			<wfw:commentRss>http://thetoolsmiths.org/2010/03/24/reason-2-of-6-%e2%80%93-the-system-model-of-design/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Usability Usability Usability</title>
		<link>http://thetoolsmiths.org/2009/05/27/usability-usability-usability/</link>
		<comments>http://thetoolsmiths.org/2009/05/27/usability-usability-usability/#comments</comments>
		<pubDate>Wed, 27 May 2009 22:32:29 +0000</pubDate>
		<dc:creator>Dan Goodman</dc:creator>
				<category><![CDATA[Tool Design]]></category>
		<category><![CDATA[Usabilty]]></category>
		<category><![CDATA[LinkedIn]]></category>

		<guid isPermaLink="false">http://toolssig.wordpress.com/?p=245</guid>
		<description><![CDATA[Some of you may have read my recent Gamasutra article, Game Tools Tune-Up: Optimize Your Pipeline Through Usability but I wanted to discuss something that writing that article has really brought to the forefront of my mind.  As an industry, we aren&#8217;t very reflective on the methodologies we use regarding the development of tools.  This blog [...]]]></description>
			<content:encoded><![CDATA[<p>Some of you may have read my recent Gamasutra article, <span><a href="http://www.gamasutra.com/view/feature/4016/game_tools_tuneup_optimize_your_.php">Game Tools Tune-Up: Optimize Your Pipeline Through Usability</a> but I wanted to discuss something that writing that article has really brought to the forefront of my mind.  As an industry, we aren&#8217;t very reflective on the methodologies we use regarding the development of tools.  This blog as well as other sources may be bringing about a change in that regard, but it is progressing very slowly.  There are techniques in use in other industries that have significantly increased the usability of software, and many have been around for many years.</span></p>
<p><span>While at GDC this year, the idea of usability came up at the Tools Round Table.  Now, I&#8217;m pretty sure John had included the topic at the round table, in part because he had gotten a very early preview (and several revisions) of my article before it went up on Gamasutra.  I appreciated the effort on his part, but I was a little surprised at the total lack of response from the group.  When asked who was using what techniques for usability, the room was completely silent.  I expected that if anyone in the industry was doing anything at all with usability, surely this was the group.</span></p>
<p><span>Although it was a bit disheartening, it illuminated a real issue in game development that most of us have known in our hearts for quite a while.  Very few people are serious about making game development tools accessible to their users.  Artists, designers and even programmers spend a great deal of time dealing with tool issues for the length of every new project.  The tools developers wonder why they have so much trouble, without ever realizing that there are techniques in existence that could answer that very question and could help them make better tools that got fewer complaints and more work done.</span></p>
<p><span>I recommend every tool developer out there take a look at these resources:</span></p>
<p><span><a href="http://www.upassoc.org/">The Usability Professionals&#8217; Association website</a></span></p>
<p><span> <a href="http://www.measuringusability.com/">Jeff Sauro&#8217;s Measuring Usability website</a></span></p>
<p><span>Also, read Alan Cooper&#8217;s excellent books on usability:</span></p>
<p><span><a href="http://www.amazon.com/About-Face-Essentials-Interaction-Design/dp/0470084111/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1243462940&amp;sr=8-1">About Face</a> </span></p>
<p><span>and </span></p>
<p><span><a href="http://www.amazon.com/Inmates-Are-Running-Asylum-Products/dp/0672326140/ref=sr_1_2?ie=UTF8&amp;s=books&amp;qid=1243462940&amp;sr=8-2">The Inmates Are Running the Asylum</a></span></p>
<p><span> </span></p>
]]></content:encoded>
			<wfw:commentRss>http://thetoolsmiths.org/2009/05/27/usability-usability-usability/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Scheduling Tools</title>
		<link>http://thetoolsmiths.org/2009/03/03/scheduling-tools/</link>
		<comments>http://thetoolsmiths.org/2009/03/03/scheduling-tools/#comments</comments>
		<pubDate>Tue, 03 Mar 2009 14:00:47 +0000</pubDate>
		<dc:creator>Dan Goodman</dc:creator>
				<category><![CDATA[Production]]></category>
		<category><![CDATA[Teams]]></category>
		<category><![CDATA[Usabilty]]></category>
		<category><![CDATA[LinkedIn]]></category>

		<guid isPermaLink="false">http://toolssig.wordpress.com/?p=161</guid>
		<description><![CDATA[Scheduling tools is tricky business.  Most tools aren&#8217;t even started until they&#8217;re needed, unless you&#8217;ve got some very forward thinking management (an unlikely scenario at many game companies).  The time constraints are impossible since they&#8217;re in sync with an equally impossible game production schedule, and budget constraints can be equally constricting. So, how do we [...]]]></description>
			<content:encoded><![CDATA[<p>Scheduling tools is tricky business.  Most tools aren&#8217;t even started until they&#8217;re needed, unless you&#8217;ve got some very forward thinking management (an unlikely scenario at many game companies).  The time constraints are impossible since they&#8217;re in sync with an equally impossible game production schedule, and budget constraints can be equally constricting.</p>
<p>So, how do we get tools into the developer&#8217;s hands as quickly and cheaply as possible, while still delivering high quality software?  Well, if you&#8217;ve heard of the quality-speed-cost triangle, you know that if you have to have high quality, and you need it fast, then it&#8217;s going to be expensive.  Most game companies choose cheap, fast and low quality when it comes to tools, but I believe we can wrangle the schedule a bit to get pretty fast, pretty cheap and very high quality.  Unfortunately, it takes a great deal of upfront planning to get there – something game developers aren&#8217;t very inclined to do.</p>
<p style="margin-bottom:0;">First of all, schedule in design.  At least 25% of your total time should be devoted to designing the tool.  If you have a week, schedule an entire day (or two).  If you have a month, schedule a week.  If it&#8217;s a large project with a GUI, include a mock-up of the the UI.  The design should also include a list of features for each of the other milestones in as much detail as possible as well as goals for each one.  These go beyond features to explain what all the features are meant to achieve.  A milestone should meet these goals, and not just the features, to be considered complete.</p>
<p style="margin-bottom:0;">After the design is finished, the next major milestone (there may be smaller milestones in-between) comes halfway through the development process and is what I&#8217;m calling the &#8220;first usable version&#8221;.  This is similar to the “vertical slice” almost every game has to go through these days, and includes core functionality only.  The goal is to deliver a tool that the developers can use to get their work done, and isn&#8217;t meant to be pretty or user-friendly.  Subsequent milestones will add usability features to the tool.  It take a great deal of planning to pull this off without creating work that will get thrown away later, which should be carefully considered in the design phase.</p>
<p style="margin-bottom:0;">The alpha and beta milestones deliver the final promises on quality.  It&#8217;s useful to sit with the representative users and get feedback on remaining issues. Formal usability studies can be performed if time permits and those problems addressed.  The final deliverable should include documentation on using the tool, something that has been sorely lacking in the game industry.  Too many times, frustrated users turn to the developers for help on common problems which could be easily documented, saving everyone a great deal of time.  Tutorials are also important, as they can give users a chance to see how the developers intended the tools to be used. </p>
<p style="margin-bottom:0;"> As you can see, we&#8217;re able to extended the speed side of the triangle to reduce cost and improve quality, and add a stop-gap in the middle to get users up and running quickly and cheaply.  When these components are included in the schedule, then we are not only able to get something to the users in a timely fashion, but we can also (eventually) deliver something of high quality, as long as management doesn&#8217;t see the first usable version as finished.  They must be informed that the first usable is something to build on, and not at all final, and that increasing the usability of the tool beyond basic functionality will improve the development process greatly.</p>
<p style="margin-bottom:0;">Of course, this is just one aspect of scheduling tools, but any more detail would too long for this blog.  Maybe we&#8217;ll talk about the other issues in an upcoming post, or you could leave a comment describing your own process.</p>
]]></content:encoded>
			<wfw:commentRss>http://thetoolsmiths.org/2009/03/03/scheduling-tools/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Sweating the small stuff</title>
		<link>http://thetoolsmiths.org/2009/02/24/sweating-the-small-stuff/</link>
		<comments>http://thetoolsmiths.org/2009/02/24/sweating-the-small-stuff/#comments</comments>
		<pubDate>Tue, 24 Feb 2009 16:30:26 +0000</pubDate>
		<dc:creator>Jeff Ward</dc:creator>
				<category><![CDATA[Prototyping]]></category>
		<category><![CDATA[Tool Design]]></category>
		<category><![CDATA[Usabilty]]></category>

		<guid isPermaLink="false">http://toolssig.wordpress.com/?p=151</guid>
		<description><![CDATA[I have a co-worker, Darius, who is creating a game for a small game system called the Meggy Jr.  Watching him work on this, I was impressed with the tools that he came up with.  He&#8217;s not a (really) a programmer, but still somehow can make tools that serve his needs pretty well.  I&#8217;ll let [...]]]></description>
			<content:encoded><![CDATA[<p>I have a co-worker, Darius, who is creating a game for a small game system called the <a href="http://www.evilmadscientist.com/article.php/meggyjr">Meggy Jr</a>.  Watching him work on this, I was impressed with the tools that he came up with.  He&#8217;s not a (really) a programmer, but still somehow can make tools that serve his needs pretty well.  I&#8217;ll let him explain:</p>
<blockquote>
<div>This is the level editor I&#8217;m using for <a href="http://tinysubversions.blogspot.com/2009/02/my-idea-for-meggy-roguelike.html" target="_blank">a roguelike game I&#8217;m building</a> for my Meggy Jr. The level is just a 16&#215;16 bitmap array. Each cell of the array is a different color, and each color is a different object. 6 is blue, and it&#8217;s a wall; 5 is purple, and it&#8217;s a door.</div>
<div>
<div id="attachment_153" class="wp-caption aligncenter" style="width: 665px"><img class="size-full wp-image-153" title="leveleditor" src="http://toolssig.files.wordpress.com/2009/02/leveleditor.png" alt="A level editor in excell" width="655" height="469" /><p class="wp-caption-text">A level editor in Excel</p></div>
</div>
<div>I built this level editor in Excel. I set the cells to be 20&#215;20 pixels, big enough for me to work with conveniently, and I used conditional formatting to map the background fill colors to correspond to the Meggy Jr&#8217;s color mapping. If you look to the right, you&#8217;ll see that I&#8217;m using CONCATENATE statements to pull together the numbers into the bracketed statements that I literally just copy and paste into my array declaration in code. With this system I can make a level in a minute, and drop it into my code with a couple of mouse clicks. It only took me five minutes to build this level editor.</div>
<div>I&#8217;m always pulling crap like this: I love using Excel to abstract things out and then generate code for me. I would never do it for a big project, but for my own hacking it saves me a ton of time.</div>
</blockquote>
<div>As tools developers, I think we occasionally forget that a real, actual, useful tool can be made in minutes using something as common place as Word or Excel, given the correct understanding of the problem and its simplest solution.  We&#8217;re always quick to jump to the custom solution, using some complex API, even when there&#8217;s something that would work better and faster right in front of our face.</div>
<div>This is especially important to understand when you&#8217;re a very small shop that can&#8217;t afford a second programmer, much less a dedicated tools team.  It may feel dirty, but you should always at least think about taking advantage of the fact that Excel not only has it&#8217;s cell equation system, but an entire programming language and forms system behind it.</div>
<div>Now, this partially goes against my previous post about ad-hoc tools teams, which I still think are a bad idea.  The key difference, for me, is a question of team use and support.  I consider these tools similar to one-off scripts or small prototypes.  They&#8217;re find when teams are small and everyone is on the same page.  Once things get bigger, by all means, still use Excel where it makes sense, but make sure you&#8217;ve got a rock solid team supporting it.</div>
]]></content:encoded>
			<wfw:commentRss>http://thetoolsmiths.org/2009/02/24/sweating-the-small-stuff/feed/</wfw:commentRss>
		<slash:comments>25</slash:comments>
		</item>
		<item>
		<title>The 6 Reasons Your Game Development Tools Suck</title>
		<link>http://thetoolsmiths.org/2009/01/27/the-6-reasons-your-game-development-tools-suck/</link>
		<comments>http://thetoolsmiths.org/2009/01/27/the-6-reasons-your-game-development-tools-suck/#comments</comments>
		<pubDate>Wed, 28 Jan 2009 04:37:36 +0000</pubDate>
		<dc:creator>Dan Goodman</dc:creator>
				<category><![CDATA[Tool Design]]></category>
		<category><![CDATA[Usabilty]]></category>
		<category><![CDATA[LinkedIn]]></category>
		<category><![CDATA[Six Reasons]]></category>

		<guid isPermaLink="false">http://toolssig.wordpress.com/?p=26</guid>
		<description><![CDATA[There are many reasons game development tools fail.  Perhaps not all of these apply to you, but every game studio I&#8217;ve seen has had one or more of the following problems. 1. Design as you go All too often, game companies are in too much of a hurry to allow proper upfront design of tools.  [...]]]></description>
			<content:encoded><![CDATA[<p>There are many reasons game development tools fail.  Perhaps not all of these apply to you, but every game studio I&#8217;ve seen has had one or more of the following problems.</p>
<p><strong>1. Design as you go</strong><br />
All too often, game companies are in too much of a hurry to allow proper upfront design of tools.  As a result, programmers end up designing the tools, anyway.  Unfortunately, since they have to continually show progress, the tools are designed as they are coded, which doesn&#8217;t really save any time at all, and leads to a host of problems.  As tool development gains inertia, the earlier code becomes more and more difficult to change without breaking the entire system.  When given a choice between rewriting code  and creating a workaround, the least expensive of the two (in the short run) is generally preferred.  Major changes to support new features or a more desirable workflow become more and more difficult as the code becomes too brittle to support it&#8217;s own weight.</p>
<p><strong>2. The system model of design</strong><br />
When programmers design interfaces, they tend to expose the underlying data structures directly.  That is the most logical method for someone who understands the inner workings of the system, and often gives the most flexibility the the users.  The end user, however, has a different view of the system based on his his own goals.  He doesn&#8217;t need to know the underlying implementation details, just the end result. The system model can give the desired effect, but may seem overly complicated or downright illogical to the user.</p>
<p><strong>3. Leveraging the wrong technology</strong><br />
A lot of us, especially with engineering backgrounds, cringe at the thought of “reinventing the wheel.” Recreating something that already exists somewhere else goes against everything we&#8217;ve learned, but taking a tool designed for one thing and turning it into something it was never destined to be, will cost more time in the long run than just writing a new tool from scratch.  Often, the remains of the old tool clutter the interface or drag down the performance.</p>
<p><strong>4. Complicating the interface</strong><br />
“The simpler, the better,” should be every tool designer&#8217;s motto.  The more interface the user has to deal with, the more difficult it is to use the tool. Focusing on the goals of the end user, should make apparent what interface items should be readily available, and which should be hidden away in a menu somewhere.  The most common operations should be the most accessible and easiest to use.</p>
<p><strong>5. Extraneous features</strong><br />
Often, the tool designers aren&#8217;t communicating with the tool users, which always leads to a handful of features that just aren&#8217;t used.  They probably seemed really important during design (at least in the programmer&#8217;s mind), but time constraints or misunderstanding on the part of the users keep them from fully utilizing these features.  The time wasted on such things should have been used to improve the most commonly used functionality.  Instead, they clutter the interface or add additional steps to a process that should have been much simpler.</p>
<p><strong>6. Designing for advanced users</strong><br />
Let&#8217;s face it, there are some people in your company that are more technically skilled than others, and I&#8217;m not talking about programmers.  Often, the more technical designers (the ones with scripting or programming backgrounds) are the ones who are able to use the internally developed tools more effectively, leaving the rest of the design staff to struggle.  This is also true of other disciplines, but design has it the worst, in most cases.  Game development tools should target the average user, with advanced functionality neatly tucked away where the more technically savvy users can find it, if necessary, while the more common functionality should be out in plain sight, easily accessible and understandable.</p>
<p>All of these issues lead to one overarching problem &#8212; low usability.  Tools that are unusable, do little good to anyone, and higher usability leads to happier and more productive employees.  Every minute that an employee spends fighting with the tools is a minute that could have been spent making a better, more polished game, something every game company struggles to achieve, and addressing problems like the ones above will help tremendously.  I&#8217;ll talk more about these and other issues more in-depth in future blog posts.</p>
]]></content:encoded>
			<wfw:commentRss>http://thetoolsmiths.org/2009/01/27/the-6-reasons-your-game-development-tools-suck/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>
