<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>HobbyGameDev</title>
	
	<link>http://www.hobbygamedev.com</link>
	<description>Formerly GameDevLessons.com</description>
	<lastBuildDate>Mon, 20 Feb 2012 10:03:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/hobbygamedev" /><feedburner:info uri="hobbygamedev" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Write Only As Much As You Can Revise Carefully</title>
		<link>http://feedproxy.google.com/~r/hobbygamedev/~3/qFA7S_hW9Xk/</link>
		<comments>http://www.hobbygamedev.com/adv/editability/#comments</comments>
		<pubDate>Mon, 20 Feb 2012 10:01:59 +0000</pubDate>
		<dc:creator>Chris DeLeon</dc:creator>
				<category><![CDATA[Advanced]]></category>
		<category><![CDATA[Vol. 35]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[Team Projects]]></category>

		<guid isPermaLink="false">http://www.hobbygamedev.com/?p=6443</guid>
		<description><![CDATA[A New York Times entry from March last year included a Harvard entrance exam from nearly 150 years ago. The first line is the only part that I will call attention to here: Write only as much as you can revise carefully. Brilliant. Here, in fewer than 10 words, is an approach that applies to&#8230;]]></description>
			<content:encoded><![CDATA[<p>A <a href="http://thechoice.blogs.nytimes.com/2011/03/31/remembering-when-college-was-a-buyers-bazaar/" target="_blank">New York Times entry from March last year</a> included a <a href="http://hobbygamedev.com/downloads/harvardexam.pdf" target="_blank">Harvard entrance exam from nearly 150 years ago</a>. The first line is the only part that I will call attention to here:</p>
<p><strong>Write only as much as you can revise carefully.</strong></p>
<p>Brilliant. Here, in fewer than 10 words, is an approach that applies to nearly every undertaking that we intend for others to see.</p>
<p>Put another way: don&#8217;t drive so fast that you lose control.</p>
<h3>Is this really Advanced material?</h3>
<p>Every month I write entries for four categories: <a href="http://www.hobbygamedev.com/category/beg/" target="_blank">Beginner</a>, <a href="http://www.hobbygamedev.com/category/int/" target="_blank">Intermediate</a>, <a href="http://www.hobbygamedev.com/category/adv/" target="_blank">Advanced</a>, and <a href="http://www.hobbygamedev.com/category/spx/" target="_blank">Special Topic</a>. This entry is intended for Advanced.</p>
<p>But, I can hear certain experienced readers objecting, isn&#8217;t overextension generally a beginner&#8217;s mistake?</p>
<p>That way of thinking leaves advanced developers &#8211; and everyone else putting trust in their judgment &#8211; even more vulnerable. Beginners often have a problem with overextending, certainly, though they do not yet have enough perspective to be able to recognize that as what they are getting themselves into. It is the more advanced developers that are capable of recognizing overextension, and are therefore in position to either ignore it or apply the brakes.</p>
<p>Experience does not render us immune to overextending ourselves. At best it can help us notice when we begin to lose control, after which we still need to take swift and deliberate action to correct for it.</p>
<p>Growing requires stretching a bit every time, but what ought be stretched is the presentable result. Stretching for its own sake without bound is simply stretching further into the territory that we can&#8217;t possibly polish to a presentable state. Anyone, no matter how experienced, is capable of growing a project beyond their means to finish it well.</p>
<p><strong>Write only as much as you can revise carefully.</strong></p>
<p>Otherwise, the project may wind up wrecked roadside while others pass it by.</p>
<div style="padding-left:65px; padding-right:65px;"><img src="http://www.hobbygamedev.com/pics/istock-offroad.jpg"/></div>
<div style="padding-left:15px; padding-right:15px;"><center>This probably was not the driver&#8217;s first time behind the wheel.</center></div>
<p><br/>And if you&#8217;re working with a team on which you are among the more experienced developers, you have other people in that car.<br />
<br/></p>
<img src="http://feeds.feedburner.com/~r/hobbygamedev/~4/qFA7S_hW9Xk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.hobbygamedev.com/adv/editability/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.hobbygamedev.com/adv/editability/</feedburner:origLink></item>
		<item>
		<title>Question About Comp Sci Major and Game Development</title>
		<link>http://feedproxy.google.com/~r/hobbygamedev/~3/HjZXbBELu4E/</link>
		<comments>http://www.hobbygamedev.com/beg/cs-major/#comments</comments>
		<pubDate>Mon, 30 Jan 2012 08:09:37 +0000</pubDate>
		<dc:creator>Chris DeLeon</dc:creator>
				<category><![CDATA[Beginner]]></category>
		<category><![CDATA[Vol. 34]]></category>
		<category><![CDATA[Early Career]]></category>
		<category><![CDATA[Industry]]></category>
		<category><![CDATA[Open Response]]></category>
		<category><![CDATA[Popular Entry]]></category>

		<guid isPermaLink="false">http://www.hobbygamedev.com/?p=6346</guid>
		<description><![CDATA[Question, Part 1 - Hi Chris. This is my first year in college, and I&#8217;m currently a Computer Science [CS] major. However I came in with no prior programming experience, so the math and programming classes so far have been pretty tough. I am thinking about switching my major to something more enjoyable, and just&#8230;]]></description>
			<content:encoded><![CDATA[<h3>Question, Part 1</h3>
<p><em>- Hi Chris. This is my first year in college, and I&#8217;m currently a Computer Science [CS] major. However I came in with no prior programming experience, so the math and programming classes so far have been pretty tough. I am thinking about switching my major to something more enjoyable, and just trying to teach my self game development instead. Any thoughts on whether, or maybe why, it would help to stick it out with CS? My dream job is to work in the gaming industry, though I may wind up looking into indie development.</em></p>
<h3>Answer, Part 1</h3>
<p>First, full disclosure: I was a CS major, too. That may bias my view of it, but it also means that I can provide an informed, first-hand look at how it did or didn&#8217;t help.</p>
<p>Everyone&#8217;s path in life and career is different. The decision is purely up to you, and as you necessarily know more about yourself than anyone else does it&#8217;s important to weigh my thoughts on this as just one more source of data.</p>
<p>Whether you decide to seek corporate industry work or go independent, I think that a Computer Science degree is still among the most applicable, useful, and broadly marketable backgrounds related to game development. I&#8217;ll do my best here to make a case for why I think that&#8217;s true.</p>
<p>Note too that, importantly, CS is also a credential respected outside of games, which can make it a practical degree to have for finding or creating back-up plans down the line if necessary.</p>
<h4>Comp Sci != Game Making</h4>
<p>As you&#8217;ve probably already discovered, game development generally isn&#8217;t really part of CS curriculum, except perhaps for a single high level elective class. Almost all of my game development during college came from <a href="http://www.hobbygamedev.com/articles/vol7/establishing-a-videogame-development-club/" target="_blank">extracurricular clubs</a>.</p>
<p>Learning game development requires a good deal of self-teaching no matter what major someone is undertaking. Experience in CS is relevant though, and it complements someone&#8217;s self-education in game development by pushing development in areas that it would be easy to overlook on our own. Material from CS can be useful outside of the classroom, when working through real-world game development problems, sometimes in ways that are hard to recognize until they come up during the creative process as either challenges you&#8217;ve prepared for, or &#8211; if the skills aren&#8217;t there &#8211; as apparent dead-ends.</p>
<p><center><img src="http://www.hobbygamedev.com/pics/computer_science_major.png" alt="" /><br />
<a href="http://abstrusegoose.com/206" target="_blank">Comic from Abstruse Goose</a>, shared under <a href="http://creativecommons.org/licenses/by-nc/3.0/us/" target="_blank">Creative Commons Attribution</a></center>&nbsp;</p>
<p>There are no doubt routes to take that are easier or more enjoyable to take in the short term, but those paths may or may not be easier and more enjoyable in the long term. College years are partly about investing in your future capabilities and opportunities; the standards and challenges of a CS degree are just one of the established ways to stay on a solid track to do just that.</p>
<p>If it&#8217;s not immediately clicking, it might require spending some more time in the library studying (even if you don&#8217;t need the books there for CS, it&#8217;s handy as a well-lit place filled with other people calmly working, too), attending more of the optional tutoring and office-hours sessions available through your school, starting earlier on assignments, and staying up later sometimes to hack through getting assignments figured out and working. Many college students wind up automatically paying for resources but not making full use of them, whether via the career center, library assistance, or office hours. Before deciding that a subject isn&#8217;t working out, make sure that you&#8217;re at least getting your money&#8217;s worth and using all the mechanisms available. Outside of working on videogame projects and trying to live a rounded life in college, I spent a ton of time at office hours asking questions to try to fill in for what I didn&#8217;t understand yet from the lectures and reading.</p>
<h4>Big Company vs Indie</h4>
<p>A qualifier about the difference between big company work and an indie career: earnings from independent development can be really, really hit or miss, spotty and unpredictable, and in the majority of cases unprofitable. There&#8217;s a huge selection bias in the indies we hear the most about &#8211; they&#8217;re disproportionately the rare success stories that have done extraordinarily well. The countless others that are barely scraping by or losing money don&#8217;t make for good headlines.</p>
<p>Independent work can be a tricky and trying path to navigate, and though it&#8217;s potentially very rewarding, it should perhaps be initially thought of as something to develop on the side of some more consistent line of work as the main plan. With a bit of momentum from giving yourself a head start, and a bit of savings in the bank from doing something with a more predictable paycheck for awhile first, you&#8217;ll have better odds of lifting off the runway.</p>
<p>One element that helped me in my journey &#8211; though again each individual&#8217;s mileage from such choices will vary &#8211; was to minor in Business Administration. Those courses involved learning and practicing skills that were useful in every scale of work environment that I&#8217;ve been involved with, including my time alone: presenting information/ideas/yourself to others, basic financial concepts, project planning, even practical bits like resume preparation. (Even if you go independent, keeping an efficient, up-to-date, professionally presented summary of skills and work can be useful to have on hand.)</p>
<p>Whatever you decide, good luck on the road ahead!</p>
<h3>Question, Part 2</h3>
<p><em>- It seems like many of today&#8217;s big designers got into the industry with a non-technical major. Do you see the industry moving more towards requiring a relatable degree?</em></p>
<h3>Answer, Part 2</h3>
<p>You&#8217;re right that many of the current big and/or historical names in the industry have a seemingly random assortment of backgrounds. John Romero and David Perry were both, if I recall, completely self-taught, and did not attend university. Nintendo&#8217;s Shigeru Miyamoto went to school for industrial design. In <a href="http://cdgdl.com/lessons/robinett.html" target="_blank">my interview with Atari <em>Adventure</em> designer Warren Robinett</a>, he mentioned that one of his early co-workers in the game industry, &#8220;had a degree in Zoology.&#8221;</p>
<p>Of course, Shigeru Miyamoto was born in 1952 &#8211; so for perspective, <em>Pong</em> hit the market (overseas, here in the US) when he was already 20 years old. Robinett&#8217;s undergraduate degree was not in Computer Science &#8211; he majored in a CS-like area of math, but when he was an undergrad CS had not yet become a standardized field of study.</p>
<p>That historical difference partly accounts for what you&#8217;ve rightly pointed out.</p>
<h4>40 Years Ago</h4>
<p>The industry didn&#8217;t exist when most of the early innovators were growing up. To the extent that some degrees were later relatable, like Robinett&#8217;s pre-CS technical/math major, no one at that time could have picked it for that purpose, because those exact jobs and products didn&#8217;t exist yet.</p>
<p>Another thing to keep in mind was that computing was very different in the 1960&#8242;s to early 1970&#8242;s. Far fewer people had access to computers, but among those that did, a much higher percentage of users taught themselves how to program because it was pretty central to being able to use a computer at all. Programming was one of the few activities that could be done on machines at the time; the first word processor didn&#8217;t come out until 1972, and the internet didn&#8217;t become common and commercialized until much later in the 90&#8242;s.</p>
<p>There also wasn&#8217;t much &#8216;prior art&#8217; for a game developer to catch up on. Nearly everything being done at all was new, and by casual assessment equally valid from a business perspective until the market response to a shipped product indicated otherwise. By comparison, much has since been sorted out by now, both from a technical perspective and also from a business perspective. People have already lost a lot of time and money figuring out how to do certain things in impressively efficient ways, how to collaborate effectively on team projects, and discovering what consumers responded well or poorly to. Developers caught up on those findings have an advantage over others starting from scratch, reinventing the wheel, insisting on learning the hard way.</p>
<p>Now that four decades have passed, many of the surviving companies have thousands of employees (or at least compete against companies of that size), and there&#8217;s demand for high degrees of specialization for a team to be able to distinguish its products from those that competitors are able to create. Even just keeping up with inflated consumer expectations, especially on today&#8217;s higher fidelity platforms, can require specialists. Whether applying for an industry job or creating independent games as a small team, each individual is competing against a tidal wave of other eager, passionate people that have partly designed their education and adult lives around developing skills that have been found relevant to the now more established craft of videogame production.</p>
<h4>Increased Importance of Degrees</h4>
<p>The increased importance of degrees, though more so for applying to jobs as opposed to working independently, has also become a useful shortcut for hiring managers serving as a company&#8217;s first line of assessment. At a company with a recognizable brand, the executive producer or lead engineer can&#8217;t personally screen every applicant. Instead, the initial set of applicant submissions first has to make it past recruiters that are not necessarily game development specialists, and thus may look for specific degrees and types of prior experience as evidence of the skills they&#8217;re hiring for. Applications making that cut then move on to one or more rounds of interviews, at which point an appropriate specialist from the team may be available to help assess actual qualifications, but getting to that phase with little/no relevant professional experience is part of where the appropriate degree can help.</p>
<p>While there may be capable applicants without relevant degrees, unfortunately there are often enough qualified applicants that do have relevant degrees that it&#8217;s easier and more cost/time efficient for a company to hire primarily from the latter pool, for which less screening may be required since college admissions and professors may be thought of as a very specific sort of filter.</p>
<h4>Comp Sci is More Than Programming</h4>
<p>A CS degree is not just about knowing how to program. Having a particular degree is often also interpreted as evidence, correlative beyond the scope of what&#8217;s covered directly by the curriculum for that degree, that someone is dedicating themselves to some predictable set of knowledge, skills, and values. Companies need all kinds of people to thrive, but from a purely practical perspective, it doesn&#8217;t take much imagination to picture how a &#8220;CS person&#8221; can fit in and benefit a company that creates software. Computer Science rewards attention to efficiency, feasibility, robustness, extensibiliy, self-correction, and some other less easily pinpointed but equally useful priorities, in ways that specifically apply to computer programs. (I.e. while it&#8217;s true that plenty of subjects may reward attention to efficiency and feasibility, traditional CS approaches these in an extremely rigorous fashion by dealing with their theoretical limits.)</p>
<p>The increase in people hired that have relevant degrees, from the above factors, has created a positive feedback loop. When the people with those credentials get promoted over the years into more senior-level positions, they&#8217;re even more likely to value that same (or similar) credential among incoming candidates at an interview stage.</p>
<h4>Game Degrees</h4>
<p>Another option within the spectrum &#8211; which you haven&#8217;t asked about directly but I&#8217;ll address here for sake of completeness &#8211; is in degrees more specifically and narrowly about videogame development. These haven&#8217;t been around as long as Computer Science, making them a bit less standardized, and consequently more of an unknown, unproven value to many people in industry. Anyone with a CS background has a pretty clear idea of what someone with a CS degree from another school likely covered, but there&#8217;s so much variety between game degrees that it&#8217;s hard to know what skills and work culture to expect unless someone in a hiring position is personally familiar with that exact school and educational program.</p>
<p>Partly as an effect of having not been around as long, there are also fewer senior-level people (yet) from those types of educational backgrounds.</p>
<p>The flip side is that some of the same factors that have made the CS degree of more interest to the industry are likely at work for those more game specific degrees: easy shortcut for hiring managers, evidence of (probable) commitment to certain knowledge and attitudes beyond the curriculum, and as time progresses, more senior level people coming from that background will be held up as evidence of the type of value associated with those degrees.</p>
<p>That path can also be a more risky value proposition to students, however, since those degrees sometimes cost comparatively more (being seen as more vocational, and thus framed more as a financial investment) and can be more limiting to videogame industry work. Students with those degrees have less of a clear back-up plan, not only if they can&#8217;t find a fit in the game industry, but also if the game industry undergoes a major shift as it did when arcades mostly phased out, when MMO&#8217;s seemed like the next/only big thing for awhile, when digital/mobile distribution lowered barriers-to-entry for competitors with much smaller staff, and as social games have grown to absorb an increasingly sizable chunk of game company investment capital.</p>
<p>How good of a back-up plan comes out of a mostly game-specific degree varies greatly between how individual schools have chosen to implement such programs. I have heard peers in such programs report everything from their studies being typical Computer Science in-disguise, to specific tool training (which can seem the most useful in the short term, but can be the least useful in the long term &#8211; teach yourself the tools, instead!), to amounting to little more than an excuse for networking. Remember though that a recruiter without direct connections to the particular program (perhaps less likely outside the industry than within it) may not have an easy way to quickly discern one of the above from another, and that could affect whether an application makes it to a stage in the process at which someone with the necessary domain knowledge takes the time to sort out the candidate&#8217;s relevant capabilities.</p>
<h4>Closing</h4>
<p>The case, by contrast, for a CS degree is that its emphasis is on fundamental concepts, which aim to extend well into the future largely independent of specific technologies or how the market may change. At any time in game industry history, even just a five year span has covered some pretty dramatic changes, but a proficiency for the skills and mindset of proper software development has remained central and relevant.</p>
<p>Lastly, as a reminder: I have only an outside, second-hand perspective of the alternatives. Your best bet for gaining a more balanced perspective would be to pitch this same question to some game developers with different backgrounds. There&#8217;s no one right way to go about it, though the odds are better some ways than others.</p>
<img src="http://feeds.feedburner.com/~r/hobbygamedev/~4/HjZXbBELu4E" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.hobbygamedev.com/beg/cs-major/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.hobbygamedev.com/beg/cs-major/</feedburner:origLink></item>
		<item>
		<title>3 Mini-Portmortems</title>
		<link>http://feedproxy.google.com/~r/hobbygamedev/~3/cW5EZ3DUgfg/</link>
		<comments>http://www.hobbygamedev.com/spx/3-mini-portmortems/#comments</comments>
		<pubDate>Fri, 27 Jan 2012 10:35:23 +0000</pubDate>
		<dc:creator>Chris DeLeon</dc:creator>
				<category><![CDATA[Special Topic]]></category>
		<category><![CDATA[Vol. 34]]></category>
		<category><![CDATA[Author's Games]]></category>
		<category><![CDATA[Student Games]]></category>
		<category><![CDATA[Team Projects]]></category>

		<guid isPermaLink="false">http://www.hobbygamedev.com/?p=6181</guid>
		<description><![CDATA[Here are mini-postmortems on the past 3 team projects for which I served as a lead or primary role. I handled programming and much of the gameplay design, collaborating with artists, writers, musicians and other designers. Full credits are available in-game. Please note that all of the games below require a modestly up-to-date version of&#8230;]]></description>
			<content:encoded><![CDATA[<p>Here are mini-postmortems on the past 3 team projects for which I served as a lead or primary role. I handled programming and much of the gameplay design, collaborating with artists, writers, musicians and other designers. Full credits are available in-game.</p>
<p>Please note that all of the games below require a modestly up-to-date version of the <a href="http://get.adobe.com/flashplayer/" target="_blank">Flash Player (free)</a>.</p>
<p><br/><center></center><br/></p>
<div style="padding-left:40px; padding-right:40px;">
<img src="http://hobbygamedev.com/apr-proj-ss/vbp1.jpg"/><br/>
</div>
<h3>Vision by Proxy: Second Edition</h3>
<p>&gt; &gt; <a href="http://visionbyproxy.com/" target="_blank">Play in Browser</a> &#8211; <a href="http://vimeo.com/26464925" target="_blank">Trailer Video</a> &lt; &lt;</p>
<p><strong>Artsy Puzzle Platformer</p>
<p>Released August 2011</p>
<p>2.7 million plays</strong>, won <a href="http://www.siegecon.net/SIEGE2011/index.php?option=com_content&#038;view=category&#038;layout=blog&#038;id=102&#038;Itemid=100" target="_blank">Best of SIEGE 2011 Student Showcase</a></p>
<p><i>VbP:SE</i> did better than we expected, making it to the front pages of several major Flash game portals in the US and abroad. We&#8217;re currently working on a sequel (<i>Ms Vision by Proxy</i>) in which we attempt to address the game&#8217;s brevity by involving more character eyes. The short length of <i>VbP:SE</i> probably worked a bit to its advantage though, since it kept the scope such that players can get through the full game comfortably in one sitting.</p>
<p>Some people especially disliked the bonus levels, while other players specifically preferred those stages, both for the same reasons: they focus on platforming instead of puzzle solving. The game was short enough, all included, that players who like either were mostly able to slog through the ones they felt so-so about. In any case it worked out well having these types of stages separated conceptually as a post-story second play through, rather than forcing both level types into the same timeline. It&#8217;s a trick akin to what&#8217;s seen in <i>Portal</i> or <i>Mirror&#8217;s Edge</i> &#8211; at a much smaller scale, of course.</p>
<p>The game also would have suffered more from being too short if we hadn&#8217;t milked the engine, level parts, eyes, and cinematic sequences to squeeze in twice the levels. Most importantly we were able to get this increase in length without creating any new art assets nor needing to program any additional features. I just spent an extra day in the level editor churning out 9 more levels and throwing away the 6 I liked least to leave my preferred set of 3 remaining, which is a fairly common way that I like to do level design when time and tools allow it.</p>
<p><br/><br/><center><strong>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</strong></center><br/><br/></p>
<div style="padding-left:40px; padding-right:40px;">
<img src="http://www.hobbygamedev.com/pics/ms-full.jpg" width="450"/><br/>
</div>
<h3>MechStrike</h3>
<p>&gt; &gt; <a href="http://mechstrike.com/" target="_blank">Play in Browser</a> &lt; &lt;</p>
<p><strong>Set-and-Play Sideview Action</p>
<p>Released May 2011</p>
<p>90,000 plays</strong>, 85% on Chinese web portals</p>
<p>I feel like this game had just the right number of unit types: 11. More would have been harder to learn, and fewer would have limited depth and variety.</p>
<p>Early on during development we briefly explored what it would take to make a more complex and involved simulation with more detailed AI, stat, and strategy options, though we ultimately decided that something like <i>Gratuitous Space Battles</i> might not make sense for an in-browser gaming audience. That worked out for the best anyhow, since we didn&#8217;t have the time outside of classes during the semester to pull off something on that scale and polish. We made a lot of compromises to keep gameplay quick and to the point. In the end we made it simple and quick for players to get set up, which turned out to be vital for a game like this since trial, error, and observation is necessary to learn how each of the weapons and units work out against and alongside one another (from emergence, though, not from any contrived countering or boosting relationships).</p>
<p>It&#8217;s surprisingly difficult to come up with cool, non-cheesy names for futuristic military units that haven&#8217;t already been done to death. <a href="http://www.hankwhitson.com/" target="_blank">Our writer</a> came up with excellent names for each of the units, in addition to helping us come up with a varied set of weapons and abilities and writing the opening crawl. The techno-metal track we selected from <a href="http://incompetech.com/m/c/royalty-free/" target="_blank">Kevin MacLeod&#8217;s Creative Commons library</a> fit really well, but like any MacLeod music people hear the songs in YouTube videos and other games. <i>MechWarrior 2</i> was a source of inspiration for us, and the song we picked has a similar vibe to <a href="http://www.youtube.com/watch?v=zlp2VEUTTeI" target="_blank">Dragon&#8217;s Teeth</a> from <i>MechWarrior 2: Mercenaries</i>.</p>
<p>Though my animation engine wasn&#8217;t particularly great, <a href="http://www.linkedin.com/pub/vu-ha/22/212/a1a" target="_blank">our mech artist</a> did a really nice job with the individual mech body parts. Without cool looking mechs the game wouldn&#8217;t have worked at all. Our <a href="http://www.linkedin.com/pub/andrea-benavides/7/1ba/7b" target="_blank">main UI designer</a> wound up doing all of our final tank and plane art near last minute (not her fault &#8211; originally someone else was going to make them), and thankfully they came out distinct and recognizable despite the time limitations. Our original plans included the ability for mechs to lose their limbs during battle, as they do in <i>MechWarrior</i> games, which we wound up cutting since our mechs didn&#8217;t look as good without arms, and if mechs lost any of their few weapons during battle it would only drag out the endgame.</p>
<p>When there&#8217;s only a few units left in a well-matched battle it can be kind of suspenseful&#8230; but it mostly just highlights the weakness and inaccuracy of my AI. In my defense, for about half of the project we had someone else onboard specifically to focus on AI programming, though on account of outside obligations he wound up parting before really getting started. That type of uncertainty is simply a risk of making hobby/extracurricular videogames, since we have no pay nor course credit to offer. The core gameplay still works with the mostly functional AI I stitched together.</p>
<p>We were considering having multiple rounds per configuration, with players able to make changes to their AI or weapon settings between rounds but not to which vehicles are included, but I&#8217;m glad that idea didn&#8217;t make it. Part of the fun is quickly mixing up fresh scenarios, and being forced to watch a poorly chosen team lose again and again would be rough. The single round simplicity of our matches and how quickly they can be set up even made it possible for <a href="https://twitter.com/#!/hankymei" target="_blank">Henry</a> and I to play indirectly via Facebook:</p>
<table width="550">
<tr>
<td>
<div style="padding-left:75px; padding-right:85px;">
<img src="http://hobbygamedev.com/apr-proj-ss/ms-facebook.png"/><br/>
</div>
</td>
</tr>
</table>
<p>The team had a bit of back and forth about whether the players should be able to do anything during the match. Proposals included pressing a key to time deployment of a second wave of units, using the mouse to fire an orbital super weapon, toggling some AI variables, or directly controlling a lone commander unit. In the end we went with pure spectatorship, with shared camera control, which has a very different feel than being involved during the action by prolonging a sense of hope rather than demanding constant focus. Although we added little smoke and sparks to damaged units, we opted to leave precise vehicle health bars out of gameplay, partly for the uncertainty that their absence adds to excitement. Being able to identify the clear winner well before the end of the match, which could have messed up the experience, is much harder to do reliably since it&#8217;s unclear how many more hits the units left on the field will be able to sustain.</p>
<p>Huge robots walking past one another mid-battlefield just looked wrong, and combined with their slow speed we couldn&#8217;t get away with it as we did with the tanks and jets. Instead, we programmed the mechs to stop and fight toe-to-toe with one another until one or the other exploded. All three mechs also have a special mech-vs-mech melee attack implemented: the humanoid walker slashes with the energy sword (instant kill to any unit), the chicken walker kicks, and the spider performs a stomping action.</p>
<p>We didn&#8217;t mean to make melee so rare as it came out, that happened only by late accident while trying to patch up other tuning imbalances. These attacks played a pretty pivotal role in the first build or two we released, with matches often coming down to mechs destroying each other point blank in the middle of the stage. The inevitable melee gave extra importance to fielding a humanoid walker. In later tunings (including the current version, 1.04) we improved the weapon accuracy for most units, decreased mech armor slightly, and increased the effectiveness of machinegun usage between mechs at medium range. These changes combined to make mech melee virtually never take place, though technically it&#8217;s still there and will happen if matches unfold in a sufficiently peculiar way.</p>
<p>In hindsight, a way to save a launch team configuration for more rapid experimentation in sandbox would have been nice. Not only would it help players experiment faster, but it also would have made testing and iterating on game balance easier for us.</p>
<p><br/><br/><center><strong>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</strong></center><br/><br/></p>
<p><img src="http://www.hobbygamedev.com/pics/zylatov/shot2.png" width="555" height="416"/></p>
<h3>Zylatov Sisters</h3>
<p>&gt; &gt; <a href="http://zylatov.com/" target="_blank">Play in Browser</a> &#8211; <a href="http://vimeo.com/33854441" target="_blank">Trailer Video</a> &lt; &lt;</p>
<p><strong>80&#8242;s-ish Arcade Action/Platformer, designed for shared screen co-op</p>
<p>Released Dec 2011</p>
<p>130,000 plays</strong></p>
<p>Unlike most other games that I&#8217;ve worked on, after finishing work on this I still really enjoy playing it.</p>
<p>As an experiment in modular game design to help reduce overhead <i>Zylatov Sisters</i> was successful in producing a good amount of variety and giving a number of beginning developers in <a href="http://vgdev.org/games/" target="_blank">our videogame development club</a> a mix of experience. (I&#8217;ve previously written HGD entries about <a href="http://www.hobbygamedev.com/adv/zylatov/" target="_blank">our process</a>, and also <a href="http://www.hobbygamedev.com/spx/play-zylatov/" target="_blank">some of our design decisions</a>)</p>
<p>Many players are finding it unacceptably difficult, though we understood from the outset that we wanted to make a game with pinball or classic-arcade pacing: constant vulnerability, typically 1-3 minute sessions <i>after</i> a modest amount of practice, and replaying to earn increasingly higher scores. Further, we knew that the usual in-browser gaming audience might not necessarily go for this type of structure since it&#8217;s an outdated taste. Players widely accustomed to videogames that are designed to be plowed through by persistence are presented here instead with levels that aren&#8217;t meant to be consistently completed.</p>
<p>There&#8217;s also a steep learning curve in that the arena-nature of each level means it&#8217;s hardest right when each stage begins, when all enemies are still alive. Start the round carefully enough to survive and aggressively enough to cut down some of the horde, and with the remaining lives the odds of survival within that level improve considerably. Fewer enemies left in a stage also makes it easier to retrieve gun/item boxes, which can help improve survival odds for the start of the next level.</p>
<p>This was never meant to be a commercial game though, so we felt ok with simply making the game that we wanted to play.</p>
<p>Our decision to make any level equally eligible for selection as the first level gives the game variety for a high level of play and makes it easier for students on the team to show their work to peers. We also randomize which level shows up first, so that every player gets a slightly different first experience. However the lack of any intro, tutorial, or beginning level(s) served to further alienate players that found the game too difficult at first. We perhaps ought to have at least picked out a few of the easiest levels, and made the first level upon game start randomized from between those instead of all maps.</p>
<p>We also received frustrated feedback about the game&#8217;s default controls, which we set with co-op in mind. Even though the controls can be reconfigured from the main menu, relatively few people seem to be taking advantage of that. We perhaps should have gone with our original plan of using different default key mappings for single player vs co-op play, which we strayed away from late in development from fear that doing so would throw people off when trying co-op. Supporting that decision would also require a slightly different menu system, which we didn&#8217;t have time left to do late in the schedule. Unfortunately some players are finding the single player controls needlessly cramped, then simply quitting forever before either trying co-op or realizing that the controls can be easily reconfigured.</p>
<p>In other words: fully reconfigurable controls cannot make up for default controls that people don&#8217;t like. Especially with a free game, people have no investment in making the experience work for them and can easily switch to something else, so if they don&#8217;t immediately like the default mapping it&#8217;s over &#8211; player lost.</p>
<p>On the plus side, more so than the other games I&#8217;ve mentioned here, people that do like this game seem to be returning to play it semi-regularly. That makes sense given the arcade model we were trying to emulate. By comparison though, it doesn&#8217;t really make much sense to play <i>VbP:SE</i> more than once, and <i>MechStrike</i>&#8216;s novelty and mechanics favor head-to-head play but don&#8217;t offer much single player replay.</p>
<p>Our inclusion of co-op only support weapons worked out well for two-player, but may have strained our single player weapons offering a bit by comparison. We partly mitigated this by the three types of special weapons that can appear for getting a 5X or higher multiplier. However because it takes a bit of practice and luck to earn those, they don&#8217;t do much to help first impressions. The two-player support weapons can be really powerful for assists if used effectively with the other player&#8217;s help, though here again, tuning the game to keep those co-op weapons from being overpowered rendered single-player even more unforgiving.</p>
<p>Co-op also lets players revive one another indefinitely. As long as at least one player remains alive and can find a chance to either finish the current level or kneel briefly by the fallen sister, it&#8217;s possible to just keep going. Two experienced players working together can go on a roll for quite awhile, which in light of the game&#8217;s harsh difficulty can be especially rewarding.</p>
<div>
<p><img src="http://www.hobbygamedev.com/apr-proj-ss/zyl-scores-end.png" width="555" height="416"/></p>
</div>
<p>The aftermath stat and throwaway &#8220;award&#8221; screens (<i>GoldenEye 007</i> style) worked well for giving players a moment to reflect on each round. Without them I think a hard jump from game over right back to level select menu would have been too jarring.</p>
<p>Outside testers really helped out a lot near the end of the project. I put out a call via Facebook and Twitter, and also had a few classmates try it out in person where I could more easily observe and ask questions. It led to some important spot fixes to several stage layouts/assets, tweaks for more responsive controls (running then turning used to slip much more, as if on ice), and focused us on which wish list items were most important to implement with the time we had left (including saving high scores locally and the option to customize controls).</p>
<p><a href="http://www.pjcoursey.com/" target="_blank">One of our members oversaw narrative design</a> in addition to helping out as another technical game designer/artist. That can be a tricky role to play on a project that aims for an mid-80&#8242;s action arcade aesthetic, but he understood from the outset that the goal was low-fi retro, and he was flexible to the specific needs of the project. Since the genre is pretty light on written text outside of the intro (which players of this sort of game tend to skip anyhow), he instead improvised other ways to help establish the game’s atmosphere: recommending the game’s main font, drawing the title screen background to set the mood, and authoring his levels with a deliberate progression.</p>
<p>Our team members making chiptunes for this project really shined (several of them don&#8217;t have online portfolios yet, though <a href="http://primeape91.wordpress.com/" target="_blank">one does</a>), pulling off a <i>Castlevania/MegaMan</i>-ish vibe pretty well in a number of tracks. I&#8217;ve been enjoying the soundtrack separately from the game. Tying specific songs to each stage helped give each level a consistent personality, beyond what feel we could achieve through changes in layout, tile art, and enemy/item/spawn placement. The best way to browse the game&#8217;s music and see who&#8217;s responsible for each track is to <a href="http://zylatov.com/" target="_blank">play <i>Zylatov Sisters</i></a> and scroll around on the level select screen.</p>
<img src="http://feeds.feedburner.com/~r/hobbygamedev/~4/cW5EZ3DUgfg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.hobbygamedev.com/spx/3-mini-portmortems/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.hobbygamedev.com/spx/3-mini-portmortems/</feedburner:origLink></item>
		<item>
		<title>Controlling Project Size</title>
		<link>http://feedproxy.google.com/~r/hobbygamedev/~3/ugtAKPl1zBo/</link>
		<comments>http://www.hobbygamedev.com/int/controlling-project-size/#comments</comments>
		<pubDate>Wed, 25 Jan 2012 21:00:47 +0000</pubDate>
		<dc:creator>Chris DeLeon</dc:creator>
				<category><![CDATA[Intermediate]]></category>
		<category><![CDATA[Vol. 34]]></category>
		<category><![CDATA[Game Design]]></category>
		<category><![CDATA[Getting Started]]></category>
		<category><![CDATA[Student Games]]></category>
		<category><![CDATA[Summary Post]]></category>
		<category><![CDATA[Team Projects]]></category>

		<guid isPermaLink="false">http://www.hobbygamedev.com/?p=6201</guid>
		<description><![CDATA[One of my entries from November 2010 included links to slides from several introductory talks I prepared for VGDev, our student game development club at Georgia Tech. Last semester, I put together and updated a single summary presentation of highlights from those slides, which is now available on SlideShare as Controlling Project Size for Student/Hobby&#8230;]]></description>
			<content:encoded><![CDATA[<p>One of my entries from November 2010 included links to <a href="http://www.hobbygamedev.com/spx/talks-from-georgia-tech-vgdev-sig/" target="_blank">slides from several introductory talks I prepared for VGDev</a>, our student game development club at Georgia Tech.</p>
<p>Last semester, I put together and updated a single summary presentation of highlights from those slides, which is now available on SlideShare as <a href="http://www.slideshare.net/chrisdeleon/studenthobby-videogame-project-scope-control" target="_blank"><strong>Controlling Project Size for Student/Hobby Videogame Development</strong></a>.</p>
<p>If you already know how to program (and/or some other fundamental videogame development skills) but are looking to transition into non-commercial group projects, concepts in these slides may help save some heartache or common dead ends and ease the transition:</p>
<p><a href="http://www.slideshare.net/chrisdeleon/studenthobby-videogame-project-scope-control" target="_blank"><strong>http://www.slideshare.net/chrisdeleon/studenthobby-videogame-project-scope-control</strong></a></p>
<img src="http://feeds.feedburner.com/~r/hobbygamedev/~4/ugtAKPl1zBo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.hobbygamedev.com/int/controlling-project-size/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.hobbygamedev.com/int/controlling-project-size/</feedburner:origLink></item>
		<item>
		<title>Mediated Input (Scribd/PDF)</title>
		<link>http://feedproxy.google.com/~r/hobbygamedev/~3/UHptL0-eHNg/</link>
		<comments>http://www.hobbygamedev.com/adv/mediated-input-scribdpdf/#comments</comments>
		<pubDate>Mon, 23 Jan 2012 02:02:25 +0000</pubDate>
		<dc:creator>Chris DeLeon</dc:creator>
				<category><![CDATA[Advanced]]></category>
		<category><![CDATA[Vol. 34]]></category>
		<category><![CDATA[Game Design]]></category>
		<category><![CDATA[Theory]]></category>

		<guid isPermaLink="false">http://www.hobbygamedev.com/?p=6183</guid>
		<description><![CDATA[I recently completed the other sections of the paper surrounding last month&#8217;s Skills in Mediated Input. Conceptually this entry is along similar lines to Galaga and Making Interesting Decisions, although Mediated Input focuses on contrast between athletics and real-time videogames rather than pure-decision games and real-time videogames. Topics discussed include: Which types of tacit skills&#8230;]]></description>
			<content:encoded><![CDATA[<p>I recently completed the other sections of the paper surrounding last month&#8217;s <a href="http://www.hobbygamedev.com/adv/skill-in-mediated-input/" target="_blank">Skills in Mediated Input</a>.</p>
<p>Conceptually this entry is along similar lines to <a href="http://www.hobbygamedev.com/beg/galaga-and-decisions/" target="_blank">Galaga and Making Interesting Decisions</a>, although Mediated Input focuses on contrast between athletics and real-time videogames rather than pure-decision games and real-time videogames.</p>
<p>Topics discussed include:</p>
<ul>
<li>Which types of tacit skills direct-control simulations train well for, and why<br/><br/></li>
<li>Separating execution from strategy in games<br/><br/></li>
<li>Performance probability as a function of personal ability, preparation, and circumstance<br/><br/></li>
<li>Market benefits of controller-based gameplay<br/><br/></li>
<li>Distinction between tool use and mediated input<br/><br/></li>
<li>Limitations and design for motion control</li>
</ul>
<p><a href="http://www.scribd.com/doc/79048987/Mediated-Input" target="_blank">The write-up is available in PDF</a> on Scribd:</p>
<p><strong>&gt;&gt; <a href="http://www.scribd.com/doc/79048987/Mediated-Input" target="_blank">View it at http://www.scribd.com/doc/79048987/Mediated-Input</a> &lt;&lt;</strong><br />
<br/></p>
<img src="http://feeds.feedburner.com/~r/hobbygamedev/~4/UHptL0-eHNg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.hobbygamedev.com/adv/mediated-input-scribdpdf/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.hobbygamedev.com/adv/mediated-input-scribdpdf/</feedburner:origLink></item>
		<item>
		<title>ActionScript 3 Entries and Notes on HTML5</title>
		<link>http://feedproxy.google.com/~r/hobbygamedev/~3/vFMIIrvpSQk/</link>
		<comments>http://www.hobbygamedev.com/int/as3-and-notes-on-html5/#comments</comments>
		<pubDate>Sat, 31 Dec 2011 09:16:38 +0000</pubDate>
		<dc:creator>Chris DeLeon</dc:creator>
				<category><![CDATA[Intermediate]]></category>
		<category><![CDATA[Vol. 33]]></category>
		<category><![CDATA[Open Response]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Sample Code]]></category>
		<category><![CDATA[Summary Post]]></category>

		<guid isPermaLink="false">http://www.hobbygamedev.com/?p=5884</guid>
		<description><![CDATA[One of the more common questions I&#8217;ve been receiving via e-mail and finding on forums is about programmers familiar with some other language (Java, C#, C++) aiming to switch to ActionScript 3 for developing web/Flash games. The benefits of this transition are broader distribution (easy to reach thousands of players, or more, within days), trivial&#8230;]]></description>
			<content:encoded><![CDATA[<p>One of the more common questions I&#8217;ve been receiving via e-mail and finding on forums is about programmers familiar with some other language (Java, C#, C++) aiming to switch to ActionScript 3 for developing web/Flash games.</p>
<p>The benefits of this transition are broader distribution (easy to reach thousands of players, or more, within days), trivial cross-platform support, and simplification of user experience (no install, configuration, or uninstall &#8211; just visit a URL). As tradeoffs: total file size matters for loading/download time, and keeping up performance can involve a few tricks. However both of those tradeoffs are matters developers are historically used to working with for other reasons, such a limited media storage and older processors, so there are traditions and patterns for designing to get the most out of such constraints.</p>
<p>AS3 is also free to use, provided you know <a href="http://www.gamedevlessons.com/lessons/commandline.html" target="_blank">how to navigate command-line</a>. If you&#8217;re using Windows then <a href="http://www.flashdevelop.org/" target="_blank">FlashDevelop</a> is even available as a free IDE to manage project files and compiler settings.</p>
<p>I&#8217;ve already written a number of entries and sample projects about AS3, but they&#8217;re a bit spread about. Since I&#8217;ve been pulling together the same links for multiple replies, it seemed time for a new <a href="http://www.hobbygamedev.com/tag/summary-post/" target="_blank">summary post</a> specifically on this subject.</p>
<h3>MXMLC Install and Basics</h3>
<p>MXMLC is the name of the command-line compiler used to translate ActionScript 3 code into a SWF file for usage in the Flash player/plug-in.</p>
<ul>
<li><a href="http://gamedevlessons.com/lessons/mxmlc-tut/index.html" target="_blank">Part 1: MXMLC Command-Line Compilation</a> &#8211; download and usage<br/><br/></li>
<li>
<a href="http://gamedevlessons.com/lessons/game-core-tut/index.html" target="_blank">Part 2: Flash Game Core Tutorial</a> &#8211; images, input, audio, collision, real-time updates<br/><br/></li>
<li><a href="http://gamedevlessons.com/lessons/game-motion-tut/index.html" target="_blank">Part 3: Motion Tutorial</a> &#8211; button-like key handling, move-to-click, gravity bounce</li>
</ul>
<p><a href="http://www.hobbygamedev.com/int/command-line-mxmlc-debugger/" target="_blank">Recompilation Scripts, Opening the Debugger</a> &#8211; Using scripts for recompilation, and getting started with the command-line debugger</p>
<p>Remember to add a <a href="https://www.mochibot.com/" target="_blank">MochiBot</a> to swfs as a way to keep track of plays. Many plays occur not on the original sites submitted to (Kongregate, Newgrounds, or otherwise), but instead on dozens or hundreds of other sites where the swf gets reposted. Using a few lines to add MochiBot to the project makes it possible to see where on the internet the game has been rehosted, and makes it easy to see simple graphs and counters for total plays.</p>
<p>It&#8217;ll be handy to bookmark <a href="http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/class-summary.html" target="_blank">Adobe&#8217;s official ActionScript 3 reference site</a> to verify which functions and variables are available on existing classes, as well as checking which imports are needed for particular types of built-in functionality.</p>
<h3>Sample Code</h3>
<p><a href="http://gamedevlessons.com/lessons/GameDevLessons-src-as3basics.zip">Beginner AS3 sample code (zip)</a> &#8211; Very basic, but functional and ready for compilation</p>
<p><a href="http://www.hobbygamedev.com/beg/everyones-platformer-editor-and-3-level-demo/" target="_blank"><i>Everyone&#8217;s Platformer</i></a> &#8211; Advanced platformer example, built from the ground up, that incorporates external file loading, optimized collision detection, a built-in level editor, and a variety of other features</p>
<p>This engine was used as the foundation for <a href="http://www.hobbygamedev.com/games/vision-by-proxy-2nd-edition/" target="_blank"><i>Vision by Proxy: Second Edition</i></a>.</p>
<p><a href="http://www.hobbygamedev.com/beg/everyones-platformer-level-editor-manual/" target="_blank"><i>Everyone&#8217;s Platformer</i> Level Editor Manual</a> &#8211; Usage documentation for the level editor built into <i>Everyone&#8217;s Platformer</i></p>
<p><a href="http://www.hobbygamedev.com/adv/2d-platformer-advanced-collision-detection/" target="_blank">2D Platformer Advanced Collision Detection</a> &#8211; Technical and conceptual documentation about the collision detection in the <i>Everyone&#8217;s Platformer</i> AS3 example above</p>
<p>One not by me, but particularly useful if you have more retro-style games as the target, is the <a href="http://flashgamedojo.com/wiki/index.php?title=EZPlatformer_(Flixel)" target="_blank">EZPlatformer example for Flixel</a>. We used this tutorial as the foundation for <a href="http://www.hobbygamedev.com/games/zylatov-sisters/" target="_blank"><i>Zylatov Sisters</i></a>, as described in <a href="http://www.hobbygamedev.com/adv/zylatov/" target="_blank">the entry on process for that project</a>.</p>
<h3>How to Monetize?</h3>
<p><strong>My main advice on Flash game monetization is to hold off a bit before aiming to do it.</strong> I make this suggestion for two reasons:</p>
<ol>
<li>Focusing on money for early projects can get in the way of freely exploring design ideas and technical lessons, stunting opportunities to develop the skills that can later pay off.<br/><br/></li>
<li>Prematurely going after money is unlikely to be successful anyway, a bit like someone trying to sell their first attempts at poetry or oil painting. It generally takes considerable practice and experimentation to get to that level.</li>
</ol>
<p>Although there are a variety of platforms available to support microtransactions, most of the people I know that have made money through Flash games did so through either licensing their games (getting paid to site lock and rebrand them), using their games to help win competitions leading to XBLA/PSN/WiiWare deals, or as portfolio samples to land decently paying (if inconsistent) contract work.</p>
<p>I don&#8217;t know anyone doing particularly well from ads in Flash games. Perhaps someone somewhere is, but as far as I can tell ads junk up the experience, and rarely make enough to justify that negative effect on the design. If deliberating the addition of ads, do the math as to the number of views necessary for the ads to produce any non-trivial earnings &#8211; and consider the risk that the inclusion of ads may turn off some folks from returning to the game or sharing it. It is not simply a matter of deciding whether to make no money or some money, the latter by sticking ads in or on the game; if that &#8220;some&#8221; amounts to a really trivial amount relative to the time put into it, it may wind up serving no real purpose other than annoying players off the bat.</p>
<h3>Elephant in the Room: HTML5</h3>
<p>I touched on this question briefly a couple of months ago in <a href="http://www.hobbygamedev.com/beg/picking-a-programming-language/" target="_blank">Picking a Programming Language</a>, but let&#8217;s address it head-on with a bit more detail here.</p>
<p>For interactive websites, yes, HTML5 is absolutely replacing Flash.</p>
<p>For real-time videogames, HTML5 seems to still be a long way from taking Flash&#8217;s place.</p>
<p>HTML5 renders differently on various browser and platform pairings. Like any website code subject to browser implementation, this can result in far more complicated testing, and even require branching in the code to account for different set ups.</p>
<p>HTML5 has trouble with basic audio. One common workaround for HTML5&#8242;s audio inadequacies is to <i>use Flash</i> for the audio. This clearly defeats whatever anti-Flash reasons drive some people to use HTML5.</p>
<p>(If you are using HTML5 for audio though, <a href="http://www.scirra.com/blog/65/even-more-about-audio-licenses-on-the-web" target="_blank">avoid using mp3</a>.)</p>
<p>Out of the few dozen HTML5 games I&#8217;ve seen, their main selling point is that they&#8217;re made in HTML5 &#8211; not that they do anything new or different that players find value in, not because they were faster or easier for the developers to make, and not on account of the games being particularly good.</p>
<p>To double check my concerns about HTML5, I went to <a href="http://html5games.com/" target="_blank">HTML5Games.com</a>, an aggregation site. I tried to play a well rated, top ranked game, but every few seconds the game reloaded every tab that I had open, including the tab that the game was in. I was never actually able to see it in action, but at least closing that tab put everything back to normal. While I recognize that every HTML5 game doesn&#8217;t fail that severely, it probably doesn&#8217;t take many experiences like that one for a non-programmer to abandon a games site. I&#8217;ll bet that game works fine in Google Chrome, which has excellent HTML5 support, however if we&#8217;re going to require our players to install and use a particular browser our web games will immediately be at a major disadvantage.</p>
<p>Nor has it actually mattered much that these real-time HTML5 games are more likely to work on mobile devices than Flash. For interactive websites, it matters that HTML5 runs on mobile devices. For real-time videogames, typically programmed to use keyboard controls, or using mouseover/hover effect, etc. even if the swf ran flawlessly on mobile devices, most Flash games wouldn&#8217;t be usable on those platforms anyway without a substantial redesign. Moreover, Internet Explorer still has limited HTML5 support, and since it&#8217;s the default browser on the dominant operating system that&#8217;s a pretty significant set of users being lost as a tradeoff.</p>
<p>But, someone as recently asked, what about the <a href="http://html5games.com/2011/05/angry-birds-html5/" target="_blank"><i>Angry Birds</i></a> implementation in HTML5? Though it&#8217;s admittedly an impressive port, it came only after the game&#8217;s massive success on iPhone set up the company to have resources for thoroughly testing and accounting for every browser and OS combination to get their completely designed game ported. (The core gameplay of <i>Angry Birds</i>, as a bit of an aside, follows in the footsteps of the style popularized earlier by the Flash game <i>Crush the Castle</i>.)</p>
<p>HTML5 seems to offer the cross-browser quagmire of web design to game design. Although, if the goal is to make an interactive multimedia website, HTML5 fits that task great. HTML5 is also a viable candidate for non-real-time games that primarily consist of navigating menus and clicking buttons to select choices. For the types of real-time games I develop, AS3 still looks like it will be the reasonable choice for the foreseeable future.</p>
<img src="http://feeds.feedburner.com/~r/hobbygamedev/~4/vFMIIrvpSQk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.hobbygamedev.com/int/as3-and-notes-on-html5/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.hobbygamedev.com/int/as3-and-notes-on-html5/</feedburner:origLink></item>
		<item>
		<title>A Warning About Buying Generic Art Bundles</title>
		<link>http://feedproxy.google.com/~r/hobbygamedev/~3/ZEG8Wc256Nk/</link>
		<comments>http://www.hobbygamedev.com/beg/a-warning-about-buying-generic-art-bundles/#comments</comments>
		<pubDate>Fri, 30 Dec 2011 21:26:38 +0000</pubDate>
		<dc:creator>Chris DeLeon</dc:creator>
				<category><![CDATA[Beginner]]></category>
		<category><![CDATA[Vol. 33]]></category>
		<category><![CDATA[Open Response]]></category>

		<guid isPermaLink="false">http://www.hobbygamedev.com/?p=5748</guid>
		<description><![CDATA[I would like to offer a few things to be aware of regarding this Indie Game Dev Art Bundle (partial screenshot mirror, for when that bundle goes off sale in a week) making the rounds today, and generic art packs in general: The license indicates that use of the assets is &#8220;limited to a single&#8230;]]></description>
			<content:encoded><![CDATA[<p>I would like to offer a few things to be aware of regarding <a href="http://3docean.net/bundles/indiegamedev" target="_blank">this Indie Game Dev Art Bundle</a> (<a href="http://i.imgur.com/avVjN.png" target="_blank">partial screenshot mirror</a>, for when that bundle goes off sale in a week) making the rounds today, and generic art packs in general:</p>
<ol>
<li><a href="http://3docean.net/wiki/support/legal-terms/licensing-terms/" target="_blank">The license</a> indicates that use of the assets is &#8220;limited to a single application&#8221; &#8211; this is a one-time use license.<br/><br/></li>
<li>That same license dictates that &#8220;You must not incorporate the Work in a work which is created for Resale by you or your client.&#8221; &#8211; anything produced using even a single one of these assets (including the textures) can never legally be sold.<br/><br/></li>
<li>Non-exclusive rights to assets make them extraordinarily less valuable. When players start seeing what are obviously the same assets in other games it makes the developers using those assets look either cheap, amateur (this is clip art), or worse, like a thief (the majority of players do not understand nor expect licensing of content to happen across games). Exception to this expectation is made, if ever, for sequels of the same game, which concern #1 prevents anyway.<br/><br/></li>
<li>Using generic assets in games for anything besides far off background decoration (ex. outsourced/generic assets may do if you need a few dozen spooky tree silhouettes on the horizon) dilutes a videogame&#8217;s opportunity to dictate and present a characteristic style. Whatever art your game requires that isn&#8217;t from the pack &#8211; and such art will always be needed for menus, interface, player character, cursor, etc. &#8211; will not match the art in the game.<br/><br/></li>
<li>On a similar point: leaning on generic assets also tightly constrains a developer&#8217;s design freedom since they&#8217;ll be unequipped to extend on the same art style. If your game needs a chaingun, it won&#8217;t match the art style of the sniper rifle from the pack; if your game needs a robot factory, it won&#8217;t match the art style of the hospital from the pack, etc. Generally it would be far better to use a slightly less professional style but one that you or someone on the team is able to match with consistency across the entire game. If you&#8217;re really bad at in-game art, you&#8217;d still be better off using placeholder programmer art for everything, then once the game works and plays well enough to persuade a capable artist to get involved, fixing the problem that way. Or, alternatively, finding a style to employ that fits your constraints (pixelated and stickman games have both done fine, when the gameplay was done right) or strengths (ex. programmatic effects, minimalist design, etc.).</li>
</ol>
<p>I don&#8217;t think that the people selling these assets have any ill intentions. But I think that in practice, whether or not it was their intention, they&#8217;re making a quick buck off people that will be no better off with the pack than they were before.</p>
<p>There are other types of files in the bundle besides artwork &#8211; a couple of Unity tutorials, example particle systems, etc. &#8211; but there&#8217;s no reason to suspect they are any better than similar things which can be found <a href="http://www.unity3dstudent.com/" target="_blank">free elsewhere</a>.</p>
<img src="http://feeds.feedburner.com/~r/hobbygamedev/~4/ZEG8Wc256Nk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.hobbygamedev.com/beg/a-warning-about-buying-generic-art-bundles/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.hobbygamedev.com/beg/a-warning-about-buying-generic-art-bundles/</feedburner:origLink></item>
		<item>
		<title>Zylatov Sisters (80′s arcade-style co-op)</title>
		<link>http://feedproxy.google.com/~r/hobbygamedev/~3/To_93ZyUXiQ/</link>
		<comments>http://www.hobbygamedev.com/spx/play-zylatov/#comments</comments>
		<pubDate>Sun, 11 Dec 2011 06:45:57 +0000</pubDate>
		<dc:creator>Chris DeLeon</dc:creator>
				<category><![CDATA[Special Topic]]></category>
		<category><![CDATA[Vol. 33]]></category>
		<category><![CDATA[Author's Games]]></category>
		<category><![CDATA[Student Games]]></category>

		<guid isPermaLink="false">http://www.hobbygamedev.com/?p=5777</guid>
		<description><![CDATA[Zylatov Sisters is now finished and online. It&#8217;s the result of 10 weeks of work by 10 student developers, myself included. We created it alongside classwork and our various other obligations &#8211; none of us were on it full-time. We used an unusual design process to orchestrate our work and decisions in a modular fashion&#8230;]]></description>
			<content:encoded><![CDATA[<p><iframe src="http://player.vimeo.com/video/33854441" width="500" height="375" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe></p>
<p><a href="http://zylatov.com/" target="_blank"><i>Zylatov Sisters</i></a> is now finished and online. It&#8217;s the result of 10 weeks of work by 10 student developers, myself included. We created it alongside classwork and our various other obligations &#8211; none of us were on it full-time. We used an unusual design process to orchestrate our work and decisions in a modular fashion with minimal management overhead, which increased ownership over particular elements for each designer. I documented the first four weeks of that process <a href="http://www.hobbygamedev.com/adv/zylatov/" target="_blank">in a previous HGD entry about the making-of</a>. I think it worked out pretty well, came together better than I expected, and required significantly less coordination than I&#8217;m used to doing with other teams.</p>
<p><img src="http://www.hobbygamedev.com/pics/zylatov/shot2.png" width="555" height="416"/></p>
<p><i>Zylatov Sisters</i> a <a href="http://www.hobbygamedev.com/adv/skills-to-be-mastered/" target="_blank">fixed difficulty</a> game, tuned and paced to the difficulty of pinball in terms of approximate expected time per ball/life. The player is almost always within seconds of losing a life. Loss tends to occur from a lapse in attention, errors in timing, or overreaching in taking excessive risks under pressure. Player high scores are stored locally, rather than using global leaderboards. Gameplay is endless until all lives are lost, striving for an ever higher score rather than trying to overcome a boss or fixed number of levels. The enemy AI types are simple, each a combination of momentum and randomness, making them fairly easy to anticipate (or at to least interpret the probability of loss due to being within any given distance and angle of them) but impossible to manipulate.</p>
<p><img src="http://www.hobbygamedev.com/pics/zylatov/title.jpg" width="555" height="416"/></p>
<p>Stringing together frags raises the player&#8217;s multiplier, with special events happening at 5X (crate appears with special weapons or extra lives), 10X (temporary invulnerability), and 15X (instant level clear), serving to temporarily recognize varying degrees of exhilarating <a href="http://www.hobbygamedev.com/adv/replay-value-in-emergent-moments-and-uses-of-score/" target="_blank">emergent moments</a>. The game features no unlocks, partly because I didn&#8217;t want it to be a digestible, completable experience, partly because it works better this way for student portfolios, and partly because I wanted to follow my own theory that <a href="http://www.hobbygamedev.com/spx/short-videogame-design/" target="_blank">with varied content, everything should be unlocked</a>. This resulted in a &#8216;horizontal&#8217; game design, more like a row of pinball tables to pick from, rather than a sequentially locked tunnel. Which level players see first is random every time to avoid any notion of a &#8220;first&#8221; level.</p>
<p><img src="http://www.hobbygamedev.com/pics/zylatov/shot4.png" width="555" height="416"/></p>
<p>We also made the decision to credit our inspirations upfront: <i>Super Crate Box</i>, <i>Bubble Bobble</i>, and pinball. We did this because (a.) as students, we see real value in crediting sources and believe it&#8217;s the right thing to do and (b.) our game is sufficiently different from any of the inspirations that we&#8217;re not worried about it being redundant. It&#8217;s atypical to see this type of acknowledgement in entertainment/fiction, for a variety of reasons, not the least of which is that on the rare occasions when we do see it there&#8217;s either large settlement payments made under duress (as with Harlan Ellison&#8217;s acknowledgment at the end of <i>Terminator</i>), or comes across as a junky SEO attempt to get search attention (&#8220;If you liked <i>Angry Birds</i>, then you&#8217;ll love&#8230;&#8221;). For what it&#8217;s worth, Vlambeer, <i>Super Crate Box</i>&#8216;s developers, gave us their blessing via e-mail, however I did not attempt to contact Taito. Taito is a big overseas corporation, <i>Bubble Bobble</i> came out 25 years ago, and the original designer Fukio &#8220;MTJ&#8221; Mitsuji (who is the only person I would care to hear the ok from) passed away in 2008.</p>
<p><img src="http://www.hobbygamedev.com/pics/zylatov/railgun.png" width="555" height="416"/></p>
<p>In a similarly odd decision, we crammed all the credits upfront. I first tried this approach with <a href="http://www.hobbygamedev.com/articles/vol9/on-the-meaning-of-alice-in-bomberland/" target="_blank"><i>Alice in Bomberland</i></a>. I did so because I wanted to credit individuals rather than an abstract logo, but also because I&#8217;ve never worked with the same team twice &#8211; any such logo would be a one-off anyway, rather than a meaningful brand. In this case it&#8217;s also relevant that <i>Zylatov Sisters</i> is intended as portfolio work for students, so specificity and visibility regarding contributions helps toward that end. Lastly, given my own priorities as a hobby videogame development evangelist, I like that this approach emphasizes to players that games are a craft made by people working together. (This last point may sound silly or obvious to adults, but as a child it didn&#8217;t occur to me until I saw &#8220;Made in Japan&#8221; on a SNES cartridge &#8211; the layers of consumer process are very distancing. Games just seemed like magical things that mysteriously showed up on shelves for purchase, like apples or hot dogs.)</p>
<p><img src="http://www.hobbygamedev.com/pics/zylatov/shot1.png" width="555" height="416"/></p>
<p>Anyhow, nothing I write here is going to say more about <i>Zylatov Sisters</i> than <a href="http://zylatov.com/" target="_blank"><strong>playing <i>Zylatov Sisters</i> (click here to play)</strong></a>. This isn&#8217;t a post-mortem in a magazine about some $60 game for hardware you may or may not own, that would need weeks of play to yield context. It&#8217;s a free 6 MB cross-platform game, with all content unlocked upfront, played entirely in-browser, involving rounds that typically last 1-5 minutes. <a href="http://zylatov.com/" target="_blank">Give it a shot</a>!<br />
<br />
<i>Note: If the above game links don&#8217;t work, try <a href="http://www.newgrounds.com/portal/view/585453" target="_blank">playing it on NewGrounds</a>. If that doesn&#8217;t load either, a <a href="http://get.adobe.com/flashplayer/" target="_blank">newer version of Flash player</a> might be needed.</i><br /></p>
<img src="http://feeds.feedburner.com/~r/hobbygamedev/~4/To_93ZyUXiQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.hobbygamedev.com/spx/play-zylatov/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.hobbygamedev.com/spx/play-zylatov/</feedburner:origLink></item>
		<item>
		<title>Skill in Mediated Input</title>
		<link>http://feedproxy.google.com/~r/hobbygamedev/~3/3IfE2BNdv-c/</link>
		<comments>http://www.hobbygamedev.com/adv/skill-in-mediated-input/#comments</comments>
		<pubDate>Tue, 06 Dec 2011 03:14:15 +0000</pubDate>
		<dc:creator>Chris DeLeon</dc:creator>
				<category><![CDATA[Advanced]]></category>
		<category><![CDATA[Vol. 33]]></category>
		<category><![CDATA[Game Design]]></category>
		<category><![CDATA[Theory]]></category>

		<guid isPermaLink="false">http://www.hobbygamedev.com/?p=6018</guid>
		<description><![CDATA[This is a work-in-progress, excerpted and adapted from a longer but unfinished paper that I am working on to share in a future HobbyGameDev entry. [Updated: the rest of the paper, Mediated Input, is now finished and available] The paper as a whole focuses on mediated input: the use of mechanical and/or electrical controls rather&#8230;]]></description>
			<content:encoded><![CDATA[<p><i>This is a work-in-progress, excerpted and adapted from a longer but unfinished paper that I am working on to share in a future HobbyGameDev entry.</i></p>
<p>[<Strong>Updated: <a href="http://www.scribd.com/doc/79048987/Mediated-Input" target="_blank">the rest of the paper, Mediated Input, is now finished and available</a></strong>]</p>
<p><i>The paper as a whole focuses on <strong>mediated input</strong>: the use of mechanical and/or electrical controls rather than full-body athletic movements. Input mediation is present when using a button to virtually swing a sword or pass a ball, but not when using our arms to execute the same tasks in reality.</i></p>
<h4>Context</h4>
<p><i>Content leading up to this section, not included in this entry, explores mediated input as the reason why training simulations are successful for cars and aircraft but much less so for sports performance. I then detail the relationship between physical skills and strategic skills in athletic play. In short, I attempt to show in that while these timing and spatial concepts that follow indeed also apply to athletic skills, the complexity of coordination required for sports fundamentals makes the timing and spatial challenges less prominent except at very high levels of well-matched skill, and consequently less accessible to players that are unable or unwilling to commit considerable time to years of deliberate practice.</p>
<p>The excerpt below relates to the nature of skill in mediated input. In other words: since videogame players are able to make complex actions happen at the press of a button, what does is it mean for someone to be better or worse at these actions? How does design of mediated input lead to skills that can be improved by practice?</i></p>
<h3>Excerpt from Latest Draft</h3>
<p>Mediated input makes <i>how</i> some action is performed a non-issue, to bring emphasis to <i>when</i> and <i>whether</i> that action is performed. Instead of spending years practicing to achieve expert level in how to swing a baseball bat or complete a long pass, mediated input lets a player press a button to trigger a consistent performance of some action.</p>
<p>Although the main use of mediated input that interests me &#8211; videogames &#8211; takes place entirely in virtual space, that isn&#8217;t the only place where we can find mediated input. Pinball, for example, mediates input to transform button pressing into consistent, mechanical in-game actions. The steering wheel and pedals in a car, or likewise the joystick, throttle, and switches used in planes and helicopters, are also primarily mechanical, physical examples. Because primitive cases are easiest to dissect, and both the physical simulation and input devices for older videogames were comparatively simpler to those seen used in today&#8217;s games, in this section I focus primarily on examples in classic arcade videogames. I emphasize the existence of these more complex examples to recognize that though I&#8217;m mostly writing about simple arcade button controls, newer and specialized gaming controllers including high-end joysticks, steering wheels, and dual-analog controllers are still mediated input, and my sense is that many of the same ideas covered here can apply to those with a bit of extra work and extrapolation.</p>
<h4>Margin of Error</h4>
<p>The most basic skill that can be judged by mediated input is pure response time: how long does it take the player to respond to a visual or audio cue?</p>
<p>Difficulty in this case begins as a question of how long after the game&#8217;s cue a player can still press the button to accomplish the intended purpose. If responding anytime within one second of the cue is equally successful, nearly anyone could do it; if the allowed window is tuned closer to the typical reaction time, around 150-250 ms, occasional failure from hesitation becomes more likely. Where this becomes more interesting, however, is in considering the consequence for missing the optimal window in either direction.</p>
<p>Just as a golfer needs to weigh the risks of what may happen if their shot strays spatially from where they aim (perhaps accepting a less ideal distance or line to avoid risk of water hazard or sand trap), a player using mediated input needs to consider the consequences of their press or release straying temporally from its intended moment. Depending on how a particular game is designed, pressing earlier or later than the window for the player’s intended result may produce no effect, a weaker effect, a less predictable effect, or simply some different result that might have been desirable in a different context or strategy.</p>
<p>Some games, including <i>Centipede</i> [Atari 1982] and <i>Space Invaders</i> [Taito 1978], limit a player’s rate of fire to a single shot on screen at a time. An emergent effect of this limit is that firing too early or too late can miss a moving target, leaving the player defenseless until the shot either leaves the screen or hits something else. (<i>Galaga</i> [Namco 1981] used a similar reload system, though allowing 2 shots on screen at once.)</p>
<p>This pattern of vulnerability following a poorly timed action is still quite common. In addition to still being based by reload or rate of fire limitations for gun-oriented games, in hand-to-hand and melee fighting games this often appears as a period of vulnerability after an attack misses its mark. One example of this is the momentary pause that occurs after Voldo&#8217;s Elbow Smash in <i>Soul Caliber II</i> [Namco 2002], which leaves the character briefly exposed to counterattack if the strike misses.</p>
<h4>Spatial Relationships</h4>
<p>In addition to gauging time, another factor in skill for mediated input is a player’s ability to reliably gauge distances. Distances in this case may be between currently motionless objects, as in gauging a projectile&#8217;s range, or combined with the previous consideration for timeliness to extrapolate distances into the immediate future. Although performing that Elbow Smash attack with poor timing leaves Voldo exposed, what makes any particular timing poor is that Voldo is at that moment out of range. An experienced player acquires through practice and experimentation a more exact and accurate feel for the ranges of various attacks and the movement speeds of characters to line up or avoid particular collisions.</p>
<p>Likewise for the shots in <i>Centipede</i> and <i>Space Invaders</i> that miss: the reason why some shot timing is wrong and other timing is right is a matter of how the player times the projectiles to lead and meet intended targets. Rather than simply having a light come on or a sound play, as we might see in a pure test to measure reaction time, videogames typically require a player to interpret spatial and temporal relationships as timing cues.</p>
<h4>Fixed Delay After Cue</h4>
<p>Another form of difficulty takes shape as a fixed delay between the hint and the action that requires response. In the same way that spatial relationships require gaining a feel for consistent distances, this aspect of skill requires learning to pause for consistent delays. Rather than the player rushing to press a button as quickly as possible within some time after a signal, the window of time when input will yield a desired effect begins instead some learnable period of time after the need for that input is telegraphed.</p>
<p>I am using &#8220;telegraphed&#8221; here in how the term is used for athletics, meaning to transmit subtle, generally unintentional warning prior to performing some action. Since this provides an opponent with information about what&#8217;s about to happen, telegraphing makes it easier for the opponent to respond appropriately and follow with a suitable counter. In many sports, among them fencing, wrestling, and American football, athletes train partly to overcome instinctive tendencies to telegraph (except when deliberately faking out or misleading). Even a subconscious glance may be enough to give away intention, spoiling an opportunity to catch an opponent off guard.</p>
<p>First, note that in the case of mediated input, telegraphing by human players is a much less nuanced or important issue than it is in athletics. While it&#8217;s true that in head-to-head fighting games like <i>Street Fighter II</i> [Capcom 1991] a player may infer and thus counter which action is most likely to follow a leading attack (a simple example being Ken performing a jump kick followed immediately by a leg sweep), that chain of actions is hardly a subtle or unintended instinct to be trained away. A <i>Street Fighter II</i> character doesn&#8217;t have problems with eyes glancing, feet pointing, or balancing shifting in telltale ways. If anything, watching a player&#8217;s changes in finger or wrist positions during play might provide clues, but at best those clues would be ambiguous, and the pace of what happens on-screen prevents that tactic from being feasible.</p>
<p>On the other hand, telegraphing is often designed as a weakness for computer controlled characters in single player games, as a way to keep gameplay fair. Because events in videogames are not subject to the same physical limitations as bodies in sports, an attack in virtual space can happen practically instantly, within a single 1/60th second update cycle. To make up for this, telegraphing is usually built into enemy animations or attack sequences. Part of the player’s challenge then becomes learning how long after the hint the matching action will follow. Boxers in <i>Mike Tyson’s Punch-Out!!</i> [Nintendo 1987] on NES do this, for example with Bald Bull’s character crouching a consistent amount of time before each uppercut. More recently <i>Demon’s Souls</i> [From Software 2009] employed similar animation cues, as when Silver Skeleton enemies attack quickly, though always a fixed interval after the animation draws the sword back.</p>
<p>Due to the enemy&#8217;s increased vulnerability following a missed attack, similar to Voldo after his Elbow Smash, games typically integrate this delay after cue into a sequence of events to be learned then practiced:</p>
<ol>
<li>The player tries unsuccessfully to attack the enemy under normal circumstances, quickly discovering that this type of enemy has a high or certain probability of blocking, deflecting, or countering plain attacks.<br/><br/></li>
<li>The enemy telegraphs an upcoming attack on the player.<br/><br/></li>
<li>After pausing for an amount of time the player has learned through observation (or trial and error), the player dodges the enemy&#8217;s attack just as it happens. Note that the attack animation in these cases is typically too fast to be reliably handled by waiting for the actual attack to start before reacting. This necessitates the player paying attention to the enemy&#8217;s telegraphing.<br/><br/></li>
<li>The player immediately follows up using input to close the gap created by dodging.<br/><br/></li>
<li>The player attacks right as he or she is coming within range of the enemy, before enough time has passed for the enemy to recover. As a matter for difficulty tuning, increasing how long the enemy remains vulnerable after each miss decreases how precisely the player needs to learn the timing and distances involved.</li>
</ol>
<p>At least a game mechanics level, <i>Mike Tyson’s Punch-Out!!</i> and melee in <i>Demon’s Souls</i> can be largely understood as a nearly constant repetition of the above sequence for the player to master those timings against numerous types of characters. <i>Mike Tyson’s Punch-Out!!</i> adds difficulty by having a number of different telegraphed move types per opponent, whereas <i>Demon’s Souls</i> increases difficulty by having the player juggle the sequence at different phases for multiple enemies at once. Boss characters in both games tend to be characterized by more severe consequences for getting the timing wrong in response to telegraphing.</p>
<h4>Assistance by Partial Automation</h4>
<p>The level of automatic behavior resulting from a button press can also affect the type of skill applied. In the two cases just discussed, player controls affect a single on-screen avatar, but in <i>Mike Tyson’s Punch-Out!!</i> the button to dodge immediately returns the player to position to follow with a punch (automating step #4 in the above sequence), whereas in <i>Demon’s Souls</i> the player has to use movement commands to manually return within striking range after dodging.</p>
<p>Similar but more extreme contrast can be seen in the difference between fighting mechanics in a game like <i>Skyrim</i> [Bethesda 2011] versus a now standard MMO like <i>World of Warcraft</i> [Blizzard 2004]. Attack actions for <i>Skyrim</i>, at least for melee, require telegraph reading as well as drilled timing and spatial estimation for a more forgiving version of the sequence outlined for <i>Demon’s Souls</i>. By comparison, in <i>WoW</i> the player specifies which enemy they mean to target, and how, after which automation takes over and handles the delivery of attacks in a more mathematically predictable way. By removing the action-style gameplay, <i>WoW</i> distills the more strategic considerations over which opponents to engage, in what order, and with what type of attack.</p>
<p>Compare too the level of abstraction allowed by automation in virtual football games: rather than making the player indicate the angle and force behind a throw, as they might in an artillery game, by convention players are instead only responsible for which player to pass to and when. In this way <i>Madden</i> games emphasize the strategic level of football rather than the challenges involved in performing fundamentals. The angles and forces for the throw to be attempted are handled automatically, for much the same reason that <i>WoW</i> automates the combat details. Mediated input enables players to deal with the sport at a level of abstraction that is normally only accessible to people with copious experience, talent, and body mass.</p>
<h4>Fixed Delay After Input</h4>
<p>The relationship between timing and input commands also needs to be learned from the other direction: a player has to consistently account for the timing between initiating an action and the consequential moment(s) of that action.</p>
<p>In <i>Skyrim</i> the larger, heavier melee weapons don&#8217;t deliver damage until a few fractions of a second into their animation, which is enough of a difference to throw off a player&#8217;s rhythm when trying to move in to strike between the enemy&#8217;s missed swings.</p>
<p>In the case of mediated input for virtual baseball games, even though the button press automatically swings the bat the same way every time, there is still some delay between pressing the button and the bat being straight across home plate. In these cases, depending on the game&#8217;s implementation, the player may need to press the swing button a bit before the ball passes into the strike zone, rather than waiting for it to reach the point in space at which the player means to hit it.</p>
<p>In <i>Donkey Kong</i> [Nintendo 1981] barrels roll at a constant speed and Jumpman’s running jumps always rise to a consistent height, moving laterally at a fixed speed. Since the barrels are almost tall enough to reach Jumpman’s feet during a leap, a very basic skill to be mastered in <i>Donkey Kong</i> is learning how far away a barrel should be in order for a jump to safely clear it, to account for how long it takes Mario to reach the pinnacle of his jump. Jumping over the large scorpions in <i>Pitfall!</i> [Activision 1982] involved a nearly identical skill.</p>
<p>A subtle variation on this aspect occurs in later games such as <i>Super Mario Bros</i> [Nintendo 1986] that varied jump height and time based on how long the player held the button. Mario&#8217;s artificial momentum delays the effect of releasing the button, making a bit of practice necessary to consistently land on platforms at various heights and distances.</p>
<h4>Accountability for Multiple Entities</h4>
<p>Splitting attention across multiple player entities is another aspect of difficulty possible with mediated input that doesn’t have a clear analog in sport. I referred earlier to <i>Demon&#8217;s Souls</i> attacking the player with multiple entities at once, but what I intend to highlight here is the inverse: the player needing to simultaneously control and oversee the welfare of multiple entities.</p>
<p>In <i>Missile Command</i> [Atari 1980] the player had 3 different missile bases to protect, each independently being a point of vulnerability, ammunition, and defense. Rather than being responsible for spatial awareness around a single avatar, as is often the case, attention in such games needs to be shared across several units, playing either by gestalt or by quickly shifting focus to simulate multitasking.</p>
<p>In a real-time strategy (RTS) game like <i>StarCraft</i> [Blizzard 2000], the player’s attention becomes split among managing the state and actions for dozens or even hundreds of units. Here again an element of automatic behavior comes into play, made possible by the computer medium: units in an RTS game are able to assume basic intentions on behalf of the player. Without requiring granular instruction, units can be given a goal (ex. reach a certain point on the map, attack a certain enemy, guard a certain ally) and they will independently handle seeing to that goal&#8217;s completion (navigating around obstacles, firing until the target is destroyed, following the ally). The units in these types of games fire in self-defense, without requiring instruction by the player to do so. As with the above examples of automation, these assumed behaviors elevate the level of abstraction for the game&#8217;s skills, letting the player focus more on strategic decisions instead of getting bogged down in overseeing each independent entity’s immediate actions.</p>
<h4>Actions Per Minute</h4>
<p>Even with the mediated input and unit automation, it&#8217;s still possible for a player in <i>StarCraft</i> to become tied up by needing to micromanage. That occurs when a player becomes out-micromanaged by their opponent.</p>
<p>Issuing orders in the game is done via mouse, in combination with keyboard shortcuts, and that mouse fills many purposes depending upon which on-screen element is under the cursor when clicked. Because the screen’s interface buttons and unit selection areas are small in comparison to the mouse’s coordinate space, a <i>physical</i> skill becomes relevant for RTS games that’s not applicable to many other genres: using the mouse very quickly and accurately to achieve a high number of Actions Per Minute (APM). APM refers to how many meaningful commands a player can issue to the game each minute, which ranges from around 50 for casual players to 150 or more for professionals (numbers via <a href="http://starcraft.wikia.com/wiki/Actions_per_minute" target="_blank">StarCraft Wiki</a>). Possessing a substantial advantage over the opponent in this skill makes it possible for one player to overwhelm the other by spreading attention among more tasks than he or she can handle.</p>
<p><i>Missile Command</i>, using a large trackball for coordinate control rather than a mouse, is one of the earlier precursors in which APM can play a major role in player success. Combined with the skills mentioned earlier about properly estimating how positions will change over time (a factor emphasized in <i>Missile Command</i> by the warheads traveling at slow, constant velocities), later levels of the game overwhelm players by demanding a high level of speed and precision with the controls that becomes physically difficult.</p>
<h4>Button Flick</h4>
<p>Although it&#8217;s more rare, physical coordination can also be an issue when pressing a button. In pinball, there are ball control maneuvers that require extremely fast press-and-release, or alternatively very rapid release-then-repress. Even if a player knows exactly what needs to be done, having just watched another player demonstrate and describe the move, it takes practice to execute these moves consistently without failing to press or release the button far enough to alternate its signal, or by making the switch slightly too long, spoiling the desired effect. Instead of hopping the pinball smoothly from one flipper to another, it might instead be tossed up against the slingshot bumper, or else simply roll into the drain.</p>
<p>For videogames in which it is advantageous to be able to mash a button very rapidly, as when getting up from being knocked down in <i>Mike Tyson&#8217;s Punch-Out!!</i> or escaping grapples in wrestling and zombie games, experimentation with different ways to hold the controller may be necessary before someone can find a method that works best for them.</p>
<h4>Controller Contortions</h4>
<p>Physical skill can also become a factor when there are more buttons to manage than fingers to press them. Even handling 5 buttons with 4 fingers in <i>Guitar Hero</i> [Harmonix 2005] becomes difficult, despite the game’s visual representation and memorable audio cues being an idealized expression of each button’s required timing for press and release.</p>
<p>Although the Nintendo’s 64&#8242;s controller is only meant to use buttons on 2 of its 3 holding grips at once, some games such as <i>BattleTanx: Global Assault</i> [3DO 1999] included situations with input mappings that involve controls on all 3 grips. This forced players to discover unusual ways to hold the controller to maintain simultaneous access to all relevant actions.</p>
<h4>What to Act Upon</h4>
<p>Mediated input frees the player to focus not only on when and whether to perform an action, but by extension, to what. This is part of the decision space mentioned as a consideration for battle in <i>World of Warcraft</i>. There may be strategic reasons to attack enemies in a particular order, such as prioritizing enemies that heal or otherwise provide boosts to their peers.</p>
<p>One way to manage playfield risk in <i>Asteroids</i> [Atari 1979] is to focus on one asteroid and its children fragments before breaking open others. This approach can significantly reduce the number and speed of tiny obstacles to dodge.</p>
<p>In <i>Bubble Bobble</i> [Taito 1986], enemies trapped in a player&#8217;s bubble but not popped quickly enough become angry, changing color and moving much faster than normal enemies. This provides incentive for the player to deal with tasks according to a certain method, namely following through promptly on the kill for trapped enemies, rather than haphazardly trapping enemies whenever it&#8217;s momentarily convenient to do so.</p>
<h4>Chord Progressions</h4>
<p>Adapting this term loosely from musical vocabulary, in this context a chord progression refers to a string of timed inputs to achieve some repeatable effect. The role of chord progression in skill for mediated input is in the ability to practice then replay a sequence on demand to fulfill a particular purpose.</p>
<p>Note that this is not the same as performing a special move in <i>Street Fighter II</i>, since the purpose of that type of input sequence is to initiate an action unrelated to its constituent input events. A chord progression, by contrast, is simply the sum of its well-timed individual parts.</p>
<p>In <i>Gravitar</i> [Atari 1982], bringing the ship quickly into a controlled hover is an important fundamental skill. Likewise, safely performing a flip from hover to strafe a target, then returning to back to hover, is another primitive chord progression that builds off the ability to achieve hover.</p>
<p>In <i>Bubble Bobble</i>, learning to climb walls by releasing a bubble against a wall at the correct time while bouncing off the previous bubble is another example.</p>
<p>Activating pinball flippers rapidly but at slightly different times (a <a href="http://www.ipdb.org/playing/intermediate.html" target="_blank">slap save</a>) is a common chord progression used to save the ball from draining.</p>
<p>Chord progressions in first-person shooters might include circle strafing while keeping an opponent in the player&#8217;s reticle (universal among FPS games) or executing a rocket jump while taking minimum damage (as in <i>Team Fortress</i> [TFS 1996] or <i>Quake 3</i> [id 1999]).</p>
<p>Similar to how a professional hockey player practices fundamentals so that they can shoot for an intended part of the goal, rather than worrying about how to use their stick to make the puck get there, identifying and becoming fluent at the chord progressions for a game empowers a player to deal with the game at a more strategic level. Rather than struggling anew each time to bring the <i>Gravitar</i> ship under control or to figure out how to reach higher areas in <i>Bubble Bobble</i> stages, a player comfortable with the basic chord progressions can instead focus attention on where and when to stop the ship, or when and why to climb a wall. A player experienced with safe and consistent rocket jumping in <i>Team Fortress</i> gains access to additional routes in certain maps.</p>
<p>Another feature shared between chord progressions and athletic skills is that a player&#8217;s execution of either is likely to never quite be perfect, to always involve a bit of unpredictable variation, and to be a potential source of error during play.</p>
<h4>Angles and Analog</h4>
<p>My emphasis throughout has mostly been on the usage of action buttons. Although modern ports and remakes don&#8217;t often make it clear, <i>Asteroids</i> only used buttons, having separate buttons to turn left and turn right rather than using a joystick. Early joysticks were frequently constrained to one axis, as was the case for a vertical stick on <i>Defender</i> [Williams 1980] or the horizontal stick for <i>Bubble Bubble</i>. On account of being handled in either hardware or software as digital (non-analog) input, in practice early joysticks offered functionality identical to a pair of buttons simply built in way that prevents them from being simultaneously pressed.</p>
<p>However trackballs and &#8220;paddles&#8221; (dial wheels) were common among early controls, and were used in <i>Centipede</i> and <i>Pong</i> [Atari 1972] respectively. Here it becomes necessary to reiterate that it isn&#8217;t the use of action buttons that qualifies interaction as mediated input; it&#8217;s the use of a device requiring only efficient expression of user intent which then gets automatically transformed into a consistent and learnable action.</p>
<p>For actions that are either happening or not, and the place of user intent is solely related to timing those actions, a button is the appropriate control. When a player instead is responsible for indicating a position along a line, a dial works well for rapidly indicating fine spatial distinctions; when a player needs to indicate angle and magnitude, a trackball or analog joystick fits that role well.</p>
<p>However this added fidelity introduces one or more axes of physical coordination to be mastered by the player.</p>
<p>In <i>Pong</i>, in which players set the paddle&#8217;s vertical position by twisting an analog dial, part of the challenge is learning how much rotation is needed to move the paddle to the position intended without under- or overshooting. Note here that an alternative input device that would enable the player to more directly indicate where they wish for the paddle to be, such as an iPad&#8217;s touchscreen or the vertical movements of a computer mouse, actually interferes to some degree with <i>Pong</i>&#8216;s central difficulty and sense of accomplishment.</p>
<p>When the player intends to use the analog stick to sneak in <i>Super Mario 64</i> [Nintendo 1996], a twitch outsize the threshold to sneak may cause the character to briefly run instead; when the player intends to walk at a certain angle relative to the camera to cross a narrow bridge, frequent adjustments may be needed to find and stay along that line. Particularly since <i>SM64</i> was among the earliest popular games to use an analog thumbstick, part of the game&#8217;s difficulty derived from, and balanced against, learning to handle that form of mediated input.</p>
<h3>Defying Principles for Effect</h3>
<p>Mediated input enables a player to express intentions efficiently, easily, and directly. Deliberate inversions of those ideals can be used to accomplish particular effects. There are occasionally gameplay reasons for mediated input to be deliberately inefficient, unnaturally mapped, or indirect.</p>
<h4>Designed Inefficiency</h4>
<p>In <i>Street Fighter II</i>, executing special moves requires a sequence of button and joystick inputs in order to throw fireballs, perform jumping uppercuts, or a number of other moves unique to each character. Unlike chord progressions, these special moves are all or nothing; the end result is a completely separate maneuver, not a string of separate input events over time.</p>
<p>These moves are not unstoppable – most leave a player vulnerable to certain other attacks – so it’s not as though whichever player is able to perform these maneuvers wins. Conceivably, extra buttons could have been provided for each player, to instantly and consistently execute each character’s special moves. If the sequences only existed to accommodate lack of buttons, there are certainly shorter, simpler, and easier sequences or combinations that might have been used, and in that case the same commands might even be used for every character (as is largely the case for <i>Super Smash Bros</i> [Nintendo 1999]).</p>
<p>Instead, the inefficiency, delay, and inherent clumsiness in executing special moves is that way by design. The power and range of each move is offset by the risk of attempting but failing to accomplish the attack, contributing to the strategy, excitement, and unpredictability of head-to-head matches.</p>
<h4>Counterintuitive Mapping</h4>
<p>Directional controls typically use a natural mapping, meaning that the correlation between input and action is obvious: moving the joystick left moves the character left, moving the joystick down moves the character down, and so on. <i>Super Bomberman</i> [Hudson Soft 1993] on SNES usually follows this scheme, but when the player picks up a poison Skull item that player’s controls temporarily reverse, switching left with right and up with down. <i>Secret of Mana</i> [Square 1993] applied this same type of input reversal for the Confused status caused by certain attacks and spells.</p>
<p>In these cases, the controls are abruptly and temporarily made counter-intuitive in order to cause the player to struggle at a basic task that was previously trivial.</p>
<h4>Indirect Control</h4>
<p>Directness is another central quality of mediated input. Absolute and immediate mappings provide the most direct control: hold left to move left, then release left to stop moving left. Games like <i>RoboTron 2084</i> [Williams 1982] and <i>Adventure</i> [Atari 1979] exhibit that type of direct control. In contrast, a number of early space games including <i>Spacewar!</i> [Russell et al. 1962], <i>Computer Space</i> [Atari 1979], and <i>Asteroids</i> employed vehicle-relative rotational steering, and a thrust button to add speed along the ship’s current heading, but no brakes. The indirectness of these controls requires players to develop a sense for estimating how much room the ship needs in order to evade danger or come to a stop.</p>
<p>The difficulty and replay value in these games is based at least partly on the difficulty and satisfaction of mastering these estimations.</p>
<h3>To be Continued&#8230;</h3>
<p><i>After the section included here, the full paper closes with an analysis of implications and issues around designing for motion controls. That segment, along with the earlier part of this paper distinguishing athletic skill from strategic skill in sport, will be posted separately at a later date.</i></p>
<p>[<Strong>Updated: <a href="http://www.scribd.com/doc/79048987/Mediated-Input" target="_blank">the rest of the paper, Mediated Input, is now finished and available</a></strong>]</p>
<img src="http://feeds.feedburner.com/~r/hobbygamedev/~4/3IfE2BNdv-c" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.hobbygamedev.com/adv/skill-in-mediated-input/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.hobbygamedev.com/adv/skill-in-mediated-input/</feedburner:origLink></item>
		<item>
		<title>How Long Does it Take to Learn Game Programming?</title>
		<link>http://feedproxy.google.com/~r/hobbygamedev/~3/6XsmDcZA8F8/</link>
		<comments>http://www.hobbygamedev.com/spx/how-long-does-it-take/#comments</comments>
		<pubDate>Wed, 30 Nov 2011 14:24:54 +0000</pubDate>
		<dc:creator>Chris DeLeon</dc:creator>
				<category><![CDATA[Special Topic]]></category>
		<category><![CDATA[Vol. 32]]></category>
		<category><![CDATA[Getting Started]]></category>
		<category><![CDATA[Open Response]]></category>

		<guid isPermaLink="false">http://www.hobbygamedev.com/?p=5678</guid>
		<description><![CDATA[A friend asked this question the other day. To peers nearby with more programming experience than him, it seemed like a silly, almost nonsensical question. Whether or not that&#8217;s true, explaining why someone would think that sheds light on qualities of programming that may be invisible to someone newer to it. It&#8217;s a useful question&#8230;]]></description>
			<content:encoded><![CDATA[<p>A friend asked this question the other day. To peers nearby with more programming experience than him, it seemed like a silly, almost nonsensical question. Whether or not that&#8217;s true, explaining why someone would think that sheds light on qualities of programming that may be invisible to someone newer to it. It&#8217;s a <i>useful</i> question either way.</p>
<p>Game progamming is not something someone goes from not knowing to knowing, in the same way that someone goes from not knowing how to drive to knowing how to drive, or from not knowing how to read to being able to read. Even disregarding other purposes of programming, looking specifically at programming for videogame creation, there is an enormous range of potential outcomes, and many different metrics by which someone&#8217;s work might be evaluated.</p>
<p>The question is a bit like asking how long it takes to learn how to paint a picture, or how to play an instrument. Getting set up and putting a paint-covered brush on canvas or producing a musical note can probably happen on day one, but after that there are people who devote decades of their lives to becoming better and/or more versatile at these tasks. Then there&#8217;s everyone in-between, from people a few weeks or months in (able to poorly mimic the prior work of others), to those a few years in (able to effectly mimic and perhaps personalize the prior work of others), to those several or more years in that begin to identify with the art, striving to excel in either classical execution or exploring to discover a distinctly personal style.</p>
<p>Game programming is similar. Getting a development environment installed and configured to turn sample code from a book or website into a runnable application can probably happen on day 1, or at least within the first few days depending on the amount of troubleshooting needed. Once that works, there are a few fundamental concepts and new vocabulary words to pick up, then a bit of puzzling over example code to make sense out of why it behaves as it does. This is typically followed by being able to modify example code to achieve slightly different results, increasingly so until someone&#8217;s familiar with enough patterns and basics to start building something on their own. Even still, that first something will usually be quite familiar to previous dabbling, more a partial mash-up of ideas than a project made from scratch, but there&#8217;s nothing wrong with doing that to gain practice.</p>
<p>From here, there are countless directions in which to grow in the art of game programming. Someone might focus their energy on writing well-documented, easily understood code, learning about best practices to work more effectively with one or more other programmers on a team. Such skills are essential for career programmers on large teams, although their importance among solo and hobby developers varies so long as they are able to produce the results they desire. Someone could become a specialist in highly technical details or specific problems that other programmers count on libraries or engines to solve, learning how to write better network code, graphics rendering/effects, memory management, custom file formats (such as levels, packed images, etc.), or ways to address common issues involved in making in-game artificial intelligence. It&#8217;s also an option within the repitoire of a game programmer to delve into hardware interfacing and the construction of custom input or output devices, to make games utilizing new types of controllers (think about how games like <i>DDR</i> and <i>Guitar Hero</i> might have started) or unusual forms of output (tactile feedback, external LEDs, etc.).</p>
<p>Then there is the matter of learning more programming languages and development tools. Occasional shifts in technology &#8211; along with an acquired sense for when it&#8217;s appropriate to switch between competing technologies &#8211; can feel like setbacks at the time, but in the long haul they can save a lot of time and effort if done wisely.</p>
<p>Also like painting or playing an instrument, some people will find that they immediately feel somewhat natural about it, or seem to achieve presentable efforts earlier in their exploration of the form, while others may need a bit more time to fiddle and experiment before feeling as comfortable. How long someone takes to feel like they have a handle on it isn&#8217;t necessarily a sign of how much they&#8217;ll accomplish with it though &#8211; like any creative endeavor, persistence and plenty of practice will gradually outpace others that don&#8217;t work at it.</p>
<p>Any game programmer is also able to stretch themselves too thin or to focus, either taking on a task at the edge of what they can keep organized and directed through to completion, or, alternatively, doing what they have a lot of practice at doing well. An inexperienced programmer may technically be able to make an RPG from scratch, but it will be a very bad one by historical standards. Likewise, a very experienced programmer can still make a simple breakout-style or classic tank game of the sort that an inexperienced programmer might be wise to take on, but it could likely be done by the expert in much less time, with (virtually) no crash issues, and/or at a much higher level of overall polish.</p>
<p>The last similarity to painting or playing an instrument is that, especially at a hobby level for personal enrichment and enjoyment, game programming is something that anyone with enough patience can learn to do. Not everyone that paints is going to make works of art that sell for huge sums of money &#8211; very, very few will &#8211; and likewise the majority of people that play an instrument will likely never do so professionally. We&#8217;re quite used to painting and instrument playing being a healthy part of life without needing to see careers defined by them, for example hanging up paintings by our relatives around the home, or playing guitar in the company of friends. I&#8217;m eager to see the generation after ours find it increasingly normal to compete in the freeware videogame made by a close relative, or to hang out on weekends playing a videogame made by one or more of those friends playing.</p>
<p>Of course if someone does have a professional interest in game making, whether at a company or going it alone, they are much more likely to build momentum and relevant skills by creating videogames as a hobby than by simply talking and thinking about it.</p>
<p>This goes back to the opening question. Professional videogame programmers &#8211; including lifelong programmers with world-renowned accomplishments in the videogame industry &#8211; are still in the process of learning game programming, in the sense that they are continually learning new practices to make the most of new technologies. Someone is never done learning game programming until they are completely done with programming videogames, since the very act of programming videogames always involves some experimentation, digging through APIs, and solving problems that are new to us (even when said problems have been solved by someone else, some other way, some other time before, for all but very hardest and most general of problems we can often solve them on our own in less time and effort than it would take to dig up and adapt someone else&#8217;s solution).</p>
<p>But, roughly speaking, I&#8217;d offer the following estimates (remember that this is time to learn how to do something, not the time it takes to do it once learned) -</p>
<p>Recompiling and running existing sample code: 1 day.</p>
<p>Being able to tweak someone else&#8217;s code: a few days, to a few weeks.</p>
<p>Being able to significantly add to or change example code: a few months, to a few years, depending on the complexity of code being altered, or the size of the change being made.</p>
<p>Here there is already a massive dovetail of differences &#8211; adding a weapon to someone else&#8217;s 2D sh&#8217;mup example code is a very different undertaking than adding network play to an open-sourced single-player 3D game. To continue, though -</p>
<p>Being able to write a crummy game from scratch: a few months.</p>
<p>Being able to make a decent game: 1-3 years of practice.</p>
<p>Ability to create something a stranger might like: 2-5 years.</p>
<p>Ability to create something strangers might buy: 5-15 years, though obviously varies based on the price, the strangers, the project, the presentation, and a million other factors outside the programming itself.</p>
<p>Note too that due to the team nature of game development beyond the smallest scale, it&#8217;s somewhat possible to &#8220;import experience&#8221; by partnering with someone that has been doing it longer. Working with someone that has more practice with videogame creation can improve the overall quality of work coming from everyone on the team, due to the added ability for the team as a whole to detect and avoid common issues, to employ tried-and-proven strategies that have worked out on previous projects, and to build while accounting for how the big picture will need to come together by some fixed date in the future. When working alone, by comparison, those skills typically need to be learned cumulatively by working first on simple enough games that the light at the end of the tunnel is visible from the moment the project starts, then gradually incrementing project complexity in a way that the lessons learned from past projects can be built upon for the next.</p>
<p>In closing, <a href="http://abstrusegoose.com/249" target="_blank">here&#8217;s a fine comic about the &#8220;Teach Yourself C++ in 21 Days&#8221; books</a>, and another <a href="http://norvig.com/21-days.html" target="_blank">software engineer&#8217;s excellent overview of the time and process involved in learning how to program</a>.</p>
<img src="http://feeds.feedburner.com/~r/hobbygamedev/~4/6XsmDcZA8F8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.hobbygamedev.com/spx/how-long-does-it-take/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.hobbygamedev.com/spx/how-long-does-it-take/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic page generated in 1.675 seconds. --><!-- Cached page generated by WP-Super-Cache on 2012-02-21 21:24:44 -->

