AS3 Concurrency/Workers : using shared ByteArray and Mutex

Hello there,
je vais vous parler un peu des Workers récemment implémentés au Flash Player 11.4.
Autant vous le dire tout de suite, vous ne pouvez pas passer à coté de cette nouvelle classe.
Chaque Workers utilise une instance de la machine virtuelle (MV) du player Flash (FP) qui s’exécute en background de votre application.

L’intérêt est donc de faire tourner du code en arrière plan pour alléger la MV principale, celle qui affiche votre application.
Il est bien sûr possible de communiquer entre les différents Workers de différentes manières :
- en envoyant des messages via MessageChannel.send()
- en partageant un ByteArray (BA) (depuis le FP 11.5) dont l’instance sera accessible par tous les Workers.
Lire la suite

Stage3D version of Enlarge your pants : Amazing performances!

Enlarge your (pants, slips or underpants) was developed with AIR for mobile devices using blitting technic.
It takes now advantage of Stage3D using Starling‘s mod (quick drawing, dynamic Texture packer).
This is a demo of the game running with a solid 60fps framerate. The original game is available on Android Market, Apple Store and Blackberry App World and will support Stage3D when it will come out with AIR3.

Try the game.

You need Flash Player 11 to run the game.

« Enlarge your pants » won the Application Architecture prize at the Adobe Mobile Challenge !

Amazing ! My new mobile game, « Enlarge your pants », just won a special prize at the Adobe Mobile Challenge, not least, the technical one: Application Architecture prize!
I’m so proud of it, and now I need to write a decent presentation of the game in an upcoming post.
Everybody let’s dance !

Enlarge your pants is available on the
App Store
Android Market
and Blackberry App World

L’API Molehill enfin sur le lab d’Adobe!

AnnoncĂ© Ă  l’instant lors du Flash Gaming Summit par notre amis Thibault Imbert
la beta du Flash player 10.3, integrant l’API de 3D Molehill, est disponible sur le Labs d’adobe \o/

Foncez vite mettre Ă  jour votre Flash player, un merveilleux monde en 3D s’offre Ă  vous…
…ou pas.

Car afficher le moindre polygone avec l’API Molehill n’est pas une mince affaire
il vous faudra donc passer par un moteur 3D compatible:

Alternativa8, Yugurt3D, sophie3D, Flare3D, Away4( open source ), Minko, j’en oublie …

J’ai eu le plaisir de tester Molehill, toucher du doigt Minko et de contribuer à Away4,
je dois dire que la première chose qui m’a fait bondir de joie, c’est de ne plus avoir Ă  se soucier
du tri des faces grâce au rendu z-buffer du gpu, une révolution !

have fun

The clone wars

L’accĂ©lĂ©ration GPU que propose l’API molehill, c’est la promesse d’une gestion faramineuse de polygones,
des dĂ©mos impressionnantes affichant des centaines d’objet ou personnages ont dĂ©jĂ  Ă©tĂ© montrĂ©, mais n’avez-vous pas remarquĂ© qu’elles ne prĂ©sentaient gĂ©nĂ©ralement qu’un seul et mĂŞme objet dupliquĂ©?
S’il est possible d’obtenir ce resultat c’est grâce au clonage d’objet, ou plus prĂ©cisĂ©ment de buffer, car le clonage affecte quasiment en rien la mĂ©moire, certes le nombre de polygones que doit dessiner le GPU augmentera mais en gĂ©nĂ©ral il peut en dessiner des millions sans problème.

donc clonez, en utilisant cette technique vous économiserez la mémoire car il y aura toujours le même buffer utilisé pour chaque clone affiché à l’écran.
le gain de performance sera impressionnant !

Dans Away4, un objet 3D est composĂ© de vertices, uvs et d’indices de face.
Lors du clonage ces données sont partagées.
L’objet clonĂ© obtient une nouvelle matrice de transformation qui permettra de positionner toutes ces donnĂ©es Ă  l’Ă©cran de façon autonome.

Dans away4 on procède ainsi:

var sheep:Sheep=new Sheep(new ColorMaterial(0xFFFFFF));
view.scene.addChild(sheep);

var dolly:Mesh=sheep.clone();
view.scene.addChild(dolly);

Ce qui est génial c’est que même les objets 3D animés peuvent être clonés tout en gardant une animation indépendante !
En voilĂ  la preuve avec ma collection de canards ( vivants )

Les sources de cette dĂ©mo sont accessible via le svn d’Away3D 4 « AS3SkinExporterStressTest.as » :)
Le modèle 3D ainsi que ses animations on été exportés depuis 3ds max directement en classes AS3 compatible Away4 via l’exporter AS3SkinExporter.

George Cloné

