• Home
  • Contact
  • Careers
  • Socialize With Us:
  • Send us Mail
  • Follow us on Twitter
  • Join our Facebook Group
  • /
  • Linkedin
  • /
  • Vimeo Videos
  • /
  • Youtube
  • /
  • RSS Feed
  • Search Site

  • About UsAwards & Bio
  • PortfolioOur Latest Work
  • TrainingTips & Tutorials
  • BlogGreat Articles

You are here: Home / 2012

Archive for year: 2012

Cross Platform Mobile: Free Talk

Category: Events     |     Tags: Games, Mobile
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

  • My article: ActionScript 4.0 Revealed
  • My article: Intro To Starling
  • My article:  Starling DynamicTextureAtlas Generator extension
  • My article:  Introduction: Adobe Game Developer Tools article
  • My article: Adobe Max 2013 Best Gaming Sessions
  • 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? – Just ask. Contact us today.

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

Category: Events     |     Tags: Games, Mobile
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

  • My article: ActionScript 4.0 Revealed
  • My article: Intro To Starling
  • My article:  Starling DynamicTextureAtlas Generator extension
  • My article:  Introduction: Adobe Game Developer Tools article
  • My article: Adobe Max 2013 Best Gaming Sessions
  • 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? – Just ask. Contact us today.

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

Category: Quick Tips     |     Tags: Business, Games, Project Planning

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

Category: Industry News     |     Tags: AIR, AS3, Flash, Games, Mobile

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

  • Read my recent Introduction: Adobe Game Developer Tools article
  • See the full Adobe Max 2013 list of sessions
  • 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? Just ask!

ActionScript 4.0 Revealed

Category: Industry News     |     Tags: AS3, Flash

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 AIR – Workers.

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!

  • The Official Adobe Roadmap for Flash / ActionScript 4.0
  • Read the Introduction To Adobe Game Developer Tools.
  • See the Best Gaming Sessions at Max 2013 article
  • 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? Just ask!

[/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

Category: Industry News     |     Tags: Business, Games

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

  • More about Adobe Gaming (Marketing material)
  • More about Adobe Gaming (For Developers on Devnet)
  • See a HUGE showcase of Flash Games for Browser/Desktop/iOS/Android/More.
  • See the Best Gaming Sessions at Max 2013 article
  • 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? Just ask!

Fixing Memory Leaks with Adobe Flash Builder

Category: Quick Tips     |     Tags: AIR, AS3, Debugging, Flash, Flex, Optimization

On a recent project, we had a performance problem. The AIR project’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 memory leak. 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.

User Experience Symptoms Of  A Memory Leak

  • During regular use the application becomes more and more sluggish/slow. If there is nothing ‘new happening’ onscreen and no heavy ‘rendering’ it is more obvious to notice the Framerate-per-second (FPS) lower. You can use a small debug window (such as Hi-Res-Stats 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.
  • The application quits suddenly. This could be for many reasons, but it may be that the application runs out of memory.
  • Flash throws the memory-specific error ‘flash.errors.MemoryError’
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’s machines are slow. You don’t see the issue, but your users will. So how can we diagnose the issue. Luckily, the Flash Builder IDE has a ‘Profiler’. 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).

Profiling To Find Evidence Of A Memory Leak

  • Run your application with the Flash Builder Profiler. Run -> Profile As… -> etc…
  • Watch the ‘Memory Usage’ Panel
  • 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…) and you don’t see it drop, that is a problem. Herein lies the art of memory profiling. Consider to add a button to ‘Reset Application’, then click it and see that indeed the Current Memory drops to zero (0).
  • Watch the ‘Live Objects’ panel. Compare the 1. ‘Cumulative Instances’ and 2. ‘Instances’. 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.


Tools And Tips For Finding And Fixing Memory Leaks (Must Read!)

  • Memory Tracker – http://divillysausages.com/blog/tracking_memory_leaks_in_as3.
  • Solving Memory Leaks (FANTASTIC!) – http://www.tikalk.com/flex/solving-memory-leaks-using-flash-builder-4-profiler
