Rants & Raves

Unite11 logo, Unity conference

Unite11 (Unity3D) Flash Day 9/27/11

Unite11 logo, Unity conference

Today was “Flash Day” at Unite11, which discussed using Unity to publish a swf.  Lucas Meijer & Ralph Hauwert (who started working for Unity in June) were the presenters and did an excellent job with it.

Why?

Unity decided to add Adobe Flash support for people who needed a larger installation customer base. This became possible since the Flash team created Stage3d at such a low API level. But, basically, Unity’s goal is to make sure that you don’t get locked into any one platform.

How?

They created an AS3 API for a large portion of Unity. They will not be publishing this yet, primarily since it is not intended to be read by humans). So Unity scripts are converted to AS3 which then tie in to their AS3 version of the API, and all of this is compiled using the mxmlc compiler.

Demos

They again referenced the impressive ShadowGun demo. Then they showed a few live demos (some spheres with physics falling, being shot, etc). It seemed to work great, but the compile time seemed to take a while. Also, I think I saw the output swf was 13.5 Mb, but I might have seen the wrong file as it flashed by quickly.

They showed a demo of Angry Bots running in the Flash player. They claimed no code changes to target the Flash Player. The game ran nearly perfect (minus a few missing explosions, etc). But nevertheless, it was a very impressive conversion.

What?

  • Pricing: “TBA”
  • Release: “TBA”
  • Awesome: “yes”

Supported in Flash:

  • Unity Physics (IDE controlled)
  • Unity Particle systems
  • Unity Custom & Standard shaders (ported to Agal code automatically for Flash)

Not supported in Flash:

  • Any thing that needs depth textures
  • Advanced audio (Doppler, reverb)
  • Dynamic shadows
  • No mouse-lock (so you can’t make a true FPS where the mouse controls looking)

Be cautious:

  • Huge assets means a huge swf. Be careful.
  • Feel free to push the GPU all you want, be go easy on the CPU.

Supported Scripting:

  • C#
  • JS (strict)
  • Boo

Performance:

Fun quote of the day: “The best way to make your game go faster, is to have it not do stuff” – Lucas Meijer

But basically he was talking about how many things Unity does during compile time instead of runtime, to increase performance. These benefits are translated over to Flash. Examples include Lightmapping/Beast, light probes, occlusion culling, etc. All of these features are extremely awesome and a great benefit.

Asset Imports:

For release 1, there will be no way to import native Flash assets, only a way to control them.

Output:

Everything is published to a single swf (you can include the standard Unity branded preloader if you want it, or create your own). They will eventually support separate asset swf’s from each unity scene, but not for version 1.

Conclusion:

This feature looks freaking awesome. The performance was significantly better than I expected. Nevertheless, for full-blown, large-scale projects, the workflow seems like it could get complicated or bulky quickly. Having said that, this was an early demo, and the team was very open to hearing feedback from the community and adjusting the implementation accordingly (kudos!). So, I will definitely eagerly await the release and believe there can definitely be some clear benefit use-cases for it.

Think Labs Logo

First Think Labs class starts tonight

Think Labs Logo

The company I work for, Seven2, along with its sister company, 14Four, or co-sponsoring Think Labs. Think Labs is a series of free classroom training sessions in online and mobile development. For years we’ve been putting our new employees through a rigorous training program and we’ve decided to share this training with the community. We had a large number of talented creatives apply, but only 10 spots were available. Narrowing it down was difficult! So I wanted to first say congratulations to the 10 all-stars that made the cut:

  • Carlos Rivera
  • Eli Snavely
  • Ginny Baxter
  • Jame Stinehart
  • Karli Ingersoll
  • Manny Trembley
  • Mitch Rickman
  • Nicholas Malara
  • Peter Jantz
  • Tyreil Poosri

The first session is an 8-week series dedicated to ActionScript 3.0 programming and it starts tonight! I’ll be co-teaching this course along with my adept partner-in-crime, Kipp Ashford.

If you didn’t make the cut this time around, stay tuned to the blog or the facebook page and we’ll let you know when the next session begins!

Adobe Wallaby (Flash to HTML) gotcha’s & clarification