Molehill API finally available on Adobe Labs

Announced at the moment at the « Flash Gaming Summit » by our friend Thibault Imbert
The beta of Flash Player 10.3, integrating the 3D API Molehill is now available on Adobe Labs \ o /

go ahead quickly to upgrade your Flash player, a wonderful 3D world awaits you …
… Or not.

It’s quite difficult to display any polygon with the API Molehill because it’s a low level API,
so you have to go through a 3D engine supports:

Alternativa8, Yugurt3D, sophie3D, Flare3D, Away4( open source ), Minko

I had the pleasure to test Molehill, Minko and help Away4,
I must say that the first thing that made me jump for joy is no longer having to worry about the polygon sorting, thanks to the z-buffer rendering of the GPU, a revolution!

Have fun!

How to use AS3GeomExporter for 3dsMax to generate Away3D classes

Oh! Hi!

in this script you can see the « Duck » class used like any other classic primitive
AS3GeomExporter is compatible with Away3D, Sandy3D and Papervision3D
download page : http://not-so-stupid.com/open-source/as3-geom-exporter-english/

package fr.nss.tornado {
    import away3dlite.cameras.*;
    import away3dlite.containers.*;
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.geom.Vector3D;
    import flash.display.StageScaleMode;
    import flash.display.StageAlign;
    [SWF(backgroundColor="#FFFFFF", frameRate="30")]
    public class Main extends Sprite {
        private var scene : Scene3D;
        private var camera : Camera3D;
        private var view : View3D;

        private var duck : Duck;

        public function Main() {
            stage.scaleMode=StageScaleMode.NO_SCALE;
            stage.align=StageAlign.TOP_LEFT;
            scene = new Scene3D();
            camera = new Camera3D();
            camera.z = -2500;
            camera.y = -1000;
            camera.lookAt(new Vector3D());
            view = new View3D();
            view.scene = scene;
            view.camera = camera;
            addChild(view);

            duck=new Duck();
            scene.addChild(duck);

            addEventListener(Event.ENTER_FRAME, onEnterFrame);
            stage.addEventListener(Event.RESIZE, onResize);
            onResize();
        }

        private function onEnterFrame( e:Event ):void {

            duck.rotationY++;

            view.render();
        }
          private function onResize(event:Event = null):void{
            view.x = stage.stageWidth / 2;
            view.y = stage.stageHeight / 2;

        }
    }
}

« every button should look very button » Takayuki Fukatsu

Hello world,

voici quelques classes intĂ©ressantes pour le plaisir des petits et des grands dĂ©veloppeurs…

FXGShapeExporter : Shape Export to FXG
par Claus
http://wiki.github.com/claus/as3swf/shape-export-to-fxg
FXGShapeExporter permet d’exporter en XML le contenu d’un Shape, au final il est donc possible d’avoir accès aux diffĂ©rentes Ă©tapes de crĂ©ation du contenu d’un Shape ( Path gradient etc… ).
ça peut servir à dessiner petit à petit un Shape, le déformer en modifiant les coordonnées des path par exemple,
bref c’est fun.

Aerys Monitor
par Promethe
http://code.google.com/p/aerys-monitor/
NON, il ne s’agit pas lĂ  d’un remake d’Avatar ( je sais pas si le remake d’un remake s’appelle comme ça en fait et d’avance je m’excuse si j’offusque quelqu’un ).
Aerys Monitor c’est un peu le moniteur de MrDoob: « Stats » mais en version customisable, from underground to hell, au niveau des infos que l’on souhaite afficher.
« En effectivement », cet outil de monitoring affiche uniquement les infos que vous lui demandez, la position d’un clip, la valeur d’un Integer etc…

un excellent outil indispensable Ă  l’instar du cĂ©lèbre Stats par MrDoob

Here we go !

Namaste,
Et voici venu le premier article de ce nouveau blog intitulé, modestement, NOT SO STUPID car, effectivement, vous y trouverez des choses pas si stupides (mais il faudra bien faire le tri quand même).

Ce blog, un blog, le blog oĂą il fait bon vivre et voir s’Ă©panouir un individu quelque peu utopiste et adjacent : Seraf aka. JĂ©rĂ´me Birembaut.

Je posterai, petit Ă  petit, les anciens articles (REVIVAL) qui ont fait le bonheur des petits et des grands (nicoptere et starmonkey ???) il fut un temps.

Sinon que dire de plus… ah ! mais oui, je suis dĂ©veloppeur AS3 en agence depuis 5 ans et maintenant freelance depuis dĂ©cembre 2009 Ă  votre disposition pour tout projet Flash fun et innovant.

James Cameron (les liens String en bleu c’Ă©tait aussi mon idĂ©e).