Cross Platform Mobile: Free Talk

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 contact us today!

Free Talk

Synopsis | 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. Participants are not required to bring any software/hardware to the event. Cameras with no flash are welcome.

This event is a complete but concise introduction to the topic. For those who want deeper,  premium training we also offer the  Cross Platform Mobile: Premium Training event.

Speaker Bio |  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 & Singapore offices of Neopets (http://www.neopets.com), 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: @srivello

Sponsor | This event is available for sponsorship. Please contact us today!

Program | (TBD)  60-75 Mins

10Mins Speaker & Topic Introduction
10Mins Benefits of Cross Platform
10Mins Challenges of Multi-screen Development
10Mins Demo 1: Project Setup
10Mins Demo 2: Deployment
10Mins Questions

Venue | TBD

Date TBD
Time TBD
Venue TBD
Address TBD

Do you have an organization or venue that would be interested for this free event? Please contact us today!

Links

Next Steps

  • Do you have an organization or venue that would be interested for this free event? Please contact us today!
  • Not Yet Available: After the event the full source code of all demos and the complete presentations slides will be available to attendees of the event.

Cross Platform Mobile: Premium Training

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 contact us today!

Premium Training

This event is deep, premium training. It is a natural follow-up to the Cross Platform Mobile: Free Talk.

Synopsis | 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. Participants are not required to bring any software/hardware to the event. Cameras with no flash are welcome.

Speaker Bio |  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 & Singapore offices of Neopets (http://www.neopets.com), 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: @srivello

Sponsor | This event is available for sponsorship. Please contact us today!

Program | (TBD) Day 1

* Breakfast (Provided)
20% Speaker & Topic Introduction
20% Benefits of Cross Platform
10% Challenges of Multi-screen Development
* Lunch (TBD)
25% Demo 1: Project Setup
25% Demo 2: Deployment
Extra Any Questions?

Program | (TBD) Day 2

* Breakfast (Provided)
20% Advanced Theory – Project Planning
20% Advanced Theory – Architecture Planning
10% Advanced Theory – Graphics Planning
* Lunch (TBD)
25% Lab 1: Setup New Project – Choose Game or App
25% Lab 2: Develop Project & Deploy
Extra Showcase your lab projects. Any Questions?

Venue | TBD

Date TBD
Time TBD
Venue TBD
Address TBD

Do you have an organization or venue that would be interested for this free event? Please contact us today!

Links

Next Steps

  • Do you have an organization or venue that would be interested for this free event? Please contact us today!
  • Not Yet Available: After the event the full source code of all demos and the complete presentations slides will be available to attendees of the event.

Must-Have Non-Functional Requirements

PROJECT-REQUIREMENTS

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 ‘under-the-hood’ 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 ‘under-the-hood’ needs ‘non-functional’ requirements.

This quick primer answers “What non-functional requirements are necessary?”.

NON-FUNCTIONAL REQUIREMENTS

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.

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;

My Recommended Non-Functional Requirements

  • Coding & Documentation Standards: Create a plan for coding standards and commenting practices. The plan should include a ‘bible’ written record of (what to do), the process and workflow to write the code as well as peer-review for compliance, and the buy-in from management to place priority (i.e. time in the calendar). Here are examples of my AS3 Standards and (in-progress) C# Coding Standards and recommended best practices e.g. Unity default folder structure. Consistency, pragmatism, and adoption are fundamentals here. Implementing such a plan is EXPENSIVE, so be sure everyone is on board. The benefits to readability, maintainability, and scalability are well-worth the effort.
  • Configuration File – Upon project start-up, 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 ‘light and playful’ environment encourages experimentation.
  • Localization – Even for English-only project, centralize (put all together) and externalize (separate from code – typically in XML) all display text. This allows for easier edits and translation to other languages if/when needed.
  • Architecture – Sure, smart developers can create their own architectures, but smarter developers choose an off-the-shelf, 3rd-party architecture. Pave the cow-path, 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 ‘any’ 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)
  • Restart Functionality – 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.
  • Zero-Memory-Leak Policy – The app or game may be ‘too simple to warrant optimization’. Regardless, do it anyway. Once you have the ‘Restart Functionality’ 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.

Game-specific Non-Functional Requirements

  • The list above, plus…
  • Pause Functionality – A fundamental test of good gaming architecture is ‘can it pause at any time?’. Even if ‘pause’ is not offered to the user, this requirement is helpful.
  • Time-based animation – Your game algorithms should be infallible regardless of a faster-than-expected or slower-than-expected frame-rate.

CHAMPIONING DEVELOPERS’ RIGHTS

Depending on your team structure, you may have your software team developing the product ‘for’ the business team. Treating each department within your company as ‘clients’ 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’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’s focus is solely on the functional requirements. The business mind is concerned with ‘add a new button that does X or Y’ 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’t see more value in the end product.

Addressing developer’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 ‘just enough’ 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.

Arguing for the additional time needed to ‘do things right’ 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’s functional requirements (including buffers for unknowns) and then calculate 20% additional. I offer developers that 20% to use as they see fit.

For example the business team can offer to the developers; “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’s immediate needs).” Over-architecture and over-planning are dangerous, so giving free-reign to developers to ‘make it perfect’ is not cost effective, nor does it really improve the project or product. If developers feel they are hitting some (80% perhaps?) 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.

