<?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>Stephen Calender Programming Blog</title>
	
	<link>http://www.stephencalenderblog.com</link>
	<description />
	<lastBuildDate>Thu, 16 May 2013 03:00:53 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/StephenCalenderProgrammingBlog" /><feedburner:info uri="stephencalenderprogrammingblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Productivity</title>
		<link>http://feedproxy.google.com/~r/StephenCalenderProgrammingBlog/~3/Lzle2RBkPbQ/</link>
		<comments>http://www.stephencalenderblog.com/?p=415#comments</comments>
		<pubDate>Sun, 28 Apr 2013 00:02:05 +0000</pubDate>
		<dc:creator>Stephen Calender</dc:creator>
				<category><![CDATA[Opinion]]></category>

		<guid isPermaLink="false">http://www.stephencalenderblog.com/?p=415</guid>
		<description><![CDATA[There are just so many things I want to accomplish, and not enough time to give them all attention. While I focus on enhancing my personal life, every organization I have ever worked for has butted up against the productivity problem too. Maximizing work accomplished is not a new problem. I’m not sure if we [...]]]></description>
				<content:encoded><![CDATA[<p>There are just so many things I want to accomplish, and not enough time to give them all attention.  While I focus on enhancing my personal life, every organization I have ever worked for has butted up against the productivity problem too.  Maximizing work accomplished is not a new problem.  I’m not sure if we think the rules have changed with current technology, or software developers just never learned from other disciplines.<span id="more-415"></span></p>
<p>There is a finite limit to your daily productivity.  Sometimes we trick ourselves, we start by working late to meet a deadline, or even to just get that ‘one more thing’ done. Indeed, we do get more done that one day.  Then we start working late all the time, without realizing that over time the rate at which we are working has diminished.  I have always felt that it was odd, and an almost robotic expectation, that everyone can be perfectly productive even 9-5, Monday through Friday.  </p>
<p>Stop working overtime.  <a href="http://www.lostgarden.com/2008/09/rules-of-productivity-presentation.html">There was a fantastic presentation hosted at lostgarden.com, even directed at the games industry, all about productivity</a>. Working extra hours increases yield for about 3 weeks, then dips below the normal productivity of a 40-hour work week.  Ford ran experiments for 12 years, which resulted in the 40-hour work week because it was optimal.  Danc&#8217;s presentation continues with his studies that any overtime work requires some period of lesser productive recovery, which is almost always more costly than the boost that created it.  How can other industries, particularly manual labor, apply to thinking jobs like game development?  There have been a number of studies that show creativity and problem solving fatigue even faster or result in inferior solutions.  Eight hours of sleep is critical.</p>
<p>The source of many of these issues is the difference between perception and reality.  We believe that we get the same effect of the initial burst, and we lose sight that quality of work is degrading and we are slowing down our pace the more overtime we work.  The last thing anyone wants to do once a project and overtime has gotten out of hand is return to normal work hours.  Social pressure feeds into this mentality as well, everyone wants to earn that raise, or at the very least not look weak and lose their job.</p>
<p>Every project has a certain equation that it is trying to satisfy.  There is a fixed deadline, a limited amount of people and/or money, and an amount of work required.  If the equation is out of balance, why is it acceptable to try and squeeze more hours out of your workforce?  Sometimes you need to seriously question your assumptions.  I personally feel awful when I underestimate a goal, but that is my fault and my responsibility.  In every other case when crunch is being considered, pushing out the deadline, increasing the workforce, or reducing scope should be one the table.  In fact, if we have shown anything in this discussion, the velocity of any individual is the constant in the equation.  </p>
<p>Constraints matter, particularly the amount of work hours you log in a day.  <a href="http://motionographer.com/2011/10/12/worklife-the-40-hour-work-week/">Motiongrapher had an excellent article</a>, which incorporated lessons learned by <a href="http://blogs.msdn.com/b/jmeier/archive/2010/10/21/40-hour-work-week-at-microsoft.aspx">Microsoft Principle Project Manager J.D. Meier</a>. </p>
<p>
<div class="quote" style="border: 1px solid #208A06; background-color: #EEEEEE; font-size:0.8em; width:350px; margin-left:50px; padding-right:25px; padding-left:25px;">
In my experience, a 40 hour work week is a benchmark of the most effective teams.  They have work-life balance.  They have buffer to respond to opportunity and to deal with crunches.  They have processes in place, they invest in their learning and growth, and they move up the stack instead of always solving the basics.  Instead of perpetual fire-fighting, they are more deliberate about planning and strategy and they anticipate their customers and the market (through empathy and staying connected to customers.)  They learn and respond and can turn on a dime.  They have a dashboard, they know the score, and they can change their approach.</p>
<p>There’s another reason that cuts right to the chase.  If budget cuts will break you, then the first way to build a firm foundation and execution machine is to master the 40 hour work week.  It’s a forcing function that fixes a lot of underlying execution issues that you just cannot see if your organization throws time at problems.  If you can’t see it, you can’t fix it.  When you bound it by time, you can start testing more effective ways to produce results.  To make this actionable, make it an initiative.
</p></div>
</p>
<p>Once you embrace the mentality that you can grind endless extra hours towards a goal, you lose all sense of priority and focus.  You end up abusing work hours to make up for things like bad planning.  Without the constraint of time, you lose any hope of efficiency, and efficiency is what matters.</p>
<p>I too have read the four hour work week, and while it is an interesting study about forming a company based on needing minimal involvement, the main take away for me was ruthless efficiency.  I believe that efficiency is found from eliminating redundancy, distractions, and having priorities.</p>
<p>Most people are no longer finding the office as the most conducive place to work because there are just too many interruptions, according to Jason Fried in his Ted Talk. Thinkers in particular, need long stretches of uninterrupted time.  </p>
<p><iframe src="http://embed.ted.com/talks/jason_fried_why_work_doesn_t_happen_at_work.html" width="480" height="270" frameborder="0" scrolling="no" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe></p>
<p>I tend to deactivate outlook (which is already aggressively filtered) pop up notifications, Skype alerts, and most of the time I wear headphones even if I am not listening to anything.</p>
<p>As an employee, I typically feel like eliminating redundancy and priorities are out of my control.  As an engineer sometimes it is difficult to see sources of redundancy without knowing the full scope of work.  It is never a good feeling if everything is a priority or if you don’t have priorities.</p>
<p>In particular I feel like game development suffers from production getting in the way of communication between departments.  I have heard stories throughout my career about art, design, or audio working with something broken, working around flaws, or grinding on repetitive or error prone tasks that could be eliminated with minor amounts of programming.  I’m not advocating for studio wide scrum meetings, but unless everyone develops a degree of consciousness about efficiency, it is difficult to eliminate redundancy.  While I am in favor of the iterative game development, and it is the nature of anything creative to throw some work out, it is not the same as having to constantly rework features, or adding more features because the originals didn’t quite work.</p>
<p>Any time not spent directly on project goals is lost time, assuming you are ridged on your work week hours.  At first it sound silly to even make such an obvious statement, but all the time seeking out approvals, planning, scoping, tasking, writing technical designs, updating wikis, prototyping, making special builds for conventions, and meetings add up quickly.  I’m not saying that they are not important or without utility.  Certain measures should be in place to ensure there isn’t lost or duplicated work, and improve efficiency.  However, in practice I have always seen these kinds of production practices slowing things down.  I would argue that it is most efficient to limit production to the bare essentials.  It is why the <a href="http://www.imdb.com/title/tt0151804/">TPS reports gag in the movie Office Space works</a>, everyone has fallen victim to internal bureaucracy at some point.  Production policies should be self-interactive and reflect their own cost-benefit analysis on development practices.  Don’t continue to do something if it isn’t working.</p>
<p>Productivity gets almost as much attention as diet and weight loss scams.  No amount of energy drinks will make up for lack of sleep or add more hours into a day.  It is much more about being able to maintain focus, and some prep work to ensure you are preforming the most valuable work possible.  Of course, it is hard to be productive if you do not enjoy the work you are doing.  If anyone else has tips or similar experiences I hope you share.</p>
<p>Thanks for reading, and remember, we are all in this together.</p>
<table cellspacing="15">
<tr>
<td>
<a class="DiggThisButton DiggMedium"></a>
</td>
<td>
<a href="http://reddit.com/submit" onclick="window.location = 'http://reddit.com/submit?url=' + encodeURIComponent(window.location); return false"> <img src="http://reddit.com/static/spreddit7.gif" alt="submit to reddit" border="0" /> </a>
</td>
<td>
<table>
<tr>
<td>
<img src="http://static.delicious.com/img/delicious.small.gif" height="10" width="10" alt="Delicious" />
</td>
<td>
<a href="http://delicious.com/save" onclick="window.open('http://delicious.com/save?v=5&#038;noui&#038;jump=close&#038;url='+encodeURIComponent(location.href)+'&#038;title='+encodeURIComponent(document.title), 'delicious','toolbar=no,width=550,height=550'); return false;"> Bookmark this on Delicious</a><br />
</tr>
</table>
</td>
<td>
<script src="http://www.stumbleupon.com/hostedbadge.php?s=2"></script><br />
</tr>
</table>
<img src="http://feeds.feedburner.com/~r/StephenCalenderProgrammingBlog/~4/Lzle2RBkPbQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.stephencalenderblog.com/?feed=rss2&amp;p=415</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.stephencalenderblog.com/?p=415&amp;utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=productivity</feedburner:origLink></item>
		<item>
		<title>Sprite versus MovieClip</title>
		<link>http://feedproxy.google.com/~r/StephenCalenderProgrammingBlog/~3/zSylhIiN3Ew/</link>
		<comments>http://www.stephencalenderblog.com/?p=393#comments</comments>
		<pubDate>Sat, 13 Apr 2013 02:36:41 +0000</pubDate>
		<dc:creator>Stephen Calender</dc:creator>
				<category><![CDATA[ActionScript 3.0 Benchmarks]]></category>
		<category><![CDATA[Optimization]]></category>

		<guid isPermaLink="false">http://www.stephencalenderblog.com/?p=393</guid>
		<description><![CDATA[For years I have heard horror stories about the bad performance of Flash’s MovieClip class, so much so that I have aggressively replaced as many objects as I can with Sprites. Obviously MoiveClip objects use a bit more memory, but how much more processing time do they take compared to Sprites? When exactly do they [...]]]></description>
				<content:encoded><![CDATA[<table cellspacing="4" cellpadding="4" width="480" border="0">
<tr>
<td width="480" align="center" valign="top">
<a href="http://www.stephencalenderblog.com/images/FullSizeSpriteVsMCGraph.png"><img src="http://www.stephencalenderblog.com/images/TeaserSpriteVsMCGraph.jpg" alt="SpriteVsMCGraph" /></a>
</td>
</tr>
</table>
<p>For years I have heard horror stories about the bad performance of Flash’s MovieClip class, so much so that I have aggressively replaced as many objects as I can with Sprites.  Obviously MoiveClip objects use a bit more memory, but how much more processing time do they take compared to Sprites?  When exactly do they become expensive?  Does it matter how you have display list organized (<a href="http://www.adobe.com/devnet/flash/articles/efficiency-tips.html">according to Adobe, shallower is better</a>; however, we do not have a cost comparison)? Surprising answers and discoveries are abound! <span id="more-393"></span>  </p>
<p>Feel free to generate your own results:</p>
<table cellspacing="4" cellpadding="4" width="480" border="0">
<tr>
<td width="480" align="center" valign="top">
<script language="javascript">AC_FL_RunContent = 0;</script><br />
<script src="AC_RunActiveContent.js" language="javascript"></script><br />
<script language="javascript">
	if (AC_FL_RunContent == 0) {
		alert("This page requires AC_RunActiveContent.js.");
	} else {
		AC_FL_RunContent(
			'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0',
			'width', '480',
			'height', '360',
			'src', 'SpriteVsMC',
			'quality', 'high',
			'pluginspage', 'http://www.macromedia.com/go/getflashplayer',
			'align', 'middle',
			'play', 'true',
			'loop', 'true',
			'scale', 'showall',
			'wmode', 'window',
			'devicefont', 'false',
			'id', 'SpriteVsMC',
			'bgcolor', '#CCCCCC',
			'name', 'SpriteVsMC',
			'menu', 'true',
			'allowFullScreen', 'false',
			'allowScriptAccess','sameDomain',
			'movie', 'SpriteVsMC',
			'salign', ''
			); //end AC code
	}
</script></p>
<noscript>
	<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="480" height="360" id="SpriteVsMC" align="middle"><param name="allowScriptAccess" value="sameDomain" /><param name="allowFullScreen" value="false" /><param name="movie" value="SpriteVsMC.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#CCCCCC" /><embed src="SpriteVsMC.swf" quality="high" bgcolor="#000000" width="480" height="360" name="SpriteVsMC" align="middle" allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /><br />
	</object><br />
</noscript>
</td>
</tr>
</table>
<p>*Note* for accurate results shut down other pages running flash content, keep the app in focus, and don&#8217;t move your mouse.</p>
<p>•	An empty Sprite or MovieClip created with code or referenced from the library all showed the same performance, as you would expect.</p>
<p>•	On my high end laptop I had over 36,000 empty Sprites on the Stage with still no signs of the app slowing down.</p>
<p>•	Empty Sprites still generate mouse events.</p>
<p>•	I tried testing performance of nested display assets, as you approach 800 nested objects the screen goes blank.  I believe you are hitting a recursion limit.</p>
<p>•	A Sprite and a one frame MovieClip containing the same art have identical load on processing.</p>
<p>•	If you fat finger in accidental key frames or regular frames (identical art on all frames), there is only a modest performance hit, even with the MovieClip playing.</p>
<p>•	An honest to goodness MovieClip playing (two different frames in this test) is about 7 times the performance cost of a similar, non-animating display object.</p>
<p>If I managed to tickle your brain about Flash performance, you might want to check out <a href="http://www.stephencalenderblog.com/?p=7">my work on benchmarking ActionScript</a>.  If you have discovered any other performance differences between Sprite and MovieClip please share in the comments!</p>
<p>Thanks for reading, and remember, we are all in this together.</p>
<table cellspacing="15">
<tr>
<td>
<a class="DiggThisButton DiggMedium"></a>
</td>
<td>
<a href="http://reddit.com/submit" onclick="window.location = 'http://reddit.com/submit?url=' + encodeURIComponent(window.location); return false"> <img src="http://reddit.com/static/spreddit7.gif" alt="submit to reddit" border="0" /> </a>
</td>
<td>
<table>
<tr>
<td>
<img src="http://static.delicious.com/img/delicious.small.gif" height="10" width="10" alt="Delicious" />
</td>
<td>
<a href="http://delicious.com/save" onclick="window.open('http://delicious.com/save?v=5&#038;noui&#038;jump=close&#038;url='+encodeURIComponent(location.href)+'&#038;title='+encodeURIComponent(document.title), 'delicious','toolbar=no,width=550,height=550'); return false;"> Bookmark this on Delicious</a><br />
</tr>
</table>
</td>
<td>
<script src="http://www.stumbleupon.com/hostedbadge.php?s=2"></script><br />
</tr>
</table>
<img src="http://feeds.feedburner.com/~r/StephenCalenderProgrammingBlog/~4/zSylhIiN3Ew" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.stephencalenderblog.com/?feed=rss2&amp;p=393</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.stephencalenderblog.com/?p=393&amp;utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=sprite-versus-movieclip</feedburner:origLink></item>
		<item>
		<title>Minimum Announced</title>
		<link>http://feedproxy.google.com/~r/StephenCalenderProgrammingBlog/~3/6rNk292i2Fg/</link>
		<comments>http://www.stephencalenderblog.com/?p=402#comments</comments>
		<pubDate>Thu, 11 Apr 2013 03:28:26 +0000</pubDate>
		<dc:creator>Stephen Calender</dc:creator>
				<category><![CDATA[Opinion]]></category>

		<guid isPermaLink="false">http://www.stephencalenderblog.com/?p=402</guid>
		<description><![CDATA[Yesterday the game I worked on during my tenure at TimeGate was officially announced. I&#8217;d like to say that I worked on some awesome piece of magic on it, but it was honestly more nuts and bolts development. I hope the game reaches its full potential, I always had a good time at our internal [...]]]></description>
				<content:encoded><![CDATA[<p><iframe width="480" height="270" src="https://www.youtube.com/embed/AAMgu3j3AZY?feature=player_detailpage" frameborder="0" allowfullscreen></iframe></p>
<p>Yesterday the game I worked on during <a href="http://www.stephencalenderblog.com/?p=385">my tenure at TimeGate</a> was officially announced.  I&#8217;d like to say that I worked on some awesome piece of magic on it, but it was honestly more nuts and bolts development.  I hope the game reaches its full potential, I always had a good time at our internal play tests.  Keep an eye on <a href="http://playminimum.com/faqs/">the official website</a> to get in on the action <span id="more-402"></span></p>
<p>*** Update 5/15/2013 ***</p>
<p>Less than a month after announcing Minimum, <a href="http://www.joystiq.com/2013/04/18/timegate-loses-southpeak-appeal/">Timegate lost an appeals case with Southpeak</a>, <a href="http://www.joystiq.com/2013/05/02/colonial-marines-co-dev-timegate-files-for-bankruptcy-protection/">declared bankruptcy</a>, and then <a href="http://www.joystiq.com/2013/05/09/report-timegate-closes-its-doors/">completely shut down</a>. The <a href="http://blogs.wsj.com/bankruptcy/2013/05/06/southpeak-seeks-to-pull-plug-on-timegate-bankruptcy/">litigation looks pretty messy</a>, and it was the first I had heard of it even though it had been ongoing since 2009.  Minimum, looks to be the first project I have worked on that will never see the light of day.</p>
<p>Thanks for reading, and remember, we are all in this together.</p>
<img src="http://feeds.feedburner.com/~r/StephenCalenderProgrammingBlog/~4/6rNk292i2Fg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.stephencalenderblog.com/?feed=rss2&amp;p=402</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.stephencalenderblog.com/?p=402&amp;utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=minimum-announced</feedburner:origLink></item>
		<item>
		<title>Catching Up On My Work Life</title>
		<link>http://feedproxy.google.com/~r/StephenCalenderProgrammingBlog/~3/JCKBjsxy9Yg/</link>
		<comments>http://www.stephencalenderblog.com/?p=385#comments</comments>
		<pubDate>Sun, 24 Mar 2013 23:06:49 +0000</pubDate>
		<dc:creator>Stephen Calender</dc:creator>
				<category><![CDATA[Opinion]]></category>

		<guid isPermaLink="false">http://www.stephencalenderblog.com/?p=385</guid>
		<description><![CDATA[It can be tough to talk about your job in the games industry. Sometimes even after the game you worked on is done, idling in the queue to ship, and you have moved onto the next project you still can’t talk about it. The non-disclosure agreements ubiquitous to the industry can be far reaching. I [...]]]></description>
				<content:encoded><![CDATA[<p>It can be tough to talk about your job in the games industry.  Sometimes even after the game you worked on is done, idling in the queue to ship, and you have moved onto the next project <a href="http://www.penny-arcade.com/comic/2007/05/23">you still can’t talk about it</a>. The non-disclosure agreements ubiquitous to the industry can be far reaching.  I “may or may not have” even had to sign legal documents barring talking about companies after we went our separate ways.  You can feel a little left out being silenced on something millions of people are ranting or raving about.   I can’t share everything, but here are some major bullet points.<span id="more-385"></span></p>
<p>The main job that I highlighted on this blog was working on Lego Universe with NetDevil, I had <a href="http://www.stephencalenderblog.com/?p=268">an article about the game launch</a>, <a href="http://www.stephencalenderblog.com/?p=306">the studio collapse and my layoff</a>, and ultimately <a href="http://www.stephencalenderblog.com/?p=366">the game shutting down</a>.  I loved that game, I think everyone has some ideas how something with so much potential wasn’t more successful, I just had a ton of passion for what I was working on and the people I worked with on the project.  All in all it was a great experience, and there was a lot of information released to the public so it was easy to talk about.</p>
<p>After that I was picked up by Game Show Network (GSN) pretty quickly.  I only ever <a href="http://www.stephencalenderblog.com/?p=329">mentioned it briefly in this post</a>.  That job search was an interesting one.  I had a couple options, one of which was <a href="http://en.wikipedia.org/wiki/38_Studios">38 studios</a> which I was glad I avoided  (<a href="http://www.bostonmagazine.com/2012/07/38-studios-end-game/">was bankrupt the following year</a>). I was actually surprised how many negative responses there were, I had thought 2 years of solid industry experience would make things easier.  There was a lot of response in Facebook games, I had a number of interviews for those, unlike others areas in game development the distrust was rampant.  There are a lot of copycat games in that sector, <a href="http://allthingsd.com/20121016/zynga-says-former-employee-admits-to-taking-confidential-files/">outright theft is rare</a>.  None of them shared what they were working on; at best I might get vague descriptions like fantasy RPG.  Game Show Network got me an offer first and they were the most open about what kinds of things I might be doing.  </p>
<p>I am probably least proud of <a href="http://www.gsn.com/games/free/wheelslots/">what I worked on at GSN</a>.  It was well built, but I didn’t go through loads of schooling and embark into the games industry to make slot machines – or really any gambling game for that matter.  This was not the same thing I was told I be working on.  I was unhappy with some other things too and bounced from this job after five months when I received another job offer.  I don’t feel great about how it went down, but I tried hard to not leave anyone in a lurch, last I checked they were doing well, I am sure they are excited about the <a href="http://www.lasvegassun.com/news/2013/feb/21/online-poker-bill-moves-forward-nevada-legislature/">recent legislation in Nevada and New Jersey</a>.</p>
<p>When I took a job with Zynga I had a couple positive thoughts.  If I was going to be in Facebook games at least I would be at the industry leading company.  I knew several other classmates that ended up at various Zynga studios.  I was going to live in San Diego which I personally find superior in just about every way to San Francisco.  It made financial sense.  The studio I was heading towards was slated to work on a new title, and as they had recently released Empires and Allies I was optimistic that Zynga might be building better games.</p>
<p>It didn’t take too many studio meetings talking of ‘increasing the head count so more developers could move off of supporting the old Zynga title to the new game’ to realize I was never going to get the chance to work on it.  However; it was still an interesting experience, I learned a considerable amount.  Zynga, if anything, is good about collecting and dispersing data.  I don’t plan on working for another company that considers itself to be a meritocracy, <a href="http://techcrunch.com/2012/08/09/working-at-zynga/">I feel like it creates some destructive and harmful practices internally</a>.  I was terminated after finishing aiding the transition of the old Zynga title to India, which I was honestly fine with as <a href="http://news.cnet.com/8301-13506_3-57332096-17/are-zynga-employees-miserable-ready-to-bail-after-ipo/">I was burned out from the endless crisis cycle</a> and had just stopped caring.      </p>
<p>I took some personal time, enjoyed the gorgeous San Diego summer, I looked half heartily.  After two uninspiring jobs I wanted to reflect and make a better decision on the next one, allow myself to be picky.  I no longer use Facebook personally or professionally. </p>
<p>I tried to stay in San Diego, but ultimately left for Houston, Texas (I have family there) and worked for <a href="http://www.timegate.com/">TimeGate</a>.  They had an exciting project to work on, really favorable working conditions, I felt valued, and I was really enjoying it.  <a href="http://www.eurogamer.net/articles/2013-03-05-layoffs-hit-aliens-colonial-marines-co-developer-timegate">After two months I got laid off</a>.  Unlike my previous experience getting laid off, it was very unexpected and I don’t think anyone wanted it to happen.  If by some twist of fate they end up hiring again and I am still in the area I would seriously consider it, but it is tough to picture that happening in the short term.</p>
<p>After the layoff, an immediate opportunity became available at a startup <a href="http://www.virdyne.com/">Virdyne Technologies</a>.  I can’t talk about anything in regards to this company to date.  I am very thankful; despite my track record I actually do not enjoy job hunting or moving. </p>
<p>I would like to think that the volatility I experienced is uncommon, but I think if you talk to anyone in the industry they have a similar story.  It keeps things interesting in terms of your environment, coworkers, and project; but repetitive in the sense that you keep writing the same tools, optimizations, and systems over and over again.  <a href="http://www.gamasutra.com/view/news/128355/Opinion_Is_This_How_Its_Always_Going_To_Be.php">I doubt that it is anyone&#8217;s favorite part of the games industry</a>.</p>
<p>Thanks for reading, and remember, we are all in this together.</p>
<table cellspacing="15">
<tr>
<td>
<a class="DiggThisButton DiggMedium"></a>
</td>
<td>
<a href="http://reddit.com/submit" onclick="window.location = 'http://reddit.com/submit?url=' + encodeURIComponent(window.location); return false"> <img src="http://reddit.com/static/spreddit7.gif" alt="submit to reddit" border="0" /> </a>
</td>
<td>
<table>
<tr>
<td>
<img src="http://static.delicious.com/img/delicious.small.gif" height="10" width="10" alt="Delicious" />
</td>
<td>
<a href="http://delicious.com/save" onclick="window.open('http://delicious.com/save?v=5&#038;noui&#038;jump=close&#038;url='+encodeURIComponent(location.href)+'&#038;title='+encodeURIComponent(document.title), 'delicious','toolbar=no,width=550,height=550'); return false;"> Bookmark this on Delicious</a><br />
</tr>
</table>
</td>
<td>
<script src="http://www.stumbleupon.com/hostedbadge.php?s=2"></script><br />
</tr>
</table>
<img src="http://feeds.feedburner.com/~r/StephenCalenderProgrammingBlog/~4/JCKBjsxy9Yg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.stephencalenderblog.com/?feed=rss2&amp;p=385</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.stephencalenderblog.com/?p=385&amp;utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=catching-up-on-my-work-life</feedburner:origLink></item>
		<item>
		<title>Flash versus HTML5</title>
		<link>http://feedproxy.google.com/~r/StephenCalenderProgrammingBlog/~3/dpR5rHCDXBs/</link>
		<comments>http://www.stephencalenderblog.com/?p=379#comments</comments>
		<pubDate>Sun, 17 Mar 2013 20:08:49 +0000</pubDate>
		<dc:creator>Stephen Calender</dc:creator>
				<category><![CDATA[Opinion]]></category>

		<guid isPermaLink="false">http://www.stephencalenderblog.com/?p=379</guid>
		<description><![CDATA[The biggest event to happen to internet and mobile in a long time is the ongoing development of HTML5. Currently there is partial support but the new standard’s definition still isn’t finalized. I have no doubt that it will be a large advance for the web developers; my particular challenge was determining if HTML5 was [...]]]></description>
				<content:encoded><![CDATA[<p>The biggest event to happen to internet and mobile in a long time is the ongoing development of <a href="http://en.wikipedia.org/wiki/HTML5">HTML5</a>.  Currently there is partial support but the new standard’s definition still isn’t finalized.  I have no doubt that it will be a large advance for the web developers; my particular challenge was determining if HTML5 was going to outclass Flash for game development.<span id="more-379"></span></p>
<p>The technologies that compose HTML5 really are not new, what is new is the push for defining a standard that will be consistently supported, universally across all browsers and devices.  There are some new emergent components like the new video and audio tags, plus perhaps the most critical addition for games – the canvas. There are also traditional web building tools like javascript formally being added to the standard.  Anyone that has ever dealt with cross platform development issues will tell you universal support is huge, but it is a brutal problem to solve.  In game development there can be teams of people &#8216;porting&#8217; a title from PC to a console like the Xbox, or across consoles like the Wii to PS3.  With the explosion of quantity and diversity of mobile devices and tablets, the complexity of developing something &#8216;for the internet&#8217; has reached critical mass (besides issues of hardware limitations, most mobile devices have their own internet browser too).  Flash and HTML5 have different approaches to solving this problem.  Flash has been trying to adapt reactively to changes in how people use the web, and HTML5 is trying to get everyone to agree to a set of features to support.  The goal for both is the ability to write one version of code (sparing performance issues) that works universally on all devices.   </p>
<p>Full disclosure, I am completely biased to Flash.  I have been using it for several years now, I am an expert at it, I know it inside and out, and have amassed a collection of work and library of resources.  As I mentioned in <a href="http://www.stephencalenderblog.com/?p=371">my article about new technology</a>, since I am a veteran developer in the existing space, there needs to be a substantial improvement in capabilities for me to change technologies.  I am invested in Flash (which evident to me after upgrading to CS6).  I had been hearing whispers about HTML5 from as early as 2009, but it really didn’t get my attention until <a href="http://latimesblogs.latimes.com/technology/2011/11/adobe-to-end-mobile-flash-plug-in-development.html">Adobe halted development of its mobile flash plug-in</a> (no more support for flash embedded on web pages, AIR apps are continuing, and Adobe is working on a converter for flash to HTML5).  <a href="http://blogs.adobe.com/conversations/2011/11/flash-focus.html">The official statement from Adobe</a> claims Flash’s future is going to be based on advanced gaming and premium video. Which inevitably led to Adobe laying off a large number of employees with <a href="http://sfdesignerdw.wordpress.com/2011/11/10/thoughts-on-stuff-and-things-adobe/">their own vision for where things are going</a>. For the next couple months I voraciously digested any article that was even half interesting on HTML5.  So through the narrow lens of Flash veteran focused on game development, I am going to dissect this technology.  Is it really ‘taking over’ or is it all hype?  Is it as capable as other technologies?  How much of the marketplace could it reach?</p>
<p><a href="http://venturebeat.com/2011/12/20/flash-games-are-still-generating-strong-traffic-and-revenue-growth-for-developers/">Flash is really mature these days, revenue and traffic – particularly for Flash games, is still increasing.</a>  Flash is not standing still, with social gaming, pressure from other competitors like Unity 3D, Flash is growing in capabilities.  Flash recently released version 11.3.  As pervasive as Apple products are, there are actually more Android phones in the market than iPhones, and more people are targeting Andriods for game development.  This article from May 2011 is now fairly dated (Firefox and Chrome have both surpassed IE in browser marketshare), but had the <a href="http://www.periscopic.com/#/news/2011/05/our-research-into-flash-and-html5-which-one-is-right-for-your-project/">best breakdown of the market and browser support</a>. Flash is already everywhere, and is supported by older browsers HTML5 will never run on.  I also like this logarithmic graph that shows PC is an order of magnitude larger in existing devices than Mac, and more androids than iPhones and iPads put together. </p>
<table cellspacing="4" cellpadding="4" width="480" border="0">
<tr>
<td width="480" align="center" valign="top">
<img src="http://www.stephencalenderblog.com/images/ComputingUnitsShippedOverTime.png" alt="Computer Brands Shipped Over Time" />
</td>
</tr>
</table>
<p>The future is a bit questionable, but I am going to build for what is out there right now.  The Flash plug in doesn’t work on Apple product’s browsers <a href="http://www.apple.com/hotnews/thoughts-on-flash/">because of politics</a>, not because the technology is incapable of it.  Also, Flash developers can still develop apps for mobile apple products via Adobe AIR, and there is evidence that <a href="http://articles.businessinsider.com/2012-01-09/research/30606473_1_android-app-store-app-development/2">it will be a while before HTML5 eclipses apps</a>.  While things are changing, Flash is not getting replaced, it isn&#8217;t even contracting.</p>
<p>Currently HTML5 is still very rough around the edges.  The Wall Street Journal had an insightful article that conceded that <a href='http://online.wsj.com/article/SB10001424052970203537304577030033160849296.html'>“The excitement has spread despite the fact that HTML5 is missing some key features. Many users, moreover, won&#8217;t notice striking differences from websites that use Flash.”</a>  I am not entirely sure what Flash’s future is going to be in an increasingly mobile world with browsers that refuse plug-ins, and without Adobe adding touch screen support.  However, HTML5 is not without its flaws and uncertainties.</p>
<p>As of right now, HTML5 is still a fledgling technology. I had come across several articles discussing HTML5’s unpredictable performance, including <a href="http://www.gamasutra.com/view/feature/134954/7_things_to_know_about_html5.php">this overview of HTML5 from Gamasutra</a>.  Audio support is severely lacking, audio appears to have grown very divergent.  There is no audio codec that works on all platforms, and some devices like the iphone can only play one sound at a time.  HTML5 is only going to work on modern browsers, and you will need them to keep upgrading their browser to have access to the latest features.  Depending on your target audience that could be a huge hurdle to overcome, in my experience the casual web game audience is older people running older software and hardware – or kids with hand-me-down electronics.  In an article where Zynga refers to HTML5 as the ‘pain machine’  <a href="http://www.gamasutra.com/view/news/38337/New_Game_2011_Zynga_Urges_Developers_To_Embrace_The_HTML5_Pain_Machine.php">‘&#8221;HTML5 was not created with games in mind,&#8221; and the working group behind the specification has historically had no members from game companies.’</a>  In contrast, while it is obvious that the early versions of the Flash player’s focus was animation and video, <a href="http://blogs.adobe.com/conversations/2011/11/flash-focus.html">advanced gaming is now at the forefront</a>.  Another case study is the company Moblyng an early adopter of HTML5 <a href="http://venturebeat.com/2012/01/07/html5-cross-platform-game-company-moblyng-shuts-down-exclusive/">“… a protocol for creating software that can run on web sites, mobile phones, and social networks. But in games, HTML5 has had mixed results, since many games in HTML5 run slow.”</a></p>
<p>Personally, I find the canvas really weak, and that is a big turn off.  I have heard of, as well as seen, performance inconsistencies between using DOM or the canvas for rendering.  I’ve complained about not having enough core support in Flash, the canvas is a step down from that &#8211; isn’t much more than a pixel painter.  In order to just get running with basic elements, you need to hunt down 3rd party rendering / game engines or write one yourself.  If you are in the middle of a project and reach a performance or capability impasse, it isn’t going to be fun to swap out renderers.  Also, just the numbers game of so many different libraries and engines means it will be harder to find solutions and answers to development questions.  </p>
<p>I’m not sure HTML5 improves upon existing alternatives including Flash.  HTML5 is free, but you are going to need potentially spend time and money to get to the state Flash is out of the box (currently). It really just seems to come down to preference and what platforms mean the most to you.  As of this writing, with specific focus of game development, HTML5 developers are looking at reaching fewer users and not having as many capabilities as Flash.  Going forward, the majority of experts closest to Flash and HTML5 think they will coexist with their unique specializations.  </p>
<p>While the technical capability to write a singular code base that is universally supported on all devices sounds like a panacea to developing cross platform, it is only a small part of the solution.  Everyone seems to overlook that design, interfaces, and controls have entirely different needs and demands on users per device. Screen size, buttons, having a mouse or keyboard, touch screens, does you game get interrupted by phone calls, power and performance limitations, network speeds, adjusting for optional peripherals, and a host of other concerns rise once you start thinking about /everything/ that is out there.  Even if your tech can effortlessly transition between devices, your product design might not, and if it does it probably suffers to serve the least common denominator.  Something ‘working’ usually isn’t good enough; the ease of use it matters. </p>
<p>HTML5 is still really important; I am sure anyone that wants to do anything on the web will learn it. I am just not going to use it to build games.  It should be an interesting step forward for the internet, but I am sure there will be plenty of websites that stick with the same eight year old site they got someone to build as a favor.  If you create a great experience, people will seek it out.  It is easy to forget in the surge of free to play mobile / browser / social network / PC games that there are those games out there drive people to buy a console, or blow a bunch of money on fake musical instruments &#8211; just for one game.  <a href="http://www.stephencalenderblog.com/?p=371">“Ultimately, technology is just a tool to build, publish, and be a point of sale for our content. I am not sure there has ever been a game that was successful just because it had the best technology. People still purchase board and card games, there is still a strong community and ongoing development in paper and pencil roleplaying games, and table top games have their niche. Your main focus should be creating a compelling and enjoyable experience, the pleasure and delight of your audience takes priority.”</a></p>
<p>Thanks for reading, and remember, we are all in this together.</p>
<p>Edit (March 30th, 2013): <a href="http://www.greensock.com/flash-html5/">Another great article</a> on the topic has been written by the author of greensock TweenMax, whose code I have used extensively in past projects.  Also, for anyone that hates on Flash because they find flaws in the ActionScript language, I would like to point out that <a href="https://www.destroyallsoftware.com/talks/wat">every language has its quirks</a>.</p>
<table cellspacing="15">
<tr>
<td>
<a class="DiggThisButton DiggMedium"></a>
</td>
<td>
<a href="http://reddit.com/submit" onclick="window.location = 'http://reddit.com/submit?url=' + encodeURIComponent(window.location); return false"> <img src="http://reddit.com/static/spreddit7.gif" alt="submit to reddit" border="0" /> </a>
</td>
<td>
<table>
<tr>
<td>
<img src="http://static.delicious.com/img/delicious.small.gif" height="10" width="10" alt="Delicious" />
</td>
<td>
<a href="http://delicious.com/save" onclick="window.open('http://delicious.com/save?v=5&#038;noui&#038;jump=close&#038;url='+encodeURIComponent(location.href)+'&#038;title='+encodeURIComponent(document.title), 'delicious','toolbar=no,width=550,height=550'); return false;"> Bookmark this on Delicious</a><br />
</tr>
</table>
</td>
<td>
<script src="http://www.stumbleupon.com/hostedbadge.php?s=2"></script><br />
</tr>
</table>
<img src="http://feeds.feedburner.com/~r/StephenCalenderProgrammingBlog/~4/dpR5rHCDXBs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.stephencalenderblog.com/?feed=rss2&amp;p=379</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.stephencalenderblog.com/?p=379&amp;utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=flash-versus-html5</feedburner:origLink></item>
		<item>
		<title>New Technology</title>
		<link>http://feedproxy.google.com/~r/StephenCalenderProgrammingBlog/~3/kHJfcX05YH0/</link>
		<comments>http://www.stephencalenderblog.com/?p=371#comments</comments>
		<pubDate>Sat, 21 Jul 2012 20:59:12 +0000</pubDate>
		<dc:creator>Stephen Calender</dc:creator>
				<category><![CDATA[Opinion]]></category>

		<guid isPermaLink="false">http://www.stephencalenderblog.com/?p=371</guid>
		<description><![CDATA[There is the oddest phenomenon whenever a shiny new technology debuts. I suppose that it has to do with a naive Hollywood education about technology, or our desires for that futuristic breakthrough moment to happen. Whatever the newest thing is, it always seems to be perceived as the magic bullet, the game changer, and us [...]]]></description>
				<content:encoded><![CDATA[<p>There is the oddest phenomenon whenever a shiny new technology debuts.  I suppose that it has to do with a naive Hollywood education about technology, or our desires for that futuristic breakthrough moment to happen.  Whatever the newest thing is, it always seems to be perceived as the magic bullet, the game changer, and us digital wizards and sorceresses will effortlessly create a new world with it.<span id="more-371"></span></p>
<p>I see it all the time, some business type, marketer, client, producer, or manager starts spewing the latest hype or tech words that just became mainstream.  Everyone wants to be hip, cool, and trendy, I get that.  It just seems no one takes the time to consider if a technology is even relevant to them, and how could it satisfy their needs (assuming they even know what their needs are).  That is really the core problem, if you are a non-technologist you are completely unequipped to digest and evaluate new tools of the programming trade.</p>
<p>If you are a programmer, it is part of our career to stay current on the latest tools of our craft (no matter how rapidly it changes).  Whether you received an order from workplace superiors or you were sucked into the media buzz, when you find yourself at the mercy of a new technology you probably have a crazy short timespan to evaluate what you might be married to for your next project.   </p>
<table cellspacing="4" cellpadding="4" width="480" border="0">
<tr>
<td width="480" align="center" valign="top">
<img src="http://www.stephencalenderblog.com/images/LearningTechComic.jpg" alt="Learning Curve" />
</td>
</tr>
</table>
<p>Originally “cursing” was supposed to be “implementation time”, but they seem fairly interchangeable to me.  The main point is that most of the time we end up in this devilish little trough part of a system.  Demos are designed to show what a technology does best, or jump starts programmers with some trivial examples.  Then other programmer’s with their one or two week exploration and R&#038;D time for new technology will play with it, and give it a vote of approval without leaving the trough.  Often the most important knowledge to attain is the limits and how well it can scale.</p>
<p>If you are looking to build something just like those other things a technology makes easy, knock yourself out.  I have seen too many demos with no animated objects, only showing many simple objects, conversely just showing one complicated object, or showing just a tiny one room scene.  I will always be interested in pushing the limits; I am all about living on the bleeding edge &#8211; creating games previously not possible with vast, expansive, detailed, realistic, and interactive worlds.  My goal is to blow your mind, not port something dated to a new platform.  That is where technology and magic merge for me; it is the pinnacle of suspension of disbelief.</p>
<table cellspacing="4" cellpadding="4" width="480" border="0">
<tr>
<td width="480" align="center" valign="top">
<img src="http://www.stephencalenderblog.com/images/AmbitiousProjectLifespanComic.jpg" alt="Project Lifespan" />
</td>
</tr>
</table>
<p>Many engineers out there have a very skeptic view of newest technology craze.  They acquired this cynical and untrusting stance because they have been burned in the past.  Particularly painful third degree burns; probably from discovering a crippling defect, being lied to or missing documentation, or coding ourselves into a corner when it doesn’t perform as promised.  We are all guilty of making assumptions before we have a complete picture.  We get our hopes up and get excited about things before we know anything, when all we have seen are the simple demos (I don’t ever trust videos anymore, I want to see a live demo).  We manifest this race to take advantage and bridle this new beast and release the next greatest thing to the market.  The practical approach is to take your time and run your benchmarks and thoroughly experiment, or build smaller projects first before you go chasing your white whale.  Having to de-scope, cut features, or rework a project to optimize after you committed to a path is an unhappy place to be – you can learn a great deal in those struggles, but it is slow, painful, and expensive learning. We are quick to forget that we were previously able to build such beautiful things because we had experience and mastered the technology with which they were built (and perhaps had some time saving infrastructure and mature tools).</p>
<p>Sometimes technology delivers on its promises, apparently we have <a href="http://www.wired.com/gadgetlab/2011/09/awesome-real-life-electric-tron-lightcycle/">light cycles</a> now (I want one so bad) oh, and <a href="http://www.wired.com/dangerroom/2010/12/video-navys-mach-8-railgun-obliterates-record/">rail guns</a>.  There are also times when there is just <a href="http://www.youtube.com/watch?v=00gAbgBu8R4">shameless hype to sucker investors, companies, and end consumers</a>.  luckily <a href="http://notch.tumblr.com/post/8386977075/its-a-scam">some experts call people on their shenanigans</a>.  It can be tough to tell the difference. Anyone remember the Segway? <a href="http://blogs.wsj.com/digits/2010/09/27/from-hype-to-disaster-segways-timeline/">‘There’s talk among tech insiders that it could be bigger than the PC. Kamen says it “will be to the car what the car was to the horse and buggy.”’</a>   CNN lists the Segway between amongst <a href="http://money.cnn.com/galleries/2007/biz2/0706/gallery.launch_hits_and_misses.biz2/9.html">the biggest product misses</a> between New Coke and the Microsoft Zune.<br />
It is one thing for a product to do poorly in the market, let us not forget that sometimes technology still completely fails, and not just a couple annoying bugs in a video game, but horrifying and terrible problems. <a href="http://en.wikipedia.org/wiki/2009%E2%80%932011_Toyota_vehicle_recalls">Toyota’s ‘unintended acceleration’ recall</a>, remember when a simple unit of measure calculation caused us to <a href="http://articles.cnn.com/1999-09-30/tech/9909_30_mars.metric.02_1_climate-orbiter-spacecraft-team-metric-system?_s=PM:TECH">lose a 125 million dollar NASA project</a>, perhaps the most notable software failures are the ones in the <a href="http://www.wired.com/software/coolapps/news/2005/11/69355?currentPage=all">medical field that end up killing people</a>.<br />
Sometimes people just like the attention from having something to talk about, and we end up in <a href="http://www.southparkstudios.com/full-episodes/s08e11-quest-for-ratings">quest for ratings</a> mass media hysteria – I will never forget the global apocalyptic predictions of <a href="http://en.wikipedia.org/wiki/Year_2000_problem">Y2K propaganda</a>.</p>
<p>Ok, hype and buzz words aside, let us hypothesize that we do find something better to work with out there.  Most people (the ones that don’t build things) seem to forget that there is still a human behind every technology and software program out there.  Someone has to write the code, perform the maintenance, as well as assimilate the knowledge and tools required to work with it.  There is a very real opportunity cost and time investment to become an expert at something.  It is tough to make that investment and commitment.  Is it really worth learning something new if it is only 20% more efficient than what you already know? Is the time spent learning this new thing worth the lost development time? When is the next theoretical advance in the same field?  </p>
<table cellspacing="4" cellpadding="4" width="480" border="0">
<tr>
<td width="480" align="center" valign="top">
<img src="http://www.stephencalenderblog.com/images/TechExcitementVsAgeGraph.jpg" alt="Excitement Over Time" />
</td>
</tr>
</table>
<p>The bar for success can be a moving target. With the onset of new successful technologies, or improvements on existing technology, the bar gets raised.  Even when something new comes along and it is worthy, it needs to beat existing technology by (at least perceived) wide enough margin to make it worth adopting (or lower the cost to attain expertise).  It also needs to beat future expectations in the same space, why learn tech A when tech B is supposed to be better and it releasing in six months?</p>
<p>The flip side of human technology interface is that real people are the consumers of technology.  If a person cannot perceive a difference between two technologies, if the cost is prohibitive or there are other barriers to enter the market, if there is a feeling of looking silly using a new contraption (or doesn’t make you cooler), if it is difficult to learn, or is sufficiently lacking in the “gotta have it” or “this will forever change my life” mentality – if you can’t rationalize owning it, it has no value.  If your game isn’t fun, people aren’t going to play it, regardless if it has the hottest technology.  If the hottest trend or hip feature to implement doesn’t increase the fun, why waste the time on it?  What would make your customers happier; would your audience notice the difference?  There is always the looming opportunity cost to consider too, is the time sink for a new technology with an accompanying performance boost worth the content and feature time development lost?</p>
<p>One term that has been ubiquitous in my career thus far is &#8216;market penetration&#8217;. How many people have the technology for the platform, what is the install base? What is the conversion rate to the current version, what is the expected latency before the majority is operating the latest version?  Who is driving the updates, is a component of the platform or fueled by games and other 3rd party developers?  How often have you installed display driver updates for your computer only because of the carrot dangled in front of you by your latest game purchase?  </p>
<table cellspacing="4" cellpadding="4" width="480" border="0">
<tr>
<td width="480" align="center" valign="top">
<img src="http://www.stephencalenderblog.com/images/AspirationsVsAbilityGraph.jpg" alt="Aspiration Ability" />
</td>
</tr>
</table>
<p>Personally, I always wonder and constantly evaluate my own abilities and the capabilities of the technology I am using against the aspirations of the project.  Sometimes it is a very fuzzy and hard to define the Venn diagram of the three entities until you really know yourself and reach a high caliber of excellence in your medium.  Making games is risky and time consuming investment enough as it is without the addition of new and untested technology; however, sometimes being an early adopter can really pay off.  </p>
<p>In the past we have seen large technology jumps from new hardware. It was a big deal to go from 8MB of RAM to 16 or 32, or to go from enough processing power for 2D games to 3D games.  If <a href="http://en.wikipedia.org/wiki/Moore%27s_law">Moore’s Law</a> continues to hold and technology continues to get faster and cheaper.  Hardware will reach a point where improvements become meaningless to most users (it arguably already is for some).  I suspect the newest revolutions will be in software, or if they are hardware related it will be servers or something users do not directly purchase, own, upgrade, or maintain. Peripherals will be ubiquitous; all devices will start to have touch screens, cameras, accelerometers, microphones, etc.  I am not sure when, but at some point bandwidth costs will decrease, wireless enabled areas will proliferate, and network speed will summit a critical point where all of our data and processing will be done virtually – personal devices will just be terminals, portals and interfaces to virtual hardware. It would be interesting to see such a world where everyone is operating on the latest generation of always upgraded hardware (no longer having to consider development for a minimum specification machine, libraries and schools having equal technological footing), making technology truly universal.</p>
<p>Reflecting on tends I have seen already in my career, the value of quickly being able to evaluate new things, and the efficiency in which you can master new things, is a critical skill. Furthermore, not only the ability rapidly acquire mastery, but being able to discriminate what technology is worth learning.  The rate of new languages, systems, platforms, tools, and interface widgets is only going to increase. Tread carefully when wielding new playthings. I don’t have any great insights here, a keen eye is only developed from enduring some hardships; there is only the universal truth that you can’t believe everything you hear. Hype is lies told to make money, lure investors, and get the word out. No one shows off their warts.  Reckless early adopters of new technology often dig their own graves, sooner or later.  </p>
<p>I feel like the media, investors, clients, users, and anyone removed from the process of developing technology forget that programmers are humans too, and we have to learn and adapt as well, which has a real cost.  Did it matter that PlayStation 3 was the most advanced of the latest consoles when it had the steepest learning curve (and also the most expensive garnering the fewest users)? <a href="http://www.analoghype.com/features/editorials-features/ps3-development-for-dummies-is-valve-being-lazy-or-are-they-biased/">citation 1*</a>, <a href="http://www.businessinsider.com/ps3-still-a-pain-in-the-ass-for-developers-2011-7">citation 2*</a></p>
<p>Lastly, you have to be able to sell this to people; it has to be worth their time and money – and they need be able to notice a comparable difference in your product.  <a href="http://en.wikipedia.org/wiki/History_of_video_game_consoles_%28seventh_generation%29">The PlayStation had the highest caliber performance, but perhaps it wasn’t a noticeable enough gap from the Xbox to bridge the cost difference</a>. It is even more interesting that the Xbox is as successful as it is in the console contest despite <a href="http://en.wikipedia.org/wiki/Xbox_360#Technical_problems">all of its hardware failures</a>.  More processing power and memory allows us to create new experiences, but we have certainly created fun, emotion, and captivated audiences with less.  A couple more polygons, textures, animated features, shaders, and cycles to calculate AI routines certainly makes games more realistic (and saves some optimization heartache), but it doesn’t necessarily create more fun.</p>
<p>My passion for games is strongly linked to providing people joy, happiness, challenge, and surprises – that is what makes it all worthwhile. Ultimately, technology is just a tool to build, publish, and be a point of sale for our content.  I am not sure there has ever been a game that was successful just because it had the best technology.  People still purchase board and card games, there is still a strong community and ongoing development in paper and pencil roleplaying games, and table top games have their niche.  Your main focus should be creating a compelling and enjoyable experience, the pleasure and delight of your audience takes priority.</p>
<p>Thanks for reading, and remember, we are all in this together.</p>
<table cellspacing="15">
<tr>
<td>
<a class="DiggThisButton DiggMedium"></a>
</td>
<td>
<a href="http://reddit.com/submit" onclick="window.location = 'http://reddit.com/submit?url=' + encodeURIComponent(window.location); return false"> <img src="http://reddit.com/static/spreddit7.gif" alt="submit to reddit" border="0" /> </a>
</td>
<td>
<table>
<tr>
<td>
<img src="http://static.delicious.com/img/delicious.small.gif" height="10" width="10" alt="Delicious" />
</td>
<td>
<a href="http://delicious.com/save" onclick="window.open('http://delicious.com/save?v=5&#038;noui&#038;jump=close&#038;url='+encodeURIComponent(location.href)+'&#038;title='+encodeURIComponent(document.title), 'delicious','toolbar=no,width=550,height=550'); return false;"> Bookmark this on Delicious</a><br />
</tr>
</table>
</td>
<td>
<script src="http://www.stumbleupon.com/hostedbadge.php?s=2"></script><br />
</tr>
</table>
<img src="http://feeds.feedburner.com/~r/StephenCalenderProgrammingBlog/~4/kHJfcX05YH0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.stephencalenderblog.com/?feed=rss2&amp;p=371</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.stephencalenderblog.com/?p=371&amp;utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=new-technology</feedburner:origLink></item>
		<item>
		<title>No More LEGO Universe</title>
		<link>http://feedproxy.google.com/~r/StephenCalenderProgrammingBlog/~3/SVZvnYr6h6w/</link>
		<comments>http://www.stephencalenderblog.com/?p=366#comments</comments>
		<pubDate>Tue, 21 Feb 2012 05:28:32 +0000</pubDate>
		<dc:creator>Stephen Calender</dc:creator>
				<category><![CDATA[Opinion]]></category>

		<guid isPermaLink="false">http://www.stephencalenderblog.com/?p=366</guid>
		<description><![CDATA[Yeah that was pretty fast. I have known about the pending shut down for months now, it is still hard to believe. After acquiring the development team back in February of 2011, they not only decided to stop production on LEGO Universe in November of 2011, but to shut down the studio entirely ending virtually [...]]]></description>
				<content:encoded><![CDATA[<p>Yeah that was pretty fast.  I have known about the pending shut down for months now, it is still hard to believe.  After acquiring the development team back in February of 2011, they not only decided to stop production on LEGO Universe in November of 2011, but to shut down the studio entirely ending virtually all jobs in the Colorado satellite.  LEGO universe servers were slated to be shut down at the end of January 2012.  <a href="http://www.stephencalenderblog.com/?p=306 ">I think most of my opinions remain the same since I was laid off with roughly half the staff</a>.</p>
<p><iframe src="http://player.vimeo.com/video/35685101?title=0&amp;byline=0&amp;portrait=0" width="480" height="270" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>
<p><a href="http://vimeo.com/35685101">Lego Universe: History</a> from <a href="http://vimeo.com/exileproductions">EXILE PRODUCTIONS</a> on <a href="http://vimeo.com">Vimeo</a></p>
<p><span id="more-366"></span>I think I actually made it into one of those wide angle shots.</p>
<p>It is just a sad affair no matter how you look at it.  Virtually everyone loved working on this project and brought so much energy to it; I know the employees are all disappointed.  You would think that, even if Lego Universe was not the product or didn’t meet the performance goals that they would have kept the servers running or moved the team onto new projects instead of dismissing all of the acquired talent (<a href="http://www.joystiq.com/2011/11/04/lego-universe-will-end-in-january-2012-offices-closing/">115 in total</a>).  I know many people point their finger at an <a href="http://www.pcgamer.com/2011/11/04/why-lego-universe-is-shutting-down-in-january-and-why-it-deserves-a-second-chance/">outdated subscription business model as the reason why it failed</a>.  I completely agree with the <a href="http://blog.junta42.com/2011/11/lego-closes-lego-universe/">astute observations of marketer and parent of Lego Universe players, Joe Pulizzi</a> even if Lego Universe was taking a loss or breaking even, it was a direct line to your customers and you completely captured their advertising eyeballs with your brand.    </p>
<p>It is very obvious how frustrated and upset the community is over the ending of Lego Universe.  Yes there have been satirical comments about how imagination ran out and the Maelstrom won.  The <a href="http://messageboards.lego.com/en-us/showforum.aspx?ForumID=1440">Lego message boards</a> were flooded with feelings (links seem to be evaporating after the shutdown :/). Our players tried to organize <a href="http://www.petitionbuzz.com/petitions/savelegouniverse">a petition to keep the game alive</a>, which was unfortunately futile since they shut down the studio too.  I heard many stories of children crying over the loss, the same people we had worked so hard to delight and entertain.  There was a particularly heart breaking thread salvaged from the forums about how <a href="http://mmofallout.com/2011/12/19/lego-universe-and-autism-or-a-shattered-heart/">several kids with autism embraced the creative and expressive side of our work</a>.</p>
<p>Perhaps it is just <a href="http://www.joystiq.com/2012/02/14/gazillion-shutting-down-fortune-online-focusing-on-marvel-prope/">the curse of Gazillion, in recent news they are shutting down another product that started at NetDevil, Fortune Online</a>.  There was also a very interesting <a href="http://blog.games.com/2012/02/08/superpoke-pets-players-sue-google-slide/">lawsuit filed against the makers of SuperPoke! Pets</a>, its own players filed a class action lawsuit over that games projected closure in March.  There might not be much legal recourse for the fans, but it does feel unjust to have paid for virtual currency or subscriptions then get burned.</p>
<p>It just seems to be the nature of these MMO beasts, Facebook games, and others; whenever there is a server machine to be maintained, the corporations get to decide when to pull the plug.  I am sure that I am just nostalgic about my cartridges and disks, but those games can always be played again, it isn’t true for MMOGs. That is the cost of playing with your friends and getting content drops and updates; you don’t really own the game anymore.  At some point they will be gone forever.</p>
<p>Thanks for reading, and remember, we are all in this together.</p>
<table cellspacing="15">
<tr>
<td>
<a class="DiggThisButton DiggMedium"></a>
</td>
<td>
<a href="http://reddit.com/submit" onclick="window.location = 'http://reddit.com/submit?url=' + encodeURIComponent(window.location); return false"> <img src="http://reddit.com/static/spreddit7.gif" alt="submit to reddit" border="0" /> </a>
</td>
<td>
<table>
<tr>
<td>
<img src="http://static.delicious.com/img/delicious.small.gif" height="10" width="10" alt="Delicious" />
</td>
<td>
<a href="http://delicious.com/save" onclick="window.open('http://delicious.com/save?v=5&#038;noui&#038;jump=close&#038;url='+encodeURIComponent(location.href)+'&#038;title='+encodeURIComponent(document.title), 'delicious','toolbar=no,width=550,height=550'); return false;"> Bookmark this on Delicious</a><br />
</tr>
</table>
</td>
<td>
<script src="http://www.stumbleupon.com/hostedbadge.php?s=2"></script><br />
</tr>
</table>
<img src="http://feeds.feedburner.com/~r/StephenCalenderProgrammingBlog/~4/SVZvnYr6h6w" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.stephencalenderblog.com/?feed=rss2&amp;p=366</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.stephencalenderblog.com/?p=366&amp;utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=no-more-lego-universe</feedburner:origLink></item>
		<item>
		<title>$365 Worth of Actionscript 3.0 Books</title>
		<link>http://feedproxy.google.com/~r/StephenCalenderProgrammingBlog/~3/ETB14X9Hg6U/</link>
		<comments>http://www.stephencalenderblog.com/?p=353#comments</comments>
		<pubDate>Sun, 11 Sep 2011 23:52:47 +0000</pubDate>
		<dc:creator>Stephen Calender</dc:creator>
				<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Review]]></category>

		<guid isPermaLink="false">http://www.stephencalenderblog.com/?p=353</guid>
		<description><![CDATA[I have been vexed for some time about closing a gap I have felt with, you, my audience (4th wall is hereby broken). I diligently pursue making my content, thoughts, and works accessible to those who do not have a computer science or math background. I do look for ways to encourage or inspire the [...]]]></description>
				<content:encoded><![CDATA[<p>I have been vexed for some time about closing a gap I have felt with, you, my audience (<a href="http://en.wikipedia.org/wiki/Fourth_wall">4th wall is hereby broken</a>).  I diligently pursue making my content, thoughts, and works accessible to those who do not have a computer science or math background.  I do look for ways to encourage or inspire the hobbyist programmer and present Flash to those that might not even know a programming language – I do have code samples and downloadable source on this site.  My mission for this blog was to be a journal of my projects, ideas, experiences, and share my discoveries along the way.  I do not intend to create an instruction manual, teach programming, or provide game development materials – at least not in blog form (its chronological nature just doesn’t lend well to a course of study or reference guide).  However, since I can now convince people to pay me to program in Flash, I can certainly put you on the path to master this platform.<br />
<span id="more-353"></span></p>
<p>I recognize that I am several leagues away from the beginning programmer, or even a programmer acclimating to a graphics rendering engine.  </p>
<table cellspacing="4" cellpadding="4" width="470" border="0">
<tr>
<td width="210" align="center" valign="top"><img src="http://www.stephencalenderblog.com/images/BookReview-Flash-8-ActionScript-Bible.jpg" alt="Flash 8 ActionScript Bible" /></td>
<td width="260" align="left" valign="top">
<p>
By the time I happened across Flash I had already learned several programming languages and worked with a couple game engines, which I guess I should also mention – I am primarily interested in building games.  I still have a tattered looking copy of Flash 8 ActionScript Bible (ISBN: 978-0-471-77197-5) heavily bookmarked: working with dates and times, event handling, programming tweens, adding MovieClip objects to the scene programmatically, determining if objects overlap and converting coordinate spaces, writing filters, working with text and html, and implementing sound.
</p>
</td>
</tr>
</table>
<p>In reviewing these books I am attempting to evaluate both the utility for the naïve Flash student and unique insights for the advanced crowd.  I still claim that the best way to learn is by doing, getting your hands dirty and trying to build things, but when you are pioneering new territory I have often found books to be the best and most reliable resource (and why not browse them when your company has a wide selection available for your convenience). </p>
<p>They are; however, just books – they are not magically transformative experiences that will mutate you into a Flash guru.  Be realistic!  You should be looking for something to form a solid foundation of knowledge that you can expand upon, and hopefully inspire that expansion.  If there was a tome capable of creating super beings that could craft the next Gears of War, Zelda, Super Mario Bros, Medal of Honor, League of Legends, or Farmville at a whim &#8211; odds are that it would be selling for more than $50.  It is rational to believe that there are materials out there that can elevate your flash skills or game programming knowledge to get you over the tipping point so that you can build your own games. </p>
<p>In no particular order… </p>
<table cellspacing="4" cellpadding="4" width="470" border="0">
<tr>
<td width="210" align="center" valign="top"><img src="http://www.stephencalenderblog.com/images/BookReview-cheat-CS5.jpg" alt="How to cheat in Adobe Flash CS5" /></td>
<td width="260" align="left" valign="top">
<p>
 How to cheat in Adobe Flash CS5<br />
“The art of design and animation”<br />
ISBN 978-0-240-52207-4<br />
$39.95<br />
Includes a DVD with source materials<br />
Still has an active forum located here: <a href="http://www.keyframer.com/forum/">www.keyframer.com/forum</a>
</p>
</td>
</tr>
</table>
<p>Just because I am a programmer there is still utility to gain from reading a book about the art side of things; especially when the book is written by an artist and animator actively working ‘in the trenches’.  Game development is a very communal and cross disciplinary activity.  Even if you never plan to create any original art assets you should know the basics of the artistic development pipeline, what is easy for them to build, and what is difficult.  Most of the time you are on a team with diverse and specialized talents, you should always be trying to direct your efforts for the most efficient role to tackle each challenge.  For example, there is a new deco tool in CS5 that just generates some nice effects like fire, smoke, and even lightening – which could save loads of programmer time implementing a particle system or any technical solution to accomplish that kind of effect.  If it looks good and saves time it is win-win.</p>
<p>I really enjoy how direct, honest, open, and how well laid out this book was in its construction.  All of its lessons were choreographed as full two page spreads so you are not fumbling with turning pages while you are trying to practice.  The author, Chris Georgenes, shares his entire methodology and pipeline. He often starts with paper and pencil, scanning, and then tracing his work; or starting with basic two dimensional ovals or rectangles that he will morph, distort, push, pull, skew, and join into more complex objects.</p>
<p>While his forte is exporting animation for television spots, it also had some discussions on optimization and using Flash for other mediums.  I have been using the ‘trace bitmap’ function for years, but this book let me pick up on a new trick ‘optimize curves’ (Modify -> Shape -> Optimize to open the panel – and it has a preview!), and it has already paid dividends in my work.</p>
<p>There were also some clever approaches on all of the ways you could implement a shadow for your artwork.  One of which was a drop shadow filter with the ‘hide object’ property set.  This is probably a bit expensive, but easy way to handle keeping a shadow in sync with an animated object (if you were going for a high end shadow instead of just a simplified blob).  It was definitely an enlightening moment where previously I didn’t see a real use for an option Adobe provided us with.</p>
<p>He has some great links from some of his flash technical presentations and articles:<br />
<a href="http://my.adobe.acrobat.com/p46515568">http://my.adobe.acrobat.com/p46515568</a> (screen capture of his desktop while he works)<br />
<a href="http://www.adobe.com/devnet/flash/articles/design_character_pt1.html">http://www.adobe.com/devnet/flash/articles/design_character_pt1.html</a><br />
<a href="http://www.adobe.com/devnet/flash/articles/design_character_pt2.html">http://www.adobe.com/devnet/flash/articles/design_character_pt2.html</a><br />
<a href="http://www.adobe.com/devnet/flash/articles/adv_char_anima.html">http://www.adobe.com/devnet/flash/articles/adv_char_anima.html</a><br />
<a href="http://www.adobe.com/devnet/flash/articles/character_animation_ik.html">http://www.adobe.com/devnet/flash/articles/character_animation_ik.html</a><br />
<a href="http://www.adobe.com/devnet/flash/articles/spring_tool.html">http://www.adobe.com/devnet/flash/articles/spring_tool.html</a></p>
<p>I was even a bit stunned at his savviness when I read the example using the spray paint tool linked to a custom rigged grass model, to elegantly fill a scene with a lush animated landscape.  Again, might be too much overhead for a game (maybe you could squeeze it into a cut scene), but I will never look at the spray can tool the same way again. </p>
<p>You are not going to find any ActionScript in this book other than the simplistic event handling, and loading that an artist or designer could handle.  The focus obviously is not programming but art and animation.  It was nice to read a book created by a ‘doer’, learning from someone that has worked with flash every day for a very long time.  As opposed to the normal fare you find that feels like Adobe Propaganda selling us help extensions that should come with the product or written by a professional book writer. Flash, and games in general, is really about art and technology coming together, and it was a worthwhile read for the insights into the artistic realm of production.</p>
<table cellspacing="4" cellpadding="4" width="470" border="0">
<tr>
<td width="210" align="center" valign="top"><img src="http://www.stephencalenderblog.com/images/BookReview-Digital-Classroom.jpg" alt="Adobe Flash Professional CS5 Digital Classroom" /></td>
<td width="260" align="left" valign="top">
<p>
Adobe Flash Professional CS5<br />
Digital Classroom<br />
“A Complete Training Package”<br />
ISBN 978-0-470-60776-3<br />
$49.99<br />
Companion DVD included
</p>
</td>
</tr>
</table>
<p>It starts off with a ‘grandmother granularity’ level of instruction of the flash professional application.  It was a little mind-numbing to walk through every last art tool and menu panel, as well as how to open and close files in their ‘jumpstart’.  This might be the book for you if you need that level of hand holding, but they really do not make any attempt to liven it up with goals, objectives, or when this information might be relevant to you.  It is not going to be an experience of learning by doing.  It was 150 pages before you even tackle anything more sophisticated than static graphics; and page 350 before you are asked to wrap you head around the movie clip object and nested or multiple timelines.  The ActionScript section certainly left something to be desired.  It is just the simplistic concepts of timeline controls and button handling to make simple web page types of Flash projects.</p>
<p>It was a really dry, very broad sampling of Flash that really didn’t go into much depth in any one area – I am struggling to think of a real audience for this book; perhaps the person that wants to learn the application but has no goals to do anything with it?  I find it hard to believe that knowing how to create custom keyboard shortcuts is more valuable to people than covering more art or programming topics.  Furthermore, while the authors were older and have been using Flash since ‘the beginning’ (which was originally exciting, perhaps they are true experts), there is a feeling that they have not really kept up with the technology or no longer use it on a daily basis.</p>
<p>Even when you have cool things to say you can’t afford to be dull these days, this was as dry as reading a manual for self-assembled furniture as well as verbose and lacking meaningful content to boot.  </p>
<table cellspacing="4" cellpadding="4" width="470" border="0">
<tr>
<td width="210" align="center" valign="top"><img src="http://www.stephencalenderblog.com/images/BookReview-Real-World-Game-Dev.jpg" alt="Real World Flash Game Development" /></td>
<td width="260" align="left" valign="top">
<p>
Real World Flash Game Development<br />
“How to follow best practices and keep your sanity”<br />
ISBN 978-0-240-81178-9<br />
$49.95<br />
<a href="http://www.flashgamebook.com/">http://www.flashgamebook.com/</a>
</p>
</td>
</tr>
</table>
<p>It assumes intermediate experience with Flash or another game development platform, its introduction states that its goal is to feel totally comfortable tackling the development of a game.  This book is starting to get a little dated since it was originally written at the time CS4 was released.<br />
It is very honest “the first thing to know about Flash is that it was never designed to develop games” in discussing the platform at large.  There was a high level but excellent conversation of debugging, benchmarking, and needing to write your own libraries for sound and physics as Flash weaknesses; as well as discussing some things that Flash does really well. Latter in the book he actually walks you through writing a sound manager as well as very basic collision detection (I found his math a bit lacking in that section).  A concept worth repeating is that Flash is intended to appeal to a wide and diverse audience of web developers, animators, advertisers, and standalone applications with air.  You naturally end up with many paths to achieve a single objective; a big part of game development with Flash is learning which of those routes you want to avoid traveling.</p>
<p>There was an entire chapter on planning, which left me feeling empowered and excited to do a better and more thorough job in the future.  You would be surprised how many clients, business types, and producers seem to lack any semblance of a plan – or have no idea how their perceived objective meets their goals.</p>
<table cellspacing="4" cellpadding="4" width="480" border="0">
<tr>
<td width="480" align="center" valign="top">
<img src="http://www.stephencalenderblog.com/images/BookReview-underpants-gnomes.jpg" alt="Underpants...?...Profit" />
</td>
</tr>
</table>
<p>There is a decent conversation on basic programming in the first section of the book.  Reviewing the atomic pieces of code, data structures, and key systems including filling in the details on some of Adobe’s documentation – it had the clearest presentation of how Flash’s garbage collector works.  It is a nice presentation of core programming fundamentals that you should continue to pursue and master. </p>
<p>There were some interesting tools and tricks.  This guy is another <a href="http://www.greensock.com/">Greensock TweenMax</a> user, which in my experience is the best 3rd party tween engine out there (carefully read the license though, it isn’t free to use in all cases).  He also goes into discussion on ‘addFrameScript’ so that you can completely remove all timeline code from MovieClips.  There was some interesting audio optimizations that I want to experiment with, he claims that playing many MP3s can become taxing since they uncompress in real time and you can get performance gains from using the more memory heavy ADPCM compression for you short lengthed sounds (SFX).  </p>
<p>He walks through the source for some very simple games, a no frills platformer, a crossword puzzle, and a sliding tile puzzle throughout the book (you expand and add to them as you learn more).  He doesn’t come right out and say it, but improving or modding an existing game is one of the best ways to learn (well, if it is well written and commented).  It is well worth your time to have decent toys to play with and pick apart.  I will follow his suit as well and encourage you to not copy, steal, or blatantly re-release a game.  There is also a great section on protecting yourself from hacking and cheaters. </p>
<p>This was a pretty respectable read, not perfect but very solid.  Something might just be individual tastes, like he prefers using weak keys for references and I am stanchly seated in the opinion that all things should have formal destructors.  The author, Chris Griffith, has a background in the advertising world, and like many of the gaming books out there seem to lack that step from hobbyist game development to writing really professional games that can scale.  However, no one starts off as a super star, if you have never built a game before this will set you up with all of the basics and get you rolling with some tangible projects.</p>
<table cellspacing="4" cellpadding="4" width="470" border="0">
<tr>
<td width="210" align="center" valign="top"><img src="http://www.stephencalenderblog.com/images/BookReview-Game-Programing-University.jpg" alt="Game Programming University" /></td>
<td width="260" align="left" valign="top">
<p>
ActionScript 3.0 Game Programming University 2nd Edition<br />
“Updated for Adobe Flash Professional CS5”<br />
ISBN 978-0-789-74732-7<br />
$44.99<br />
<a href="http://flashgameu.com/">http://flashgameu.com/</a><br />
(check it out, all the source code for the book is there)
</p>
</td>
</tr>
</table>
<p>Author Gary Rosenzweig sounds like your old school game developer that had the drive and conviction to self-teach himself programming and game development from a young age; working on his passion after hours and on weekends until computers and the internet grew mainstream enough that he could start his own company and make games full time in 1996.</p>
<p>He is very clear that the core audience for this book is expected to already know animation and programming but want to move forward into developing games, and you should also have some familiarity with CS 5; explicitly stating that it is not geared towards first time programmers.  He is a MAC user, and for the most part sticks to Flash Professional as his development platform for the book (which is probably a smart move, master Flash Professional first before tackling Flash Develop or Flash Builder or any of the other IDEs springing up).</p>
<p>He won me over right away with actually making his introduction a “Hello World” project.  Then he continued to resonate with me for his use of checklists.  Even as an expert, there are a lot of things to remember and a lot of places where you can get tripped up.  There is no shame in maintaining a checklist, building and adding to it over time.  Why wouldn’t you do something if it improves the quality and efficiency of your process?  If it gets results, put it into practice!  Here is his general walkthrough:</p>
<p>Publishing and Document Settings<br />
	Document class set correctly<br />
	Publish Settings – is Flash 10, AS3 set?<br />
	Security Settings<br />
Class, Function, and Variable Names<br />
	Remember Case Sensitivity<br />
	Are MovieClip class files present?<br />
	Do classes extend the correct type?<br />
	Is the constructor function set to the right name?<br />
Runtime Issues<br />
	Are you setting properties before an object is ready?<br />
	Are you cleaning up objects when you are done with them?<br />
	Are all variables well typed?<br />
	Did you remember to include all fonts?<br />
Testing Issues<br />
	Do you need to disable keyboard shortcuts?<br />
	Have you tested at other frame rates?<br />
	Have you tested from a server / live environment?</p>
<p>I actually made a formal checklist this year for code reviews, you are welcome to incorporate and nurture your own process from this example:</p>
<p>*Is everything typed / casted?<br />
*Are there enough comments?<br />
*Do things feel like they are logically in the right place / where you would expect to find them (are things well named)?<br />
*Have extraneous import statements been removed<br />
*Do all classes have a destructor and a toString function?<br />
*Are all important display assets named (DisplayObject.name property set)?<br />
*Are assets in the fla library organized in folders and named (export and linkage names should match)?<br />
*Are there any optimizations for CPU possessing or memory (liberally use //TODO comments on sections planned to be revised)?<br />
*Identify sections of code that might not scale well (this is a solution for 100 objects, not 100,000 objects)?<br />
*Handle issues that could cause the code base to not fail gracefully &#8211; if something is s a show stopper it should log a complaint instead of just failing, are preventative measures being taken to deal with invalid or incomplete data, are there adequate regulations in place for user input / externally loaded data?</p>
<p>You are building some things and working with flash right away (programmatically adding MovieClips objects, making buttons, creating text), I see how it could feel rushed or create a slow progression environment if you have zero experience.  This is partly the nature of programming. You should feel curious, you should want to tinker, pick things apart, and experiment.  It is something learned best by doing.  A programming book should compel and encourage you to take frequent breaks to explore the topics it presents.</p>
<p>After the ramp up section it is just one game example after another.  I like his approach to building games, constructing the core mechanic then layering additional features like sound, animation, user interface, or expanding upon the core mechanic incrementally.  Each example tends to teach new programming concepts, so you could partly think of it as learning to program with games.  Some of these later lessons are things like recursion, data structures, physics, motion, and handling external data.  The only drawback is perhaps pushing through an uninteresting game to learn critical topics.</p>
<p>Things remain pretty simplistic, the book uses many small examples from a wide selection of game types.  Just be aware that advanced optimization and construction techniques are not addressed. I think that this example rich and hands on learning approach is probably the best way to teach the subject matter, but there were some places where content disappointed me.</p>
<p>It has become a very undesirable thing to have multiple frames on your main timeline of large applications like games, which plague all of these examples.  Most of us avoid using the Timer class, it just does not have the precision that you would expect, you are much better off using the date class.  I saw pretty liberal use of the ‘onEnterFrame’ event listeners which are really expensive, typically you try to structure your code so you only have one master listener – I saw one case where he had an enter frame listener on every projectile, scary stuff.  I suppose it is a minor flaw that he refers to hitTestObject as bounding box in discussing collision detection.  It is actually axis aligned bounding box and there is a significant difference between the two.</p>
<p>Again, just because I have my own particular tastes doesn’t mean I am right and he is wrong.  I just feel the need to reiterate that while this might be one of the better books out there it is only the beginning.  I also feel the need to make you aware that there can be a big difference from these small scale mini games and the next level of game development.  If all you need to do is make something small, or just experimenting with some game concepts, or are just a hobbyist and do no care how your game runs on other systems you have significantly less overhead and performance concerns to worry about.  Quick and dirty development has a place; you just need to be aware that it is dirty.</p>
<table cellspacing="4" cellpadding="4" width="470" border="0">
<tr>
<td width="210" align="center" valign="top"><img src="http://www.stephencalenderblog.com/images/BookReview-Missing-Manual.jpg" alt="CS5 Missing Manual" /></td>
<td width="260" align="left" valign="top">
<p>
Flash CS5 The Missing Manual<br />
“The book that should have been in the box”<br />
ISBN 978-1-449-38025-0<br />
$39.99<br />
<a href="http://missingmanuals.com/">http://missingmanuals.com/</a><br />
<a href="http://missingmanuals.com/cds/flashcs5tmm/">http://missingmanuals.com/cds/flashcs5tmm/</a>
</p>
</td>
</tr>
</table>
<p>Their self-stated purpose is to provide step by step instructions for every flash feature, as well as when and how to use them; designed for readers of every skill level, except the super advanced programmer.  I checked out their source code provided on the book’s website page, none of them had an external ActionScript file, I wouldn’t have thought of that as super advanced.  Again, this is a really dry read, walking through every little feature and panel.  I think that it is the first book that I have read that actually described clicking on the mouse in order to select things.  The author of this particular book is in advertising and design, and it shows.</p>
<p>I thoroughly enjoyed reading the following ‘color commandment’: “Black text on a white background is popular for a reason.  Any other color combination produces eyestrain after as little as one sentence.” &#8211; which was written with black ink on a grey background tip box.  And he repeats himself on this subject, again on a black on grey tip section when talking about font sizes.  While I find this humorous, I do appreciate his honorable attempt to impart some design and usability principles – but perhaps this book isn’t the best platform for that.</p>
<p>As I am sure you can imagine, this is another book that ends up being really lite on programming, the introduction to AS 3.0 isn’t until chapter 12, page 395.  To his credit he does discuss how to set up separate ActionScript files, and mention that it is the proper approach for large projects, object oriented programming, and for working with more than one person; but again seems to regard it as a very advanced way to work.<br />
Another book that teaches and describes the platform but only scratches the surface on using the platform; whether it be for games, animating, web pages, or something else.  It feels like you are already expected to have that ‘other skill’ and how to employ it would be obvious.  There do not seem to be many resources out there like learning to program ActionScript with CS5, or discover digital drawing and animating with Illustrator and Flash.  There also seems to be very few books to transition expert programmers from another language to ActionScript.</p>
<p>One solid take away from this book was a decent listing of ‘Flash Guru Sites’:<br />
<a href="http://flashthusiast.com/">http://flashthusiast.com/</a> (last blog post over a year ago)<br />
<a href="http://www.flashkit.com/">http://www.flashkit.com/</a><br />
<a href="http://www.actionscript.org/">http://www.actionscript.org/</a><br />
<a href="http://active.tutsplus.com/">http://active.tutsplus.com/</a><br />
<a href="http://www.flashloaded.com/">http://www.flashloaded.com/</a><br />
<a href="http://www.keyframer.com/">http://www.keyframer.com/</a> (our friend from How to Cheat in Adobe Flash CS 5)<br />
<a href="http://www.webbyawards.com/">http://www.webbyawards.com/</a><br />
<a href="http://www.flashmobilegroup.org/">http://www.flashmobilegroup.org/</a></p>
<table cellspacing="4" cellpadding="4" width="470" border="0">
<tr>
<td width="210" align="center" valign="top"><img src="http://www.stephencalenderblog.com/images/BookReview-actionscript3-quick-ref.jpg" alt="AS 3.0 Quick Reference" /></td>
<td width="260" align="left" valign="top">
<p>
ActionScript 3.0 Quick Reference Guide<br />
ISBN 978-0-596-51735-9<br />
$34.99<br />
Oreilly seems to have restructured since this was published, the source code is still available online, but it is difficult to locate, here is the link: <a href="http://examples.oreilly.com/9780596517359/">http://examples.oreilly.com/9780596517359/</a>
</p>
</td>
</tr>
</table>
<p>Each of the authors, David Stiller, Rich Shupe, and Jen DeHaan, have fairly compelling websites: <a href="http://www.communitymx.com/">http://www.communitymx.com/</a> <a href="http://www.learningactionscript3.com/">http://www.learningactionscript3.com/</a> I would definitely check out this resource section of learning ActionScript 3.0: <a href="http://www.learningactionscript3.com/resources/">http://www.learningactionscript3.com/resources/</a> <a href="http://flashthusiast.com/">http://flashthusiast.com/</a> (Again, last blog post over a year ago)</p>
<p>This is another book published when CS4 was released, and its main focus is converting ActionScript 2.0 users to ActionScript 3.0, they state that it is “aimed at relatively experienced ActionScript 2.0 coders”.  If you do not know ActionScript 2.0 there isn’t much point to learn it, and needing that kind of context could make things quite confusing to pick up AS 3.0 if you are new to Flash.</p>
<p>The book immediately jumps into AS 2.0 versus AS 3.0 referencing dynamic classes, scope concerns, the delegate class, method closures, ECMA script regulations, regular expressions, namespaces, the new event model being a Document Object Model Level 3, and the new display list structure.  While I appreciate the formalness, and it was a nice change of pace from the less elite programming books, it was a lot of fancy names to start throwing around. I dislike the idea needing Google to digest a book, I remember when they were supposed to be complete and self-contained chunks of knowledge.<br />
One thing I did appreciate was their discussion, backed up with hard data, about the speed and performance of the different virtual machines.  I have noticed that Adobe seems to have a trend of releasing new features that start off running slower than existing code then it gradually speeds up.  Numbers for a long time were still faster than int and uint.  Dictionaries used to be really slow but have improved over time.</p>
<p>I like that he talks about reducing that main timeline to a single frame, working with a document class, and how us older CS3 users could never get away from inserting something like ‘var application:Main = new Main();’ on frame 1.  But again, if you do not share that nostalgia, or unless you really like filtering out all the opening sentences that start “remember how we did things back in the days of AS 1.0 or AS 2.0…” it could be very distracting to learn AS 3.0 (they are very different languages).</p>
<p>I found it kind of lacking in some really important areas.  Sure I guess you know the official terminology for the event model, but does that really help you use it.  For example, in the discussion about the display list it never really describes what it is, assuming you already know how graphics are organized.  Nowhere does it mention that a display list is a tree structure, or that child objects inherit coordinate space (position, rotation, and scale) and rendering properties (visible, alpha, filters) from their parents and how powerful that can be and the importance of proper organization (separating scenes with different display object containers, or in the case of games separating your user interface from the game space).</p>
<p>Again there are examples, but none of them are particularly deep or meaningful.  You might learn all of the tools at your disposal as a programmer, but you miss out on the knowledge of when to employ different strategies and organization tactics.  If you are already a competent programmer that knows ActionScript 2.0 this could be a great book for you to pick up ActionScript 3.0.  Its value is significantly diminished for any other audience.</p>
<table cellspacing="4" cellpadding="4" width="470" border="0">
<tr>
<td width="210" align="center" valign="top"><img src="http://www.stephencalenderblog.com/images/BookReview-essential-actionscript-3.0.jpg" alt="Essential ActionScript 3.0" /></td>
<td width="260" align="left" valign="top">
<p>
Essential ActionScript 3.0<br />
“ActionScript 3.0 Programming Fundamentals”<br />
ISBN 978-0-596-52694-8<br />
$54.99<br />
<a href="http://moock.org/eas3/examples">http://moock.org/eas3/examples</a><br />
<a href="http://moock.org/eas3">http://moock.org/eas3</a>
</p>
</td>
</tr>
</table>
<p>It claims to be the only book that had exclusive and unmitigated access of Adobe’s engineers during its writing and editing, with a programmer specific perspective.</p>
<p>Of all the books on ActionScript that I have read, this one had the best programming introduction; it really covered all of the fundamental programming concepts.  Is one page on recursion really enough to convey the concept?  Does knowing what inheritance is and how to use super and override make you a professional at OOP?  Are you really a programmer if the only data structure you know is the native flash array?  Perhaps not, but at 450 pages there is as much knowledge as you would find in any introductory programming textbook.  It also includes some ActionScript 2.0 migration notes, but they are thankfully separated out from the main text.</p>
<p>With so much emphasis and time spent on learning the language there is not a ton of space left over for applying that knowledge you just acquired (it might seem like a less fulfilling read), but I would recommend this book to any beginner.</p>
<table cellspacing="4" cellpadding="4" width="470" border="0">
<tr>
<td width="210" align="center" valign="top"><img src="http://www.stephencalenderblog.com/images/BookReview-ActionScript-3-Bible.jpg" alt="ActionScript 3.0 Bible" /></td>
<td width="260" align="left" valign="top">
<p>
ActionScript 3.0 Bible<br />
ISBN 978-0-470-13560-0<br />
$49.99<br />
<a href="http://www.wiley.com/go/as3bible">www.wiley.com/go/as3bible</a>
</p>
</td>
</tr>
</table>
<p>I am probably going to be a bit biased here; I actually own a copy of this book.</p>
<p>It won’t teach you anything about building games, but it has a great level of detail and examples that I haven’t seen in other books.  I used this book as my transition from AS 2.0 to AS 3.0.  It has a brief programming ramp up listing the core elements of ActionScript 3.0, but I didn’t need to learn how to program, I needed to learn AS 3.0.  </p>
<p>Despite the fact that this book was released in the days of CS3, it is still one of the few books that covers regular expressions, all of you options to make Flash communicate with a server (URL Loader, XML socket, JavaScript) or store information client side (Cookies, Shared Objects), Flash remoting, the low level data structures like the byte array, networking between Flash applications, and making Flash pass data to a printer.  </p>
<p>There really is no ultimate book out there that covers everything, and they completely run the engagement gamut from ‘how to reference manuals’ to learning by doing with examples.  I wouldn’t regard any of them as perfect or complete.  If you were completely new to programming I think I would have to recommend ‘Essential ActionScript 3.0’.  However, I feel the need to reiterate that a couple of pages on data structures or object oriented programming or algorithm design is no comparison to going to school and spending an entire semester devoted to those topics – it would be so easy to overlook some huge concepts.  None of these books would prepare you for designing large data flows or constructing big object oriented project. Programming is something that just has to be learned from experience and examples.  Despite its flaws, if you have some programming knowledge I would have to recommend ‘ActionScript 3.0 Game Programming University 2nd Edition’ if you want to start dabbling in games.  Each of these books have some valuable tidbits of knowledge unique to them, and I still trust book code more than random code posted on the internet.  I have yet to see any text in book form out there at the really elite levels of programming and game development specific to Flash.  You might be better off mastering a more traditional language, or looking at high quality open source projects out there in other languages, and transitioning that knowledge to Flash.  </p>
<p>Thanks for reading, and remember, we are all in this together.</p>
<table cellspacing="15">
<tr>
<td>
<a class="DiggThisButton DiggMedium"></a>
</td>
<td>
<a href="http://reddit.com/submit" onclick="window.location = 'http://reddit.com/submit?url=' + encodeURIComponent(window.location); return false"> <img src="http://reddit.com/static/spreddit7.gif" alt="submit to reddit" border="0" /> </a>
</td>
<td>
<table>
<tr>
<td>
<img src="http://static.delicious.com/img/delicious.small.gif" height="10" width="10" alt="Delicious" />
</td>
<td>
<a href="http://delicious.com/save" onclick="window.open('http://delicious.com/save?v=5&#038;noui&#038;jump=close&#038;url='+encodeURIComponent(location.href)+'&#038;title='+encodeURIComponent(document.title), 'delicious','toolbar=no,width=550,height=550'); return false;"> Bookmark this on Delicious</a><br />
</tr>
</table>
</td>
<td>
<script src="http://www.stumbleupon.com/hostedbadge.php?s=2"></script><br />
</tr>
</table>
<img src="http://feeds.feedburner.com/~r/StephenCalenderProgrammingBlog/~4/ETB14X9Hg6U" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.stephencalenderblog.com/?feed=rss2&amp;p=353</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.stephencalenderblog.com/?p=353&amp;utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=365-worth-of-actionscript-30-books</feedburner:origLink></item>
		<item>
		<title>MMOFallout Interview</title>
		<link>http://feedproxy.google.com/~r/StephenCalenderProgrammingBlog/~3/u4tOdJg1LCo/</link>
		<comments>http://www.stephencalenderblog.com/?p=342#comments</comments>
		<pubDate>Sun, 14 Aug 2011 07:26:44 +0000</pubDate>
		<dc:creator>Stephen Calender</dc:creator>
				<category><![CDATA[Opinion]]></category>

		<guid isPermaLink="false">http://www.stephencalenderblog.com/?p=342</guid>
		<description><![CDATA[I am still not sure if I am worthy of being interviewed, sure I am in the games industry but I haven’t exactly been a part of anything wildly successful yet (not that I haven’t been trying). However, I got to talking with the author of MMOFallout after he picked up my post about the [...]]]></description>
				<content:encoded><![CDATA[<p>I am still not sure if I am worthy of being interviewed, sure I am in the games industry but I haven’t exactly been a part of anything wildly successful yet (not that I haven’t been trying).  However, I got to talking with the author of MMOFallout after <a href="http://mmofallout.com/2011/07/11/week-in-review-lets-talk-disappointment-edition/">he picked up my post</a> about the <a href="http://www.stephencalenderblog.com/?p=306">calamitous end of the Net Devil Studio</a>.  Here is a link to <a href="http://mmofallout.com/2011/07/24/stephen-calender-talks/ ">the published interview</a>.<br />
<span id="more-342"></span><br />
We initially got talking because I felt there was a misunderstanding about my feelings surronding the media frenzy ensuing after the layoffs (MMOFallout also reported on it).  I do find it unfortunate that there is such sensationalism and twisting of statements performed to grab people’s attention.  It is so easy for someone to morph a statement taken out of context.</p>
<p>Take someone like massively, they <a href="http://massively.joystiq.com/2011/07/25/ex-netdevil-programmer-talks-lego-universe-and-getting-an-indust/">posted a link to the interview with an honest blurb about its contents</a>.  It also looks like it got <a href="http://www.brickuniverse.net/site/forums/lego-universe/dev-tracker/link-interview-former-lu-ui-coder-stephen-calender">a mention on the LEGO fan community boards</a> where they seem more than eager for any inside knowledge about LEGO Universe.</p>
<p>Then contrast those with <a href="http://blogs.westword.com/latestword/2011/07/lego_universe_want_work_for_th.php">The Westword’s (a Denver Newspaper) online article</a>. First, they didn’t even get my name right.  Second they juxtaposed the past and present snippets of the original interview to reflect negatively on the current conditions of the LEGO Universe project.  There is no mention of the project switching companies.  You miss out on the information that most of the strife was caused by handling of the studio and team by Gazillion, not the current owners of the project.  LEGO is an awesome company and a fantastic employer. They treated us very well in my tenure, and I hear nothing but good things about them from my friends still working on the project.  Another website Videogamer.com extracted every negative statement that they could <a href="http://www.videogamer.com/pc/lego_universe/news/gazillion_were_hands_off_to_a_fault_says_lego_dev.html">in their post about the interview</a> (and also misspelled my name).</p>
<p>When I originally talked to <a href="http://mmofallout.com/">MMOfallout</a> I shared that my issue with media is this particularly affinity to take the most negative viewpoint they can.  When the news originally landed about the layoffs there was no post like &#8220;Future Development of LEGO Universe comes with a price: LEGO acquisition of the project met with layoffs&#8221;.   While many of us were negatively affected by that event, it was also the moment when you knew LEGO Universe was going to have a solid future and continued support. It is a win any time that a project survives cancellation and passionate people endure to create more of what our fans desire.</p>
<p>I was really happy with the conversation and interview, there was a clear and respected understanding that I cannot just share everything and some secrets have to be maintained. Our entire dialogue was posted word for word, a paradigm of journalistic integrity.  Admittedly, I felt a bit dumb when I actually had no idea about some of Gazillion’s other projects and studios.  For example, I have no knowledge about the Slipgate Studio and the status of John Romero’s MMO project, all I could do was point to the <a href="http://news.bigdownload.com/2011/01/22/john-romero-departs-slipgate-ironworks-for-social-networking-gam/">article already published about Romero leaving</a>.  Similarly, the state of Jumpgate Evolution is a sensitive topic; all I can do is direct you to the last <a href="http://www.gamasutra.com/view/news/34513/Interview_Gazillions_David_Brevik_On_Changing_The_Ways_MMOs_Are_Viewed_.php">interview with David Brevik</a>.</p>
<p>LEGO Universe has just <a href="http://universe.lego.com/en-us/freetoplay/freetoplay.aspx">released part of the game as free to play</a>.  If you haven’t played it yet, or maybe been thinking about returning, I hope you check it out and enjoy the world we created.  Free to play support was one of the last things I remember working on, also check out the new trailer:  </p>
<p><iframe width="480" height="295" src="http://www.youtube.com/embed/fHSLhj5xBJQ" frameborder="0" allowfullscreen></iframe></p>
<table cellspacing="15">
<tr>
<td>
<a class="DiggThisButton DiggMedium"></a>
</td>
<td>
<a href="http://reddit.com/submit" onclick="window.location = 'http://reddit.com/submit?url=' + encodeURIComponent(window.location); return false"> <img src="http://reddit.com/static/spreddit7.gif" alt="submit to reddit" border="0" /> </a>
</td>
<td>
<table>
<tr>
<td>
<img src="http://static.delicious.com/img/delicious.small.gif" height="10" width="10" alt="Delicious" />
</td>
<td>
<a href="http://delicious.com/save" onclick="window.open('http://delicious.com/save?v=5&#038;noui&#038;jump=close&#038;url='+encodeURIComponent(location.href)+'&#038;title='+encodeURIComponent(document.title), 'delicious','toolbar=no,width=550,height=550'); return false;"> Bookmark this on Delicious</a><br />
</tr>
</table>
</td>
<td>
<script src="http://www.stumbleupon.com/hostedbadge.php?s=2"></script><br />
</tr>
</table>
<img src="http://feeds.feedburner.com/~r/StephenCalenderProgrammingBlog/~4/u4tOdJg1LCo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.stephencalenderblog.com/?feed=rss2&amp;p=342</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.stephencalenderblog.com/?p=342&amp;utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=mmofallout-interview</feedburner:origLink></item>
		<item>
		<title>A Glimpse Inside Adobe</title>
		<link>http://feedproxy.google.com/~r/StephenCalenderProgrammingBlog/~3/D9FWk0DaIcE/</link>
		<comments>http://www.stephencalenderblog.com/?p=329#comments</comments>
		<pubDate>Mon, 01 Aug 2011 05:35:49 +0000</pubDate>
		<dc:creator>Stephen Calender</dc:creator>
				<category><![CDATA[ActionScript 3.0]]></category>
		<category><![CDATA[Opinion]]></category>

		<guid isPermaLink="false">http://www.stephencalenderblog.com/?p=329</guid>
		<description><![CDATA[One of my big goals when looking for a new job was to seek out someone that knew more about Flash than I did. In my interviews I encountered many bright and knowledgeable individuals; however, I believe I struck gold at Game Show Network’s Facebook development team. I am working side by side with a [...]]]></description>
				<content:encoded><![CDATA[<p>One of my big goals when looking for a new job was to seek out someone that knew more about Flash than I did.  In my interviews I encountered many bright and knowledgeable individuals; however, I believe I struck gold at Game Show Network’s Facebook development team.  I am working side by side with a fellow named <a href="http://www.linkedin.com/in/robertdixon">Rob Dixon</a>, Rob was on the Adobe Flash team from 2003 – 2010 and additionally co-wrote several manuals and language references on Flash and ActionScript 3.0.<span id="more-329"></span></p>
<p>I have actually had to restrain myself from bombarding him with questions.  I try to filter to the big picture questions that I could not easily test or benchmark.  He claims that Adobe operates pretty much how you would think a big company with a cash cow would.  A lot of corporate bureaucracy slowing down the works, having to have a series of meetings about any <a href="http://en.wikipedia.org/wiki/Application_programming_interface">API</a> changes, I could see how working at that pace could become tiring.  I am sure that Adobe does try to continually improve its product, with things like Unity3D and HTML5 entering the space they need to keep up.  The bigger they get and the wider they span their reach, as well as continuing to support reverse compatibility in the player, they are slowed by requirements and prerequisites to provide new features to developers.  Another obvious question that I had was what was coming in CS5.5, what is going on with a ‘half’ release?  It turns out Apple’s new <a href="http://en.wikipedia.org/wiki/Operating_system">OS</a> <a href="http://www.apple.com/macosx/">‘lion’</a> had changes that would break the functionality of CS5 necessitating the new Adobe version (As big as Adobe is they can still find themselves at the mercy of other companies, and don’t necessarily increment versions just because they are greedy).</p>
<p>Another series of questions I had concerned how the applications contained in creative suite work together.  For example, what was the purpose behind creating the Fireworks program?  Adobe already has Photoshop and Illustrator, why would we need yet another graphics program?  I jokingly suggested that it was easier to make a new application instead of dealing with all of the red tape associated with editing the existing programs.  As it turns out Fireworks has a particular utility for compressing images, even more effective than Photoshop’s save for web and devices.</p>
<p>The next big questions I have tried to squeeze out of him were release schedules.  I only received the standard smile that says ‘I can’t discuss that’.  When are we going to see CS6?  Based on <a href="http://en.wikipedia.org/wiki/Adobe_Creative_Suite">release history</a> I am guessing March or September of next year. I also asked about stuff going on at <a href="http://labs.adobe.com/">Adobe Labs</a>, seeing <a href="http://labs.adobe.com/technologies/alchemy/">Flash support C/C++</a> would be a total game changer, an epic leap forward for the platform.  I am sure that I am not the only one curious about the <a href="http://labs.adobe.com/technologies/flashplatformruntimes/features/stage3d.html">‘molehill’ project</a> status which was supposed to go into Beta the first half of this year (and is now officially late).  All I could get is that it isn’t cancelled and we will be seeing it sometime.</p>
<p>The last bunch of questions I had concerned some of Flash’s newer features, since I had been working with <a href="http://www.scaleform.com/">Scaleform</a> professionally for the past 2 years, I felt a little behind in the web development world. Questions like, why can’t Adobe decide on a consistent way to organize there reference material?  We went from help documentation contained in Flash professional with CS3, to exclusively <a href="http://help.adobe.com/en_US/Flash/10.0_UsingFlash/index.html?promoid=ISMSG">adobe livedocs</a> during the age of CS4, and now this new custom reader thing for CS5.  It sounded like they used the organization hierarchy to make documentation decisions instead of listening to the community or thinking about what would be convenient.  I was curious about the new TLF textfields, are any more optimized or easier to work with, it sounds like they were implemented in a way to almost circumvent the flash player – so far we have avoided using them.  We have also talked about how the flash player compresses art.  I always suspected that setting the render option “allow smoothing” had some cost associated with it, if there is Rob suggests that it is very minimal.</p>
<p>I would like to add that Rob has a <a href="http://rantworld.blogs.com/flashlit/">blog</a> too, although it looks like his kid and baby on the way has nuked his free time.  I would particularly like to call out his link about <a href="http://opensource.adobe.com/wiki/display/flexsdk/Coding+Conventions">coding standards</a>.  In my new job I have reviewed and bug fixed a ton of contractor submitted code.  Maintaining some basic code rules and consistency goes a long way to make your code more readable and look more professional.  Coding standards are also horribly boring to write if you are in a lead or senior role, perhaps you can use the open source standards as a starting point.  I can’t say that I agree with all of them, I actually like emulating as much of <a href="http://en.wikipedia.org/wiki/Scott_Meyers">Scott Meyers’ Effective C++</a> rules as possible for general code practices.</p>
<p>If you or anyone you know has some good Flash questions I will make sure to forward them along and get us all some more answers.</p>
<p>Thanks for reading, and remember, we are all in this together.</p>
<table cellspacing="15">
<tr>
<td>
<a class="DiggThisButton DiggMedium"></a>
</td>
<td>
<a href="http://reddit.com/submit" onclick="window.location = 'http://reddit.com/submit?url=' + encodeURIComponent(window.location); return false"> <img src="http://reddit.com/static/spreddit7.gif" alt="submit to reddit" border="0" /> </a>
</td>
<td>
<table>
<tr>
<td>
<img src="http://static.delicious.com/img/delicious.small.gif" height="10" width="10" alt="Delicious" />
</td>
<td>
<a href="http://delicious.com/save" onclick="window.open('http://delicious.com/save?v=5&#038;noui&#038;jump=close&#038;url='+encodeURIComponent(location.href)+'&#038;title='+encodeURIComponent(document.title), 'delicious','toolbar=no,width=550,height=550'); return false;"> Bookmark this on Delicious</a><br />
</tr>
</table>
</td>
<td>
<script src="http://www.stumbleupon.com/hostedbadge.php?s=2"></script><br />
</tr>
</table>
<img src="http://feeds.feedburner.com/~r/StephenCalenderProgrammingBlog/~4/D9FWk0DaIcE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.stephencalenderblog.com/?feed=rss2&amp;p=329</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.stephencalenderblog.com/?p=329&amp;utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=a-glimpse-inside-adobe</feedburner:origLink></item>
	</channel>
</rss>