Adobe announced “Wallaby” today, which is the codename for “an experimental technology that converts the artwork and animation contained in Adobe® Flash® Professional (FLA) files into HTML”. To clarify, Wallaby does NOT mean that you now get “Flash on your iOS device” as some sites are misleadingly claiming. Here are the notes from their announcement:

“The focus for this initial version of Wallaby is to do the best job possible of converting typical banner ads to HTML5. Wallaby does a good job of converting graphical content along with complex, timeline-based animation to HTML5 in a form that can be viewed with browsers using a WebKit rendering engine. Supported WebKit browsers include Chrome and Safari on OSX, Windows, and iOS (iPad, iPhone, iPod).

Wallaby‚s design goal was not to produce final-form HTML ready for deployment to web pages. Instead it focuses on converting the rich animated graphical content into a form that can easily be imported into other web pages in development with web page design tools like Dreamweaver.”

The tool as pretty impressive. However, there are definitely some things to be aware of:

  • It (currently) only supports WebKit browsers (as mentioned above)
  • Fla files must be saved in Flash CS5 or later
  • Many features aren’t (currently) supported, including Blend Modes, Tweening attributes, code, certain filters, dynamic masks, etc. A comprehensive list can be found here.
  • Your file size is going to go up, by a factor of 4x-10x (based on my tests) depending on what you’re doing and how you’re going about it. There certainly are some ways to be more efficient, but regardless, your gross file size is going to be higher than your swf was (and this doesn’t include the 74 KB jquery file).
  • Your performance *might* decrease (depending on the # of objects on screen and how you’re going about things).
  • Adobe is welcoming feedback in their Wallaby forum.

This certainly is an impressive tool and can save a ton of time. But it’s not exactly the magic bullet that some are making it out to be. I’m excited to see what Adobe will do next with it!

TUFF Unleashed Title Screen

Flash Game: T.U.F.F. Puppy Unleashed

At Seven2, I served as the lead programmer on the pilot game for a brand new Nickelodeon cartoon show called T.U.F.F. Puppy. This game is now in the running to be Nickelodeon’s 2010 Game of the Year. The game is called T.U.F.F. Puppy Unleashed! It’s a grid-based combat game similar to Final Fantasy Tactics.

This game will go up against a different game each day of this week (including one other game I did, Penguins of Madagascar: Oh Snow You Didn’t), and a winner will be crowned at the end of the week. Then this week’s winner will go up against the previous 3 weeks’ winners and one game will be appointed to rule them all (for 2010). A “vote” is cast simply by playing the game.

A shout out to all of the peeps that created open source libraries that we leveraged on this game including: AS3 Signals, TweenMax, Cool Console, Electrotank’s A*, and Bulk Loader.

Now, go play it!

Using a Mac? Check out these must-have Quick Look plugins

It has been about year since I switched from Windows to Mac and I thought I would release a series of articles that discusses my workflow and the vital tools that I have discovered along the way.

Today, we talk about one of the best features of Apple’s OS: Quick Look. Highlight any file, press the spacebar, and instant preview! The lack of this feature is my biggest complaint whenever I switch back to a Windows OS. Unfortunately, there are a few file types that are either not supported, or else not supported as well as they could be. Enter Quicklook Plugins.

First off, here’s how to install them:
http://www.quicklookplugins.com/how-to-install/

And here are my favorite plugins:

Intel Media Processor CE 3100

Flash to become commonplace in your living room?

Check this little beauty out: one of Intel’s newest processors, the CE 3100, which is designed for web enabled tv’s, set-top boxes, and Blu-ray players, will have built in support for Adobe Flash. This means that users of CE 3100-based HDTV’s will be able to stream Flash from YouTube or anywhere else directly on their TV. Now, although I have no imediate plans to take advantage of such technology, I still believe it is a a great stepping stone for Adobe to ensure Flash as it’s own “standard.” Something that can be expected to be supported in every computer, tv, pda, iPhone, etc. Nice one Adobe. Apple, pay attention: the internet without Flash, is still a watered down version of the internet.

Intel Media Processor CE 3100 Intel Media Processor CE 3100

Intel CE-3100 Set-top box

Adobe laying off 600 employees, including Mike Downey

Update: Here are Mike Chambers’ thoughts on the issue…

I thought it was a bad April fool’s joke at first, but it’s not April. It’s true, Adobe is laying off 8% of their global workforce, which is about 600 employees. More details will be available on Dec 16th during their regular earnings conference call. The full Adobe press release can be found here. Adobe’s president and CEO, Shantanu Narayen, said this is primarily because of not so good CS4 sales.Further, he states, “The global economic crisis significantly impacted our revenue during the fourth quarter, we have taken action to reduce our operating costs and fine-tune the focus of our resources on key strategic priorities.”

According to his twit, the layoffs include Mike Downey, Sr. Product Manager @ Adobe and a very influential evangelist for the platform. I am very sad to hear this news and will definitely miss his contributions. Their have been rumors that Mike Chambers and Ryan Stewart were both getting cut as well, but luckily, this is false and false.

I have heard multiple people make comments like, ‘for the first time, I am losing faith in Adobe and their stability.’ We have seen many industries take a hit during this recession, it should not be surprising that Adobe is one of them. However, the internet is not going to suddenly vanish due to our economy. Until Silverlight becomes a real competitor, Flash has no threat of dissappearing any time soon. Neither is the marketing industry going away. As long as their is marketing and 2d graphic design, there will be Photoshop and Illustrator. Adobe’s staff will shrink and it may yet shrink again after this round of layoffs is all said and done, but the company is not going away and their flagship products will not go away.

I am less concerned about the possibility that the next version of  Flash or Photoshop may take extra long to be released, and I’m more concerned about the jobs and families of the 600 that got laid off. Say a prayer that they are able to find another job, soon…

Flash CS4 – A Minor Update? Nope.

AppleInsider just released some details about CS4. They’re saying that insiders call it a “minor update.” Over on Keith Peter’s blog, he argues the point by praising these new features, “bones, 3D, PixelBender, sound synthesis, new text engine, new drawing API.” In response, Steven Sacks comments “Wait a sec, Keith. You’re talking about features of the player/actionscript. Let’s not confuse the language or the runtime with the IDE. You can access the features you listed without using Flash CS4.”

I agree that most of the features I’m really excited about are in FlashPlayer 10 and not necessarily in Flash CS4. But take my company for example. We create Flash games. We heavily rely on inheritance, code reuse, and modularization. We have a great system setup where you can open any smaller module that you want to reuse in a future Flash game, copy a single folder from the Flash Library to your new game, import and initialize the object in the new game, and you’re off and running. This makes creating the ground floor of a future flash game extremely quick and efficient. After 3 years of refining this process, we have arrived at what we believe to be a fantastic work flow from design to engineering.

I am extremely excited and intend on using immediately many of the new features of FP10. The only reason we haven’t already is because, currently, this requires Flex. It would take us countless hours and tons of money to get everything converted to Flex. This simply is not an option for us. So if a new Flash IDE called CS4 came out and was exactly the same as Flash CS3 except that I could leverage all of the new FP10 features *directly from the Flash IDE*, I would be sold without hesitation. As Keith claims, for many, FlashPlayer 10 = Flash CS4. If you use Flex instead of Flash CS3, then feel free to review the latest version of FlexBuilder. But as for a person who leads a team of people who use Flash CS3 40+ hours / week, we are all very excited about the new version.

Should Adobe follow the new ECMAScript 3.1 standard?

For background, read:

Keith Peters just posed a good question, Why Standards?. On the one hand, standards are undeniably good, assuming that the point of a “standard” is that many adhere to it. It’s pointless to call something a standard if you are the only one following it. For example, take the metric system vs the english system of measurement. There are really only two standards and it still causes us problems. Remember the $125 million lost Mars Climate Orbiter in 1999 because someone didn’t convert from one standard to another? Or closer to home, remember the problems of figuring out why your page looked one way in IE, another in Netscape, and another in Safari? The same page could look drastically different. Or how about the standard of XML? What a fantastic concept! I love that I can import an Excel file directly into Flash if I want to thanks to XML, or that I can interface with an app written in an entirely different language over Ethernet because it talks XML. It’s undeniable that standards can be very powerful.

However, it’s also undeniable that not everything should follow a standard.  How boring it would be if everyone’s web page had to use the exact same look and feel and no one was allowed to use anything but text. This is, of course, ridiculous. Standards can be very powerful, but they can also be very inhibiting.

So the real question is not, “why standards?”, but rather,  “should Adobe follow the new ECMAScript 3.1 standard?”

The only time I ever wish that various rich oop languages were more “standardized” is when one language has a really nice feature/ability that I become dependent on, and then I switch to another rich oop language that doesn’t support it. For example, there are many times that I have griped that I wish AS supported all of the features that usually come “standard” in other rich oop languages, such as private constructors, function overloading, strongly typed arrays (vectors), etc. ActionScript 3 was a big step in the right direction and I thought ES4 would solve most of my remaining gripes.

My view, however, implies that a standard in the programming world is used to set the *minimum* feature set that a language has, NOT the maximum. I agree with Keith Peters, that my employer and my personal career as a developer are both completely unaffected whether AS follows a named standard or not. On the contrary, I feel like AS currently *is* the standard, and undeniably so in the current RIA world. I believe Adobe should consider the ES3.1 standard and follow it where it makes sense, but I strongly believe it should ignore it altogether when it’s not in the best interest of the language or the community. Again, if MS, Apple, and Mozilla all decided that their browsers would support text only to be more standard with each other, everyone would jump ship in a heart beat to a “less standard” web browser that pushed the technology limit and supported images, video, sound, etc.

I believe Adobe has been pushing this technology limit for the last decade, and that they should continue to do so without consideration of slowing down in order to be able to claim that they are “compliant”.

Oh, and since we’re no longer worried about being compliant, can we please have private constructors back and true support for function overloading? ;)

