November 07, 2010

Proof that Flash decreases battery life

Yep, you heard it before -- but what's the news here? The memory footprint of Flash doubled or tripled after upgrading from Flash-player 9 to 10 last or last-last year (from my own observation on a Mac). It's not uncommon that a complex Flash-app will immediately kick-start the fan.



Flash verkürzt Batteriezeit
Ja, das gab es neulich häufig zu lesen -- aber ist das wirklich neu? Der Memory-Footprint von Flash hat sich beim Upgrade vom Flash-Player 9 zur Version 10 letztes oder vorletztes Jahr verdoppelt oder verdreifacht (von meiner eigenen Etnwicklerarbeit auf einem Mac aus gesehen). Nicht selten startet auf dem Mac beim Aufrufen einer komplexeren Flash-Anwendung direkt der Lüfter.

November 03, 2010

Why Unity won't suffer from hardware-accelerated Flash

Adobe will deliver hardware-acceleration for 3D for Flash in the first half of 2011. They are going to add a new Adobe Labs-page about this key-feature in the next months.


I read a comment on Gamasutra that this spells trouble for Unity3D next year. I beg to differ, mainly out of three reasons:


First: Market-penetration

Of course Flash has a dominant market-penetration with its installed plug-in base. But new hardware-accelerated features will require the latest Flash-plugin (probably version 11). Moreover, Unity seems to have a different approach to its plugin-architecture: more logic seems to be inside compiled code, rather than in the plugin itself; the upgrade from Unity 2.6 to 3.0 did not require any new plugin installation. Furthermore, Unity also caters to the gaming-console-market.


Second: Unity is focussed

Flash is a great all-round-tool, while Unity concentrates on 3D-media and -games. Flash is capable of a lot more, but Unity is better at the things its meant for. Just compare the working-metaphors of Flash and Unity: since the advent of AS3, the mode of operation for Flash changed more and more to "do everything in code" (especially when working with Flex). Unity uses a lot of drag & drop and so-called "exposed properties", which accelerates many production steps.


Third: the production-pipeline counts

Integrating a good production-pipeline is crucial for working with 3D and games. Unity has the edge over Flash here: you simply drop more or less any file-format into your working folder and it immediately becomes usable in Unity. That's a huge difference to the hoops you need to jump through to import complex 3D-assets into one of the large 3D-engines for Flash like Away, Sandy etc. I have written VRML-parsers myself for Sandy and Away in the past years, switching to Unity was a real eye-opener for me.



Warum hadwarebeschleunigtes Flash keine Konkurrenz für Unity ist


In der ersten Hälfte 2011 gönnt Adobe Flash endlich Hardwarebeschleunigung für 3D. In den nächsten Monaten wird es für diese Funktionalität einen neuen Adobe-Labs Bereich geben.


In einem Bericht von Gamasutra las ich den Kommentar, daß Unity sich im nächsten Jahr einigen Schwierigkeiten gegenübersehen wird. Ich sehe das anders, und zwar aus drei Gründen:


Erstens: Marktdurchdringung

Sicher hat Flash gegenüber Unity einen gewaltigen Vorsprung was seine Plugin-Marktdurchdringung angeht. Aber für die neuen 3D-Hardware-Fähigkeiten wird man den neuesten Flash-Player (vermutlich Version 11) benötigen. Zudem: Unity hat offenbar eine andere Philosophie bei seinem Plugin als Adobe -- es scheint mehr Logik im kompilierten Code als im Player zu stecken; so war z.B. beim Umstieg auf das brandneue Unity 3 kein Plugin-Upgrade nötig. Außerdem eröffnet Unity Zugang zum Marktsegment der Konsolenspiele.


Zweitens: Unity ist fokussierter

Flash ist ein Allround-Tool, Unity konzentriert sich auf 3D-Medien und Spiele. Sicher "kann" Flash mehr, aber Unity ist besser in den Dingen, für die es gedacht ist. Das zeigt sich für mich z.B. in der Arbeitsmetapher: seit dem Umstieg auf AS3 ging die Arbeitsweise von Flash immer mehr dazu über, alles durch Programmierung zu lösen (vor allem wenn man mit Flex arbeitet). Bei Unity kommen Drag & Drop und "Exposed Properties" zum Einsatz. Damit lassen sich einfache Arbeitsschritte sehr schnell erledigen.


Drittens: die Produktions-Pipeline zählt

Der Einsatz von 3D hängt stark von der Qualität der Integration der Produktions-Pipeline ab -- und hier hat Unity eindeutig die Nase vorn: man kann ein (fast) beliebiges 3D-Objekt in den Projektordner ziehen und dieses steht dann in Unity zur Verfügung; ein Riesenunterschied zu den Problemen hat, aufwendigere Objekte in einer der gängigen 3D-Flash-Engines (Away3D und Konsorten) zu verwenden. Ich habe in den vergangenen Jahren selber VRML-Parser für Sandy und Away geschrieben. Der Umstieg auf Unity war da ein echter Augenöffner.