Adobe Max 2013: Best Gaming Sessions

I recently covered an Introduction To Adobe Game Developer Tools. With excitement and momentum (created primarily by Stage3D and its Starling Framework) 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.

Adobe recently announced the details for the annual Adobe Max conference. Thankfully, in 2013 we see a focus on gaming.

Adobe Max 2013

Adobe MAX 2013 will be at the L.A. Convention Center & Nokia Theatre L.A. LIVE on May 4 – 8, 2013

(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*

Adobe Max 2013: Gaming Sessions

Here are the game-related sessions we can look forward-to;

ID TITLE DATE TYPE
L7804 Building a Platformer Game with the Starling Framework Monday 5:00 PM, Tuesday 3:00 PM Lab
L7902 Developing Multiplatform Games with the Adobe Gaming SDK Monday 12:45 PM, Tuesday 12:30 PM Lab
PB7682 Building Games with the Adobe Gaming SDK Sunday 9:00 AM Preconference BYOD Lab
PB7683 Advanced Flash Gaming Development with the Latest Adobe Technologies Sunday 9:00 AM Preconference BYOD Lab
S7802 Adobe Gaming Roadmap Monday 2:00 PM Session
S7805 Wired Up: Integrated Tools for Game Creation Tuesday 1:00 PM Session
S7862 Becoming a Successful Game Developer with Adobe Flash Tuesday 4:00 PM Session
S7904 ActionScript Game Frameworks Panel Wednesday 9:30 AM Session
S8022 Mastering Multiplayer Stage3D and AIR game development for mobile devices Monday 2:00 PM Session
S8202 Extending Mobile Games with AIR Native Extensions (ANEs) Tuesday 8:30 AM Session
S8362 Next-Generation Runtime for Adobe Gaming Tuesday 8:30 AM Session

Next Steps

ActionScript 4.0 Revealed

Over the past year I’ve been learning more HTML5 frameworks. Frequent leaders of our site here may remember I’ve done some analysis on HTML5 Game Frameworks as well as HTML5 App Frameworks. A major significant lack in the HTML5 ‘solution’ is the limitations of JavaScript. I was delighted to come across the official Adobe Roadmap (See ‘Members Resources’ below) for the FlashPlatform. An exciting inclusion in the roadmap is what’s up for “ActionScript Next” (Codename) or as I choose to call it ActionScript 4.0.

UPDATE (June, 2012): Adobe announces the plan for concurrency in Flash Player and AIRWorkers.

UPDATE (January, 2013): ActionScript “Next” (aka 4.0 as I call it here) has been explicitly removed from the Adobe Roadmap.

UPDATE (August, 2013): The offerings in ActionScript are vast, but to see a more powerful language, I recommend to take a look at C# in my free, HD video training series on “Unity3D & C#“. Check it out!

ActionScript 4

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.

From a language design standpoint, Adobe uses the following assumptions as a guide for next-generation ActionScript development:

  • 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
  • Demand for high performance increases
  • Demand for hardware utilization increases

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.

Features Currently In Discussion;

  • Stringent static typing as default, with optional dynamic typing: 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.
  • Type inference: 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.
  • Hardware-oriented numeric types: For example, int , uint , float , float4 , byte , short , long , 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.

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.

Compatibility

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’s – one for AS3 and one for older ActionScript.

Wishlist

Many developers have been dreaming (ex. here & here) of features for ActionScript for ages. Some features I would love to see;

  • Abstract Classes with Abstract Methods (ASL-18) – 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 known workarounds are really… well… hm… forget it – this is a compiler thing, which cannot be checked at runtime.
  • Generics (FP-811) – The Vector class is a good start – but it’s not well supported in Flex 3 (keyword: data binding) and it’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.
  • Enums – While I have a (almost) perfect workaround for Enums in AS3, it would be great to see native language support.
  • Singletons – I have a fantastic workaround for Singletons in AS3
  • Improved ‘Event Listener’ syntax and performance. I like the features offered by the AS3-Signals project.
  • Operator Overloading (ASL-10) – Still missing it in Java and this is, where Action Script could actually beat Java. I don’t want to have another equals method for comparing arbitrary classes for equality – 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.
  • Method Overloading (ASL-9) – While ActionScript provides an easy way to simplify methods with long parameter lists using default values for parameters it’s not enough to justify not having method overloading. I do not want to have to write methods like doSomethingWithString(value:String), doSomethingWithInt(value:int), doSomethingWithObjectA(value:ObjectA),…

ActionScript 4.0 Code Samples (A Proposal)

AbstractClassDemo

[actionscript3]
package
{
//class must be subclassed before instantiation
abstract public class AbstractClassDemo
{
public function AbstractClassDemo()
{
}
}
}
[/actionscript3]

AbstractMethodDemo

[actionscript3]
package
{
public class AbstractMethodDemo
{
public function AbstractMethodDemo()
{
}

//Method must be overridden before usage
abstract public function sampleMethod () : void
{
}
}
}
[/actionscript3]

DestructorDemo

[actionscript3]
package
{
public class DestructorDemo
{
//constructor
public function DestructorDemo()
{
}
//destructor, called upon instance deletion
public function ~DestructorDemo()
{
}
}
}
[/actionscript3]

Enums

[actionscript3]
package
{
public enum EnumSample
{
ENUM_SAMPLE_A;
ENUM_SAMPLE_B;
}
}
[/actionscript3]
[actionscript3]
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
}
}
}
[/actionscript3]