Re: The Open Web is Slow

This is in response to Ryan Stewart‘s post: The Open Web Is Slow.

Thanks for the post Ryan. I agree with much of what you are saying and as a non-Adobe employee, I definitely agree that Adobe does better-than-most commercial companies at contributing and fostering the open source community. In-fact, the Flash community, by and large, is  a community that really believes in Open Source, whether it’s for silly experiments, or full blown engines like Tweener or pv3d.

However, I believe it would help the community if there was some sort of post explaining Adobe’s reasons for not open sourcing the Flash Player. I can speculate reasons, but it seems open sourcing it under the right licensing structure would be beneficial for everyone.

At the company I work for, we do a lot of development using Qt by Trolltech. They have a great licensing structure that states the following:

“The main licensing options available are:
* Commercial Licensing. This is the appropriate option if you are creating proprietary applications and you are not prepared to distribute and share the source code of your application.
* Open Source Licensing. This is the appropriate option if you want to share the source code of your application with everyone you distribute it to, and you also want to give them the right to share who uses it.”

Trolltech gets free contributions from the community to their source, and they foster a community that does free advertisement for the company (by the sheer nature of Open Source). Their commercial licensing is not cheap, so the company still makes great money. It’s a win/win for everyone.

Flash has such an extremely creative community that is always pushing Flash to its limits. I believe the tools that would be created if the Flash Player were open source would be incredible. At the same time, I love Adobe’s products and do not want the company to decline financially. But I believe the opposite would happen: even more people would desire to use Flash as the tools for developing it get better and better.