If you want to play with a simple example you can download the example below (See ‘Member Resources’) below.

Example 1: Without Memory Leak

[actionscript3]
package
{
import flash.display.Sprite;
import flash.events.Event;

//USE A LOW FRAMERATE, SO WE CAN STUDY CLOSELY
[SWF(frameRate="1")]
public class MemoryLeakDemo extends Sprite
{

private var listOfDots_vector:Vector.<CustomDot>;
public function MemoryLeakDemo()
{
//REPEAT SOME CODE EVERY SECOND
addEventListener(Event.ENTER_FRAME, _onEnterFrame);

//CREATE A LIST
listOfDots_vector = new Vector.<CustomDot>();
}

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.

}

}
}
[/actionscript3]

Example 2: With Memory Leak

[actionscript3]
package
{
import flash.display.Sprite;
import flash.events.Event;

//USE A LOW FRAMERATE, SO WE CAN STUDY CLOSELY
[SWF(frameRate="1")]
public class MemoryLeakDemo extends Sprite
{

private var listOfDots_vector:Vector.<CustomDot>;
public function MemoryLeakDemo()
{
//REPEAT SOME CODE EVERY SECOND
addEventListener(Event.ENTER_FRAME, _onEnterFrame);

//CREATE A LIST
listOfDots_vector = new Vector.<CustomDot>();
}

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.

}

}
}
[/actionscript3]

Next Steps

  • Download the code and check it out! (See Member Resources)
  • Comment below with your thoughts.
  • NOTE: Flash Builder 4.7 (BETA2) has new Profiler called “Monocle“. It looks very exciting, yet this article focuses on the currently available (non-BETA) profiler.

Member Resources

[private_Free member]Enjoy this members-only content!

  • Download the source-code to the MemoryLeakDemo

[/private_Free member]

Event Dispatching in Java

Category: Quick Tips     |     Tags: API, Experimental, Java

My professional focus is on client-side development. For a recent project, I re-learned some substantial Java concepts and completed server-side coding.

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.

So I created a custom Java solution to handle it. The system uses common Observer 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.

Usage

[actionscript3]
public EventsDemo()
{

// CREATE
SampleEventDispatcher s = new SampleEventDispatcher();

// LISTEN
s.addEventListener(Event.EVENT_NAME, this, "_onEvent1");

//TEST ‘HAS’
/*
if (s.hasEventListener(Event.EVENT_NAME, this, "_onEvent1") ){

//TEST ‘REMOVE’
s.removeEventListener(Event.EVENT_NAME, this, "_onEvent1");
}
*/

// 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 (" _onEvent1(): " + aEvent + " , " + aEvent.getType() + ", " + aEvent.getTarget() );
}
[/actionscript3]

It rocks!

Next Steps

  • Download the code and check it out! (See Member Resources)
  • Comment below with your thoughts.

Member Resources

[private_Free member]Enjoy this members-only content!

  • Download my JavaDemos
  • Create ‘EventDispatcherDemo’ project set compiler dependency to project ‘RMCCodeLibraryJava’ and publish ‘EventDispatcherDemo’.

[/private_Free member]

Stencyl for Game Development

Category: Screencast Tutorials     |     Tags: Games, Mobile

In my years of game development, I never wished for a tool (IDE) to create games without any programming. But I recently found one.

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’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.

But can it replace traditional game-programming? Well, let’s take a look.

Pros of Stencyl (Paraphrased from Stencyl.com);

  • Game Studio In A Box – 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 Pencyl and tile creation and editing tools for tile-based games (i.e. PacMan).
  • Show and Tell – Use StencylForge the community-based toolbox of sprites and game logic to power your projects and share your knowledge.
  • Design In A “Snap” – Drag-n-drop code like Lego-blocks. If you are a coder, I know this sounds SCARY. Check it out.
  • Test it Fast – Run quickly using onscreen emulators for rapid code-test-code cycles. TBD on my opinion of the debugging features.
  • Play It Everywhere – Publish to iOS, Flash, Windows, Mac & the Chrome Web Store. (Android / HTML5 Coming Soon)
  • Make Money – Well, monetizing games is not unique to Stencyl of course, Stencyl has monetization features but there are many Pros of using one code-base for multiple platforms.