GenericsDemo

[actionscript3]
package
{
public class GenericsDemo <AGE_TYPE, NAME_TYPE>
{
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<Float,String> = new GenericsDemo<Float,String> (10.0, "Flash");
}
}
}

[/actionscript3]

MethodOverloadingDemo

[actionscript3]
package
{
public class MethodOverloadingDemo
{
public function MethodOverloadingDemo()
{

//The implementation of this AS3 Syntax
// can now be overloaded in AS34
_sampleMethod();
_sampleMethod(10.0);
_sampleMethod("10.0");
}

/**
*
* @return void
*
*/
override public function _sampleMethod () : void
{
trace ("Parameters – None");
}

/**
*
* @return void
*
*/
override public function _sampleMethod (aValue_float : Float) : void
{
trace ("Parameters – Float: " + aValue_float);
}

/**
*
* @return void
*
*/
override public function _sampleMethod (aValue_str : String) : void
{
trace ("Parameters – string: " + aValue_string);
}

}
}
[/actionscript3]

NumericTypesDemo

[actionscript3]
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;
}
}
}
[/actionscript3]

OperatorOverloadingDemo

[actionscript3]
<pre>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…
*
*
*/

}
}
[/actionscript3]

SingletonDemo

[actionscript3]
package
{
public class SingletonDemo
{
//private constructor mean ‘Singleton’
private function SingletonDemo()
{
}
}
}
[/actionscript3]

StaticTypingDemo