Adobe MAKE SOME NOISE

I was also having problems with the SOUND_COMPLETE event. I discovered Andre Michelle‘s post petition about it and promptly added my name to the list. There have been multiple other people posting about the problem also. Unfortunately, the only response that I could find from Adobe was by Brent Baker on a bug report for the issue that states:

“FlashPlayer issues should be reported here. Also you will need to provide much more information on the issue: http://www.adobe.com/cfusion/mmform/index.cfm?name=wishform

It seems that the bug was closed without actually looking into it. Bummer.

Adobe, MAKE SOME NOISE

Adobe MAKE SOME NOISE!

WebCollage screenshot1

Web Collage – Cool Idea

I stumbled across a site today by Jamie Zawinski that randomly pulls various images from the web blindly (I do not know the workings of the algorithm) and throws them together every 60 seconds or so into a collage. If any of the images spark your interest, simply click on it to go to the website. Pretty fun idea and a nice thing to have running in the background while you’re doing something else. I know that people have done similar things with flickr before, but it’s nice that this is not limited and that it doesn’t require any browser plugins. Here are a couple of sample screenshots:

WebCollage screenshot1

WebCollage screenshot2

Warning: Unfortunately there seems to be occasional “rated R” pictures. It would be better w/out that, but still a nice idea.

www.jwz.org/webcollage/

Mac vs PC vs Linux, South Park Style

The first one was hilarious:

The new one is good too: