<?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>Flash / HTML5 / Unity3D Game And App Development With Tutorials</title>
	<atom:link href="http://www.RivelloMultimediaConsulting.com/feed/?doing_wp_cron=1341138495" rel="self" type="application/rss+xml" />
	<link>http://www.RivelloMultimediaConsulting.com</link>
	<description>Software Architecture &#124; Consulting &#124; Development &#124; Training</description>
	<lastBuildDate>Tue, 21 May 2013 04:05:36 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Intro to Loom Game Engine</title>
		<link>http://www.RivelloMultimediaConsulting.com/intro-to-loom-game-engine/</link>
		<comments>http://www.RivelloMultimediaConsulting.com/intro-to-loom-game-engine/#comments</comments>
		<pubDate>Sun, 19 May 2013 06:48:11 +0000</pubDate>
		<dc:creator>srivello</dc:creator>
				<category><![CDATA[Full Tutorials]]></category>
		<category><![CDATA[Loom]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Mobile]]></category>

		<guid isPermaLink="false">http://www.RivelloMultimediaConsulting.com/?p=3788</guid>
		<description><![CDATA[Get started with the Loom Game Engine.]]></description>
				<content:encoded><![CDATA[<p>Seasoned game &amp; game-engine developer <a title="Ben Garney Blog" href="http://blog.bengarney.com/">Ben Garney</a> has a new game development engine called Loom.</p>
<p>Ben demonstrates competency in a long series of projects. He worked on the Torque Game Engine with GarageGames at www.garagegames.com (Site No Longer Live), the PushButton Game Engine for Flash with PushButton Labs at www.pushbuttonlabs.com (Site No Longer Live). Support from PushButton (including its website, updates to its source code and forums) abruptly ended in 2012. PBE&#8217;s spiritual successor launched in 2012 as Smash Game Framework at www.smash.io (Project apparently dead after no updates since more than &#8216;a year ago&#8217;).</p>
<p>Now he and his team have Loom, The Loom Game Engine at www.theengine.co. The word &#8216;loom&#8217; is used for a device used for weaving textile projects and Loom is also a popular 80&#8242;s computer game, both spiritually aligned with game development. However, I wish it had a more unique name to facilitate online searches.</p>
<p><strong>Pros of Loom </strong>(Paraphrased from theengine.co);</p>
<ul>
<li><strong>Pragmatic Development </strong>- Loom features a lean and fast workflow without strict development rules or required frameworks.</li>
<li><strong>Freedom Of Choice </strong>- Access and edit C++ core source code, access and edit LoomScript core source code, or simply add your own custom LoomScript. LoomScript sits atop C++ and can access any C++ library.</li>
<li><strong>LoomScript </strong>- LoomScript is an easy to use, new language modeled after AS3 with features inspired by C#. LoomScript is based on Lua which is concise, robust, proven, and supported by tools, debuggers, and community.</li>
<li><strong>Useful Libraries </strong>- CSS Styling, UI Markup, Tweening, Dependency injection, JSON/XML and more&#8230;</li>
<li><strong>Loom Architecture </strong>- Three parts; Call <span style="text-decoration: underline;">LoomCLI</span> from your command line to create &#8216;new&#8217; projects and &#8216;run&#8217;. The <span style="text-decoration: underline;">LoomSDK</span> is precompiled LoomScript with powerful libraries. The <span style="text-decoration: underline;">NativeSDK</span> is the raw C++.</li>
<li><strong>Built For Teams </strong>- Three tiers; <span style="text-decoration: underline;">Artists</span> can create &amp; integrate assets into the latest build without bothering others. <span style="text-decoration: underline;">Scripters</span> use LoomScript for the bulk of development. Need extra power? Extra features? <span style="text-decoration: underline;">Coders</span> can access the C++ layer.</li>
</ul>
<div><strong>Pros of using one code-base for multiple platforms</strong></div>
<p>When and where it is manageable, I am a huge fan of using  and reusing the same project for multiple platforms. Loom 1.x currently exports to TV (Ouya), Desktop (Mac &amp; Windows), and Mobile (iOS &amp; Android). Future support for other platforms is in discussion on the loom forums.</p>
<div>
<ul>
<li><strong>Save Time</strong> &#8211; Develop, iterate, QA simultaneously cross-platform<strong><br /> </strong></li>
<li><strong>Focus Marketing dollars</strong> &#8211; Instead of marketing the game on two platforms separately, we can do it at the same time</li>
<li><strong>Momentum</strong> &#8211; Word of mouth dictates that downloads on one platform will possibly translate into downloads on the other</li>
<li><strong>Maintenance</strong> - We’d rather be working on the next game, than debugging separate platforms</li>
</ul>
<h1>What is Loom?</h1>
<blockquote><p>With cheap, powerful tools and massive exposure to new game players, there has never been a better time for indie game developers. &#8211; Me</p>
</blockquote>
<p>There are many available tools for indie game development. Loom is a powerful 2D game engine with live reloading of code and assets, a friendly scripting language, and an efficient command-line workflow.</p>
<p>Loom&#8217;s competitors include 2D-capable gpu-accelerated cross-platform mobile game development platforms such as <a href="http://www.rivellomultimediaconsulting.com/cross-platform-mobile-premium-training/">Adobe AIR</a>, <a href="http://unity3d.com/">Corona </a>&amp; <a href="http://unity3d.com/">Unity3D</a> as well as the newcomer <a href="http://www.rivellomultimediaconsulting.com/stencyl-for-game-development/">Stencyl</a>. The approach each platform takes is diverse. Where-as Stencyl is the a complete IDE for project setup, art &amp; development which requires no coding, Loom is a raw platform without even a GUI.</p>
</div>
<p><strong>Checkout the screenshots of Loom&#8217;s Workflow;</strong></p>
<ol>
<li>Create a new project via command line.</li>
<li>Create your raster assets using your favorite creative programs.</li>
<li>Create your LoomScript code using any text editor. While a Loom IDE is a <a href="https://theengine.co/feature_requests/eclipse-loomscript-editor">top feature request</a> which is in active discussion, <a href="https://theengine.co/forums/loom-with-loomscript/topics/setting-up-sublime-text-2-as-an-ide-for-loom?page=2">SublimeText</a> is the current free, recommendation.</li>
<li>Compile (run) the project via command line.</li>
</ol>
<table width="100%">
<tbody>
<tr>
<td><a href="http://www.rivellomultimediaconsulting.com/wp-content/uploads/2013/04/newproject.png" rel="prettyPhoto[g3788]"><img class="aligncenter size-medium wp-image-3601" title="New Project" alt="" src="http://www.rivellomultimediaconsulting.com/wp-content/uploads/2013/04/newproject_thumb.png" width="300" height="210" /></a><center>1. Project</center></td>
<td><a href="http://www.rivellomultimediaconsulting.com/wp-content/uploads/2013/04/assets.png" rel="prettyPhoto[g3788]"><img class="aligncenter size-medium wp-image-3601" title="Assets" alt="" src="http://www.rivellomultimediaconsulting.com/wp-content/uploads/2013/04/assets_thumb.png" width="300" height="210" /></a><center>2. Assets</center></td>
</tr>
<tr>
<td><a href="http://www.rivellomultimediaconsulting.com/wp-content/uploads/2013/04/loomscript.png" rel="prettyPhoto[g3788]"><img class="aligncenter size-medium wp-image-3601" title="LoomScript" alt="" src="http://www.rivellomultimediaconsulting.com/wp-content/uploads/2013/04/loomscript_thumbnail.png" width="300" height="210" /></a><center>3. LoomScript</center></td>
<td><a href="http://www.rivellomultimediaconsulting.com/wp-content/uploads/2013/04/loomscript_run.png" rel="prettyPhoto[g3788]"><img class="aligncenter size-medium wp-image-3601" title="Run" alt="" src="http://www.rivellomultimediaconsulting.com/wp-content/uploads/2013/04/loomscript_run.png" width="300" height="210" /></a><center>4. Compile</center></td>
</tr>
</tbody>
</table>
<h1>Development Philosophy</h1>
<blockquote><p>We believe that fast iteration times across multiple devices simultaneously lead to better, faster, cheaper game development. &#8211; Loom Documentation</p>
</blockquote>
<p><a>Loom</a>&#8216;s design goal is to keep you on the fast development path as much as possible, while still preserving access to slower, more difficult, but still essential development paths. This gives a substantial benefit to development teams without blocking them.</p>
<h1>The Loom GameFramework</h1>
<p>Loom offers a powerful (optional) Loom GameFramework (<strong>LGF</strong>). A game framework is a system to organize your code specific for game projects.</p>
<p>LGF is made of three general types of classes. There may be many of each type in each game project:</p>
<ul>
<li><strong>Manager</strong> &#8211; Managers are the brains of the operation — each one has a unique task; for instance one focuses on the spatial area of the screen and the objects within it and one on graphics rendering of visible objects. Depending on its role in the game, a manager may or may not relate to entities and components directly.</li>
<li><strong>Entity</strong> &#8211; Each visual element in your game is represented by an entity. This could be anything; your player, the enemies, collectible items, etc&#8230;. Entities can be non-visual too.</li>
<li><strong>Component</strong> — Each entity contains components. This is where the bulk of your game code lies. Each components handle a specific responsibility. For instance perhaps one component handles rendering the entity in which it resides.</li>
</ul>
<p>Developers can extend existing managers and create new managers too. LGF ships with managers for our most common needs. Here is a partial list of the managers packaged with the core Loom.GameFramework package:</p>
<ul>
<li><strong>TimeManager</strong> &#8211; Manages all time related functionality in the engine. It provides mechanisms for performing actions every frame, every tick, or at a specific time in the future. A tick happens at a set interval defined by the TICKS_PER_SECOND constant. Using ticks for various tasks that need to happen repeatedly instead of performing those tasks every frame results in much more consistent output. However, for animation related tasks, frame events should be used so the display remains smooth. You can pause/play your game easily here too.</li>
<li><strong>ConsoleCommandManager</strong> &#8211; Process and dispatch commands issued via the asset agent.</li>
<li><strong>PropertyManager</strong> &#8211; Properties are like public variables; set/get manually or bind automatically.</li>
</ul>
<p>Entities are essentially empty shells. As a developer you fill them with the core components &amp;custom components needed. Each component has access to <em>any</em> Loom API desired and responds to custom events as well as the following built-in Loom events:</p>
<ul>
<li><strong>onFrame</strong> &#8211; Best used for graphics rendering-routines; this occurs once per frame-rate (e.g. 60 times per second for 60 FPS). Included for AnimatedComponent</li>
<li><strong>onTick</strong> &#8211; Ticks are guaranteed to happen at a fixed interval. If the frame-rate slows down due to some number-crunching or heavy rendering, Loom will attempt to &#8216;catch up&#8217; by calling more ticks. It balances the run-time experience well. Included for TickedComponent.</li>
<li><strong>onThink</strong> &#8211; Based on an arbitrary, per-use timer. This is ideal for AI code which can be processed slowly (e.g. every 1–5 seconds). Included for QueuedComponent.</li>
</ul>
<h1>Getting Started</h1>
<p>If you have setup a programming environment before (Flash, Java, HTML5), then you should find Loom easy to setup and use.</p>
<p><strong>Here are the links and tips;</strong></p>
<ol>
<li><strong>Download Loom (CLI &amp; SDK Together)</strong> &#8211; Visit the Loom <a href="http://theengine.co/downloads">downloads page</a>.</li>
<li><strong>Download examples </strong>- See the list of <a href="https://theengine.co/examples">examples</a> or download and view the source-code from the Loom <a href="http://theengine.co/downloads">downloads page.</a></li>
<li><strong>Learn to run code</strong> with the examples and create new projects &#8211; Visit Loom <a href="http://theengine.co/get_started">getting started page</a> and the Loom <a href="https://theengine.co/docs">documentation page</a>. Curiously, the class-by-class documentation is not available online, but is indeed downloadable.</li>
</ol>
<h1>Creating My &#8216;FlyerGame&#8217;</h1>
<p>To learn Loom, I followed my own &#8216;Getting Started&#8217; steps above and then created my own complete game. I used assets and game logic from &#8220;FlyerGame&#8221;, a <a title="FlyerGame – One Game, Many Many Frameworks" href="http://www.RivelloMultimediaConsulting.com/flyergame-one-game-many-many-frameworks/" target="_blank">game that I have recoded</a> many, many times using game frameworks. The HD Video Screencast and source assets are available (See &#8216;Member Resources&#8217; below).</p>
<p><a href="http://www.RivelloMultimediaConsulting.com/wp-content/uploads/2012/05/corona_game_v1.png" rel="prettyPhoto[g3788]"><img class="alignnone size-medium wp-image-3581" title="corona_game_v1" alt="" src="http://www.RivelloMultimediaConsulting.com/wp-content/uploads/2012/05/corona_game_v1-300x233.png" width="300" height="233" /></a></p>
<h1>Optimizations</h1>
<p>I have limited experience with Loom, but from reading the Loom forums and reviewing the Loom example code I understand that optimizing a project &#8211; especially rendering with a constant frame-rate on a variety of devices takes time.</p>
<h1>Conclusion</h1>
<p>I like what Loom does well; LoomScript is light and powerful, the workflow is VERY fast. I haven&#8217;t tapped into the full strengths of device-specific CSS (e.g. to size a button uniquely on iPad vs iPhone) yet, but it looks really compelling.</p>
<p><strong>Library of Libraries</strong></p>
<p>Loom is based in great part to <a href="http://www.cocos2d-iphone.org/">Cocos2d</a>, a free community-based library for 2D gaming. Some people love and some people hate Cocos2D. A consciousness I see throughout the Loom forums is for &#8216;Loom&#8217; itself to provide minimal functionality and instead depend on 3rd party libraries to provide developers with needed functionality. Some libraries will be folded into the Loom API and for others developers can mix and match libraries as they like. This &#8216;borrow vs build&#8217; approach is not new. It is what provides huge functionality within the Javascript gaming world too. However, as a developer having a big bag of separate APIs (separate syntax, separate terminology, inconsistent value ranges…0 to 1 vs 0 to 100 vs 0 to 256) is not intuitive and severely hurts the learning curve. Furthermore such separation makes it hard in my opinion for Loom to compete in an all-too-crowded world of cross platform mobile game development tools.</p>
<p><strong>Maturity</strong></p>
<p>The product is both at &#8220;1.0&#8243; and costs money which to me means The Engine Co is positioning it as a finished product. However a look at the <a href="http://theengine.co/feature_requests">feature requests</a> from the community and bug reports/omission from the <a href="http://theengine.co/forums">forums</a>, which include countless bare essentials (e.g. complete code documentation &amp; incomplete method override support) is a sign it is not yet ready to stand against full realized competitive cross-platform mobile engine.</p>
<p>The engine also misses many device-specific features and most every OS-specific integration features (e.g. in-app purchase, social network integration, ad monetizations) which the forum promises <a href="http://theengine.co/forums/feedback/topics/pricing-feels-aggressive">are coming soon</a>.</p>
<p>When the docs &amp; wiki are complete and describe features which are implemented bug free the product can be recommended with more confidence. The team is working fast and communicates so frequently, that we may see that level of completeness very soon. A dedicated IDE (currently the #1 feature request) with auto-complete and more will help seal the deal.</p>
<p><strong>The license <a href="https://theengine.co/change">pricing</a>;</strong></p>
<ul>
<li>1. Starter- Target desktop 0nly &#8211; <strong>Free</strong>!</li>
<li>2. Indie &#8211; Target mobile too</li>
<li>3. Pro &#8211; Includes support</li>
<li>4. Enterprise &#8211; Includes more support</li>
</ul>
<h1>Developer Q&amp;A</h1>
<p><strong><span style="color: #ff0000;">NOTE: Bonus Section!!!</span><br /> </strong></p>
<p>Loom is very new and is changing rapidly. I <a href="https://theengine.co/forums/loom-with-loomscript/topics/loom-game-engine-tutorial-hd-video-blog-article-call-for-opinions">reached out</a> to Loom developers to get a reactions based on Loom CLI v#1.0.506 and Loom SDK v#sprint27.</p>
<p><strong>PROs</strong></p>
<ul>
<li>Live Reloading &#8211; Greatly accelerates development</li>
<li>LoomScript &#8211; Easy to learn (especially from AS3) and powerful</li>
<li>Support &#8211; Loom dev team is open, responsive, and productive</li>
</ul>
<p>I find the component-based architecture suggested in the Loom API to be powerful and a distinguishing feature among competitors.</p>
<p><strong>CONs</strong></p>
<ul>
<li>Young platform &#8211; Has many bugs, missing basic implementations (&#8220;lots of loose ends&#8221;), and lacks must-have features of competitors</li>
<li>Lack of documentation, tutorials, &amp; examples.</li>
<li>Rendering &#8211; The &#8220;CSS layout is pixel [dependent and] has little practical use&#8221;, and overall the &#8220;performance is not amazing&#8221;.</li>
<li>No full-featured IDE &#8211; Although a 3 code editors already provide partial support.</li>
</ul>
<p>The lack of IDE is an obstacle for me. And the creator&#8217;s conscious choice to use existing 3rd party APIs to solve basic implementation needs is wise (provides functionality) but weakens the platform tremendously as it becomes a &#8216;bag of APIs&#8217; which hurts the learning curve.</p>
<p><strong>Gotchas &amp; Advice</strong></p>
<ul>
<li>Read the docs</li>
<li>Download, read, and run the examples</li>
<li>Just &#8220;Dive into it!&#8221; and remake a basic game from scratch</li>
</ul>
<p><strong>&#8220;Is Loom ready for professional development?&#8221;</strong></p>
<ul>
<li>No, It is the &#8220;early days for the platform so there&#8217;s not so much&#8221;.</li>
<li>No, &#8220;standard mobile features like reading/writing to camera roll are not exposed yet (as far as I know)&#8221;.</li>
<li>Yes, I think its ready for professional deployment, If you can get over the bugs and [missing] features&#8221;.</li>
<li>No, we&#8217;d have to &#8220;spend a lot of time working on supplementing the engine, and less on making our games&#8221;.</li>
<li>And as one developer said &#8211; I am &#8220;not sure. I&#8217;d have to make a game with it!&#8221;</li>
</ul>
<p>For me, Loom is absolutely ready for production in a vacuum. However there are many compelling alternatives to use which are more robust.</p>
<h1>Next Steps</h1>
<p>After &#8216;Getting Started&#8217; and following my HD Video Tutorials, here are more resources to fuel your Loom savvy.</p>
<ul>
<li><strong>VIDEO: Welcome To Loom &#8211; </strong>Watch the HD Screencast Video Tutorial*</li>
<li><strong>VIDEO: FlyerGame With Loom &#8211; </strong>Watch the HD Screencast Video Tutorial*<strong> </strong></li>
<li><strong>SOURCE CODE: FlyerGame With Loom &#8211; </strong>Download, view, and run the code.</li>
<li>Find common answers on the Loom <a href="https://theengine.co/forums/">forums page</a></li>
<li>Post your comments on Loom below on this blog page.</li>
</ul>
<p>*See &#8216;Member Resources&#8217; below.</p>
<p><strong><span style="color: #ff0000;">NOTE: Source code is available, but videos are NOT yet available.</span></strong></p>
<h1>Member Resources</h1>
<p><div style="background-color: #EFEFEF; padding: 20px 20px 20px 20px; border-style:dashed; border-width: 1px;  border-color:#000" width="100%" height="100">  <div style="margin: 10px 10px 10px 10px;"> <font size="6px"><B><u>'Free Member'-Only Content</u></B></font> </div> <BR> You must be a 'Free Member' to see this content. With your access you will enjoy members-only content like this, HD video tutorials, and access to complete source code. <BR /> <BR /> <B>Ready To Join?</B><BR> <ul> <li><a href="http://www.RivelloMultimediaConsulting.com/index.php?/register/FreeMember" target="_blank">Sign up</a> for 'Free Member' level now. Its free!</li> <li>Sign up for 'Paid Member' level to enjoy much, much more! (Invite Only)</li> </ul> <B>Already A Free Member?</B><BR> <ul> <li><a href="http://www.RivelloMultimediaConsulting.com/member-login/" target="_blank">Log in</a> and enjoy!</li> </ul> </div></p>
]]></content:encoded>
			<wfw:commentRss>http://www.RivelloMultimediaConsulting.com/intro-to-loom-game-engine/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Cross Platform Mobile: Free Talk</title>
		<link>http://www.RivelloMultimediaConsulting.com/cross-platform-mobile-free-talk/</link>
		<comments>http://www.RivelloMultimediaConsulting.com/cross-platform-mobile-free-talk/#comments</comments>
		<pubDate>Fri, 21 Dec 2012 07:14:02 +0000</pubDate>
		<dc:creator>srivello</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Mobile]]></category>

		<guid isPermaLink="false">http://www.RivelloMultimediaConsulting.com/?p=3751</guid>
		<description><![CDATA[Learn the benefits of Cross Platform Mobile and how to get started today in this free talk.]]></description>
				<content:encoded><![CDATA[<div>RMC is on the road in Southeast Asia and actively looking to offer this great event. Do you have an organization or venue that would be interested for this free event? Or would you like to see this in your city? Please <a href="http://www.rivellomultimediaconsulting.com/contact/">contact us</a> today!</div>
<h1>Free Talk</h1>
<div>
<p><strong>Synopsis |</strong> Rivello Multimedia Consulting will offer a lecture on Cross Platform Mobile development. Use one code-base and deploy rich games and applications for web, desktop, iOS, and Android. Create liquid displays that adapt to the unique features of each device. Participants will gain an appreciation for the benefits of developing cross platform and see proven examples. The full source code of all demos and the complete presentations slides will be available to attendees of the event. <strong>Participants are not required to bring any software/hardware to the event.</strong> Cameras with no flash are welcome.</p>
<p>This event is a complete but concise introduction to the topic. For those who want deeper,  premium training we also offer the<a title="Cross Platform Mobile: Premium Training" href="http://www.RivelloMultimediaConsulting.com/cross-platform-mobile-premium-training/">  Cross Platform Mobile: Premium Training</a> event.</p>
<p><strong>Speaker Bio |</strong>  Samuel Asher Rivello is the principal of Rivello Multimedia Consulting (RMC). RMC’s Flash and Flex services include software architecture, consulting, development, and training. Samuel is a founding team member of the USA &amp; Singapore offices of Neopets (<a href="http://www.neopets.com/">http://www.neopets.com</a>), a grandfather in the online MMO industry. He has over a decade of experience creating games and applications, and is currently traveling the globe to collaborate with top companies. Sam is an Adobe Certified Designer and Developer for Flash, an Adobe Flex Champion, an international public speaker, and a university instructor. His writing and coding have appeared in leading publications such as Adobe’s “EDGE”™ online magazine, and Futurenet Publishing’s “Computer Arts Projects”™ print magazine. Follow Sam on Twitter: <a title="@srivello" href="http://www.twitter.com/@srivello" target="_blank">@srivello</a></p>
<p><strong>Sponsor |</strong> This event is available for sponsorship. Please <a href="http://www.rivellomultimediaconsulting.com/contact/">contact us</a> today!</p>
<p><strong>Program | </strong>(TBD)  60-75 Mins</p>
<table width="100%" border="0" cellpadding="0">
<tbody>
<tr>
<td width="200"><strong>10Mins</strong></td>
<td width="100%">Speaker &amp; Topic Introduction</td>
</tr>
<tr>
<td valign="top" width="115"><strong>10Mins</strong></td>
<td>Benefits of Cross Platform</td>
</tr>
<tr>
<td width="200"><strong>10Mins</strong></td>
<td>Challenges of Multi-screen Development</td>
</tr>
<tr>
<td valign="top" width="115"><strong>10Mins</strong></td>
<td>Demo 1: Project Setup</td>
</tr>
<tr>
<td width="200"><strong>10Mins</strong></td>
<td>Demo 2: Deployment</td>
</tr>
<tr>
<td valign="200" width="115"><strong>10Mins</strong></td>
<td>Questions</td>
</tr>
</tbody>
</table>
<p><strong>Venue |</strong> TBD</p>
<table width="100%" border="0" cellpadding="0">
<tbody>
<tr>
<td width="200"><strong>Date</strong></td>
<td width="100%">TBD</td>
</tr>
<tr>
<td valign="top" width="115"><strong>Time</strong></td>
<td>TBD</td>
</tr>
<tr>
<td width="200"><strong>Venue</strong></td>
<td>TBD</td>
</tr>
<tr>
<td valign="top" width="200"><strong>Address</strong></td>
<td>TBD</td>
</tr>
</tbody>
</table>
<p>Do you have an organization or venue that would be interested for this free event? Please <a href="http://www.rivellomultimediaconsulting.com/contact/">contact us</a> today!</p>
<p>&#8211;</p>
<h2>Links</h2>
<ul>
<li>My article: <a href="http://www.rivellomultimediaconsulting.com/actionscript-4-revealed/">ActionScript 4.0 Revealed</a></li>
<li>My article: <a href="http://www.rivellomultimediaconsulting.com/intro-to-starling-framework/" target="_blank">Intro To Starling</a></li>
<li>My article:  <a href="http://www.rivellomultimediaconsulting.com/starling-framework-use-flash-display-movieclip-with-dynamictextureatlasgenerator/" target="_blank">Starling DynamicTextureAtlas Generator</a> extension</li>
<li>My article:  <a title="Introduction: Adobe Game Developer Tools" href="http://www.rivellomultimediaconsulting.com/adobe-game-developer-tools/">Introduction: Adobe Game Developer Tools</a> article</li>
<li>My article: Adobe Max 2013 <a href="http://www.rivellomultimediaconsulting.com/adobe-max-2013-best-gaming-sessions/">Best Gaming Sessions</a></li>
<li>We at RMC are excited to collaborate with you. We are experts in Flash Platform Gaming, and more. Not sure if HTML5, Unity, or Flash is right for your next project? &#8211; Just ask. <a href="http://www.rivellomultimediaconsulting.com/contact/" target="_blank">Contact us</a> today.</li>
</ul>
<h2>Next Steps</h2>
<ul>
<li>Do you have an organization or venue that would be interested for this free event? Please <a href="http://www.rivellomultimediaconsulting.com/contact/">contact us</a> today!</li>
<li><strong>Not Yet Available</strong>: After the event the full source code of all demos and the complete presentations slides will be available to attendees of the event.</li>
</ul>
<h1></h1>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.RivelloMultimediaConsulting.com/cross-platform-mobile-free-talk/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Cross Platform Mobile: Premium Training</title>
		<link>http://www.RivelloMultimediaConsulting.com/cross-platform-mobile-premium-training/</link>
		<comments>http://www.RivelloMultimediaConsulting.com/cross-platform-mobile-premium-training/#comments</comments>
		<pubDate>Thu, 20 Dec 2012 07:41:31 +0000</pubDate>
		<dc:creator>srivello</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Mobile]]></category>

		<guid isPermaLink="false">http://www.RivelloMultimediaConsulting.com/?p=3769</guid>
		<description><![CDATA[Dive deep into the theory and practical application of Cross Platform Mobile development with this premium training.]]></description>
				<content:encoded><![CDATA[<div>RMC is on the road in Southeast Asia and actively looking to offer this great event. Do you have an organization or venue that would be interested for this free event? Or would you like to see this in your city? Please <a href="http://www.rivellomultimediaconsulting.com/contact/">contact us</a> today!</div>
<h1>Premium Training</h1>
<p>This event is deep, premium training. It is a natural follow-up to the <a title="Cross Platform Mobile: Free Talk" href="http://www.RivelloMultimediaConsulting.com/cross-platform-mobile-free-talk/">Cross Platform Mobile: Free Talk.</a></p>
<div>
<p><strong>Synopsis |</strong> Rivello Multimedia Consulting will offer a lecture on Cross Platform Mobile development. Use one code-base and deploy rich games and applications for web, desktop, iOS, and Android. Create liquid displays that adapt to the unique features of each device. Participants will gain an appreciation for the benefits of developing cross platform and see proven examples. The full source code of all demos and the complete presentations slides will be available to attendees of the event. <strong>Participants are not required to bring any software/hardware to the event.</strong> Cameras with no flash are welcome.</p>
<p><strong>Speaker Bio |</strong>  Samuel Asher Rivello is the principal of Rivello Multimedia Consulting (RMC). RMC’s Flash and Flex services include software architecture, consulting, development, and training. Samuel is a founding team member of the USA &amp; Singapore offices of Neopets (<a href="http://www.neopets.com/">http://www.neopets.com</a>), a grandfather in the online MMO industry. He has over a decade of experience creating games and applications, and is currently traveling the globe to collaborate with top companies. Sam is an Adobe Certified Designer and Developer for Flash, an Adobe Flex Champion, an international public speaker, and a university instructor. His writing and coding have appeared in leading publications such as Adobe’s “EDGE”™ online magazine, and Futurenet Publishing’s “Computer Arts Projects”™ print magazine. Follow Sam on Twitter: <a title="@srivello" href="http://www.twitter.com/@srivello" target="_blank">@srivello</a></p>
<p><strong>Sponsor |</strong> This event is available for sponsorship. Please <a href="http://www.rivellomultimediaconsulting.com/contact/">contact us</a> today!</p>
<p><strong>Program | </strong>(TBD) Day 1</p>
<table width="100%" border="0" cellpadding="0">
<tbody>
<tr>
<td width="200"><strong>*</strong></td>
<td width="100%">Breakfast (Provided)</td>
</tr>
<tr>
<td width="200"><strong>20%</strong></td>
<td width="100%">Speaker &amp; Topic Introduction</td>
</tr>
<tr>
<td valign="200" width="115"><strong>20%</strong></td>
<td>Benefits of Cross Platform</td>
</tr>
<tr>
<td width="200"><strong>10%</strong></td>
<td>Challenges of Multi-screen Development</td>
</tr>
<tr>
<td width="200"><strong>*</strong></td>
<td width="100%">Lunch (TBD)</td>
</tr>
<tr>
<td valign="top" width="200"><strong>25%</strong></td>
<td>Demo 1: Project Setup</td>
</tr>
<tr>
<td width="200"><strong>25%</strong></td>
<td>Demo 2: Deployment</td>
</tr>
<tr>
<td valign="top" width="200"><strong>Extra</strong></td>
<td>Any Questions?</td>
</tr>
</tbody>
</table>
<p><strong>Program | </strong>(TBD) Day 2</p>
<table width="100%" border="0" cellpadding="0">
<tbody>
<tr>
<td width="200"><strong>*</strong></td>
<td width="100%">Breakfast (Provided)</td>
</tr>
<tr>
<td width="200"><strong>20%</strong></td>
<td width="100%">Advanced Theory &#8211; Project Planning</td>
</tr>
<tr>
<td valign="top" width="115"><strong>20%</strong></td>
<td>Advanced Theory &#8211; Architecture Planning</td>
</tr>
<tr>
<td width="200"><strong>10%</strong></td>
<td>Advanced Theory &#8211; Graphics Planning</td>
</tr>
<tr>
<td width="200"><strong>*</strong></td>
<td width="100%">Lunch (TBD)</td>
</tr>
<tr>
<td valign="top" width="200"><strong>25%</strong></td>
<td>Lab 1: Setup New Project &#8211; Choose Game or App</td>
</tr>
<tr>
<td width="200"><strong>25%</strong></td>
<td>Lab 2: Develop Project &amp; Deploy</td>
</tr>
<tr>
<td valign="top" width="200"><strong>Extra</strong></td>
<td>Showcase your lab projects. Any Questions?</td>
</tr>
</tbody>
</table>
<p><strong>Venue |</strong> TBD</p>
<table width="100%" border="0" cellpadding="0">
<tbody>
<tr>
<td width="200"><strong>Date</strong></td>
<td width="100%">TBD</td>
</tr>
<tr>
<td valign="top" width="200"><strong>Time</strong></td>
<td>TBD</td>
</tr>
<tr>
<td width="200"><strong>Venue</strong></td>
<td>TBD</td>
</tr>
<tr>
<td valign="top" width="200"><strong>Address</strong></td>
<td>TBD</td>
</tr>
</tbody>
</table>
<p>Do you have an organization or venue that would be interested for this free event? Please <a href="http://www.rivellomultimediaconsulting.com/contact/">contact us</a> today!</p>
<p>&#8211;</p>
<h2>Links</h2>
<ul>
<li>My article: <a href="http://www.rivellomultimediaconsulting.com/actionscript-4-revealed/">ActionScript 4.0 Revealed</a></li>
<li>My article: <a href="http://www.rivellomultimediaconsulting.com/intro-to-starling-framework/" target="_blank">Intro To Starling</a></li>
<li>My article:  <a href="http://www.rivellomultimediaconsulting.com/starling-framework-use-flash-display-movieclip-with-dynamictextureatlasgenerator/" target="_blank">Starling DynamicTextureAtlas Generator</a> extension</li>
<li>My article:  <a title="Introduction: Adobe Game Developer Tools" href="http://www.rivellomultimediaconsulting.com/adobe-game-developer-tools/">Introduction: Adobe Game Developer Tools</a> article</li>
<li>My article: Adobe Max 2013 <a href="http://www.rivellomultimediaconsulting.com/adobe-max-2013-best-gaming-sessions/">Best Gaming Sessions</a></li>
<li>We at RMC are excited to collaborate with you. We are experts in Flash Platform Gaming, and more. Not sure if HTML5, Unity, or Flash is right for your next project? &#8211; Just ask. <a href="http://www.rivellomultimediaconsulting.com/contact/" target="_blank">Contact us</a> today.</li>
</ul>
<h2>Next Steps</h2>
<ul>
<li>Do you have an organization or venue that would be interested for this free event? Please <a href="http://www.rivellomultimediaconsulting.com/contact/">contact us</a> today!</li>
<li><strong>Not Yet Available</strong>: After the event the full source code of all demos and the complete presentations slides will be available to attendees of the event.</li>
</ul>
<h1></h1>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.RivelloMultimediaConsulting.com/cross-platform-mobile-premium-training/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Must-Have Non-Functional Requirements</title>
		<link>http://www.RivelloMultimediaConsulting.com/must-have-non-functional-requirements/</link>
		<comments>http://www.RivelloMultimediaConsulting.com/must-have-non-functional-requirements/#comments</comments>
		<pubDate>Fri, 14 Dec 2012 04:05:56 +0000</pubDate>
		<dc:creator>srivello</dc:creator>
				<category><![CDATA[Quick Tips]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Project Planning]]></category>

		<guid isPermaLink="false">http://www.RivelloMultimediaConsulting.com/?p=3713</guid>
		<description><![CDATA[This primer answers "What non-functional requirements are necessary?"]]></description>
				<content:encoded><![CDATA[<h3>PROJECT-REQUIREMENTS</h3>
<p>In software development, the focus is to offer value to the end users; to include features for their eyes. These are the functional-requirements of the project. But of course there is much &#8216;under-the-hood&#8217; that the end user never sees. This includes content management systems (CMS) that administer the data, servers that provide that data, and developer tools and architectures to help organize the code-base. We call these &#8216;under-the-hood&#8217; needs &#8216;non-functional&#8217; requirements.</p>
<p>This quick primer answers &#8220;What non-functional requirements are necessary?&#8221;.</p>
<h3>NON-FUNCTIONAL REQUIREMENTS</h3>
<p>In each project, in addition to serving the end users goals, we must serve the needs of the development team; creating a realistic workflow for all team members, allowing for an extensible architecture for current and future functional-requirement features.</p>
<p>My point in writing this article was to get to a list of what non-functional requirements I setup in my apps or game needs. If you are already doing all this, great. MANY mistaken teams are doing NONE of these. Here is the list I use;</p>
<p><strong>My Recommended Non-Functional Requirements</strong></p>
<ul>
<li><strong>Configuration File</strong> &#8211; Upon project startup, load an externalized set of name/value pairs (typically XML). This allows for developers (and others) to tweak values and reduces the need-for / frequency-of project recompilation. A huge side-benefits is that this &#8216;light and playful&#8217; environment encourages experimentation.</li>
<li><strong>Localization</strong> &#8211; Even for English-only project, centralize (put all together) and externalize (separate from code &#8211; typically in XML) <strong>all</strong> display text. This allows for easier edits and translation to other languages if/when needed.</li>
<li><strong>Architecture</strong> &#8211; Sure, smart developers can create their own architectures, but smarter developers choose an off-the-shelf, 3rd-party architecture. <a href="http://www.stickyminds.com/sitewide.asp?Function=edetail&amp;ObjectType=COL&amp;ObjectId=9226">Pave the cow-path</a>, point your developers to 3rd party documentation and forums for help, and hire new staff (with experience in that architecture) more easily. If your team is not using &#8216;any&#8217; architecture, that is probably a huge mistake. There are many available and are often specialized for each platform and project type (i.e. Flash Platform for Game project type)</li>
<li><strong>Restart Functionality</strong> &#8211; The app or game should have a restart button. This may be a functional-requirement. If so, great. If not, do it anyway. By requiring your team to implement restart (and garbage collection) your project will probably be far more efficiently written. This is an expensive feature to implement, but if done at the beginning it is very manageable.</li>
<li><strong>Zero-Memory-Leak Policy</strong> &#8211; The app or game may be &#8216;too simple to warrant optimization&#8217;. Regardless, do it anyway. Once you have the &#8216;Restart Functionality&#8217; added, run a memory profiler tool on your project and ensure that with each restart the RAM usage properly reduces to zero (or whatever benchmark you set).  This is an expensive feature to implement, but if done at the beginning it is very manageable.</li>
</ul>
<p><strong>Game-specific <strong>Non-Functional Requirements</strong></strong></p>
<ul>
<li><strong>The list above</strong>, plus&#8230;</li>
<li><strong>Pause Functionality</strong> - A fundamental test of good gaming architecture is &#8216;can it pause at any time?&#8217;. Even if &#8216;pause&#8217; is not offered to the user, this requirement is helpful.</li>
<li><strong>Time-based animation</strong> &#8211; Your game algorithms should be infallible regardless of a faster-than-expected or slower-than-expected frame-rate.</li>
</ul>
<h3>CHAMPIONING DEVELOPERS&#8217; RIGHTS</h3>
<p>Depending on your team structure, you may have your software team developing the product &#8216;for&#8217; the business team. Treating each department within your company as &#8216;clients&#8217; helps to decouple the responsibilities and make hand-off of project tasks more clear and distinct. However each team, naturally defends their own interests, often at the expense of others. Within this setup, I&#8217;ve seen countless times that the dev-team must fight for the time to create non-functional requirements in addition to the functional requirements, where-as the business team&#8217;s focus is solely on the functional requirements. The business mind is concerned with &#8216;add a new button that does X or Y&#8217; and to them that sounds simple. The Dev-team knows there is indeed a quick and dirty way to add that feature but also a more manageable, scalable, well-architected solution. It is a typical time vs quality discussion. Except the business team may not understand why spending more time (and money) is valuable when they don&#8217;t see more value in the end product.</p>
<p>Addressing developer&#8217;s needs helps to reduce burnout of your team. Happy developers are productive developers. Unproductive developers leave your team. Also an objective development leader can add &#8216;just enough&#8217; non-functional requirements to respect the long-term plans of the project. Obviously a project with a long development cycle (days until launch) and long shelf-life (days between launch and unlaunch) benefits most from good non-functional requirements.</p>
<p>Arguing for the additional time needed to &#8216;do things right&#8217; is a common struggle as dev teams champion their rights. Depending on the project, I can be on either side of this discussion. Generally I try to create an environment that makes the developers comfortable yet gets the job done. To facilitate that, I recommend separating time-estimations for functional-requirements from non-functional. One methodology is to take the total time estimate for the project or milestone&#8217;s functional requirements (including buffers for unknowns) and then calculate 20% additional. I offer developers that 20% to use as they see fit.</p>
<p>For example the business team can offer to the developers; &#8220;Ok, we all agree that our next milestone will take 400 man-hours; so you (developers) will get 480 and can allocate the 80 hours to improve code quality (beyond our minimum standards) and build-out the architecture (beyond today&#8217;s immediate needs).&#8221; Over -architecture and over-planning is dangerous, so giving free-reign to developers to &#8216;make it perfect&#8217; is not cost effective, nor does it really improve the project or product. If developers feel they are hitting 80% level of comfort with their code-base, that is a good balance. This is my personal opinion based on years of experience on hundreds of small to mid-size software projects.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.RivelloMultimediaConsulting.com/must-have-non-functional-requirements/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Adobe Max 2013: Best Gaming Sessions</title>
		<link>http://www.RivelloMultimediaConsulting.com/adobe-max-2013-best-gaming-sessions/</link>
		<comments>http://www.RivelloMultimediaConsulting.com/adobe-max-2013-best-gaming-sessions/#comments</comments>
		<pubDate>Fri, 14 Dec 2012 02:21:43 +0000</pubDate>
		<dc:creator>srivello</dc:creator>
				<category><![CDATA[Industry News]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Mobile]]></category>

		<guid isPermaLink="false">http://www.RivelloMultimediaConsulting.com/?p=3739</guid>
		<description><![CDATA[The best gaming sessions of Adobe Max 2013]]></description>
				<content:encoded><![CDATA[<p>I recently covered an <a title="Introduction: Adobe Game Developer Tools" href="http://www.RivelloMultimediaConsulting.com/adobe-game-developer-tools/">Introduction To Adobe Game Developer Tools</a>. With excitement and momentum (created primarily by Stage3D and its <a href="http://www.RivelloMultimediaConsulting.com/intro-to-starling-framework/" target="blank">Starling Framework</a>) we see proactive, positive marketing by Adobe for gaming and the Flash Platform. The community hopes this will help keep the Flash Platform in the minds of business leaders and developers as a viable technology for new projects.</p>
<p>Adobe recently announced the details for the annual Adobe Max conference. Thankfully, in 2013 we see a focus on gaming.</p>
<h2>Adobe Max 2013</h2>
<p>Adobe MAX 2013 will be at the L.A. Convention Center &amp; Nokia Theatre L.A. LIVE on May 4 &#8211; 8, 2013</p>
<p>(From Adobe Marketing:) Adobe MAX is all about creativity and expressiveness. If you create, you won’t want to miss MAX. Designers, developers, strategists, video professionals, photographers, and more all come to MAX to exchange ideas and inspiration. Together with industry pros and visionaries, you’ll learn about the latest technologies, techniques, and strategies for delivering your best creative work. Come to MAX and explore how creativity is changing the word and what part you have to play in that change. And every full conference MAX pass includes a one year membership to Adobe Creative Cloud*</p>
<h2>Adobe Max 2013: Gaming Sessions</h2>
<p>Here are the game-related sessions we can look forward-to;</p>
<table>
<tbody>
<tr>
<td>ID</td>
<td>TITLE</td>
<td>DATE</td>
<td>TYPE</td>
</tr>
<tr>
<td>L7804</td>
<td>Building a Platformer Game with the Starling Framework</td>
<td>Monday 5:00 PM, Tuesday 3:00 PM</td>
<td>Lab</td>
</tr>
<tr>
<td>L7902</td>
<td>Developing Multiplatform Games with the Adobe Gaming SDK</td>
<td>Monday 12:45 PM, Tuesday 12:30 PM</td>
<td>Lab</td>
</tr>
<tr>
<td>PB7682</td>
<td>Building Games with the Adobe Gaming SDK</td>
<td>Sunday 9:00 AM</td>
<td>Preconference BYOD Lab</td>
</tr>
<tr>
<td>PB7683</td>
<td>Advanced Flash Gaming Development with the Latest Adobe Technologies</td>
<td>Sunday 9:00 AM</td>
<td>Preconference BYOD Lab</td>
</tr>
<tr>
<td>S7802</td>
<td>Adobe Gaming Roadmap</td>
<td>Monday 2:00 PM</td>
<td>Session</td>
</tr>
<tr>
<td>S7805</td>
<td>Wired Up: Integrated Tools for Game Creation</td>
<td>Tuesday 1:00 PM</td>
<td>Session</td>
</tr>
<tr>
<td>S7862</td>
<td>Becoming a Successful Game Developer with Adobe Flash</td>
<td>Tuesday 4:00 PM</td>
<td>Session</td>
</tr>
<tr>
<td>S7904</td>
<td>ActionScript Game Frameworks Panel</td>
<td>Wednesday 9:30 AM</td>
<td>Session</td>
</tr>
<tr>
<td>S8022</td>
<td>Mastering Multiplayer Stage3D and AIR game development for mobile devices</td>
<td>Monday 2:00 PM</td>
<td>Session</td>
</tr>
<tr>
<td>S8202</td>
<td>Extending Mobile Games with AIR Native Extensions (ANEs)</td>
<td>Tuesday 8:30 AM</td>
<td>Session</td>
</tr>
<tr>
<td>S8362</td>
<td>Next-Generation Runtime for Adobe Gaming</td>
<td>Tuesday 8:30 AM</td>
<td>Session</td>
</tr>
</tbody>
</table>
<h2>Next Steps</h2>
<ul>
<li>Read my recent <a title="Introduction: Adobe Game Developer Tools" href="http://www.RivelloMultimediaConsulting.com/adobe-game-developer-tools/">Introduction: Adobe Game Developer Tools</a> article</li>
<li>See the full Adobe Max 2013 <a href="https://www.adobe-max.com/scheduler/catalog.do" target="_blank">list of sessions </a></li>
<li>We at RMC are <a href="http://www.rivellomultimediaconsulting.com/contact/" target="_blank">excited to collaborate with you</a>. We are experts in Flash Platform Gaming, and more. Not sure if HTML5, Unity, or Flash is right for your next project? Just ask!</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.RivelloMultimediaConsulting.com/adobe-max-2013-best-gaming-sessions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ActionScript 4.0 Revealed</title>
		<link>http://www.RivelloMultimediaConsulting.com/actionscript-4-revealed/</link>
		<comments>http://www.RivelloMultimediaConsulting.com/actionscript-4-revealed/#comments</comments>
		<pubDate>Thu, 13 Dec 2012 00:23:21 +0000</pubDate>
		<dc:creator>srivello</dc:creator>
				<category><![CDATA[Industry News]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://www.RivelloMultimediaConsulting.com/?p=2923</guid>
		<description><![CDATA[Some possible features from ActionScript 4.0 have been revealed]]></description>
				<content:encoded><![CDATA[<p>Over the past year I&#8217;ve been learning more HTML5 frameworks. Frequent leaders of our site here may remember I&#8217;ve done some analysis on HTML5 Game Frameworks as well as HTML5 App Frameworks. A major significant lack in the HTML5 &#8216;solution&#8217; is the limitations of JavaScript. I was delighted to come across the <strong>official</strong> Adobe Roadmap (See &#8216;Members Resources&#8217; below) for the FlashPlatform. An exciting inclusion in the roadmap is what&#8217;s up for &#8220;ActionScript Next&#8221; (Codename) or as I choose to call it ActionScript 4.0.</p>
<p><span style="color: #ff0a0a;"><strong>UPDATE (January 30th, 2013)</strong>: ActionScript &#8220;Next&#8221; (aka 4.0 as I call it here) has been explicably removed from the <a href="http://adobe.ly/14tN2N3http://">Adobe Roadmap</a>.</span></p>
<p><span style="color: #ff0a0a;"><strong>UPDATE (June 15th, 2012)</strong>: Adobe announces the plan for concurrency in Flash Player and AIR &#8211; <a href="http://www.bytearray.org/?p=4423" target="_blank">Workers</a></span>.</p>
<h1>ActionScript 4</h1>
<p>The range of applications and content for ActionScript has shifted significantly in recent years, while the ActionScript 3 language remains virtually unchanged since its introduction in 2006. Adobe believes it is time to revise the language to carefully steer its further evolution towards greater expressiveness as well as productivity and performance gains.</p>
<p>From a language design standpoint, Adobe uses the following assumptions as a guide for next-generation ActionScript development:</p>
<ul>
<li>Increasing demand for long-term productivity benefits such as robustness, modularity, and maintainability to complement shorter-term productivity benefits characteristic of scripting languages, such as speed of development</li>
<li>Demand for high performance increases</li>
<li>Demand for hardware utilization increases</li>
</ul>
<p>First, Adobe plans to make significant performance increases in the short term with a goal of continuing performance improvements over the long term. Performance is the primary goal when we approach how to evolve ActionScript. Second, Adobe aims to increase developer productivity by simplifying the language, improving tool support, and boosting bug prevention. Finally, having reduced unnecessary complexity, we will be in a position to innovate within the Flash runtimes much more quickly.</p>
<h3>Features Currently In Discussion;</h3>
<ul>
<li><strong>Stringent static typing as default, with optional dynamic typing:</strong> Most stretches of most programs are expected to benefit from static typing. However, ActionScript 3 tends to lapse into dynamic typing all too easily in places where absolutely stringent static typing would be preferable. This will be corrected. Dynamic typing will still be available when needed, but it will no longer be the default for ActionScript, and it will need to be enabled explicitly.</li>
<li><strong>Type inference:</strong> Type declarations will only be necessary in certain strategic places. Everywhere else the compiler will automatically infer suitable type declarations and treat the whole program as statically typed, even though the programmer does not have to state any types. Thus the convenience of untyped programming can be approximated quite well, while providing the performance advantages of typed programming.</li>
<li><strong>Hardware-oriented numeric types:</strong> For example, <code>int</code> , <code>uint</code> , <code>float</code> , <code>float4</code> , <code>byte</code> , <code>short</code> , <code>long</code> , etc. (the exact set of types is still under discussion). Currently in ActionScript 3 integer values can overflow into floating point values. This will be changed so that numeric operations will never change the underlying representation of the numeric. We foresee this addition greatly reducing implementation complexity and improving runtime performance.</li>
</ul>
<p>These are just a couple of areas that we are focusing on. We will update this document as our thinking evolves and solidifies around how the language and virtual machine will change.</p>
<h4>Compatibility</h4>
<p>Its is stated that AS4 will not be completely compatible with AS3. So maybe there will be a compiler option and one must choose EITHER one or the other (similar to the mutual exclusive option between AS3 and AS2. Depending on the amount of changes in AS4 we may see a new virtual machine inside the player designed to run only the AS4. Currently there are two VM&#8217;s &#8211; one for AS3 and one for older ActionScript.</p>
<h1>Wishlist</h1>
<p>Many developers have been dreaming (ex. <a href="http://jolierouge.net/2010/01/actionscript-3-0-wishlist/" target="_blank">here</a> &amp; <a href="http://www.yeap.de/blog2.0/archives/218-Top-Ten-of-Missing-Features-in-Adobe-ActionScript-Updated.html" target="_blank">here)</a> of features for ActionScript for ages. Some features I would love to see;</p>
<ul>
<li><strong>Abstract Classes with Abstract Methods</strong> (<a href="http://bugs.adobe.com/jira/browse/ASL-18">ASL-18</a>) &#8211; Well, do I have to have to say something about that wish? Basically abstract classes are such an essential thing, I am still wondering how Action Script made it to 3.0 without them. Just documenting which Methods must be overridden is not enough. And the <a href="http://joshblog.net/2007/08/19/enforcing-abstract-classes-at-runtime-in-actionscript-3/">known workarounds</a> are really&#8230; well&#8230; hm&#8230; forget it &#8211; this is a compiler thing, which cannot be checked at runtime.</li>
<li><strong>Generics</strong> (<a href="http://bugs.adobe.com/jira/browse/FP-811">FP-811</a>) &#8211; The <a href="http://www.mikechambers.com/blog/2008/08/19/using-vectors-in-actionscript-3-and-flash-player-10/">Vector</a> class is a good start &#8211; but it&#8217;s not well supported in Flex 3 (keyword: data binding) and it&#8217;s not a generic concept. There should be something like Generics in Java that provide type checking at compile time, but can also be used for any custom class, just like in Java.</li>
<li><strong>Enums &#8211; </strong>While I have a <a title="Using Enums in AS3" href="http://www.RivelloMultimediaConsulting.com/using-enums-in-as3/" target="_blank">(almost) perfect workaround for Enums in AS3</a>, it would be great to see native language support.</li>
<li><strong>Singletons</strong> &#8211; I have a fantastic workaround for <a href="www.rivellomultimediaconsulting.com/using-enums-in-as3/" target="_blank">Singletons in AS3</a></li>
<li><strong>Improved &#8216;Event Listener&#8217;</strong> syntax and performance. I like the features offered by the <a title="AS3-Signals Introduction" href="http://www.RivelloMultimediaConsulting.com/as3-signals-introduction/" target="_blank">AS3-Signals project</a>.</li>
<li><strong>Operator Overloading </strong>(<a href="http://bugs.adobe.com/jira/browse/ASL-10">ASL-10</a>) &#8211; Still missing it in Java and this is, where Action Script could actually beat Java. I don&#8217;t want to have another equals method for comparing arbitrary classes for equality &#8211; I want to be able to simply override the == operator to be able to compare any two objects for equality. Or the + operator for concatenating two data structures. Just like in C++ or smalltalk.</li>
<li><strong>Method Overloading</strong> (<a href="http://bugs.adobe.com/jira/browse/ASL-9">ASL-9</a>) &#8211; While ActionScript provides an easy way to simplify methods with long parameter lists using default values for parameters it&#8217;s not enough to justify not having method overloading. I do not want to have to write methods like <span style="font-family: courier new,courier,monospace;">doSomethingWithString(value:String)</span>, <span style="font-family: courier new,courier,monospace;">doSomethingWithInt(value:int)</span>, <span style="font-family: courier new,courier,monospace;">doSomethingWithObjectA(value:ObjectA)</span>,&#8230;</li>
</ul>
<h1>ActionScript 4.0 Code Samples (A Proposal)</h1>
<p><strong>AbstractClassDemo</strong></p>
<pre class="brush: as3; title: ; notranslate">
package
{
	//class must be subclassed before instantiation
	abstract public class AbstractClassDemo
	{
		public function AbstractClassDemo()
		{
		}
	}
}
</pre>
<p><strong>AbstractMethodDemo</strong></p>
<pre class="brush: as3; title: ; notranslate">
package
{
	public class AbstractMethodDemo
	{
		public function AbstractMethodDemo()
		{
		}

		//Method must be overridden before usage
		abstract public function sampleMethod () : void
		{
		}
	}
}
</pre>
<p><strong>DestructorDemo</strong></p>
<pre class="brush: as3; title: ; notranslate">
package
{
	public class DestructorDemo
	{
		//constructor
		public function DestructorDemo()
		{
		}
		//destructor, called upon instance deletion
		public function ~DestructorDemo()
		{
		}
	}
}
</pre>
<p><strong>Enums</strong></p>
<pre class="brush: as3; title: ; notranslate">
package
{
	public enum EnumSample
	{
		ENUM_SAMPLE_A;
		ENUM_SAMPLE_B;
	}
}
</pre>
<p>&nbsp;</p>
<pre class="brush: as3; title: ; notranslate">
package
{
	public class EnumDemo
	{
		public function EnumDemo()
		{
			trace (ENUM_SAMPLE_A); //[EnumSample ENUM_SAMPLE_A]
			trace (ENUM_SAMPLE_B); //[EnumSample ENUM_SAMPLE_B]
			trace (ENUM_SAMPLE_A is EnumSample); //true
                        trace (ENUM_SAMPLE_A is EnumSample); //true
                        trace (ENUM_SAMPLE_A == ENUM_SAMPLE_B); //false
		}
	}
}
</pre>
<p><strong>GenericsDemo</strong></p>
<pre class="brush: as3; title: ; notranslate">
package
{
	public class GenericsDemo &lt;AGE_TYPE, NAME_TYPE&gt;
	{
		private var _age  : AGE_TYPE;
		private var _name : NAME_TYPE;

		public function GenericsDemo(AGE_TYPE : aAge, NAME_TYPE, aName)
		{
			_age 	= aAge;
			_name 	= aName;

			//Later, in use, declare types at runtime for the generic
			//var genericsDemo : GenericsDemo&lt;Float,String&gt; = new GenericsDemo&lt;Float,String&gt; (10.0, &quot;Flash&quot;);
		}
	}
}

</pre>
<p><strong>MethodOverloadingDemo</strong></p>
<pre class="brush: as3; title: ; notranslate">
package
{
	public class MethodOverloadingDemo
	{
		public function MethodOverloadingDemo()
		{

			//The implementation of this AS3 Syntax
			//	can now be overloaded in AS34
			_sampleMethod();
			_sampleMethod(10.0);
			_sampleMethod(&quot;10.0&quot;);
		}

		/**
		 *
		 * @return void
		 *
		 */
		override public function _sampleMethod () : void
		{
			trace (&quot;Parameters - None&quot;);
		}

		/**
		 *
		 * @return void
		 *
		 */
		override public function _sampleMethod (aValue_float : Float) : void
		{
			trace (&quot;Parameters - Float: &quot; + aValue_float);
		}

		/**
		 *
		 * @return void
		 *
		 */
		override public function _sampleMethod (aValue_str : String) : void
		{
			trace (&quot;Parameters - string: &quot; + aValue_string);
		}

	}
}
</pre>
<p><strong>NumericTypesDemo</strong></p>
<pre class="brush: as3; title: ; notranslate">
package
{
	public class NumericTypesDemo
	{
		public function NumericTypesDemo()
		{
			//specificity helps ram usage
			var sample_int 		: int 	= 10;
			var sample_uint 	: uint 	= 10;
			var sample_float 	: Float = 10.0;
			var sample_float4 	: Float4= 10.0;
			var sample_byte 	: Byte 	= 1;
			var sample_short 	: Short = 10;
			var sample_long		: Long 	= 10;
		}
	}
}
</pre>
<p><strong>OperatorOverloadingDemo</strong></p>
<pre class="brush: as3; title: ; notranslate">
package
{
	public class OperatorOverloadingDemo
	{
		public function OperatorOverloadingDemo()
		{
			//The implementation of this valid AS3 Syntax
			//	can now be overloaded in AS34
			this +  10.0;
			this -  10.0;
			this * 	10.0;
			this /  10.0;
			this == 10.0;
			this += 10.0;
			this -= 10.0;
			this *= 10.0;
			this /= 10.0;

			//Etc...

		}

		/**
		 * Add
		 *
		 * @return Float
		 *
		 */
		override public function operator== (aValue_float : Float) : Float
		{
			//	Mimic default implementation
			if (super.operator==(aValue_float) ) {
				return true;
			} else {
				return false;
			}
		}

		/**
		 * Add
		 *
		 * @return Float
		 *
		 */
		override public function operator+ (aValue_float : Float) : Float
		{
			//	Mimic default implementation
			this = super.operator+(aValue_float);
			return this.toFloat();
		}

		/**
		 * Etc...
		 *
		 *
		 */

	}
}
</pre>
<p><strong>SingletonDemo</strong></p>
<pre class="brush: as3; title: ; notranslate">
package
{
	public class SingletonDemo
	{
		//private constructor mean 'Singleton'
		private function SingletonDemo()
		{
		}
	}
}
</pre>
<p><strong>StaticTypingDemo</strong></p>
<pre class="brush: as3; title: ; notranslate">
package
{
	public class StaticTypingDemo
	{
		public function StaticTypingDemo()
		{
			//compiler determines type by default
			var sample1 = 10;
			trace (&quot;sample1: &quot; + sample1); 	//10
			trace (sample1 is uint); //true

			var sample2 = -10;
			trace (&quot;sample2: &quot; + sample2); 	//-10
			trace (sample2 is int); //true

			var sample3 = 10.0;
			trace (&quot;sample3: &quot; + sample3); 	//10.0
			trace (sample3 is Float); 		//true

			//dynamic type in strategic places
			var sample4 : int = 10.0 as int;
			trace (&quot;sample4: &quot; + sample4); 	//10
			trace (sample4 is int); 		//true

		}
	}
}
</pre>
<h1>Next Steps</h1>
<ul>
<li>What would you like to see in AS4? Comment below!</li>
<li>Download the Official Adobe Roadmap for Flash / ActionScript 4.0 (See &#8216;Member Resources&#8217; below)</li>
</ul>
<h1>Member Resources</h1>
<p><div style="background-color: #EFEFEF; padding: 20px 20px 20px 20px; border-style:dashed; border-width: 1px;  border-color:#000" width="100%" height="100">  <div style="margin: 10px 10px 10px 10px;"> <font size="6px"><B><u>'Free Member'-Only Content</u></B></font> </div> <BR> You must be a 'Free Member' to see this content. With your access you will enjoy members-only content like this, HD video tutorials, and access to complete source code. <BR /> <BR /> <B>Ready To Join?</B><BR> <ul> <li><a href="http://www.RivelloMultimediaConsulting.com/index.php?/register/FreeMember" target="_blank">Sign up</a> for 'Free Member' level now. Its free!</li> <li>Sign up for 'Paid Member' level to enjoy much, much more! (Invite Only)</li> </ul> <B>Already A Free Member?</B><BR> <ul> <li><a href="http://www.RivelloMultimediaConsulting.com/member-login/" target="_blank">Log in</a> and enjoy!</li> </ul> </div></p>
]]></content:encoded>
			<wfw:commentRss>http://www.RivelloMultimediaConsulting.com/actionscript-4-revealed/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Introduction: Adobe Game Developer Tools</title>
		<link>http://www.RivelloMultimediaConsulting.com/adobe-game-developer-tools/</link>
		<comments>http://www.RivelloMultimediaConsulting.com/adobe-game-developer-tools/#comments</comments>
		<pubDate>Wed, 12 Dec 2012 05:26:15 +0000</pubDate>
		<dc:creator>srivello</dc:creator>
				<category><![CDATA[Industry News]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[Games]]></category>

		<guid isPermaLink="false">http://www.RivelloMultimediaConsulting.com/?p=3720</guid>
		<description><![CDATA[Much needed proactive, positive marketing by Adobe.]]></description>
				<content:encoded><![CDATA[<p>Flash emerged as the king of casual game development platforms in the early 2000&#8242;s. After 2 key stumbles (Apple iOS announces no Flash Player in iOS browsers) and industry-wide confusion about the &#8216;death of Flash&#8217;, Adobe is marketing furiously to offer value to developers and spread the word.</p>
<p><strong>The Life Of Flash</strong>;</p>
<ul>
<li>Flash Player Running in the Apple iOS browser, is not possible. This is the ONLY segment where we saw a &#8216;death&#8217; of Flash, so far. However, Flash-created apps in the iOS app store are possible, powerful, and popular.</li>
<li>Flash Player Running in the Android browser, is possible on many devices. <strong>In my opinion,</strong> <strong>it will become less popular as HTML5 matures in the next few years.</strong> However, Flash-created apps in the iOS app store are possible, powerful, and popular.</li>
<li>Flash Player Running in the PC computer browser, is popular on PC, Mac, &amp; Linux. <strong>In my opinion,</strong> <strong>it will be continue to be popular.</strong></li>
<li>Flash content via the computer desktop (as &#8216;apps) is popular on PC, Mac, &amp; Linux. <strong>In my opinion,</strong> <strong>it will be continue to be popular.</strong></li>
<li>Flash content via<strong> other devices (Smart TV&#8217;s and more) will continue to be popular.</strong></li>
</ul>
<p>The most recent effort by Adobe to push its Flash Platform technology is <em>Adobe Game Developer Tools</em>, announced in December 2012. Here is a recap of the highlights.</p>
<h2>Adobe IDEs</h2>
<p>From Adobe: You have great ideas for cool games. Now, we&#8217;re providing you with the essential tools to rapidly build, optimize, and deliver your games to iOS, Android™, Windows®, and Mac OS.</p>
<p>Here are the IDE&#8217;s to help you create your projects;</p>
<ul>
<li><img class="alignleft" src="http://gaming.adobe.com/wp-content/uploads/2012/05/flashprocs6.png" alt="" width="48" height="48" /><strong>Adobe Flash Builder</strong> &#8211; Build amazing games and applications in ActionScript for Android, iOS, Windows and Mac OS X platforms using a single cross-platform development environment. Now with support for Adobe Scout. <strong>In my opinion, its best just for creating and animating assets.</strong></li>
</ul>
<ul>
<li><img class="alignleft" src="http://gaming.adobe.com/wp-content/uploads/2012/05/fbcs6.png" alt="" width="48" height="48" /><strong>Adobe Gaming SDK</strong> &#8211; Adobe Flash Professional software is a powerful authoring environment for creating rich, engaging games and interactive content that reaches desktops, tablets, and smartphones with unparalleled consistency. <strong>In my opinion, its best just for coding and integrating existing assets.</strong></li>
</ul>
<h2>What is Adobe Gaming?</h2>
<ul>
<li><strong>Create games faster. Reach over 1.3 billion people.</strong> &#8211; Only Adobe® Flash® Player and Adobe® AIR® let you deliver your game to 500 million iOS, Android, BlackBerry, Kindle Fire, and NOOK mobile devices and 99% of connected computers — with no additional install. One codebase. Use amazing tools and take advantage of simple, powerful APIs and frameworks enjoyed by a large and growing game developer community. <strong>In my opinion the cross-platform nature and existing community of developers are the most compelling reasons to use Flash Player &amp; AIR.</strong></li>
<li><strong>Cinematic graphics. Console-quality games</strong>. &#8211; The Flash runtime now delivers GPU accelerated graphics across browsers and mobile apps for 1000x faster, stunning 2D and 3D games. Craft amazing gameplay with native mouse, multi-touch, accelerometer, camera, and mic support. Code with human-friendly ActionScript®. Or take your C/C++ or Unity games and easily target the Flash runtime. Play beautifully. <strong>In my opinion, the quality of graphics &amp; audio what Adobe now offers is first class.</strong></li>
<li>Make more money. And make more fun. &#8211; <strong>In my opinion, </strong>this is just marketing-speak. However there is a HUGE amount of existing Flash developers (i.e. better talent at lower costs) and the SDK&#8217;s exist to make your projects social and sales-friendly.</li>
</ul>
<h2>What are Adobe Game Developer Tools?</h2>
<p>You have great ideas for cool games. Now, we&#8217;re providing you with the essential tools to rapidly build, optimize, and deliver your games to iOS, Android™, Windows®, and Mac OS. To get started, all you need to do is download the Adobe Game Developer Tools through a free Creative Cloud membership. If you already have a Creative Cloud membership, the Game Developer Tools are included!</p>
<p>Here&#8217;s what you&#8217;ll get when you download the tools:</p>
<ul>
<li><img class="alignleft" src="http://gaming.adobe.com/wp-content/uploads/2012/11/sc_appicon_48.png" alt="" width="48" height="48" /><strong>Adobe Scout</strong> &#8211; Adobe Scout is a new profiling and optimization tool for Flash Player on desktop and mobile to help you get the best performance possible. (Free now, premium later, TBD)</li>
</ul>
<ul>
<li><img class="alignleft" src="http://gaming.adobe.com/wp-content/uploads/2012/11/gsdk_pkg_48.png" alt="" width="48" height="48" /><strong>Adobe Gaming SDK</strong> &#8211; The Adobe Gaming SDK gives you a complete collection of frameworks, code samples, and learning resources that work together to help you accelerate your productivity.</li>
</ul>
<ul>
<li><img class="alignleft" src="http://gaming.adobe.com/wp-content/uploads/2012/11/flascc_pkg_48.png" alt="" width="48" height="48" /><strong>Flash C++ Compiler</strong> &#8211; Cross compile C/C++ to run your game in Flash Player with GPU acceleration. Deliver your back catalog of games to target 1.3 billion connected desktops.</li>
</ul>
<h2>What are Adobe Game Developer Tools? (Really)</h2>
<p>Adobe is now attracting non-Flash game development companies. For that market the AGDT is a well-marketed introduction to Flash. Newbies can hit the ground running; (theoretically) using any legacy C++ code, getting started with the frameworks in the SDK, and doing powerful profiling with Scout.</p>
<p>For existing Flash developers perhaps none of this is interesting. There are many Flash experts who use no C++, who already have access to the frameworks in the SDK. Scout is very powerful, and indeed is worth the (unannounced) price of entry. But not every game developer profiles his or her projects or knows the great value in doing so. However, I do think that Adobe&#8217;s increasing powerful set of tools, and energized game-specific marketing will help focus the game industry on Adobe&#8217;s tools, and too, Adobe-centric game developers. That is great.</p>
<h2>Next Steps</h2>
<ul>
<li>More about <a href="http://www.rivellomultimediaconsulting.com/contact/" target="_blank">Adobe Gaming </a>(Marketing material)</li>
<li>More about Adobe Gaming (<a href="http://www.adobe.com/devnet/games.html">For Developers on Devnet</a>)</li>
<li>See a HUGE<a href="http://gaming.adobe.com/showcase/"> showcase</a> of Flash Games for Browser/Desktop/iOS/Android/More.</li>
<li>See the <a  href="http://www.rivellomultimediaconsulting.com/adobe-max-2013-best-gaming-sessions/">Best Gaming Sessions at Max 2013</a> article</li>
<li>We at RMC are <a href="http://www.rivellomultimediaconsulting.com/contact/" target="_blank">excited to collaborate with you</a>. We are experts in Flash Platform Gaming, and more. Not sure if HTML5, Unity, or Flash is right for your next project? Just ask!</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.RivelloMultimediaConsulting.com/adobe-game-developer-tools/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Fixing Memory Leaks with Adobe Flash Builder</title>
		<link>http://www.RivelloMultimediaConsulting.com/fixing-memory-leaks-with-adobe-flash-builder/</link>
		<comments>http://www.RivelloMultimediaConsulting.com/fixing-memory-leaks-with-adobe-flash-builder/#comments</comments>
		<pubDate>Wed, 31 Oct 2012 16:44:10 +0000</pubDate>
		<dc:creator>srivello</dc:creator>
				<category><![CDATA[Quick Tips]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Debugging]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Optimization]]></category>

		<guid isPermaLink="false">http://www.RivelloMultimediaConsulting.com/?p=3687</guid>
		<description><![CDATA[How to find and fix a memory leak with Adobe Flash Builder.]]></description>
				<content:encoded><![CDATA[<p>On a recent project, we had a performance problem. The AIR project&#8217;s requirements include the heavy adding/removing of UI elements and over time we could easily see the performance slowed. We knew there was a something wrong. It was a <a href="http://en.wikipedia.org/wiki/Memory_leak">memory leak</a>. A memory leak starts when an object is stored in memory but cannot be accessed by the running code. When the undesired object cannot be freed from memory, and is not usable, it is a leak. Over time the application may leak (or re-leak the same issue) more and more. Eventually the application may show signs of the leak or even become unusable.</p>
<p><strong>User Experience Symptoms Of  A Memory Leak</strong></p>
<ul>
<li><strong>During regular use the application becomes more and more sluggish/slow</strong>. If there is nothing &#8216;new happening&#8217; onscreen and no heavy &#8216;rendering&#8217; it is more obvious to notice the Framerate-per-second (FPS) lower. You can use a small debug window (such as <a href="https://github.com/mrdoob/Hi-ReS-Stats">Hi-Res-Stats</a> formerly MrDoobs Stats) to show the current FPS and estimated ram usage to help you notice this. If you see the FPS run at 30 for example during the first minute of use and 20 after 5 minutes, there may be a memory leak.</li>
<li><strong>The application quits suddenly.</strong> This could be for many reasons, but it may be that the application runs out of memory.</li>
<li><strong>Flash throws the memory-specific error &#8216;flash.errors.MemoryError&#8217;</strong></li>
</ul>
<div>Even if you see one of these symptoms it may not be obvious that there is a problem or that the problem is a memory issue. Or perhaps your development machine is high powered with ample RAM, yet your target user&#8217;s machines are slow. You don&#8217;t see the issue, but your users will. So how can we diagnose the issue. Luckily, the Flash Builder IDE has a &#8216;Profiler&#8217;. This program runs alongside your application and serves several key roles. You can monitor your applications USAGE of memory over time, and see a live list of all OBJECTS in memory (including references to those objects).</div>
<p><strong>Profiling To Find Evidence Of A Memory Leak</strong></p>
<ul>
<li>Run your application with the Flash Builder Profiler. Run -&gt; Profile As&#8230; -&gt; etc&#8230;</li>
<li>Watch the &#8216;Memory Usage&#8217; Panel</li>
<li>Look at the curves of Peak Memory (Red) and Current Memory (Blue). The analysis is totally application dependent. In your particular application, if you expect memory not to grow, but you see it grow, that is a problem. If you expect the memory to drop (UI removed from stage, arrays and vectors emptied, etc&#8230;) and you don&#8217;t see it drop, that is a problem. Herein lies the art of memory profiling. Consider to add a button to &#8216;Reset Application&#8217;, then click it and see that indeed the Current Memory drops to zero (0).</li>
<li>Watch the &#8216;Live Objects&#8217; panel. Compare the 1. &#8216;Cumulative Instances&#8217; and 2. &#8216;Instances&#8217;. For each object. #1 shows the total objects every created since the application started and #2 shows only those currently in memory. If these numbers are the same, and should not be, that is a problem. Perhaps you feel you have deleted a sprite from the stage or deleted another object from memory yet it still exists.</li>
</ul>
<p><a href="http://www.RivelloMultimediaConsulting.com/wp-content/uploads/2012/10/memory_usage_v1.png" rel="prettyPhoto[g3687]"><img class="aligncenter size-medium wp-image-3696" title="memory_usage_v1" src="http://www.RivelloMultimediaConsulting.com/wp-content/uploads/2012/10/memory_usage_v1-300x124.png" alt="" width="300" height="124" /></a><br />
<a href="http://www.RivelloMultimediaConsulting.com/wp-content/uploads/2012/10/live_objects_v1.png" rel="prettyPhoto[g3687]"><img class="aligncenter size-medium wp-image-3697" title="live_objects_v1" src="http://www.RivelloMultimediaConsulting.com/wp-content/uploads/2012/10/live_objects_v1-300x83.png" alt="" width="300" height="83" /></a></p>
<p><strong>Tools And Tips For Finding And Fixing Memory Leaks (Must Read!)</strong></p>
<ul>
<li>Memory Tracker &#8211; <a href="http://divillysausages.com/blog/tracking_memory_leaks_in_as3">http://divillysausages.com/blog/tracking_memory_leaks_in_as3</a>.</li>
<li>Solving Memory Leaks (<span style="color: #ff0000;">FANTASTIC!</span>) - <a href="http://www.tikalk.com/flex/solving-memory-leaks-using-flash-builder-4-profiler">http://www.tikalk.com/flex/solving-memory-leaks-using-flash-builder-4-profiler</a></li>
</ul>
<div>If you want to play with a simple example you can download the example below (See &#8216;Member Resources&#8217;) below.</div>
<h2>Example 1: Without Memory Leak</h2>
<pre class="brush: as3; title: ; notranslate">
package
{
	import flash.display.Sprite;
	import flash.events.Event;

	//USE A LOW FRAMERATE, SO WE CAN STUDY CLOSELY
	[SWF(frameRate=&quot;1&quot;)]
	public class MemoryLeakDemo extends Sprite
	{

		private var listOfDots_vector:Vector.&lt;CustomDot&gt;;
		public function MemoryLeakDemo()
		{
			//REPEAT SOME CODE EVERY SECOND
			addEventListener(Event.ENTER_FRAME, _onEnterFrame);

			//CREATE A LIST
			listOfDots_vector = new Vector.&lt;CustomDot&gt;();
		}

		protected function _onEnterFrame(event:Event):void
		{
			//EVERY FRAME WE...

			//1. CREATE A NEW 'DOT' (A Red Circle Sprite)
			//MEMORY NOTE: 	'var' is a temporary variable.
			//So CustomDot has 0 (permanent) references
			var customDot : CustomDot = new CustomDot();

			//2. ADD TO THE STAGE
			//MEMORY NOTE: 	So CustomDot has 1 (permanent) reference; 'this'
			addChild(customDot);

			//3. REMOVE TO THE STAGE
			//MEMORY NOTE: 	So CustomDot has 0 reference
			removeChild(customDot);

			//So...
			//THERE IS NO LEAK
			//The GC will *mark* the 'customDot' as having 0 references and
			//The GC will *sweep* it away from memory.

		}

	}
}
</pre>
<h2>Example 2: With Memory Leak</h2>
<pre class="brush: as3; title: ; notranslate">
package
{
	import flash.display.Sprite;
	import flash.events.Event;

	//USE A LOW FRAMERATE, SO WE CAN STUDY CLOSELY
	[SWF(frameRate=&quot;1&quot;)]
	public class MemoryLeakDemo extends Sprite
	{

		private var listOfDots_vector:Vector.&lt;CustomDot&gt;;
		public function MemoryLeakDemo()
		{
			//REPEAT SOME CODE EVERY SECOND
			addEventListener(Event.ENTER_FRAME, _onEnterFrame);

			//CREATE A LIST
			listOfDots_vector = new Vector.&lt;CustomDot&gt;();
		}

		protected function _onEnterFrame(event:Event):void
		{
			//EVERY FRAME WE...

			//1. CREATE A NEW 'DOT' (A Red Circle Sprite)
			//MEMORY NOTE: 	'var' is a temporary variable.
			//   So CustomDot has 0 (permanent) references
			var customDot : CustomDot = new CustomDot();

			//2. ADD TO THE STAGE
			//MEMORY NOTE: 	So CustomDot has 1 (permanent) reference; 'this'
			addChild(customDot);

			//2B. CREATE ANOTHER REFERENCE TO THE DOT
			listOfDots_vector.push(customDot);

			//3. REMOVE TO THE STAGE
			//MEMORY NOTE: 	So CustomDot has 0 reference
			removeChild(customDot);

			//So...
			//THERE *IS* A LEAK
			//While we are correctly calling removeChild
			//There is a reference left in '2B' above.

		}

	}
}
</pre>
<h1>Next Steps</h1>
<ul>
<li><strong>Download</strong> the code and check it out! (See Member Resources)</li>
<li><strong>Comment</strong> below with your thoughts.</li>
<li><span style="color: #ff0000;">NOTE: </span>Flash Builder 4.7 (BETA2) has new Profiler called &#8220;<a href="http://www.bytearray.org/?p=4746">Monocle</a>&#8220;. It looks very exciting, yet this article focuses on the currently available (non-BETA) profiler.</li>
</ul>
<h1>Member Resources</h1>
<p><div style="background-color: #EFEFEF; padding: 20px 20px 20px 20px; border-style:dashed; border-width: 1px;  border-color:#000" width="100%" height="100">  <div style="margin: 10px 10px 10px 10px;"> <font size="6px"><B><u>'Free Member'-Only Content</u></B></font> </div> <BR> You must be a 'Free Member' to see this content. With your access you will enjoy members-only content like this, HD video tutorials, and access to complete source code. <BR /> <BR /> <B>Ready To Join?</B><BR> <ul> <li><a href="http://www.RivelloMultimediaConsulting.com/index.php?/register/FreeMember" target="_blank">Sign up</a> for 'Free Member' level now. Its free!</li> <li>Sign up for 'Paid Member' level to enjoy much, much more! (Invite Only)</li> </ul> <B>Already A Free Member?</B><BR> <ul> <li><a href="http://www.RivelloMultimediaConsulting.com/member-login/" target="_blank">Log in</a> and enjoy!</li> </ul> </div></p>
]]></content:encoded>
			<wfw:commentRss>http://www.RivelloMultimediaConsulting.com/fixing-memory-leaks-with-adobe-flash-builder/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Event Dispatching in Java</title>
		<link>http://www.RivelloMultimediaConsulting.com/eventdispatching-in-java/</link>
		<comments>http://www.RivelloMultimediaConsulting.com/eventdispatching-in-java/#comments</comments>
		<pubDate>Wed, 10 Oct 2012 03:54:37 +0000</pubDate>
		<dc:creator>srivello</dc:creator>
				<category><![CDATA[Quick Tips]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Experimental]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.RivelloMultimediaConsulting.com/?p=3651</guid>
		<description><![CDATA[Custom Event Listening and Event Dispatching in Java]]></description>
				<content:encoded><![CDATA[<p>My professional focus is on client-side development. For a recent project, I re-learned some substantial Java concepts and completed server-side coding.</p>
<p>During the project, I was surprised to find there is no native java event messaging (event dispatching and event listening). While some UI frameworks have a solution, the solution appears to be coupled to those frameworks.</p>
<p>So I created a custom Java solution to handle it. The system uses common <a href="http://en.wikipedia.org/wiki/Observer_pattern">Observer</a> pattern and modeled it after the spirit of what is present in ActionScript 3.0. I used abstraction and interfaces so its fairly decoupled and flexible. Take a look.</p>
<p><strong>Usage</strong></p>
<pre class="brush: as3; title: ; notranslate">
public EventsDemo()
{

	// CREATE
	SampleEventDispatcher s = new SampleEventDispatcher();

	// LISTEN
	s.addEventListener(Event.EVENT_NAME, 		this, &quot;_onEvent1&quot;);

	//TEST 'HAS'
	/*
	if (s.hasEventListener(Event.EVENT_NAME, this, &quot;_onEvent1&quot;) ){

		//TEST 'REMOVE'
		s.removeEventListener(Event.EVENT_NAME, this, &quot;_onEvent1&quot;);
	}
	*/

	// TEST A DISPATCH OF EVENT (IN A FAKE, TEMPORARY WAY)
	s.doDispatchTestEvent(new Event	(Event.EVENT_NAME, this));

}

public void _onEvent1 (Event aEvent)
{
	System.out.println (&quot;	_onEvent1(): &quot; + aEvent + &quot; , &quot; + aEvent.getType() + &quot;, &quot; + aEvent.getTarget()  );
}
</pre>
<p>It rocks!</p>
<h1>Next Steps</h1>
<ul>
<li><strong>Download</strong> the code and check it out! (See Member Resources)</li>
<li><strong>Comment</strong> below with your thoughts.</li>
</ul>
<h1>Member Resources</h1>
<p><div style="background-color: #EFEFEF; padding: 20px 20px 20px 20px; border-style:dashed; border-width: 1px;  border-color:#000" width="100%" height="100">  <div style="margin: 10px 10px 10px 10px;"> <font size="6px"><B><u>'Free Member'-Only Content</u></B></font> </div> <BR> You must be a 'Free Member' to see this content. With your access you will enjoy members-only content like this, HD video tutorials, and access to complete source code. <BR /> <BR /> <B>Ready To Join?</B><BR> <ul> <li><a href="http://www.RivelloMultimediaConsulting.com/index.php?/register/FreeMember" target="_blank">Sign up</a> for 'Free Member' level now. Its free!</li> <li>Sign up for 'Paid Member' level to enjoy much, much more! (Invite Only)</li> </ul> <B>Already A Free Member?</B><BR> <ul> <li><a href="http://www.RivelloMultimediaConsulting.com/member-login/" target="_blank">Log in</a> and enjoy!</li> </ul> </div></p>
]]></content:encoded>
			<wfw:commentRss>http://www.RivelloMultimediaConsulting.com/eventdispatching-in-java/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stencyl for Game Development</title>
		<link>http://www.RivelloMultimediaConsulting.com/stencyl-for-game-development/</link>
		<comments>http://www.RivelloMultimediaConsulting.com/stencyl-for-game-development/#comments</comments>
		<pubDate>Wed, 26 Sep 2012 20:49:06 +0000</pubDate>
		<dc:creator>srivello</dc:creator>
				<category><![CDATA[Screencast Tutorials]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Mobile]]></category>

		<guid isPermaLink="false">http://www.RivelloMultimediaConsulting.com/?p=3592</guid>
		<description><![CDATA[Get started with the Stencyl game development platform.]]></description>
				<content:encoded><![CDATA[<p>In my years of game development, I never wished for a tool (IDE) to create games without any programming. But I recently found one.</p>
<p>Maybe I never thought it would be possible. Maybe I never thought the games would be good. Maybe because I knew how to code, I didn&#8217;t care. The Stencyl Toolset from Stencyl, Inc. is surprising in both its ease of use and its flexibility to create a variety of games.</p>
<p>But can it replace traditional game-programming? Well, let&#8217;s take a look.</p>
<p><strong>Pros of Stencyl </strong>(Paraphrased from Stencyl.com);</p>
<ul>
<li><strong>Game Studio In A Box</strong> &#8211; Stencyl is a gorgeous, intuitive toolset that accelerates your workflow and then gets out of the way. In addition to the core tools, there is an included image editor called <a href="http://www.stencyl.com/help/view/pencyl-image-editor/" target="_blank">Pencyl</a> and tile creation and editing <a href="http://www.stencyl.com/help/view/tile-collisions/" target="_blank">tools</a> for tile-based games (i.e. PacMan).</li>
<li><strong>Show and Tell</strong> &#8211; Use StencylForge the community-based toolbox of sprites and game logic to power your projects and share your knowledge.</li>
<li><strong>Design In A &#8220;Snap&#8221;</strong> &#8211; Drag-n-drop code like Lego-blocks. If you are a coder, I know this sounds SCARY. Check it out.</li>
<li><strong>Test it Fast</strong> &#8211; Run quickly using onscreen emulators for rapid code-test-code cycles. <span style="color: #800080;">TBD on my opinion of the debugging features.</span></li>
<li><strong>Play It Everywhere</strong> &#8211; Publish to iOS, Flash, Windows, Mac &amp; the Chrome Web Store. (Android / HTML5 Coming Soon)</li>
<li><strong>Make Money</strong> &#8211; Well, monetizing games is not unique to Stencyl of course, Stencyl has <a href="http://www.stencyl.com/help/view/making-money-off-a-web-game/" target="_blank">monetization features</a> but there are many <span style="text-decoration: underline;">Pros of using one code-base for multiple platforms.</span></li>
</ul>
<div><strong>Pros of using one code-base for multiple platforms</strong></div>
<p>When and where it is manageable, I am a huge fan of using  and reusing the same project for multiple platforms. Stencyl 2.1 (current release) exports to Flash (Desktop/Browser) and Mobile (iOS). Future releases will publish to Android and HTML5.</p>
<div>
<ul>
<li><strong>Marketing dollars</strong> – Instead of marketing the game on two platforms separately, we can do it at the same time</li>
<li><strong>Momentum</strong> – Word of mouth dictates that downloads on one platform will possibly translate into downloads on the other</li>
<li><strong>Maintenance</strong> - We’d rather be working on the next game, than debugging two separate platforms</li>
<li><strong>Laziness</strong> - Corona SDK has a lot of modules already built in, ie Facebook, OpenFeint</li>
</ul>
<h1>What is Stencyl?</h1>
<p>Stencyl is a an integrated development environment (IDE), for your Mac/Windows computer. It allows veteran game developers and (especially) newbies develop new game projects without requiring other tools and without requiring any programming skills.  In addition to Stencyl, also using a few programs (such as Photoshop) to create assets and having some solid experience with both programming and game design will PROBABLY be required to create something really good.</p>
</div>
<p><strong>Checkout the screenshots;</strong></p>
<ol>
<li>Create your game assets (backgrounds and sprites) using your favorite drawing programs or download them from StencylForge.</li>
<li>Setup your game sprites. These &#8216;Actors&#8217; as they are called can be animated and controlled by the computer AI or by the user.</li>
<li>Setup your game logic. Stencyl&#8217;s most controversial feature is the logic system which requires NO PROGRAMMING. There is comprehensive <a href="http://static.stencyl.com/pedia2/">documentation</a> to help. Check it out.</li>
<li>Design your levels. You can drag and drop assets into a grid system or free-form layout. Whatever you like!*</li>
</ol>
<p>* The potential to use Stencyl JUST for level creation on non-Stencyl projects has me very excited. I haven&#8217;t tried that yet, nor know if its possible. Post below if you have some ideas.</p>
<table width="100%">
<tbody>
<tr>
<td><a href="http://www.RivelloMultimediaConsulting.com/wp-content/uploads/2012/06/StencylForge.png" rel="prettyPhoto[g3592]"><img class="aligncenter size-medium wp-image-3601" title="StencylForge" src="http://www.RivelloMultimediaConsulting.com/wp-content/uploads/2012/06/StencylForge-300x210.png" alt="" width="300" height="210" /></a><center>Create Assets or Use StencylForge</center></td>
<td><a href="http://www.RivelloMultimediaConsulting.com/wp-content/uploads/2012/06/Actor-Editor.png" rel="prettyPhoto[g3592]"><img class="aligncenter size-medium wp-image-3601" title="Game Sprites" src="http://www.RivelloMultimediaConsulting.com/wp-content/uploads/2012/06/Actor-Editor-300x214.png" alt="" width="300" height="210" /></a><center>Setup Game Sprites</center></td>
</tr>
<tr>
<td><a href="http://www.RivelloMultimediaConsulting.com/wp-content/uploads/2012/06/Behavior-Designer.jpg" rel="prettyPhoto[g3592]"><img class="aligncenter size-medium wp-image-3601" title="Game Logic" src="http://www.RivelloMultimediaConsulting.com/wp-content/uploads/2012/06/Behavior-Designer-300x221.jpg" alt="" width="300" height="210" /></a><center>Setup Game Logic</center></td>
<td><a href="http://www.RivelloMultimediaConsulting.com/wp-content/uploads/2012/06/Scene-Designer.png" rel="prettyPhoto[g3592]"><img class="aligncenter size-medium wp-image-3601" title="Designer" src="http://www.RivelloMultimediaConsulting.com/wp-content/uploads/2012/06/Scene-Designer-300x204.png" alt="" width="300" height="210" /></a><center>Design Levels</center></td>
</tr>
</tbody>
</table>
<p>Stencyl 2.x maintains separate engines for our Flash and iOS exporters. Something that the team admits has been a challenge to maintain. Stencyl 3.0 (release date TBD 2012) will use a single engine and language that exports <strong>native </strong>apps to Flash, iOS, Android, Windows, Mac, Linux and HTML5.</p>
<h1>Getting Started</h1>
<p>If you have setup a programming environment before (Flash, Flex, Java, HTML5), then you should find Stencyl VERY easy to setup and use. Its slick and mainstream in its ease of use from initial install through project building. If you have never used multimedia tools, it may be a bit challenging, but know that you are in good hands. Stencyl&#8217;s has some user experience (UX) hiccups, but it is, overall, very impressive.</p>
<p><strong>Here are the links and tips;</strong></p>
<ol>
<li><strong>Download The IDE</strong> &#8211; <a href="http://www.stencyl.com/stencylworks/get/">Stencyl</a> and install it.</li>
<li><strong>Go Through the Crash Course</strong> &#8211; After downloading Stencyl, I <strong>strongly recommend going through the Crash Course</strong>. If you&#8217;re launching Stencyl for the first time, you&#8217;ll be automatically asked to go through the Crash Course. If not, click on the <strong>Help Center</strong> button to find it.</li>
<li><strong>Read Stencylpedia</strong>- After you&#8217;ve made your first game using the Crash Course, we highly recommend reading through the first few chapters of Stencylpedia (up to the end of Chapter 4).Stencylpedia will teach you the fundamentals of game creation through Stencyl, in a way that poring over many example games won&#8217;t do.</li>
<li><strong>Inspect Free Games</strong> &#8211; You can learn a lot as a beginner by looking at the included games and free games on StencylForge. Exame the scenes, actors, and behaviors.</li>
<li><strong>Watch My HD Screencast Video</strong> &#8211; Watch me talk you through as I create a complete game from start through finish. (See &#8216;Member Resources&#8217; below)</li>
</ol>
<h1>Making &#8216;FlyerGame&#8217;</h1>
<p>To learn Stencyl, I followed my own &#8216;Getting Started&#8217; steps above and then created my own complete game. I used assets and game logic from &#8220;FlyerGame&#8221;, a <a title="FlyerGame – One Game, Many Many Frameworks" href="http://www.RivelloMultimediaConsulting.com/flyergame-one-game-many-many-frameworks/" target="_blank">game that I have recoded</a> many, many times using game frameworks. The HD Video Screencast and source assets are available (See &#8216;Member Resources&#8217; below).</p>
<p><a href="http://www.RivelloMultimediaConsulting.com/wp-content/uploads/2012/05/corona_game_v1.png" rel="prettyPhoto[g3592]"><img class="alignnone size-medium wp-image-3581" title="corona_game_v1" src="http://www.RivelloMultimediaConsulting.com/wp-content/uploads/2012/05/corona_game_v1-300x233.png" alt="" width="300" height="233" /></a></p>
<h1>Optimizations</h1>
<p>With my simple tests, Stencyl games appear to run smoothly. It&#8217;s likely that performance problems are run-time performance problems (i.e. Flash or iOS) and not necessarily Stencyl performance problems.</p>
<p><strong>Recommendations</strong>;</p>
<ul>
<li>Limit number of on screen actors &#8211; That&#8217;s the fundamental optimization. When not possible use &#8216;recycling&#8217; (VERY IMPORTANT) which is Stencyl&#8217;s version of object pooling.</li>
<li>Limit number of collisions &#8211; Stencyl uses <strong>Box2D</strong> for its physics engine, and the more Stencyl makes use of Box2D, the more calculations it&#8217;s performing in a given frame. Since collisions means the physics engine is working, more collisions means potential slowdown.</li>
<li>Limit use of effects and transparency</li>
<li>Limit overlapping actors (i.e. actors on top of actors)</li>
</ul>
<h1>Conclusion</h1>
<p>I like Stencyl. I applaud what they are trying to do; create a simple tool to allow newbies to create games and veterans to create more games, more easily. I think many veterans will be turned off by Stencyl as a &#8216;toy&#8217;, and many newbies may be too shy to give it a try. I encourage both groups to give it an honest try. Above all I&#8217;m excited for the future of gaming.</p>
<blockquote><p>Tools like [Stencyl] are yet another sign that game development can be both a great hobby to some and lucrative profession to others. &#8211; Me.</p></blockquote>
<p>There are some other game studios I have yet to fully review such as <a href="http://gamesalad.com/" target="_blank">GameSalad</a> and <a href="http://www.yoyogames.com/" target="_blank">GameMaker</a>. Stay tuned. I may review them in the future.</p>
<p><strong>Wait, No programming?</strong></p>
<p>I make a few mentions here that Stencyl requires no programming. Really, to be more accurate you ARE coding, you ARE programming and quite deliberately. You have to understand all of the common game logic concepts. What are are NOT doing is typing. Instead you use drop-down menus &#8211; part of a layout which Stencyl calls the &#8220;block-snapping interface&#8221;. Very pretty, helpful, &amp; intuitive. For advanced users there is indeed a <a href="http://www.stencyl.com/help/view/code-mode/" target="_blank">code view</a> and programming <a href="http://api.stencyl.com/as3/" target="_blank">API</a> (both currently AS3-only). Looking at the code is not only optional, it is not encouraged.</p>
<p><a href="http://www.RivelloMultimediaConsulting.com/wp-content/uploads/2012/06/coding.png" rel="prettyPhoto[g3592]"><img class="aligncenter size-medium wp-image-3615" title="coding" src="http://www.RivelloMultimediaConsulting.com/wp-content/uploads/2012/06/coding-300x172.png" alt="" width="300" height="172" /></a></p>
<p>I have some strong opinions by code-generation tools (i.e. Adobe&#8217;s Dreamweaver), but I think there is indeed a large audience that can be served well by Stencyl&#8217;s ease of use. I am impressed with its power and flexibility. While not the creators intention, I also see Stencyl as a great tool for complete game developer beginners to learn all the fundamentals and then perhaps move on to a more traditional programming environment in the near future or distant future if they have the interest. Academically, Stencyl has fascinating potential too providing a language-agnostic approach to gaming for first year students, before they have the programming skills to power their creative ideas.</p>
<p>In short, after testing Stencyl, my opinion of it changed from just a &#8216;pretty toy&#8217; to a &#8216;fun and powerful tool&#8217;. The roadmap provided on the Stencyl website looks fantastic too, rounding out more publishing options and hinting at a more robust tool too. Give Stencyl 3-4 hours of your attention over a weekend. It may very well change your mind for the better too!</p>
<p><strong>The license <a href="http://www.stencyl.com/stencyl/pricing/" target="_blank">pricing</a>;</strong></p>
<ul>
<li>1. Stencyl 2.x &#8211; Publish Flash Games &#8211; <strong>Free</strong>!</li>
<li>2. Also Publish Desktop Games &#8211; $79 per year</li>
<li>3. Also Publish iOS Games &#8211; $149 per year</li>
<li>Combo of 1,2,3 &#8211; $199 per year</li>
</ul>
<h1>Developer Q&amp;A</h1>
<p>Since I am new to Stencyl and Stencyl is so very different then other game development tools, I met with some Stencyl developers (newbies and veterans) to understand the PROs, CONs, and any gotchas that could help newbies learn from their mistakes.</p>
<p>PROs</p>
<ul>
<li><span style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 12px; line-height: 20px;">No coding needed (unless you want it) </span></li>
<li><span style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 12px; line-height: 20px;">Helpful community</span></li>
<li><span style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 12px; line-height: 20px;">Cross-platform</span></li>
</ul>
<p>CONs</p>
<ul>
<li><span style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 12px; line-height: 20px;">&#8220;Newbies must choose between limited &#8216;Free&#8217; version and expensive &#8216;Pro&#8217; version&#8221; &#8211; Game Developer, <a href="mailto:mineat@rocketmail.com">Urie Wilson</a> </span></li>
<li><span style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 12px; line-height: 20px;"> The learning-curve on more complicated parts (lists, global attributes, collision shapes) can be intimidating</span></li>
</ul>
<p>Gotchas</p>
<ul>
<li> &#8221;A<span style="font-family: 'Helvetica Neue', Tahoma, Helvetica, Arial, sans-serif; line-height: 19px; text-align: left;">lways save your project. [Stencyl may crash]&#8221; &#8211; Game developer, <a href="http://www.stencyl.com/users/index/29392">Ridhwaan Patel</a></span></li>
</ul>
<p>Misc / Advice</p>
<ul>
<li>Stencyl works well with <a href="http://www.stencyl.com/help/view/pencyl-image-editor/">Pencyl (image editor)</a></li>
<li>&#8220;Start Small. Reconstruct retro projects like Tic-Tac-Toe, Pong, Pac-Man, &amp; Space Invaders. These simple, familiar games offer many challenges to newbies.&#8221; &#8211; Game Developer, <a href="http://www.facebook.com/pages/Satyres-Game-Studio/288661834534699">Djamel Berkaoui</a> (aka Satyre)</li>
</ul>
<h1>Next Steps</h1>
<p>After &#8216;Getting Started&#8217; and following my HD Video Tutorials, here are more resources to fuel your Stencyl savvy.</p>
<ul>
<li><strong>VIDEO: Welcome To Stencyl &#8211; </strong>Watch the HD Screencast Video Tutorial*</li>
<li><strong>VIDEO: Flyer Game With Stencyl &#8211; </strong>Watch the HD Screencast Video Tutorial*<strong> </strong></li>
<li>Start with the Stencylpedia &#8211; <a href="http://static.stencyl.com/pedia2/" target="_blank">Online</a>. Its the instructions manual. Also checkout the <a href="http://blog.stencyl.com/" target="_blank">blog</a> and the product <a href="http://www.stencyl.com/stencyl/roadmap/" target="_blank">roadmap</a>.</li>
<li>Find common answers &#8211; The <a href="http://community.stencyl.com/">f</a><a href="http://community.stencyl.com/">orums</a> are best when you&#8217;ve got a specific question to ask.</li>
<li>Ask a new question &#8211; The <a href="http://www.stencyl.com/chat">Chat Room</a> is great for seeking real-time help.</li>
</ul>
<p>*See &#8216;Member Resources&#8217; below.</p>
<h3><span style="color: #ff0000;"><strong>NOTE: All Member Resources are coming soon. Videos and code downloads are NOT yet available.</strong></span></h3>
<h1>Member Resources</h1>
<p><div style="background-color: #EFEFEF; padding: 20px 20px 20px 20px; border-style:dashed; border-width: 1px;  border-color:#000" width="100%" height="100">  <div style="margin: 10px 10px 10px 10px;"> <font size="6px"><B><u>'Free Member'-Only Content</u></B></font> </div> <BR> You must be a 'Free Member' to see this content. With your access you will enjoy members-only content like this, HD video tutorials, and access to complete source code. <BR /> <BR /> <B>Ready To Join?</B><BR> <ul> <li><a href="http://www.RivelloMultimediaConsulting.com/index.php?/register/FreeMember" target="_blank">Sign up</a> for 'Free Member' level now. Its free!</li> <li>Sign up for 'Paid Member' level to enjoy much, much more! (Invite Only)</li> </ul> <B>Already A Free Member?</B><BR> <ul> <li><a href="http://www.RivelloMultimediaConsulting.com/member-login/" target="_blank">Log in</a> and enjoy!</li> </ul> </div></p>
]]></content:encoded>
			<wfw:commentRss>http://www.RivelloMultimediaConsulting.com/stencyl-for-game-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