Pros of using one code-base for multiple platforms

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.

  • Marketing dollars – Instead of marketing the game on two platforms separately, we can do it at the same time
  • Momentum – Word of mouth dictates that downloads on one platform will possibly translate into downloads on the other
  • Maintenance – We’d rather be working on the next game, than debugging two separate platforms
  • Laziness – Corona SDK has a lot of modules already built in, ie Facebook, OpenFeint

What is Stencyl?

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.

Checkout the screenshots;

  1. Create your game assets (backgrounds and sprites) using your favorite drawing programs or download them from StencylForge.
  2. Setup your game sprites. These ‘Actors’ as they are called can be animated and controlled by the computer AI or by the user.
  3. Setup your game logic. Stencyl’s most controversial feature is the logic system which requires NO PROGRAMMING. There is comprehensive documentation to help. Check it out.
  4. Design your levels. You can drag and drop assets into a grid system or free-form layout. Whatever you like!*

* The potential to use Stencyl JUST for level creation on non-Stencyl projects has me very excited. I haven’t tried that yet, nor know if its possible. Post below if you have some ideas.

Create Assets or Use StencylForge
Setup Game Sprites
Setup Game Logic
Design Levels

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 native apps to Flash, iOS, Android, Windows, Mac, Linux and HTML5.

Getting Started

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’s has some user experience (UX) hiccups, but it is, overall, very impressive.

Here are the links and tips;

  1. Download The IDE – Stencyl and install it.
  2. Go Through the Crash Course – After downloading Stencyl, I strongly recommend going through the Crash Course. If you’re launching Stencyl for the first time, you’ll be automatically asked to go through the Crash Course. If not, click on the Help Center button to find it.
  3. Read Stencylpedia– After you’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’t do.
  4. Inspect Free Games – 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.
  5. Watch My HD Screencast Video – Watch me talk you through as I create a complete game from start through finish. (See ‘Member Resources’ below)

Making ‘FlyerGame’

To learn Stencyl, I followed my own ‘Getting Started’ steps above and then created my own complete game. I used assets and game logic from “FlyerGame”, a game that I have recoded many, many times using game frameworks. The HD Video Screencast and source assets are available (See ‘Member Resources’ below).

Optimizations

With my simple tests, Stencyl games appear to run smoothly. It’s likely that performance problems are run-time performance problems (i.e. Flash or iOS) and not necessarily Stencyl performance problems.

Recommendations;

  • Limit number of on screen actors – That’s the fundamental optimization. When not possible use ‘recycling’ (VERY IMPORTANT) which is Stencyl’s version of object pooling.
  • Limit number of collisions – Stencyl uses Box2D for its physics engine, and the more Stencyl makes use of Box2D, the more calculations it’s performing in a given frame. Since collisions means the physics engine is working, more collisions means potential slowdown.
  • Limit use of effects and transparency
  • Limit overlapping actors (i.e. actors on top of actors)

Conclusion

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 ‘toy’, 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’m excited for the future of gaming.

Tools like [Stencyl] are yet another sign that game development can be both a great hobby to some and lucrative profession to others. – Me.

There are some other game studios I have yet to fully review such as GameSalad and GameMaker. Stay tuned. I may review them in the future.

Wait, No programming?

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 – part of a layout which Stencyl calls the “block-snapping interface”. Very pretty, helpful, & intuitive. For advanced users there is indeed a code view and programming API (both currently AS3-only). Looking at the code is not only optional, it is not encouraged.

I have some strong opinions by code-generation tools (i.e. Adobe’s Dreamweaver), but I think there is indeed a large audience that can be served well by Stencyl’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.

In short, after testing Stencyl, my opinion of it changed from just a ‘pretty toy’ to a ‘fun and powerful tool’. 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!

The license pricing;

  • 1. Stencyl 2.x – Publish Flash Games – Free!
  • 2. Also Publish Desktop Games – $79 per year
  • 3. Also Publish iOS Games – $149 per year
  • Combo of 1,2,3 – $199 per year

