<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>JADBOX: Musings of Jonathan A Dunlap</title>
	<atom:link href="http://www.jadbox.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jadbox.com</link>
	<description>Programming, Flash and Game Development Theory</description>
	<lastBuildDate>Tue, 15 Jan 2013 00:34:38 +0000</lastBuildDate>
	<language>en-US</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.8</generator>
	<item>
		<title>Battlestar Galactica Online</title>
		<link>http://www.jadbox.com/2012/08/battlestar-galactica-online/</link>
		<comments>http://www.jadbox.com/2012/08/battlestar-galactica-online/#comments</comments>
		<pubDate>Thu, 16 Aug 2012 21:28:17 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[Showcase]]></category>

		<guid isPermaLink="false">http://www.jadbox.com/?p=1605</guid>
		<description><![CDATA[I haven&#8217;t posted anything new for awhile, and decided to write something quick about what I&#8217;ve been up to in hopes of getting back into semi-regular blogging. A few months ago at Bigpoint, I&#8217;ve moved unto a new game team from the project Uridium Wars Online which was a Facebook 2D real-time multiplayer space action/adventure game. (see screenshot [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-1607" title="Battlestar-Galactica-screen-insert-02" src="http://www.jadbox.com/wp-content/uploads/Battlestar-Galactica-screen-insert-02.jpg" alt="" width="525" height="277" /></p>
<p style="text-align: left;">I haven&#8217;t posted anything new for awhile, and decided to write something quick about what I&#8217;ve been up to in hopes of getting back into semi-regular blogging. A few months ago at <a title="Bigpoint" href="http://bigpoint.net/" target="_blank">Bigpoint</a>, I&#8217;ve moved unto a new game team from the project Uridium Wars Online which was a Facebook 2D real-time multiplayer space action/adventure game. (see screenshot below of Uridium Wars)  <img class="aligncenter size-full wp-image-1618" title="Uridium Wars" src="http://www.jadbox.com/wp-content/uploads/Dark_Orbit.jpg" alt="" width="480" height="265" />I&#8217;ve now been working on the massive online game <a title="Battlestar Galactica" href="http://us.battlestar-galactica.bigpoint.com/" target="_blank">Battlestar Galactica</a>. The client is written in Unity using mostly C# while the server development is pure Erlang. For those astute readers of my blog, It&#8217;s true&#8230; I&#8217;m now getting paid to program in a functional language full-time! Luckily my interest in functional programming over the years has aided picking up the Erlang code base and running with it. In the near future, I&#8217;ll write another article about my thoughts on working with this language and compare it with other similar functional ones (i.e. Clojure, Scala, Haskell, etc). Initially, my first reactions to Erlang has been positive although I do have some concerns in some areas like debugging. In the meantime, thank you for checking out my blog and also for taking the time to read this particular article that really has no direct meaningful value. I promise to start posting more informative material here soon. <img src="http://www.jadbox.com/wp-includes/images/smilies/icon_wink.gif" alt=";)" class="wp-smiley" /> </p>
<p><strong>More in-game screenshots:</strong> <img class="aligncenter size-full wp-image-1608" title="bsg-online" src="http://www.jadbox.com/wp-content/uploads/bsg-online.jpg" alt="" width="525" height="245" /> <img class="aligncenter size-full wp-image-1606" title="screenshot-2" src="http://www.jadbox.com/wp-content/uploads/screenshot-2.jpg" alt="" width="525" height="219" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jadbox.com/2012/08/battlestar-galactica-online/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Malware attack</title>
		<link>http://www.jadbox.com/2012/06/malware-attack/</link>
		<comments>http://www.jadbox.com/2012/06/malware-attack/#comments</comments>
		<pubDate>Sun, 10 Jun 2012 17:46:39 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.jadbox.com/?p=1598</guid>
		<description><![CDATA[A quick update: It looks like someone rooted into both my servers (this and isohill), and planted evals in every server script. I&#8217;ve now patched up everything and placed better security on the domains. Hopefully this fixes the security holes for now. Chrome will complain about malware on the site for a few days until [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>A quick update:</p>
<p>It looks like someone rooted into both my servers (this and isohill), and planted evals in every server script. I&#8217;ve now patched up everything and placed better security on the domains. Hopefully this fixes the security holes for now. Chrome will complain about malware on the site for a few days until they review the domain again.</p>
<p>Thanks for visiting!<br />
-Jonathan</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jadbox.com/2012/06/malware-attack/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AS3 Functional Programming Library</title>
		<link>http://www.jadbox.com/2012/02/announcing-as3fp/</link>
		<comments>http://www.jadbox.com/2012/02/announcing-as3fp/#comments</comments>
		<pubDate>Wed, 29 Feb 2012 20:05:07 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[Flash/Flex/AIR]]></category>
		<category><![CDATA[General Programming]]></category>

		<guid isPermaLink="false">http://www.jadbox.com/?p=1540</guid>
		<description><![CDATA[This month I&#8217;ve decided to open-source a new collection of ActionScript 3 utilities that I&#8217;ve piecing together over the past couple weeks. These utilities are all aimed at using higher-order functions in order to improve AS3 code semantics and condense expressions. Of course, many of these utilities are inspired from other functional languages like Haskell, Scala, [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>This month I&#8217;ve decided to open-source a new collection of ActionScript 3 utilities that I&#8217;ve piecing together over the past couple weeks. These utilities are all aimed at using higher-order functions in order to improve AS3 code semantics and condense expressions. Of course, many of these utilities are inspired from other functional languages like <a href="http://www.haskell.org/haskellwiki/Haskell">Haskell</a>, <a href="http://www.scala-lang.org/">Scala</a>, and some parts of <a href="http://coffeescript.org/">CoffeeScript</a>. If you&#8217;re wondering, why do we need functional style utilities at all?</p>
<h4>Why use FP in Flash [or any imperative language]</h4>
<p>These two articles will help cover the basics: <a href="http://weblog.raganwald.com/2007/03/why-why-functional-programming-matters.html">Why Functional Programming Matters Matters</a> and <a href="http://notes-on-haskell.blogspot.com/2007/02/whats-wrong-with-for-loop.html">What&#8217;s wrong with the for loop?</a> The gist, in terms of list comprehensions, is that for loops are a major headache with imperative languages as they muddle the concerns of what you are doing with a list of data. In computer science, almost all concerns with collections boils down to three notions: <strong>filtering, reduction and transformation</strong>. Filtering is making an array of just the elements that you want to isolate. Reduction is looking over every element and deriving an accumulated value over it- for example, taking the sum of every number in a list to be used as a final result. Transformation, also called mapping, converts or manipulates the data in a certain [ideally, deterministic] way. By strictly isolating these concerns, your code becomes much more readable and flexible.</p>
<h4>String Lambdas</h4>
<p>This feature is composed of two global methods lambdaMap and lambdaFilter. This is implemented as a first step towards creating an AS3 version of the fantastic <a href="https://github.com/raganwald/Katy">Katy library</a> for CoffeeScript. There is an initial implementation of combinators in the library, but it needs some polish before I show examples. The basic idea of string lambdas is to get around the fact that AS3 does not have a compressed form of lambdas. For example, in some FP languages, you can quickly write</p>
<div class="codecolorer-container actionscript3 twitlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="actionscript3 codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">x<span style="color: #000066; font-weight: bold;">-&gt;</span><span style="color: #004993;">x</span> <span style="color: #000066; font-weight: bold;">%</span> <span style="color: #000000; font-weight:bold;">2</span>==<span style="color: #000000; font-weight:bold;">0</span></div></div>
<p>to make a function that takes in a value and returns a Boolean if it can be divisible by 2. However, in AS3, you would have to write this lengthy monster:</p>
<div class="codecolorer-container actionscript3 twitlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="actionscript3 codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339966; font-weight: bold;">function</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">x</span><span style="color: #000066; font-weight: bold;">:</span><a href="http://www.google.com/search?q=int%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:int.html"><span style="color: #004993;">int</span></a><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><a href="http://www.google.com/search?q=boolean%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:boolean.html"><span style="color: #004993;">Boolean</span></a> <span style="color: #000000;">&#123;</span> <span style="color: #0033ff; font-weight: bold;">return</span> <span style="color: #004993;">x</span> <span style="color: #000066; font-weight: bold;">%</span> <span style="color: #000000; font-weight:bold;">2</span>==<span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #000000;">&#125;</span></div></div>
<p>String lambdas are neat time savers as they use symbolic Strings to create these commonly needed functions for you.</p>
<div class="codecolorer-container actionscript3 twitlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="actionscript3 codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> lambdaTest<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span><br />
<span style="color: #6699cc; font-weight: bold;">var</span> <span style="color: #004993;">data</span><span style="color: #000066; font-weight: bold;">:</span><a href="http://www.google.com/search?q=array%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:array.html"><span style="color: #004993;">Array</span></a> = <span style="color: #000000;">&#91;</span><span style="color: #000000; font-weight:bold;">1</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">3</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">4</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">5</span><span style="color: #000000;">&#93;</span><span style="color: #000066; font-weight: bold;">;</span><br />
<span style="color: #6699cc; font-weight: bold;">var</span> data1<span style="color: #000066; font-weight: bold;">:</span><a href="http://www.google.com/search?q=array%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:array.html"><span style="color: #004993;">Array</span></a> = lambdaMap<span style="color: #000000;">&#40;</span><span style="color: #004993;">data</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #990000;">&quot;+&quot;</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #000000; font-weight:bold;">3</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
<span style="color: #009900; font-style: italic;">// The result is: 4,5,6,7,8</span><br />
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span>data1<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span></div></div>
<div class="codecolorer-container actionscript3 twitlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="actionscript3 codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">data1 = lambdaMap<span style="color: #000000;">&#40;</span><span style="color: #004993;">data</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #990000;">&quot;*&quot;</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #000000; font-weight:bold;">3</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
<span style="color: #009900; font-style: italic;">//lambdaMap *3: 3,6,9,12,15</span><br />
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;lambdaMap *3:&quot;</span><span style="color: #000066; font-weight: bold;">,</span> data1<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
<br />
data1 = lambdaMap<span style="color: #000000;">&#40;</span><span style="color: #004993;">data</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #990000;">&quot;==&quot;</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #000000; font-weight:bold;">3</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
<span style="color: #009900; font-style: italic;">//lambdaMap ==3: false,false,true,false,false</span><br />
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;lambdaMap ==3:&quot;</span><span style="color: #000066; font-weight: bold;">,</span> data1<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
<br />
data1 = lambdaMap<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#91;</span><span style="color: #000000;">&#91;</span><span style="color: #000000; font-weight:bold;">1</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">3</span><span style="color: #000000;">&#93;</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000;">&#91;</span><span style="color: #000000; font-weight:bold;">1</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000000;">&#93;</span><span style="color: #000000;">&#93;</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #990000;">&quot;+&quot;</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #000000;">&#91;</span><span style="color: #000000; font-weight:bold;">4</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">5</span><span style="color: #000000;">&#93;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
<span style="color: #009900; font-style: italic;">//lambdaMap [[1,2,3],[1,2]] +[4,5]: [[1,2,3,4,5], [1,2,4,5]]</span><br />
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;lambdaMap [[1,2,3],[1,2]] +[4,5]:&quot;</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #990000;">&quot;[[&quot;</span><span style="color: #000066; font-weight: bold;">+</span>data1<span style="color: #000000;">&#91;</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000000;">&#93;</span><span style="color: #000066; font-weight: bold;">+</span><span style="color: #990000;">&quot;], [&quot;</span><span style="color: #000066; font-weight: bold;">+</span> data1<span style="color: #000000;">&#91;</span><span style="color: #000000; font-weight:bold;">1</span><span style="color: #000000;">&#93;</span><span style="color: #000066; font-weight: bold;">+</span><span style="color: #990000;">&quot;]&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
<br />
data1 = lambdaFilter<span style="color: #000000;">&#40;</span><span style="color: #004993;">data</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #990000;">&quot;!=&quot;</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #000000; font-weight:bold;">3</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
<span style="color: #009900; font-style: italic;">//lambdaFilter !=3: 1,2,4,5</span><br />
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;lambdaFilter !=3:&quot;</span><span style="color: #000066; font-weight: bold;">,</span> data1<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
<br />
data1 = lambdaFilter<span style="color: #000000;">&#40;</span><span style="color: #004993;">data</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #990000;">&quot;&amp;gt;&quot;</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #000000; font-weight:bold;">3</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
<span style="color: #009900; font-style: italic;">//lambdaFilter &amp;gt; 3: 4,5</span><br />
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;lambdaFilter &amp;gt; 3:&quot;</span><span style="color: #000066; font-weight: bold;">,</span> data1<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
<br />
data1 = lambdaFilter<span style="color: #000000;">&#40;</span><span style="color: #004993;">data</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #990000;">&quot;&amp;lt;=&quot;</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #000000; font-weight:bold;">3</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
<span style="color: #009900; font-style: italic;">//lambdaFilter &amp;lt;= 3: 1,2,3</span><br />
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;lambdaFilter &amp;lt;= 3:&quot;</span><span style="color: #000066; font-weight: bold;">,</span> data1<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
<span style="color: #000000;">&#125;</span></div></div>
<p>&nbsp;</p>
<h4>XML Comprehensions</h4>
<p>While it&#8217;s fairly simple to iterate over XML lists using FOR EACH, I wanted to design something that directly expressed the transformation of the list into another data type. Since XMLList is not polymorphic with Arrays, I&#8217;ve created xmlMap utility to loop over each element of a child XML node, give that XML chunk to a functional object that returns some value, and builds an array of that returned value.</p>
<div class="codecolorer-container actionscript3 twitlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="actionscript3 codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> xmlParsing<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span><br />
<span style="color: #6699cc; font-weight: bold;">var</span> raw<span style="color: #000066; font-weight: bold;">:</span><a href="http://www.google.com/search?q=string%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:string.html"><span style="color: #004993;">String</span></a> = <span style="color: #990000;">&quot;StarcraftDiabloWarcraft&quot;</span><span style="color: #000066; font-weight: bold;">;</span><br />
<span style="color: #6699cc; font-weight: bold;">var</span> <span style="color: #004993;">data</span><span style="color: #000066; font-weight: bold;">:</span><a href="http://www.google.com/search?q=xml%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:xml.html"><span style="color: #004993;">XML</span></a> = <span style="color: #0033ff; font-weight: bold;">new</span> <a href="http://www.google.com/search?q=xml%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:xml.html"><span style="color: #004993;">XML</span></a><span style="color: #000000;">&#40;</span>raw<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span></div></div>
<div class="codecolorer-container actionscript3 twitlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="actionscript3 codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #6699cc; font-weight: bold;">var</span> result<span style="color: #000066; font-weight: bold;">:</span><a href="http://www.google.com/search?q=array%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:array.html"><span style="color: #004993;">Array</span></a> = xmlMap<span style="color: #000000;">&#40;</span><span style="color: #004993;">data</span><span style="color: #000066; font-weight: bold;">.</span>game<span style="color: #000066; font-weight: bold;">,</span> mapXMLData<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
<span style="color: #009900; font-style: italic;">//xmlMap: Game:Starcraft, Game:Diablo, Game:Warcraft</span><br />
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;xmlMap:&quot;</span><span style="color: #000066; font-weight: bold;">,</span> result<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
<br />
<span style="color: #009900; font-style: italic;">// create a TextField for each node and add them to the display</span><br />
xmlMap<span style="color: #000000;">&#40;</span><span style="color: #004993;">data</span><span style="color: #000066; font-weight: bold;">.</span>game<span style="color: #000066; font-weight: bold;">,</span> mapXMLSprites<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">forEach</span><span style="color: #000000;">&#40;</span>listCall<span style="color: #000000;">&#40;</span><span style="color: #004993;">addChild</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
<span style="color: #000000;">&#125;</span><br />
<br />
<span style="color: #009900; font-style: italic;">// Used to transform an XML element into a constructed String with a prefix</span><br />
<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> mapXMLData<span style="color: #000000;">&#40;</span>node<span style="color: #000066; font-weight: bold;">:</span><a href="http://www.google.com/search?q=xml%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:xml.html"><span style="color: #004993;">XML</span></a><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #004993;">index</span><span style="color: #000066; font-weight: bold;">:</span><a href="http://www.google.com/search?q=int%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:int.html"><span style="color: #004993;">int</span></a><span style="color: #000066; font-weight: bold;">,</span> xml<span style="color: #000066; font-weight: bold;">:</span><a href="http://www.google.com/search?q=xmllist%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:xmllist.html"><span style="color: #004993;">XMLList</span></a><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><a href="http://www.google.com/search?q=string%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:string.html"><span style="color: #004993;">String</span></a> <span style="color: #000000;">&#123;</span><br />
<span style="color: #0033ff; font-weight: bold;">return</span> <span style="color: #990000;">&quot; Game:&quot;</span> <span style="color: #000066; font-weight: bold;">+</span> node<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">toString</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
<span style="color: #000000;">&#125;</span><br />
<br />
<span style="color: #009900; font-style: italic;">// Used to transform an XML element into a TextField</span><br />
<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> mapXMLSprites<span style="color: #000000;">&#40;</span>node<span style="color: #000066; font-weight: bold;">:</span><a href="http://www.google.com/search?q=xml%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:xml.html"><span style="color: #004993;">XML</span></a><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #004993;">index</span><span style="color: #000066; font-weight: bold;">:</span><a href="http://www.google.com/search?q=int%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:int.html"><span style="color: #004993;">int</span></a><span style="color: #000066; font-weight: bold;">,</span> xml<span style="color: #000066; font-weight: bold;">:</span><a href="http://www.google.com/search?q=xmllist%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:xmllist.html"><span style="color: #004993;">XMLList</span></a><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><a href="http://www.google.com/search?q=textfield%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:textfield.html"><span style="color: #004993;">TextField</span></a> <span style="color: #000000;">&#123;</span><br />
<span style="color: #6699cc; font-weight: bold;">var</span> field<span style="color: #000066; font-weight: bold;">:</span><a href="http://www.google.com/search?q=textfield%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:textfield.html"><span style="color: #004993;">TextField</span></a> = <span style="color: #0033ff; font-weight: bold;">new</span> <a href="http://www.google.com/search?q=textfield%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:textfield.html"><span style="color: #004993;">TextField</span></a><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
field<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">text</span> = <span style="color: #990000;">&quot; Game:&quot;</span> <span style="color: #000066; font-weight: bold;">+</span> node<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">toString</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
field<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">y</span> <span style="color: #000066; font-weight: bold;">+</span>= <span style="color: #004993;">index</span> <span style="color: #000066; font-weight: bold;">*</span> field<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">textHeight</span><span style="color: #000066; font-weight: bold;">;</span><br />
<span style="color: #0033ff; font-weight: bold;">return</span> field<span style="color: #000066; font-weight: bold;">;</span><br />
<span style="color: #000000;">&#125;</span></div></div>
<p>The first example above transforms an XMLList into a Array of Strings. Admittedly, while this isn&#8217;t very practical, the second example shows the practical use case.</p>
<div class="codecolorer-container actionscript3 twitlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="actionscript3 codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">xmlMap<span style="color: #000000;">&#40;</span><span style="color: #004993;">data</span><span style="color: #000066; font-weight: bold;">.</span>game<span style="color: #000066; font-weight: bold;">,</span> mapXMLSprites<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">forEach</span><span style="color: #000000;">&#40;</span>listCall<span style="color: #000000;">&#40;</span><span style="color: #004993;">addChild</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span></div></div>
<p>The above line takes the XMLList from data.game and calls mapXMLSprites for each child XML element. The function mapXMLSprites then creates a TextField for that element and returns it. The utility then adds that return value to an Array. Once this is all done, the expression &#8220;forEach(listCall(addChild))&#8221; maps over the returned Array from the utility (forEach is an existing method on Array) to call addChild. Notice we make use of another utility &#8220;listCall&#8221; which removes part of the function object required definition. Without listCall, you would have the write the code as below:</p>
<div class="codecolorer-container actionscript3 twitlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="actionscript3 codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339966; font-weight: bold;">function</span> addChildByList<span style="color: #000000;">&#40;</span>view<span style="color: #000066; font-weight: bold;">:</span><a href="http://www.google.com/search?q=textfield%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:textfield.html"><span style="color: #004993;">TextField</span></a><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #004993;">index</span><span style="color: #000066; font-weight: bold;">:</span><a href="http://www.google.com/search?q=int%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:int.html"><span style="color: #004993;">int</span></a><span style="color: #000066; font-weight: bold;">,</span> list<span style="color: #000066; font-weight: bold;">:</span><a href="http://www.google.com/search?q=array%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:array.html"><span style="color: #004993;">Array</span></a><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span><br />
<span style="color: #004993;">addChild</span><span style="color: #000000;">&#40;</span>view<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
<span style="color: #000000;">&#125;</span><br />
xmlMap<span style="color: #000000;">&#40;</span><span style="color: #004993;">data</span><span style="color: #000066; font-weight: bold;">.</span>game<span style="color: #000066; font-weight: bold;">,</span> mapXMLSprites<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">forEach</span><span style="color: #000000;">&#40;</span>addChildByList<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span></div></div>
<p>The ActionScript Array methods map and forEach require the functional object signature of (element:ArrayItemType, index:int, list:Array). The utility listCall transforms this requirement to just (element:ArrayItemType). This bridges the functional interface to call simple value methods like addChild without having to manually create a function wrapper around it. Behind the scenes, listCall is creating the proper function definition for forEach and then calling your provided method with just the list element as a parameter.</p>
<h4>More Updates Coming</h4>
<p>There are several additional utilities in the repository [function guards, combinators, cons, zipl, zipr], but most of the others require more love before I&#8217;m willing to blog about their implementation.</p>
<p>This library is very much a work in progress as I experiment with how to write more powerful expressions in AS3. Eventually, I&#8217;ll begin to port some of these utilities over to haXe where I can make use of inlining and meta scripting to improve performance and syntax. The one caveat with these functional utilities is that they do perform poorly and take a small amount of additional memory, but this is mostly due to the limitations of the language and run-time. However, this shouldn&#8217;t be a concern if you&#8217;re simply using them when constructing stuff versus using them on a frame by frame basis.</p>
<p>AS3FP @ GITHUB: <a title="AS3FP" href="https://github.com/jadbox/AS3FP">https://github.com/jadbox/AS3FP</a><br />
Other news: <a title="isohill" href="http://www.isohill.com/">IsoHill</a> has been updated to work with Starling 1.0 release.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jadbox.com/2012/02/announcing-as3fp/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Functional Dreamers</title>
		<link>http://www.jadbox.com/2012/01/functional-dreamers/</link>
		<comments>http://www.jadbox.com/2012/01/functional-dreamers/#comments</comments>
		<pubDate>Thu, 12 Jan 2012 21:17:05 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[Game Development]]></category>
		<category><![CDATA[General Programming]]></category>
		<category><![CDATA[Lifestyle]]></category>

		<guid isPermaLink="false">http://www.jadbox.com/?p=1485</guid>
		<description><![CDATA[In the Mayan calendar, 2012 is suppose to be a year of deep cleansing and rebirth for the world. In this spirit, I&#8217;ve been branching out into new fields and broadening my conceptual view of software development. The more I learn about programming fundamentals, the closer I get to a notion of which is considered [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><img class="wp-image-1486 alignright" title="mayancalander_t268" src="http://www.jadbox.com/wp-content/uploads/mayancalander_t268.jpg" alt="" width="160" height="160" />In the Mayan calendar, 2012 is suppose to be a year of deep cleansing and rebirth for the world. In this spirit, I&#8217;ve been branching out into new fields and broadening my conceptual view of software development. The more I learn about programming fundamentals, the closer I get to a notion of which is considered &#8220;programming nirvana&#8221;. When I first started listening to people about this concept, I was very skeptical. All I was hearing was &#8220;blah blah no-variables blah higher-order-functions blah&#8221;. Like any programmer, my brain starts crashing as soon as I hear the statement that a language can be productive without variables. How is it possible to make anything meaningful without some internal state within methods and classes? Well, the answer to this is rather complex and outside the scope of this posting. The vehicle driving these concepts is called functional programming (FP), and it&#8217;s intrinsic highly abstract nature is usually very difficult for programmers to swallow. Going into the future though, I hope to post more about functional programming here. However, the real purpose of this article is to acknowledge some of the most astoundingly brilliant scientific minds that are changing my industry. I tip my hat to these gentlemen and scholars:</p>
<h3>Haskell</h3>
<table>
<tbody>
<tr>
<td align="center"><img class="wp-image-1488 aligncenter" title="HaskellBCurry" src="http://www.jadbox.com/wp-content/uploads/HaskellBCurry--150x150.jpg" alt="" width="150" height="150" /></td>
<td align="center"><img class="size-thumbnail wp-image-1489 aligncenter" title="Simon Peyton-Jones" src="http://www.jadbox.com/wp-content/uploads/Simon-Peyton-Jones-150x150.jpg" alt="" width="150" height="150" /></td>
<td align="center"><img class="size-thumbnail wp-image-1490 aligncenter" title="ErikMeijer" src="http://www.jadbox.com/wp-content/uploads/ErikMeijer-150x150.jpg" alt="" width="150" height="150" /></td>
</tr>
<tr>
<td style="text-align: center;"><a title="Haskell Brooks Curry" href="http://www.haskell.org/haskellwiki/Haskell_Brooks_Curry">Haskell B. Curry</a><br />
Father of Haskell foundations</td>
<td style="text-align: center;"><a title="Simon Jones" href="http://research.microsoft.com/en-us/people/simonpj/">Simon Peyton-Jones</a><br />
Implemented Haskell GHC compiler</td>
<td style="text-align: center;"><a title="Erik Meijer" href="http://channel9.msdn.com/Tags/erik+meijer?sort=rating">Erik Meijer</a><br />
Major Supporter and an amazing teacher</td>
</tr>
</tbody>
</table>
<h3>FP Geniuses</h3>
<table>
<tbody>
<tr>
<td align="center"><img class="size-thumbnail wp-image-1493 aligncenter" title="Rich_Hickey" src="http://www.jadbox.com/wp-content/uploads/Rich_Hickey-150x150.jpg" alt="" width="150" height="150" /></td>
<td align="center"><img class="alignleft size-thumbnail wp-image-1494" title="Joe Armstrong" src="http://www.jadbox.com/wp-content/uploads/Joe-Armstrong-150x150.jpg" alt="" width="150" height="150" /></td>
<td align="center"><img class="alignleft size-thumbnail wp-image-1495" title="Martin Odersky" src="http://www.jadbox.com/wp-content/uploads/Martin-Odersky-150x150.jpg" alt="" width="150" height="150" /></td>
</tr>
<tr>
<td style="text-align: center;"><a title="Rich Hickey" href="http://www.computerworld.com.au/article/313989/-z_programming_languages_clojure">Rich Hickey</a><br />
Creator of Clojure and FP pioneer</td>
<td style="text-align: center;"><a title="Joe Armstrong" href="http://www.computerworld.com.au/article/307418/a-z_programming_languages_erlang/">Joe Armstrong</a><br />
Erlang founder</td>
<td style="text-align: center;"><a title="Martin" href="http://www.computerworld.com.au/article/315254/-z_programming_languages_scala">Martin Odersky</a><br />
The brain behind Scala</td>
</tr>
</tbody>
</table>
<table>
<tbody>
<tr>
<td align="center"><img class="alignleft size-thumbnail wp-image-1516" title="C9LecturesDonSymeFSharpP1_512_ch9" src="http://www.jadbox.com/wp-content/uploads/C9LecturesDonSymeFSharpP1_512_ch9-150x150.png" alt="" width="150" height="150" /></td>
<td align="center"><img class="alignleft size-thumbnail wp-image-1520" title="jmcbw" src="http://www.jadbox.com/wp-content/uploads/jmcbw-150x150.jpg" alt="" width="150" height="150" /></td>
<td align="center"><img class="size-thumbnail wp-image-1522 aligncenter" title="ConalElliott" src="http://www.jadbox.com/wp-content/uploads/ConalElliott-150x150.jpg" alt="" width="150" height="150" /></td>
</tr>
<tr>
<td style="text-align: center;"><a title="Don Syme" href="http://en.wikipedia.org/wiki/Don_Syme">Don Syme</a><br />
Inventor of F#</td>
<td style="text-align: center;"><a title="John McCarthy" href="http://en.wikipedia.org/wiki/John_McCarthy_(computer_scientist)">John McCarthy</a><br />
Lisp and FP pioneer</td>
<td style="text-align: center;"><a title="Conal Elliott" href="http://conal.net/">Conal Elliott</a><br />
Conceptualized Functional Reactive Programming</td>
</tr>
</tbody>
</table>
<p>Honestly, I cannot state my respect for the above individuals enough! They have invested an enormous amount of personal time into an ideal that they are crazily passionate about. Each one of them want to make software development better from both the coder&#8217;s standpoint and platform perspective. As a teaser to these principles, below is a video of Simon Peyton-Jones and Erik Meijer talking about their view of <strong>coding nirvana</strong>: <iframe width="320" height="240" style="height: 288px; width: 512px;" src="http://channel9.msdn.com/Blogs/Charles/Simon-Peyton-Jones-Towards-a-Programming-Language-Nirvana/player?w=512&amp;h=288" frameborder="0" scrolling="no"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jadbox.com/2012/01/functional-dreamers/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>IsoHill &#8211; The Flash 11 isometric engine</title>
		<link>http://www.jadbox.com/2011/11/isohill-the-flash-11-isometric-engine/</link>
		<comments>http://www.jadbox.com/2011/11/isohill-the-flash-11-isometric-engine/#comments</comments>
		<pubDate>Thu, 03 Nov 2011 17:40:06 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.jadbox.com/?p=1459</guid>
		<description><![CDATA[I&#8217;m happy to release the first public version IsoHill, a Starling Flash 11 isometric engine. It&#8217;s still in heavy development, but it is more than functional at this point. I created this project as I was tired of the performance limitations of as3isolib. With that library, you could render maybe 300 sprites on an average [&#8230;]]]></description>
				<content:encoded><![CDATA[<p style="text-align: left;"><a href="http://www.isohill.com"><img class="aligncenter" title="IsoHill Beta" src="http://www.isohill.com/wp-content/uploads/2011/11/isohill_slug.png" alt="" width="450" height="350" /></a>I&#8217;m happy to release the first public version IsoHill, a Starling Flash 11 isometric engine. It&#8217;s still in heavy development, but it is more than functional at this point. I created this project as I was tired of the performance limitations of as3isolib. With that library, you could render maybe 300 sprites on an average machine. In this engine, you should be able to render over a thousand as well as anti-aliasing each element. Check out the link below for more information and download the source library. Please let me know your thoughts and how you would like to use the engine!</p>
<p style="text-align: left;"><strong><a href="http://www.isohill.com"><img class="alignnone" title="IsoHill Logo" src="http://www.isohill.com/wp-content/uploads/2011/11/IsoHill_logo74_pxiso2.png" alt="" /></a><br />
Get it at: <a title="IsoHill" href="http://IsoHill.com">IsoHill.com</a></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jadbox.com/2011/11/isohill-the-flash-11-isometric-engine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flash 11 &#8211; UDK and Unity arrive</title>
		<link>http://www.jadbox.com/2011/10/flash-11-udk-and-unity-arrive/</link>
		<comments>http://www.jadbox.com/2011/10/flash-11-udk-and-unity-arrive/#comments</comments>
		<pubDate>Sun, 23 Oct 2011 23:53:23 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[Flash/Flex/AIR]]></category>
		<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.jadbox.com/?p=1445</guid>
		<description><![CDATA[With the advent of HTML5/WEBGL gaining popularity, Adobe knew it had to move fast. Within a matter of two years, they designed and implemented one of the largest platform updates I&#8217;ve seen in the industry- Flash Player 11. It sports direct GPU integration allowing for console quality games to be possible through the browser. If [&#8230;]]]></description>
				<content:encoded><![CDATA[<p style="text-align: center;"><img class="aligncenter size-full wp-image-1447" title="flash-11" src="http://www.jadbox.com/wp-content/uploads/flash-1.jpg" alt="" width="512" height="222" /></p>
<p>With the advent of HTML5/WEBGL gaining popularity, Adobe knew it had to move fast. Within a matter of two years, they designed and implemented one of the largest platform updates I&#8217;ve seen in the industry- Flash Player 11. It sports direct GPU integration allowing for console quality games to be possible through the browser. If this wasn&#8217;t big enough news, they have been working with Unity and UDK to enable an export format from those [now] game tooling platforms. Below is a video of the Unreal Engine 3 running within the browser:</p>
<p><iframe width="560" height="315" src="http://www.youtube.com/embed/UQiUP2Hd60Y" frameborder="0" allowfullscreen="">Loading video&#8230;</iframe></p>
<p>I&#8217;ll be spending the next couple weeks writing my own engine for Flash 11 and will update here when I have something working. The new API is not as easy compared to the standard display list or even Papervision for that matter, however it allows you almost total control over the GPU shader pipeline. While ActionScript 3 (AS3) can get the job done, I wonder how long before the haXe community starts implementing the new version. I&#8217;m super excited to experience such a radical new set of tools for game development!</p>
<p><strong>Related external articles: </strong><br />
<a href="http://www.epicgames.com/news/unreal-engine-3-supports-adobe-flash/">http://www.epicgames.com/news/unreal-engine-3-supports-adobe-flash/<br />
</a><a href="http://blogs.unity3d.com/2011/02/27/unity-flash-3d-on-the-web/">http://blogs.unity3d.com/2011/02/27/unity-flash-3d-on-the-web/</a><a href="http://www.epicgames.com/news/unreal-engine-3-supports-adobe-flash/"> </a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jadbox.com/2011/10/flash-11-udk-and-unity-arrive/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>In Review: SWF Protector 3</title>
		<link>http://www.jadbox.com/2011/06/in-review-swf-protector-3/</link>
		<comments>http://www.jadbox.com/2011/06/in-review-swf-protector-3/#comments</comments>
		<pubDate>Tue, 21 Jun 2011 04:56:52 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.jadbox.com/?p=1434</guid>
		<description><![CDATA[In this day and age, the importance of securing SWF executables seems to have become a prominent topic. The reason for this boils down to malicious hackers trying to develop sophisticated memory hacks to manipulate the Flash application or game at runtime. The only software package currently available to really mitigate such attacks comes from the company [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>In this day and age, the importance of securing SWF executables seems to have become a prominent topic. The reason for this boils down to malicious hackers trying to develop sophisticated memory hacks to manipulate the Flash application or game at runtime. The only software package currently available to really mitigate such attacks comes from the company DCOMSOFT. I had some time over the weekend to play around with DCOMSOFT&#8217;s SWF Protector 3 which was released around two years ago.</p>
<p>The interface I found really intuitive, and it has a good set of configuration options to boot. In the latest release, it finally supports Flash Player 10 exported SWFs which is what I mostly deal with these days. After converting a handful of SWFs into the protected format, I ran a few benchmarks and found no problems with how the obfuscation and protection methods hinder the final exported AVM bytecode.</p>
<p>The icing on the cake for me was the ability to use the command line to run the application. Without this feature, I would not be able to integrate the application into the automated build scripts we use with ANT. The below instructions was from the help file and shows just how simple it was to implement:</p>
<blockquote><p>You can use <strong>command line</strong> to avoid customizing settings manually. The following syntaxes present the meaning of each command:<br />
<strong>Syntax:</strong></p>
<table cellspacing="0" cellpadding="0" width="30%" bgcolor="#cccccc">
<colgroup>
<col width="256*"></col>
</colgroup>
<tbody>
<tr>
<td width="100%" height="50">swf_protector.exe file1 file2 &#8230; fileN</td>
</tr>
</tbody>
</table>
<p><strong>Description<br />
</strong>This command specifies the list of SWF files for protection in Simple mode with default settings.</p></blockquote>
<p>Overall, I&#8217;m impressed the quality of the product and just how simple it is to use. However, I do not like the notion of encrypting and obfuscation code for just the sole purpose of hiding implementation. This aside, SWF Protector will help keep hackers from finding easy wins in memory loopups and critical points of integration with other SWFs or backend calls.</p>
<p><a href="http://www.dcomsoft.com/" target="_blank">http://www.dcomsoft.com</a></p>
<p><img class="alignleft size-full wp-image-1435" title="swfprotector" src="http://www.jadbox.com/wp-content/uploads/swfprotector.jpg" alt="" width="557" height="486" /></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jadbox.com/2011/06/in-review-swf-protector-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JAD Update: Social Games</title>
		<link>http://www.jadbox.com/2011/04/jad-update-social-games/</link>
		<comments>http://www.jadbox.com/2011/04/jad-update-social-games/#comments</comments>
		<pubDate>Wed, 06 Apr 2011 19:22:20 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[Flash/Flex/AIR]]></category>
		<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Lifestyle]]></category>
		<category><![CDATA[Showcase]]></category>

		<guid isPermaLink="false">http://www.jadbox.com/?p=1411</guid>
		<description><![CDATA[I&#8217;ve decided that I&#8217;ve neglected my blog long enough and decided it was time for an update. Here we go *long breath*&#8230;. Within just the past couple years, I&#8217;ve moved from Michigan to San Francisco and have been working primary in building mobile and Facebook social games that have given rise in the gaming industry. I did [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-1417" title="jad" src="http://www.jadbox.com/wp-content/uploads/jad.jpg" alt="" width="288" height="384" />I&#8217;ve decided that I&#8217;ve neglected my blog long enough and decided it was time for an update. Here we go *long breath*&#8230;. Within just the past couple years, I&#8217;ve moved from Michigan to San Francisco and have been working primary in building mobile and Facebook social games that have given rise in the gaming industry. I did a number of projects at <a href="http://www.crowdstar.com/">Crowdstar</a> including Hello City and Mighty Pirates, and now I&#8217;m working on the largest project yet in my career at a newer startup called <a href="http://metamoki.com/">Metamoki</a> (created by <a href="http://metamoki.com/about/">Dave Maestri</a>, founder of <a href="http://apps.facebook.com/mobwars/?mw_ref=website">Mafia Wars</a>). The game development industry in Silicon Valley is rather interesting on a couple of facets. In some ways, it&#8217;s repeating the game design that originated back in the DOS and Commodore days. On the other hand, there are mechanics that are new and &#8216;alien&#8217; in nature. Of course I am referring to the &#8220;social&#8221; aspect of Facebook games. In some FB games, the meaning of social is almost laughable as it doesn&#8217;t really exist. Even the best games in the industry still do not compare to the social aspect of co-op gaming that is rather prevent now in modern commercial games. Recently, big names in the traditional gaming industry are starting their own studios in hopes of breaking into the market. It will be very interesting to see what happens within the next two years.</p>
<p>Aside from the industry as a whole, I&#8217;ve been busy writing my own isometric engine, data structures, tooling, and learning other languages to support my day-to-day work. As soon as I think I&#8217;ve built the fastest possible system, I always find one more way to make the performance that much faster. I&#8217;ve also come to understand computer science more on a fundamental level beyond languages. It really helps to know what is happening behind the scenes when using language core libraries&#8230; just because a language provides a core function doesn&#8217;t mean you should use it! I have written a great deal of code that basically does what Flash already provides, but the level of performance can reach an average of 2-10x improvement (which helps significantly). I&#8217;ve also been following the methodologies of SOLID &lt;<a href="http://en.wikipedia.org/wiki/Solid_(object-oriented_design)">http://en.wikipedia.org/wiki/Solid_(object-oriented_design)</a>&gt; and being mindful of these principles really improves the rate in which I can iterate game concepts and cuts down time to complete maintenance tasks.</p>
<p>I&#8217;ll finally wrap-up and show off the last two games I&#8217;ve developed at my previous work with <a href="http://www.crowdstar.com/">Crowdstar</a>:</p>
<p><img class="alignnone size-full wp-image-1414" title="hellocity_sh" src="http://www.jadbox.com/wp-content/uploads/hellocity_sh.jpg" alt="" width="648" height="345" /></p>
<p>&nbsp;</p>
<p><img class="alignnone size-full wp-image-1413" title="pirates_scr" src="http://www.jadbox.com/wp-content/uploads/pirates_scr.png" alt="" width="606" height="510" /></p>
<p><strong>Visit the games below:</strong></p>
<div class="alignleft"><a href="http://apps.facebook.com/hello-city"><img title="hellocity" src="http://www.jadbox.com/wp-content/uploads/hellocity-251x300.png" alt="" width="251" height="300" /></a><br />
<a href="http://apps.facebook.com/hello-city">http://</a><a href="http://apps.facebook.com/hello-city">apps.facebook.com/hello-city</a></div>
<div class="alignleft">&#8230;</div>
<div class="alignleft"><a href="http://apps.facebook.com/mighty-pirates"><img class="alignnone size-medium wp-image-1416" title="pirates" src="http://www.jadbox.com/wp-content/uploads/pirates-251x300.png" alt="" width="251" height="300" /></a><br />
<a href="http://apps.facebook.com/mighty-pirates">http://apps.facebook.com/mighty-pirates</a></div>
<div id="_mcePaste" class="mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"><span style="font-family: Arial, sans-serif; font-size: 12px; line-height: 18px;"><strong style="outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; padding: 0px; margin: 0px; border: 0px initial initial;">Maestri</strong></span></div>
]]></content:encoded>
			<wfw:commentRss>http://www.jadbox.com/2011/04/jad-update-social-games/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flash component oriented programming</title>
		<link>http://www.jadbox.com/2010/11/flash-component-oriented-programming/</link>
		<comments>http://www.jadbox.com/2010/11/flash-component-oriented-programming/#comments</comments>
		<pubDate>Thu, 11 Nov 2010 02:47:35 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[Flash/Flex/AIR]]></category>
		<category><![CDATA[Game Development]]></category>

		<guid isPermaLink="false">http://www.jadbox.com/?p=1399</guid>
		<description><![CDATA[In this article, the author is a bit half-crazed&#8230; bantering that OOP is dead in light of entity/component systems. However, if you can get past that, it&#8217;s a good read on the benefits of composing game objects using only composition (instead of complex inheritance): http://t-machine.org/index.php/2007/09/03/entity-systems-are-the-future-of-mmog-development-part-1/ An example approach to implement an entity system might be [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><img class="alignright" title="AS3 components" src="http://t3.gstatic.com/images?q=tbn:ANd9GcQIpynKrGWGtyyZtOKPmoYY4n4tbhQcTvotOL-Bu-nxh6cdR_k&amp;t=1&amp;h=167&amp;w=223&amp;usg=__B1uAtYhi1zZp85K_KW_Lp3aONfs=" alt="" width="223" height="167" />In this article, the author is a bit half-crazed&#8230; bantering that OOP is dead in light of entity/component systems. However, if you can get past that, it&#8217;s a good read on the benefits of composing game objects using only composition (instead of complex inheritance):<br />
<a href="http://t-machine.org/index.php/2007/09/03/entity-systems-are-the-future-of-mmog-development-part-1/">http://t-machine.org/index.php/2007/09/03/entity-systems-are-the-future-of-mmog-development-part-1/</a></p>
<p><strong>An example approach to implement an entity system might be as follows:</strong></p>
<div class="codecolorer-container actionscript3 twitlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="actionscript3 codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339966; font-weight: bold;">function</span> example<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span><br />
<span style="color: #009900; font-style: italic;">// find game entities by tags or what components it has.</span><br />
<span style="color: #6699cc; font-weight: bold;">var</span> entity<span style="color: #000066; font-weight: bold;">:</span>Entity = Entity<span style="color: #000066; font-weight: bold;">.</span>getEntity<span style="color: #000000;">&#40;</span>Tags<span style="color: #000066; font-weight: bold;">.</span>SPACE_SHIP<span style="color: #000066; font-weight: bold;">,</span> Tags<span style="color: #000066; font-weight: bold;">.</span>USER_OWNED<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
entity<span style="color: #000066; font-weight: bold;">.</span>health<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">.</span>current<span style="color: #000066; font-weight: bold;">--;</span><br />
entity<span style="color: #000066; font-weight: bold;">.</span>health<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">reset</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">//or entity.health().saveToServer();</span><br />
entity<span style="color: #000066; font-weight: bold;">.</span>mc<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">x</span> = <span style="color: #000000; font-weight:bold;">10</span><span style="color: #000066; font-weight: bold;">;</span><br />
entity<span style="color: #000066; font-weight: bold;">.</span>tooltip<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">// setup a tooltip on this entity.</span><br />
<span style="color: #000000;">&#125;</span></div></div>
<div class="codecolorer-container actionscript3 twitlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="actionscript3 codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #9900cc; font-weight: bold;">class</span> Entity <span style="color: #000000;">&#123;</span> <span style="color: #009900; font-style: italic;">//Contains getters to all game components (this class could be subclassed)</span><br />
<span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #339966; font-weight: bold;">function</span> has<span style="color: #000000;">&#40;</span><span style="color: #000066; font-weight: bold;">...</span>args<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><a href="http://www.google.com/search?q=boolean%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:boolean.html"><span style="color: #004993;">Boolean</span></a> <span style="color: #000000;">&#123;</span> <span style="color: #000066; font-weight: bold;">...</span> <span style="color: #000000;">&#125;</span> <span style="color: #009900; font-style: italic;">//args are either Tags or component class references</span><br />
<span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #339966; font-weight: bold;">function</span> tag<span style="color: #000000;">&#40;</span><span style="color: #004993;">name</span><span style="color: #000066; font-weight: bold;">:</span><a href="http://www.google.com/search?q=string%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:string.html"><span style="color: #004993;">String</span></a><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span> tags<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">push</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">name</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#125;</span><br />
<span style="color: #0033ff; font-weight: bold;">public</span> static <span style="color: #339966; font-weight: bold;">function</span> getEntity<span style="color: #000000;">&#40;</span><span style="color: #000066; font-weight: bold;">...</span>args<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span>Entity <span style="color: #000000;">&#123;</span> <span style="color: #000066; font-weight: bold;">...</span> <span style="color: #000000;">&#125;</span> &nbsp;<span style="color: #009900; font-style: italic;">//args are either Tags or component class references</span><br />
<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> tags<span style="color: #000066; font-weight: bold;">:</span><a href="http://www.google.com/search?q=array%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:array.html"><span style="color: #004993;">Array</span></a>=<span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span><span style="color: #000066; font-weight: bold;">;</span><br />
<br />
&nbsp;<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> _tooltip<span style="color: #000066; font-weight: bold;">:</span>Tooltip<span style="color: #000066; font-weight: bold;">;</span><br />
<span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #339966; font-weight: bold;">function</span> tooltip<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span>Tooltip <span style="color: #000000;">&#123;</span> <span style="color: #0033ff; font-weight: bold;">if</span><span style="color: #000000;">&#40;</span>_tooltip<span style="color: #000000;">&#41;</span> <span style="color: #0033ff; font-weight: bold;">return</span> _tooltip<span style="color: #000066; font-weight: bold;">;</span> <span style="color: #0033ff; font-weight: bold;">else</span> <span style="color: #0033ff; font-weight: bold;">return</span> _tooltip = <span style="color: #0033ff; font-weight: bold;">new</span> Tooltip<span style="color: #000000;">&#40;</span><span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #000000;">&#125;</span> <span style="color: #009900; font-style: italic;">// could be getters</span><br />
<span style="color: #000066; font-weight: bold;">....</span><br />
<span style="color: #000000;">&#125;</span></div></div>
<div class="codecolorer-container actionscript3 twitlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="actionscript3 codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><a href="http://www.google.com/search?q=class%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:class.html"><span style="color: #004993;">Class</span></a> Tooltip <span style="color: #000000;">&#123;</span> <span style="color: #009900; font-style: italic;">// multi purpose tooltip class</span><br />
<span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #339966; font-weight: bold;">function</span> Tooltip<span style="color: #000000;">&#40;</span>entity<span style="color: #000066; font-weight: bold;">:</span>Entity<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span><br />
<span style="color: #0033ff; font-weight: bold;">if</span><span style="color: #000000;">&#40;</span>entity<span style="color: #000066; font-weight: bold;">.</span>has<span style="color: #000000;">&#40;</span>Tags<span style="color: #000066; font-weight: bold;">.</span>SPACE_SHIP<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span> &nbsp;shipTip<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
<span style="color: #0033ff; font-weight: bold;">if</span><span style="color: #000000;">&#40;</span>entity<span style="color: #000066; font-weight: bold;">.</span>has<span style="color: #000000;">&#40;</span>Tags<span style="color: #000066; font-weight: bold;">.</span>CHARACTER<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span> &nbsp;pirateTip<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
<span style="color: #0033ff; font-weight: bold;">if</span><span style="color: #000000;">&#40;</span>entity<span style="color: #000066; font-weight: bold;">.</span>has<span style="color: #000000;">&#40;</span><a href="http://www.google.com/search?q=movieclip%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:movieclip.html"><span style="color: #004993;">MovieClip</span></a><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span> entity<span style="color: #000066; font-weight: bold;">.</span>mc<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">addChild</span><span style="color: #000000;">&#40;</span> tooltip_mc <span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
<br />
<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> shipTip<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span> <span style="color: #000066; font-weight: bold;">...</span> <span style="color: #000000;">&#125;</span> <span style="color: #009900; font-style: italic;">// position and setup gfx</span><br />
<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> pirateTip<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span> <span style="color: #000066; font-weight: bold;">...</span> <span style="color: #000000;">&#125;</span> <span style="color: #009900; font-style: italic;">// position and setup gfx</span><br />
<span style="color: #000000;">&#125;</span></div></div>
<div class="codecolorer-container actionscript3 twitlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="actionscript3 codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #9900cc; font-weight: bold;">class</span> Tags <span style="color: #000000;">&#123;</span><br />
<span style="color: #0033ff; font-weight: bold;">public</span> static const SPACE_SHIP<span style="color: #000066; font-weight: bold;">:</span><a href="http://www.google.com/search?q=string%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:string.html"><span style="color: #004993;">String</span></a>=<span style="color: #990000;">&quot;ship&quot;</span><span style="color: #000066; font-weight: bold;">;</span><br />
<span style="color: #0033ff; font-weight: bold;">public</span> static const USER_OWNED<span style="color: #000066; font-weight: bold;">:</span><a href="http://www.google.com/search?q=string%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:string.html"><span style="color: #004993;">String</span></a> = <span style="color: #990000;">&quot;userShip&quot;</span><span style="color: #000066; font-weight: bold;">;</span><br />
<span style="color: #0033ff; font-weight: bold;">public</span> static const CHARACTER<span style="color: #000066; font-weight: bold;">:</span><a href="http://www.google.com/search?q=string%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:string.html"><span style="color: #004993;">String</span></a> = <span style="color: #990000;">&quot;character&quot;</span><span style="color: #000066; font-weight: bold;">;</span><br />
<span style="color: #000000;">&#125;</span></div></div>
<p><strong>What are your thoughts? Can a pure entity system be implemented in AS3? Are entity systems worth pursuing in AS3 game development?</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jadbox.com/2010/11/flash-component-oriented-programming/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Unity3D 3.0 released</title>
		<link>http://www.jadbox.com/2010/09/unity3d-3-0-released/</link>
		<comments>http://www.jadbox.com/2010/09/unity3d-3-0-released/#comments</comments>
		<pubDate>Mon, 27 Sep 2010 21:46:39 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[Game Development]]></category>
		<category><![CDATA[unity3d]]></category>

		<guid isPermaLink="false">http://www.jadbox.com/?p=1390</guid>
		<description><![CDATA[Unity3D 3.0 release information and download location.]]></description>
				<content:encoded><![CDATA[<p>Grab it over at: <a href="http://unity3d.com">http://unity3d.com/<br />
<img class="alignnone" title="Unity3" src="http://download.unity3d.com/unity/whats-new/images/unity-3.0/gallery/1-normal.jpg" alt="" width="514" height="320" /> </a></p>
<p>Changes:</p>
<h3>Android Support:</h3>
<ul>
<li>Support for Android OS is added in this version.</li>
<li>Please note that this an early build and does not represent the final Unity Android quality.</li>
</ul>
<h3>Standard Assets:</h3>
<ul>
<li>Standard packages split into more specialized and smaller packages.</li>
<li><strong>New Image Effects</strong>: Sun Shafts (aka God Rays); Bloom &amp; Lens Flares; Vignetting &amp; Chromatic Aberration; Curve based Color Correction; Depth of Field; Contrast Enhance (aka Unsharp Mask); Geometry Outline; Fisheye; Create Shading.</li>
<li>Improved particle effects.</li>
<li>New Skyboxes with alpha channels to be compatible with Image Effects.</li>
<li>New Editor Scripts for useful shortcuts that are not built-in.</li>
<li>Improved First Person Controller that uses Character Motor script.</li>
<li>New <strong>CharacterMotor</strong> script for use with CharacterControllers.
<ul>
<li>Proper movement on slopes and steps without loosing grounding.</li>
<li>Support for standing on moving platforms with multiple movement transfer modes when jumping off.</li>
<li>Variable height jumping and other jump improvements.</li>
<li>Improved speed and acceleration control.</li>
<li>Customizable sliding and perpendicular jumping can prevent climbing up too steep surfaces.</li>
<li>Detached from input so it can be used for first person, third person, AI, etc.</li>
</ul>
</li>
</ul>
<h3>New Editor Features:</h3>
<ul>
<li><strong>Black is the new 50% gray.</strong> Unity Pro got a new look &#8211; you can toggle it in the preferences.</li>
<li><strong>Procedural Tree Creator</strong>. <a href="http://unity3d.com/support/documentation/Components/class-Tree.html">Documentation</a>.</li>
<li><strong>Integrated Lightmapping</strong> via Illuminate Labs&#8217; Beast. <a href="http://unity3d.com/support/documentation/Manual/Lightmapping.html">Documentation</a>.
<ul>
<li>Automatic generation of lightmap UVs (mesh import setting).</li>
<li>Terrains use the same solution and gain a whole new look when used with skylight.</li>
<li>You no longer use special &#8220;Lightmapped&#8221; shaders; all shaders that interact with lighting can handle lightmaps. Dynamic shadows from characters mix with lightmaps properly.</li>
</ul>
</li>
<li><strong>Object Selector</strong>. We no long show a simple dropdown menu; instead a swanky new window opens up, with previews and everything.</li>
<li><strong>Scene View improvements</strong> (<a href="http://unity3d.com/support/documentation/Manual/Using%20The%20Scene%20View.html">documentation</a>):
<ul>
<li>Search field with interactive highlighting of objects.</li>
<li>Rectangle selection.</li>
<li>Vertex Snapping for precise object placement.</li>
<li>Live previews of material, prefab and texture drags into the scene view.</li>
<li>Improved camera handles, and a camera preview window.</li>
<li>Improved light handles.</li>
<li>More consistent scene navigation controls.</li>
</ul>
</li>
<li><strong>New texture Import Settings dialog</strong> with simpler interface &amp; per-platform import settings.</li>
<li><strong>New Build Settings window</strong> to better support multiple platforms.</li>
<li>New and more organized platform-aware <strong>Player Settings Inspector</strong>.</li>
<li>Curve Popup Window:
<ul>
<li>Any public script variable of type <tt>AnimationCurve</tt> is now exposed in the Inspector as a curve field.</li>
<li>Clicking a curve field opens a popup window with a curve editor, similar to the curve editor in the Animation Window.</li>
<li>Customizable curve fields can also be used in custom editor windows.</li>
</ul>
</li>
<li>Editor checks when new versions are available&lt; and notifies the user.</li>
<li>Texture compression is now multi-threaded for faster texture imports on multi-core computers.</li>
<li>Asset Server Window:
<ul>
<li>History window shows multiline commit descriptions directly in the list instead of tooltips.</li>
<li>Selected history window items are revealed better.</li>
<li>Framing (F key) works for history window file list.</li>
<li>Remember user/password per host name.</li>
<li>Disable merge button in conflict resolution window for non-merge-able items.</li>
</ul>
</li>
<li>Improved error reporting for shaders. Shader Inspector also displays the list of errors &amp; warnings for selected shader.</li>
<li>Implemented snap to grid in Curve Popup Window and Animation View when holding down Control (Command on OS X). Control/Command no longer adds to selection, but Shift can still be used for that.</li>
<li>Editor Console displays total number of errors &amp; warnings in lower right corner.</li>
<li>Improved inspector for movie audio.</li>
<li>Windows: Double-clicking <tt>*.unitypackage</tt> will open and import it.</li>
<li>Editor API has been expanded: <a href="http://unity3d.com/support/documentation/ScriptReference/40_history.html#3.0.0">documentation</a>.</li>
<li>Added option to search for object types instead of names in the project search field.</li>
<li>Can now drag objects onto an array field in the inspector to add them to the array.</li>
<li>Can now drag project folders onto the Project Wizard on Mac OS X to select them.</li>
<li>Nicer display of thumbnails when dragging tabbed editor windows.</li>
<li>Long operations show progress badge on the Unity Dock icon in Mac OS X and on the taskbar button in Windows 7.</li>
<li>Added support for touchpad gestures in OS X editor, for maximizing windows (pinch gesture), and switching camera in scene view (swipe gesture).</li>
<li>Overdraw visualization mode does not do alpha testing now. Alpha tested pixels still cost on the GPU, so better to visualize the real cost.</li>
<li>Animation window can display animation clips from prefab, just click the prefab&#8217;s root game object.</li>
<li>Protect Transform position, rotation, scale against invalid values.</li>
<li>Build Pipeline: Typetrees are removed from serialized files (assets) when possible, this make resource files smaller and loading time faster.</li>
<li>Double-clicking a Game Object in Hierarchy View will frame select it in Scene View.</li>
<li>When going out of Play mode and the Game View is docked together with other tabs, go to last active tab instead of always focusing or creating a Scene View tab.</li>
<li>Now the Hierarchy View has a toolbar too.</li>
<li>API Compatibility setting in player settings lets you choose your mono profile. Use 2.0 if you&#8217;re having trouble with 3rd party assemblies (2.0 not available for web player).</li>
<li>High resolution icon support for players (Windows: 256&#215;256 and 128&#215;128; iOS: 114&#215;114).</li>
<li>Search results in project and scene search are now sorted alphabetically.</li>
<li>Inspector Lock got a real button instead of being hidden in a menu.</li>
<li>Rotate Tool now includes &#8216;Look At Point&#8217; option when Shift + Control/Command keys are held.</li>
<li>Audition audio in SceneView. Scene view search now filters audio sources as well.</li>
<li>Added Web Player build templates.</li>
<li>It is now possible to update Asset Server project to specific revision through command line.</li>
</ul>
<h3>New Graphics Features:</h3>
<ul>
<li><strong>Static Occlusion Culling</strong> using Umbra sPVS.</li>
<li><strong>Geometry Batching</strong>: static and dynamic batching from Unity iPhone 1.7 comes to all platforms.</li>
<li>Rendering paths: <em>(choose in Player Settings or per-Camera; <a href="http://unity3d.com/support/documentation/Manual/RenderingPaths.html">documentation</a>)</em>
<ul>
<li><strong>Deferred Lighting</strong>. A deferred rendering scheme, where realtime lights are not <em>horribly expensive</em> anymore. Lighting cost is only dependent on the number of pixels it touches, so you can have lots of small lights for cheap.</li>
<li><strong>Vertex Lit</strong>. This makes all shaders &amp; lights use fixed function per-vertex lighting. In exchange, this is <em>fast</em>; primarily targeted at mobile platforms and low-end web.</li>
<li><strong>Forward</strong> rendering path had lots of changes compared to Unity 2.x, see <a href="http://unity3d.com/unity/whats-new/unity-3#changes_forward_rendering">below</a>.</li>
</ul>
</li>
<li><strong>Surface Shaders</strong> &#8211; a much easier way to write shaders that interact with lighting. <em>We don&#8217;t have the docs for it yet; you&#8217;ll have to trust us that it&#8217;s awesome!</em></li>
<li><strong>Speed!</strong> We have optimized the rendering code; it&#8217;s often 20-50% faster than 2.6 in the same scene setups.</li>
<li><strong>OpenGL ES 2.0</strong> for iOS and Android. You can use shaders for objects, post-processing effects etc.
<ul>
<li>Regular Cg/HLSL shaders and Unity 3 Surface Shaders will be cross-compiled into GLSL behind the scenes. Resulting GLSL will be optimized as well, because mobile platforms are not very good at optimizing the shaders.</li>
<li>Of course, since mobile platforms are not very powerful, you should use OpenGL ES 1.1 if possible.</li>
</ul>
</li>
<li><strong>Particle Rotation</strong>: <tt>Particle.rotation</tt>, <tt>Particle.angularVelocity</tt> and respective properties in <tt>ParticleEmitter</tt>.</li>
<li><strong>Soft Particles!</strong> When you use Deferred Lighting <em>and</em> have Soft Particles on in Quality Settings, particles will fade out close to intersections with the scene. All built-in Particle shaders (except VertexLit) support this.</li>
<li><strong>Shadowing improvements</strong>: use native shadow maps on Direct3D (faster, less memory, native filtering); much reduced self-shadowing artifacts; Soft shadows support for Point lights; much less &#8220;shadow halos&#8221; around objects for directional light soft shadows; optimized shadows for Forward rendering path (shares depth buffer with main rendering); optimized shaders for directional light shadows.</li>
<li>Terrain: Added slider (under Terrain Settings) to control detail object density.</li>
<li>Vertex shaders for Shader Model 3.0 on Direct3D9 and GLSL on OpenGL can read from textures.</li>
<li>Skybox is rendered after opaque geometry. Improves performance if your application is fillrate bound.</li>
<li>Separate Alpha Blending: use <tt>Blend <em>ColorSrc ColorDest</em>, <em>AlphaSrc AlphaDest</em></tt> in ShaderLab.</li>
<li>In-editor visualization on which objects would use which rendering paths (green/yellow/red for deferred/forward/vertexlit).</li>
<li><tt>#pragma glsl</tt> for compiling Cg/HLSL shaders into GLSL instead of ARB assembly programs on OpenGL.</li>
<li>Compiling shaders to <tt>#pragma target 3.0</tt> allows 512 texture indirections on OpenGL (up from 4).</li>
<li>Development standalone players on Windows have Direct3D PIX events; useful if you use PIX, Intel GPA or other graphics performance tools.</li>
<li>Fog <em>just works</em> on Direct3D with Shader Model 3.0 shaders, on OpenGL with GLSL and on OpenGL ES 2.0. Additionally, there&#8217;s no need to write <tt>#pragma fragmentoption ARB_fog_exp2</tt> in your shaders anymore; just remove that line.</li>
<li><tt>CameraDepthTexture</tt> modes can be combined if you want to get both depth &amp; depth+normals textures.</li>
<li>It is possible to forcibly disable Anisotropic filtering on a texture, even when Quality Settings have anisotropic on all textures. Just set anisotropic slider on the texture to zero.</li>
<li>Uniformly scaled objects will no longer be pre-scaled before rendering &#8211; instead uniform scale is now natively supported by the renderer.</li>
<li>Cg/HLSL <tt>VPOS</tt> (pixel position) pixel shader input semantic is supported now.</li>
<li>Terrain: Expose detail resolution per patch; previously was hardcoded to 8.</li>
<li>Terrain: Improved performance of painting textures &amp; detail objects.</li>
</ul>
<h3>Asset Pipeline Improvements:</h3>
<ul>
<li>Upgraded to FBX SDK 2011.2.</li>
<li>Import support for stepped and linear keys for position curves; improved compression and curve fitting for position curves.</li>
<li>Settings for allowed animation compression error in mesh importer.</li>
<li>Implemented support for importing 1 unit in 3dsmax as 1 unit in Unity (the default is 1 cm in 3dsmax as 1 unit in Unity).</li>
<li>Implemented import of tangent space from FBX, .max, .mb and .ma files.</li>
<li>Switched Cinema4D import process to work in background mode.</li>
<li>Support for Cinema4D R11 on Mac OS X.</li>
<li>Support for FBX2010 format when exporting from Cinema4D.</li>
</ul>
<h3>Audio Improvements:</h3>
<ul>
<li><strong>Filter components</strong>: Reverb, Echo, Distortion, Chorus, High- and Low-pass. Can be applied to each audio source or globally to the listener.</li>
<li><strong>Reverb Zones</strong>: Apply reverb to main audio output, when the listener is within zone(s) defined by a position and min/max radii.</li>
<li><strong>Live output and spectrum data access</strong> from each audio source or globally from the listener.</li>
<li><strong>Tracker/Mod file support</strong>.</li>
<li>Sample-accurate synching. Sources played in the same frame are always started at the exact same point in time. Sources can be delayed and played in the future on an exact sample accurate boundary with <tt>.Play(int64 delay)</tt>.</li>
<li>Surround sound (7.1, 5.1, 4.0, ProLogic DTS) support.</li>
<li>Attenuation curves for volume, spread, panning and lowpass filter factors.</li>
<li>Doppler factor per audio source.</li>
<li>AudioSource prioritization.</li>
<li>iOS latency settings. Choose between Default, Best Performance, Good Latency and Best Latency.</li>
<li>Asset memory is freed after loading audio data.</li>
</ul>
<h3>Physics Improvements:</h3>
<ul>
<li>Upgraded PhysX to 2.8.3.</li>
<li><strong>Cloth and clothing simulation</strong>: use the new <tt>InteractiveCloth</tt>, <tt>SkinnedCloth</tt> and <tt>ClothRenderer</tt> components.</li>
<li><strong>Layer based ignore collisions</strong>: use the Physics inspector or <tt>Physics.IgnoreCollision()</tt>.</li>
<li>Continuous collision detection, to make sure that fast moving colliders will not pass through other colliders. See<tt>Collider.collisionDetectionMode</tt>.</li>
<li>Added <tt>Physics.SphereCast()</tt> and <tt>Physics.CapsuleCast()</tt> to implement volume raycasts.</li>
<li>Added <tt>Rigidbody.SweepTest()</tt> to check if a Rigidbody would collide with anything if moved into a certain direction.</li>
</ul>
<h3>New Scripting Features <a href="http://unity3d.com/support/documentation/Manual/MonoUpgradeDetails.html">(documentation)</a>:</h3>
<ul>
<li><strong>Mono Develop</strong> for script editing and debugging! <a href="http://unity3d.com/support/documentation/Manual/HOWTO-MonoDevelop.html">Documentation</a>.</li>
<li><strong>Upgrade Mono and C# compiler to Mono 2.6.3</strong>. This brings C# 3.5, variable type inference, lambda expressions, LINQ and more.</li>
<li><strong>New UnityScript compiler</strong>: generics, interfaces, structs, type cast operator, anonymous functions/closures, lambda expressions, function types, type inferred array comprehensions and more.</li>
<li>New Boo compiler.</li>
<li>Mono class libraries derived from Silverlight profile for the web player.</li>
<li>Socket security sandbox implementation. Just like Flash (think crossdomain.xml).</li>
<li>WWW class security sandbox implementation. Just like Flash (think crossdomain.xml).</li>
<li>Per-platform script defines. Use UNITY_EDITOR, UNITY_WEBPLAYER, UNITY_IPHONE etc. <a href="http://unity3d.com/support/documentation/Manual/Platform%20Dependent%20Compilation.html">Documentation</a>.</li>
<li>Improved UnityScript compilation speed.</li>
<li>New scripting API functions (<a href="http://unity3d.com/support/documentation/ScriptReference/40_history.html#3.0.0">documentation</a>). Some highlights:
<ul>
<li><tt><a rel="noreferrer">WWW.responseHeaders</a></tt> will contain the response headers received from the HTTP server.</li>
<li><tt>Application.isWebPlayer</tt>.</li>
<li><tt>SystemInfo.graphicsPixelFillrate</tt> to query GPU pixel fillrate. Returns fillrate for about a thousand GPUs out there.</li>
<li><tt>GL.ClearWithSkybox</tt>.</li>
<li>Math functions: <tt>MoveTowards</tt> to <tt>Mathf</tt>, <tt>Vector2</tt>, <tt>Vector3</tt>, and <tt>Vector4</tt>; <tt>Quaternion.RotateTowards</tt>.</li>
</ul>
</li>
<li>Changed <tt>Mathf.Approximately</tt> to not only be useful for comparing very small numbers.</li>
<li>Stacktraces have been prettified, useless information is better stripped from stack traces.</li>
</ul>
<h3>Other Improvements:</h3>
<ul>
<li><strong>Web Player: Java and ClickOnce based installer on Windows</strong> for true one-click installation process.</li>
<li><strong>IME input support</strong> (for languages like Japanese, which require multiple keypresses to enter a character) on Windows, and in the editor and standalone on the Mac.</li>
<li><strong>Support for OS font rendering</strong> (new &#8220;dynamic&#8221; font rendering mode), to save space in distribution and texture sizes. Textures are generated dynamically to contain the characters which are needed.</li>
<li><strong>Documentation</strong>: scripting examples in UnityScript; C# and Boo. Docs for all platforms merged and platform specific parts toggle-able.</li>
<li>Web Player: <tt>UnityObject.js</tt> script makes Web Player embedding easier.</li>
<li>iOS: Added <tt>cpu-waits-gpu</tt> metric in internal profiler; useful for tracking down GPU bound applications.</li>
<li>iOS: Native resolution support for iPhone 4.</li>
<li>iOS: Improved game build sizes.</li>
<li>iOS: Unity Remote 2: It is possible to turn off image syncing between editor and device. Useful for input-critical games.</li>
<li>OS X Web Player: Now supports NPDrawingModelInvalidatingCoreAnimation, as will be required by future versions of Chrome.</li>
<li>Networking: RakNet upgraded to version 3.732</li>
<li>Networking: Connection tester, <tt>Network.TestConnection()</tt>, now reports your NAT implementation type more accurately.</li>
<li>Networking: Exposed <tt>Network.logLevel</tt> so you can change the amount of log output at runtime.</li>
<li>Networking: Added network GUID, used for NAT punchthrough.</li>
<li>Bug Reporter: Supports multiple file attachments; trims attached log files if they are too large.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.jadbox.com/2010/09/unity3d-3-0-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Now=new Year(2010)</title>
		<link>http://www.jadbox.com/2010/01/nownew-year2010/</link>
		<comments>http://www.jadbox.com/2010/01/nownew-year2010/#comments</comments>
		<pubDate>Mon, 04 Jan 2010 16:24:20 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[Flash/Flex/AIR]]></category>
		<category><![CDATA[General Programming]]></category>
		<category><![CDATA[Lifestyle]]></category>

		<guid isPermaLink="false">http://www.jadbox.com/?p=1375</guid>
		<description><![CDATA[As the new decade begins, millions of people reflect on their situation and ponder how to proceed into the future. In many ways, 2009 was a game changer for the multimedia industry. We have seen Unity and the Unreal engine open to their doors to free indie developer licensing. This illustrates that corporations are realizing [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.jadbox.com/wp-content/uploads/2010/01/Happy_2010_by_MattTheSamurai.gif"><img class="alignleft size-full wp-image-1376" title="A new year 2010" src="http://www.jadbox.com/wp-content/uploads/2010/01/Happy_2010_by_MattTheSamurai.gif" alt="" width="150" height="150" /></a>As the new decade begins, millions of people reflect on their situation and ponder how to proceed into the future. In many ways, 2009 was a game changer for the multimedia industry. We have seen Unity and the Unreal engine open to their doors to free indie developer licensing. This illustrates that corporations are realizing that even a great multimedia software infrastructure can be shoved aside for lesser alternatives that however have the strong community around its platform.<br />
We have seen also a greater focus on one language compiling to multiple platforms. Adobe is pushing for Flash to compile natively to the iPhone and pushing the Flash player to all other mobile devices. Unity also aims for compiling to PC, Mac, and iPhone with little changes needed to the source. Microsoft continues to push XNA that has the boon of both PC and XBOX360 support. Of course, haXe continues to gain in popularity as it is a single language that translates into other platforms (Flash,  PHP, Neko, and C++ SDL).</p>
<p>Over at <a href="http://www.as3dp.com/2010/01/02/actionscript-3-0-design-patterns-new-years-resolution/">Bill Sander&#8217;s blog AS3 Design Patterns</a>, he talks about his journey into design patterns and that his New Year resolution is &#8220;Improve nailing down relationships between classes in design patterns.&#8221; This year I have expanded my knowledge of design patterns in areas that I do not normally require in my everyday work, but just learning their existence has given me the enlightenment of not just how the design pattern works but &#8216;why&#8217; it exists and what would happen to a system built without it.</p>
<p>My personal development New Year&#8217;s resolution is: &#8220;Learning to prototype quickly while keeping modular using loose coupling.&#8221; Being able to produce a skeleton of a system quickly helps to a keep the momentum of a project going and to isolate design flaws. However, rapid development can cause a system to be become stagnate and locked into a certain implementation. However, wise programming decisions like using the <a href="http://www.as3dp.com/2008/09/19/no-new-is-good-new-using-inheritance-composition-delegation-and-anything-else-other-than-new-in-actionscript-30-design-patterns/">acquaintance relationship</a> between classes and employing design patterns like <em>strategy</em> or <em>template</em> will make my prototypes open enough to evolve into the final product without infrastructure rewrites.</p>
<p><em>Update: While technically the new decade starts in 2011, I find the debate mute as people will refer to this era as the &#8220;2010&#8242;s</em>&#8220;.</p>
<p><span id="more-1375"></span><span style="color: #808080;"><em>Image (c) to mattthesamurai.deviantart.com</em></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jadbox.com/2010/01/nownew-year2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rise of the languages</title>
		<link>http://www.jadbox.com/2009/11/rise-of-the-languages/</link>
		<comments>http://www.jadbox.com/2009/11/rise-of-the-languages/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 15:48:55 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[Game Development]]></category>
		<category><![CDATA[General Programming]]></category>

		<guid isPermaLink="false">http://www.jadbox.com/?p=1366</guid>
		<description><![CDATA[This month has been a very interesting/exciting for programmers of all backgrounds and may be the cornerstone of an industry wide conceptual change. Unity3D, a primarily web based 3D accelerated language, has announced their &#8220;indie&#8221; version of their engine as a free no-strings-attached package. This was a wise choice for the company as Google&#8217;s free [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>This month has been a very interesting/exciting for programmers of all backgrounds and may be the cornerstone of an industry wide conceptual change.</p>
<p><img class="size-medium wp-image-1065 alignleft" style="clear:left" title="unity3d logo" src="http://www.jadbox.com/wp-content/uploads/2009/04/unity3d-300x119.gif" alt="unity3d logo" width="182" height="75" />Unity3D, a primarily web based 3D accelerated language, has announced their &#8220;indie&#8221; version of their engine as a free no-strings-attached package. This was a wise choice for the company as Google&#8217;s free O3D alternative has been gaining support and Adobe&#8217;s Flash is rumored to get 3D acceleration soon.</p>
<p><img class="alignleft size-full wp-image-1367" title="logo-udk" src="http://www.jadbox.com/wp-content/uploads/2009/11/logo-udk.gif" alt="logo-udk" width="189" height="69" />In just a week later, Epic Games released the Unreal Development Kit (UDK), a desktop commercial gaming engine, free of change for non-profit usage. UDK, however, does not compete with Unity3D. UDK has an incredible desktop graphics engine that Unity3D would not be able to compare to. However, Unity3D can run over the browser, has a super small file size for compiled games, and is much easier to learn than UDK. It is also worth mentioning that Unity3D is not a direct competitor to Flash either as its tools for 2D development are poor at best and Flash is installed on almost 97% of all computers (while Unity3D is around 6% I think). There has been little news on the haXe side of things in the past month which is a little disappointing considering the potential of the language.</p>
<p><img class="size-full wp-image-1368 alignleft" style="clear: left;" title="Google Go" src="http://www.jadbox.com/wp-content/uploads/2009/11/logo-153x55.png" alt="Google Go" width="153" height="55" />Finally, Google unveiled Go programming language which is tailored towards system and server development and takes advantage of concepts like multi-threading and server clustering of tasks. While this is not terribly exciting for some, this language may reduce much of the massive complexity employed for enterprise systems and servers today.</p>
<p>One of the underlying themes we are seeing here today is that the user community around a platform is king. A developed language may be perfect and boast all kinds of features, but without users, it inevitably fails. As a developer, this is a fantastic change in the industry as it means cheaper or free entry into powerful languages and more help and support being offered to the community from the creators.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jadbox.com/2009/11/rise-of-the-languages/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adobe MAX09 Aftermath</title>
		<link>http://www.jadbox.com/2009/10/adobe-max09-aftermath/</link>
		<comments>http://www.jadbox.com/2009/10/adobe-max09-aftermath/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 15:00:11 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[Flash/Flex/AIR]]></category>

		<guid isPermaLink="false">http://www.jadbox.com/?p=1355</guid>
		<description><![CDATA[Overall, what we learned at Adobe Max this year was really nothing different than what we already knew months ago almost. Granted, finding out that Flash CS5 can export iPhone apps (perhaps they bundle the player and the flash file together?) was pretty neat- it was not really unexpected. Every cell phone will be getting [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-1356" title="max09_640x360_vasava" src="http://www.jadbox.com/wp-content/uploads/2009/10/max09_640x360_vasava.jpg" alt="max09_640x360_vasava" width="570" height="320" /></p>
<p>Overall, what we learned at Adobe Max this year was really nothing different than what we already knew months ago almost. Granted, finding out that Flash CS5 can export iPhone apps (perhaps they bundle the player and the flash file together?) was pretty neat- it was not really unexpected. Every cell phone will be getting Flash player soon (including the iPhone with the special export) which will really help increase the hold that Flash Player has on the market. However, there really wasn&#8217;t anything other than this announced that was worth getting excited over in my humble opinion. AIR 2.0 is coming out soon, but it&#8217;s roster of new features is rather lackluster for a new revision number- it should have been a patch number I believe.</p>
<p>On the flip side, the speakers and show setup were truly aweful. Speakers droned on as if they never bothered writing an outline for themselves, and I felt many &#8216;novelties&#8217; of the show were tacky (like the canned video of the iPhone app doing the wheel-of-fortune company picker). Even the jokes the speakers used to lighten the content fell so flat that it was as if they were in lue of another joke. Don&#8217;t get me wrong, I am definately an Adobe fan boy- I just felt that they put almost no effort into their presentation. Anyone else feel the same way?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jadbox.com/2009/10/adobe-max09-aftermath/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 7.627 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2014-01-14 14:33:07 -->