[actionscript3]
package
{
public class StaticTypingDemo
{
public function StaticTypingDemo()
{
//compiler determines type by default
var sample1 = 10;
trace ("sample1: " + sample1); //10
trace (sample1 is uint); //true

var sample2 = -10;
trace ("sample2: " + sample2); //-10
trace (sample2 is int); //true

var sample3 = 10.0;
trace ("sample3: " + sample3); //10.0
trace (sample3 is Float); //true

//dynamic type in strategic places
var sample4 : int = 10.0 as int;
trace ("sample4: " + sample4); //10
trace (sample4 is int); //true

}
}
}
[/actionscript3]

Next Steps

  • What would you like to see in AS4? Comment below!
  • Download the Official Adobe Roadmap for Flash / ActionScript 4.0 (See ‘Member Resources’ below)

Member Resources

[private_Free member]Enjoy this members-only content!

[/private_Free member]

Unity3D & C# Training

The offerings in ActionScript are vast, but to see a more powerful language, I recommend to take a look at C#.

Some powerful C# features we love are;

  • Struct
  • Partial Classes
  • True Singleton (private constructor)
  • Ref/Out
  • Full Generics (AS3 has only Vector)
  • Delegates/Actions/Predicates/Lamda
  • Threads
  • Extension Methods,
  • Operator Overloading,

All of these features and more, plus Unity3D & C# best practices are included in my free, HD video training series on “Unity3D & C#“. Check it out!

vimeo_screenflow_video_thumbnail_UWK_poster_v1

 

Introduction: Adobe Game Developer Tools

Flash emerged as the king of casual game development platforms in the early 2000’s. After 2 key stumbles (Apple iOS announces no Flash Player in iOS browsers) and industry-wide confusion about the ‘death of Flash’, Adobe is marketing furiously to offer value to developers and spread the word.

The Life Of Flash;

  • Flash Player Running in the Apple iOS browser, is not possible. This is the ONLY segment where we saw a ‘death’ of Flash, so far. However, Flash-created apps in the iOS app store are possible, powerful, and popular.
  • Flash Player Running in the Android browser, is possible on many devices. In my opinion, it will become less popular as HTML5 matures in the next few years. However, Flash-created apps in the iOS app store are possible, powerful, and popular.
  • Flash Player Running in the PC computer browser, is popular on PC, Mac, & Linux. In my opinion, it will be continue to be popular.
  • Flash content via the computer desktop (as ‘apps) is popular on PC, Mac, & Linux. In my opinion, it will be continue to be popular.
  • Flash content via other devices (Smart TV’s and more) will continue to be popular.

The most recent effort by Adobe to push its Flash Platform technology is Adobe Game Developer Tools, announced in December 2012. Here is a recap of the highlights.

Adobe IDEs

From Adobe: You have great ideas for cool games. Now, we’re providing you with the essential tools to rapidly build, optimize, and deliver your games to iOS, Android™, Windows®, and Mac OS.

Here are the IDE’s to help you create your projects;

  • Adobe Flash Builder – 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. In my opinion, its best just for creating and animating assets.
  • Adobe Gaming SDK – 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. In my opinion, its best just for coding and integrating existing assets.

What is Adobe Gaming?

  • Create games faster. Reach over 1.3 billion people. – 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. In my opinion the cross-platform nature and existing community of developers are the most compelling reasons to use Flash Player & AIR.
  • Cinematic graphics. Console-quality games. – 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. In my opinion, the quality of graphics & audio what Adobe now offers is first class.
  • Make more money. And make more fun. – In my opinion, 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’s exist to make your projects social and sales-friendly.

What are Adobe Game Developer Tools?

You have great ideas for cool games. Now, we’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!

Here’s what you’ll get when you download the tools:

  • Adobe Scout – 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)
  • Adobe Gaming SDK – 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.
  • Flash C++ Compiler – 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.

What are Adobe Game Developer Tools? (Really)

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.

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’s increasing powerful set of tools, and energized game-specific marketing will help focus the game industry on Adobe’s tools, and too, Adobe-centric game developers. That is great.

Next Steps