Developer Q&A

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.

PROs

  • No coding needed (unless you want it) 
  • Helpful community
  • Cross-platform

CONs

  • “Newbies must choose between limited ‘Free’ version and expensive ‘Pro’ version” – Game Developer, Urie Wilson 
  •  The learning-curve on more complicated parts (lists, global attributes, collision shapes) can be intimidating

Gotchas

  •  “Always save your project. [Stencyl may crash]” – Game developer, Ridhwaan Patel

Misc / Advice

  • Stencyl works well with Pencyl (image editor)
  • “Start Small. Reconstruct retro projects like Tic-Tac-Toe, Pong, Pac-Man, & Space Invaders. These simple, familiar games offer many challenges to newbies.” – Game Developer, Djamel Berkaoui (aka Satyre)

Next Steps

After ‘Getting Started’ and following my HD Video Tutorials, here are more resources to fuel your Stencyl savvy.

  • VIDEO: Welcome To Stencyl – Watch the HD Screencast Video Tutorial*
  • VIDEO: Flyer Game With Stencyl – Watch the HD Screencast Video Tutorial*
  • Start with the Stencylpedia – Online. Its the instructions manual. Also checkout the blog and the product roadmap.
  • Find common answers – The forums are best when you’ve got a specific question to ask.
  • Ask a new question – The Chat Room is great for seeking real-time help.

*See ‘Member Resources’ below.

NOTE: All Member Resources are coming soon. Videos and code downloads are NOT yet available.

Member Resources

[private_Free member]Enjoy this members-only content!

NOTE: All Member resources are coming soon. Videos and code downloads are NOT yet available.

Source Code

  • None yet

HD Screencast Videos

  • None yet.

[/private_Free member]

What Is Gamification?

Category: Industry News     |     Tags: Business, Game Design, Games

Foursquare, Zynga, Nike+, and Groupon are some of the brands who use gamification to deliver a sticky, viral, and engaging experience to their customers. Each understands how core game mechanics such as points, badges, levels, challenges, and leaderboards will engage your consumers with reward structures, positive reinforcement, and feedback loops. Combine game mechanics with social interaction for activities such as collecting, gifting, heroism, and status.

Advergaming – combining advertising and gaming – has been in heavy use for over a decade. It is generally a fun game with ads thrown on top. Gamification suggests a something deeper.

What is Gamification?

Gamification is the use of game design techniques, game thinking and game mechanics to enhance non-game contexts.

The term is used more and more as the mainstream accept gaming as a defacto form of media and many look to see how it can be used outside of pure entertainment. The discussion reminds me of serious games. A serious game is a game designed for a primary purpose other than pure entertainment. The “serious” adjective is generally prepended to refer to products used by industries like defense, education, scientific exploration, health care, emergency management, city planning, engineering, religion, and politics.

RMC is available and excited to collaborate on more gamification projects. With over a decade of gaming experience on browser and mobile, RMC can successfully combine the wining formula of gaming with your educational, marketing, or training needs.

Here is some more great information.

Watch Slideshow 1

[slideshare id=4363720&doc=devdaysengagementthroughgamification-100531081027-phpapp01]

Watch Slideshow 2

[slideshare id=7862680&doc=gamification5desire-110506100535-phpapp02]

Watch Videos

  • Gamification Theory and Practice: Fun is the Future. Wow, this is one is fantastic!
  • Gamification in Education: Gamifying The Classroom
  • Gamification in Marketing: American Gamester: Jay-Z’s ‘Decoded’ Gets Gamified 

Links

  • Article – 3 Things I Wish I Knew About Gamification

Next Steps

  • Download PDF on “Gamification Helps 3rd Grade Students To Learn“
  • RMC is available and excited to collaborate
Page 1 of 512345

Tag

3D AIR API AS3 AS3.5 AssetStore Augmented Reality Business C# Charity Debugging Design Patterns DevDiary ECS Architecture Experimental Flash Flex Game Design Game Design Prototypes Games GUI HTML5 Java Loom Mobile MVCS Architecture Optimization Project Planning PushButtonEngine ReactiveExtensions Review Robotlegs Smash Testing Unity3D UnityApplicantTest WordPress WordPress Plugin

Brazilean Developers

  • Abendita.com
  • dclick.com.br
  • dm9.com.br
  • Fellyph Cintra
  • IgorCosta.org
  • MonadaSolucoes.com.br
  • PossibleWorldwide.com.br
  • Unit9.com

Developers

  • Adobe Blogs
  • Ben Forta
  • Colin Moock
  • Enrique Duvos
  • Flash Mobile Blog
  • Jess Freeman
  • Kevin Hoyt
  • Lee Brimelow
  • Paul Trani
  • Quasimondo
  • Renaun Erickson
  • Ryan Stewart

Free Assets

  • Free Sounds
  • HasGrafics

HTML5 Games

  • Closure JS Library
  • Eloquent JS Manual
  • Game Framework – CraftyJS
  • Game Framework – EaselJS

Italian Developers

  • alchimedia.com
  • corlan.org/
  • creativesource.it
  • dimix.it
  • fabiobiondi.com
  • gnstudio.com
  • Interpreting-tech.com/bemobile/
  • leonardorisuleo.info
  • lucamascaro.info
  • mart3.org
  • mxml.it
  • nxn.it
  • pirosoft.it
  • Preload.it
  • sonnati.wordpress.com/
  • webgriffe.com

Products

  • Adobe.com
  • Amazon Kindle E-Reader
  • ElectroServer
  • F*CSS
  • Flash Development Toolkit (FDT)
  • O'Reilly PureMVC Book
  • Samsung Galaxy Tablet
  • Unity3D

RMC

  • RMC Consulting

Spanish Developers

  • Flash Adictos
  • HTML Cinqo
  • Tutoriales Flash

Tutorial

  • Active Tuts
  • AS3-to-Unity3D Training Videos
  • Doing 2D in Unity3D
  • Learning C#
  • Unity3D Tutorials

Unity3D Games

  • AS3-to-Unity3D Training Videos
  • Doing 2D in Unity3D
  • Learning C#
  • Matt Eley's Blog
  • Unity3D
  • Unity3D Tools
  • Unity3D Tutorials

Interesting links

Besides are some interesting links for you! Enjoy your stay :)

Latest Portfolio

  • Coins And PlatformsMarch 19, 2014, 6:04 am
  • Paddle SoccerMarch 2, 2014, 9:13 pm
  • Spider StrikeFebruary 21, 2014, 4:19 am
  • Custom Game System APIJuly 8, 2013, 8:05 am

Latest News

  • RMC Primer: Everything Virtual Reality (VR)September 3, 2016, 10:29 am
  • Unity3D Architectures: EntitasJuly 29, 2016, 11:15 pm
  • RMC Primer: Get A Job In Game DevelopmentAugust 19, 2015, 10:18 am
  • Unity UI: Overview – Part 1 of 3December 10, 2014, 9:55 am

Archive

  • September 2016
  • July 2016
  • August 2015
  • December 2014
  • April 2014
  • March 2014
  • February 2014
  • January 2014
  • December 2013
  • October 2013
  • September 2013
  • August 2013
  • July 2013
  • June 2013
  • May 2013
  • December 2012
  • October 2012
  • September 2012
  • July 2012
  • May 2012
  • April 2012
  • March 2012
  • February 2012
  • January 2012
  • December 2011
  • October 2011
  • September 2011
  • August 2011
  • June 2011
  • April 2011
  • March 2011
  • January 2011
  • December 2010
  • October 2010
  • September 2010
  • April 2010
  • March 2010
  • January 2010
  • October 2009
  • August 2009
  • June 2009
  • May 2009
  • April 2009
  • January 2009
  • December 2008
  • November 2008
  • August 2008
  • May 2008
  • April 2008
  • February 2008
  • January 2008
  • December 2007
  • November 2007
  • October 2007
  • August 2007
  • May 2007
  • January 2007
  • October 2006
  • April 2006
  • March 1999

© Copyright 2006 - 2023 - Rivello Multimedia Consulting - RMC by Samuel Asher Rivello