20 December 2010

Intercept key event on Android

To exit your AIR android application, you need to call
when user press the BACK button

I see a lot of post on blog/forum which give this line of code
stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyPress);

I must say it doesn't work on every use case.
For example, when I change screen, I remove my main sprite then add a new sprite.
If I do that, I 'lost' the input focus. I had to touch the screen to give the focus back.
Unless someone could tell me how to give the focus back (post a comment!), the solution is to use this line of code:
NativeApplication.nativeApplication.addEventListener(KeyboardEvent.KEY_DOWN, onKeyPress);

EDIT : this works for AS Mobile project only.
You need to make it like this on Flex mobile project.

28 November 2010

Test touch game w/o a real device is a pain

Some weeks ago, I finished my Poulpytris port for Android (using AIR for Android).
It's pure AS3 so I would like to port it to Nokia's FL4 devices

I think it works, but how could I seriously release a game for a device without real touch tests ?
I tried with Remote Device Access but I don't know if my game is slow or if the web is slow ;) Emulate touch throught Web is almost impossible....

So I think I'll keep this version for me until I got, perhaps, a FL4 enabled device (which I doubt since I'll soon receive an Android based one)
Plus I can't release it since I need to package it in a .sisx file and, so, need a valid IMEI....
why don't they support .nfl on S60 devices ?!!!
It's been so long we're asking for... :(

28 October 2010

Flash Builder Burrito available

At last, a Flash builder dedicated to mobile !

This week, Adobe released the beta 1 of Flash Builder Burrito....just when I finished my ANT script to handle Android publication on Flahs Builder 4 ;)

I must say a "Flex mobile project" is very easy to create !
I can't wait to test the "Actionscript mobile project".
They still included their boring help system using AIR but else, you'll be surprising how easy it is the make an AIR for Android application : this article on DevNet will help you (don't miss the videos at the end!)

Note this one is dedicated to FP10.1 output, not Flash Lite so...no Device Central!
It currently supports Android but Iphone/IPad & BBery will be added in a future release.

27 October 2010

FlashLite Phone Browser v1.3

I updated FlashLite phone browser to the new Sony Ericsson API.

For some times now, Sony tab didn't work anymore...sorry for that.

I also added support for newest Flash Lite and touch screen useful info.

Update througt Help > Check for update... or install from the launcher on the right.

21 October 2010

How to produce an app for iPhone/iPad

If you ever want to make a Flash game/app for iPhone/iPad, this post is the main one !
All you need to know in 6 links.

17 October 2010

Does AIR runtime's size matter ?

Before I port my game to AIR for Android, I tried to install the runtime on my buggy HTC Desire.
It's always interesting to read comments on this kind of 'important' release.
Unfortunatly, I mainly read comments on something I thought for the beginning : "what ? 16Mo ?!!" or "so big and can't be installed to SD!"

I still can't understand this size, I just can't imagine how long it would take to download and install it OTA...
Now, imagine this :
a gamer download your 200kb game
since it's an AIR game, the game's install process asks the gamer to also install the runtime
what do you think will be the reaction of the gamer when he will need to download a 5Mb file to play your 200kb game ?
and I can't imagine the nightmare if he paid for your game : "I paid for your game but I can't play because I can't/don't want to install an additional 5mb file"
It's EXACTLY what I thought when I downloaded a Polarbit game which asks to install the common lib for all their games

I still think there is a problem there....

It seems there is a trick to install AIR on the SD card but for developers only, not the common gamer!

15 October 2010

Who want to sponsor a mobile game ?

Like I said, we submitted a game to Flash Game License contest.
We're happy to say it's one of the 150 winners !

I choose Flash Game License because I (still) don't know the sponsor-way to make some money. As far as I know, the main site to start on sponsoring is Flash Game License so...
Sponsoring is common for Web games but not for mobiles games (I never found a company to sponsor flash lite games!). I hope there will be there a new way to make profit.

So, we now have a game ready to be sponsored* !
This game will be available on the coming soon Adobe site dedicated to Flash mobile games so it's here your chance to get maximum exposure !

Penguinoid is a fun cute game, just what a player looks for on mobile.

And, moreover, we hope we'll be able to publish it soon on the Android Market thanks to AIR2 for Android!

*link only available to register sponsor

12 October 2010

Back to Nokia ?

I was very busy these last months trying to develop for Android Froyo.
It was a real pleasure to, AT LAST, develop using AS3 !
But I must say it was painfull to handle multi res, multi input, etc....
It was strange because it made me remember my first tries with Flash Lite 2.0 with a MAJOR difference : I was able to handle ANY device screen size on Flash Lite 2.0

I'm pretty sure we'll meet a LOT of problems we almost solved on Symbian in a near future :
- screen size
- screen orientation
- device os version (Froyo doesn't mean FP10 every times) with a come back of WURFL ?
- system call (need to test AIR as soon as possible for this)
- size (look at FP runtime weight...and AIR runtime weight)
- os update breaking previously working app...and so handling update OTA

At the same times, Nokia is releasing Symbian^3 devices with FLite4 support (AS3!) and drop the OVI Publisher cost...
I think it's time for me to came back to a platform I knew a lot :)
I wonder if I could easily port my AS3 game to FLite4.....

perhaps it's because the roadmap of Android isn't clear enougth or because my HTC Desire keeps crashing for nothing...or because it's clearly interesting

If at least I could win some bucks at Flash Game License compo, I'll be able to pay my Android Market registering cost to (try to) make money with AIR ;)

02 October 2010

Embed assets on Actionscript projects

An Actionscript project is, like its name involve, a pure actionscript project.
No .fla file is needed.....so how do you create your asset ?

Several ways
- draw it by code using graphics
- load external file (png, swf, etc...)
- embed the file as a class (Flash Builder only)

The cons of embedding is extra bytes the Flex SDK use to handle embed data throught SpriteAsset, MovieClipAsset,etc...

The basic way to embed asset is

private var png:Class;
var tt:BitmapAsset = BitmapAsset( new png() );
addChild( tt );

//for SWF asset
[Embed(source="./assets/assets.swf", symbol="Bulle")]
private var bulle:Class;
var tt:SpriteAsset = SpriteAsset( new bulle() );
addChild( tt );

so, what if you want if bulle is in fact a Bulle class not the raw Class ?
Using this way, you can't do anything...
you can't cast, you can't access to Bulle properties and functions...nothing!
bulle is a closed asset

Thanks to a comment on a post of Bit-101, a better way to embed exists :

import flash.display.Sprite;

[Embed(source="./assets/assets.swf", symbol="Bulle")]
public class Bulle extends Sprite
public function Bulle()
trace("Bulle created");

This method is, for me, a great value because the class code isn't included in the assets.swf file !
It's mean
- my graphist just needs to create her asset and assign it a classname
- the class doesn't need to be coded before the asset to be created (and stop the fight "code or gfx first ?")
- the asset could be used on several games with different code (!marvelous!)
- any extended classes will inherit the embed asset
- no need for SpriteAsset, MovieClipAsset,etc... ex: with the 'bulle' asset below I produce a 20708bytes file using standard embed and a 10586bytes file using optimized one (10kb won!)

Of course, you could do the same for PNG/JPG/GIF
public class Png extends Bitmap{}

and MP3
public class Beep extends Sound{}

04 September 2010

Shared Object debugging folder

Today, I spent some times trying to delete a shared object.
The standard way is to look in any of these folders
But I was unable to find the shared object of the game I'm actually debugging!
No %APPDATA%\Macromedia\Flash Player\#SharedObjects\[random code]\[domain]\[path]\[game name].sol ...

Well, in fact yes, I finally found it.
It was located in
%APPDATA%\Macromedia\Flash Player\#SharedObjects\[random code]\localhost\[path]\[object name].sol
which make sense...

29 August 2010

Debug a Flash project using Flash Builder and Device Central CS5

Yes, this time we don't need Flash CS5 to build/debug...unless you really need its classes.

Update Flash Builder 4 to support Flash Player 10.1

On Flash Builder, create a new Actionscript project.

Optional (ex: if you plan to use assets dynamic loading and not [Embed] metadata tag or others Flex SDK objects)
Remove the Flex 4.1 SDK lib
Add 3 SWC folders
- ${FLASHPRO_APPCONFIG}/ActionScript 3.0/libs
- ${FLASHPRO_APPCONFIG}/ActionScript 3.0/libs/11.0
- ${FLASHPRO_APPCONFIG}/ActionScript 3.0/FP10
I personnaly still go with Flex SDK, the use of [Embed] is such a great thing...and Flex Hero is coming!

Update Project compilation setup to only create HTML (no version check, no browser history)
Edit html-template\index.template.html to
<html><head /><body>Debug on</body></html>
Delete the no longer needed html-template\swfobject.js

On your main AS file, add the SWF metadata tag (edit it to your need)
[SWF(width="480", height="800", backgroundColor="0xFFFFFF", frameRate="25")]
Build project to generate the bin-debug\ files

add an External tool with Run > External Tool > Open external tools Dialog...

Add a new program (DC_<projectname> for exemple) with these info
In Location, Browse filesystems form the file Adobe Flash CS5\Device Central\adcdl.exe
Define Working directory to ${workspace_loc:/<projectname>} if you load external assets
In Arguments, add the magic string "<mobileSettings><testDevices><testDevice id=__mobile_ID__/></testDevices></mobileSettings>" and the full path to the generated swf file (second arg)
see method1 for more information on __mobile_ID__
ex :
"<mobileSettings><testDevices><testDevice id=1494/></testDevices></mobileSettings>" ${workspace_loc:/<projectname>/bin-debug/<file>.swf}

Now, ask for debug (F11)
close the browser it opens
launch the External tool
You can now debug

Site notes
I don't need a batch file anymore since Device Central doesn't crash if I only define the mobile ID (no more selected or <contentType />). If you had problem with it, jump back to the debug.bat usage from method 1.

28 August 2010

Flex Hero SDK available

The First Hero Stable Build is available on opensource.adobe
I'll try it next week, perhaps it will help me for one of my entries on a constest ;)

08 August 2010

HTC Desire upgraded to Froyo !

Last week, while I was waiting for it on September, HTC released the Froyo update.
They couldn't make me more happy!
I spent my sunday on testing and checking.
Good news, all the bugs I reported on HTC's previous Flash Player are gone (Accelerometer is finally here!)

I only found 2 problems, very boring :
- the phone doesn't see an accelerometer based app like an "active" app and so shut down the screen after some times
- you CAN'T force screen orientation...unless using the tips from Adobe Flash Sizing Zen which are ugly hacks, the same used in Symbian's phones which haven't the special FSCommand2... Unfortunatly, my game is on Portrait Mode, the hardest one to handle ;)

01 August 2010

Bugs in HTC's FlashPlayer

Working on a game for the contests, I found some problems in HTC own version of Flash Player, under Android 2.1 (waiting 2.2)

stage.displayState = StageDisplayState.FULL_SCREEN;
will break the player, resulting in an empty swf.

when requesting some stuff using URLLoader, the User Agent received by the server isn't
Mozilla/5.0 (Linux; U; Android 2.1-update1; en-gb; HTC Desire Build/ERE27) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17
mozilla/5.0 (x11; u; linux i686; en-us; rv: gecko/2008100818 firefox/3.0.3

Accelerometer unsupported

Capabilities.touchscreenType is undefined

Touch event unsupported and gesture makes player hold

0.5s delay on mouse down (you must feel a little "bump" on your phone)

31 July 2010

Android Fragmentation

I talked about it last times, Android's fragmentation is a shame because your mobile will be updated to the last android version only when manufacturers want to.

I found an 'official' reply of Google about this problem during Google IO. Something like
Sorry, it's a shame but we can't do anything about this

So bad... :(

27 July 2010

Debug a Mobile Flash project using Flash Builder, Flash CS5 & Device Central CS5

Despite the poor bridge implementation between these 3 products, I HAD to find a way to debug Flash 10 mobile code using Flash Builder. Debugging using Flash CS5 is just insane ;)
I finally found 2 ways to do this, based on the same discovery but dependant on the project type.
I'll first explain for a Flash professional project, ie based on a .FLA/.XFL file

the Flash part
Create a Flash project using the previous method (and throught Device Central)
On Flash CS5, select File > Publish settings
on Flash tab, be sure to check "Permit debugging"
On Flash Builder, publish the project (Alt+Shift+F12 or the first Flash icon in toolbar)
You now have a Flash professional project on Flash Builder, which generate a SWF with debug data but doesn't launch Flash CS5
(reminder : don't forget to uncheck the option before deployment !)

the Device Central part
Create a debug.bat batch file on your Flash project folder with this line :

"C:\Program Files (x86)\Adobe\Adobe Flash CS5\Device Central\adcdl.exe" "<mobileSettings><testDevices><testDevice id="%1" selected="yes"/></testDevices><contentType id="HTMLembedded"/></mobileSettings>" %2

Edit Flash CS5 folder path if needed and remove any line break (it MUST be one full line)
This is the command line (used by Flash CS5) to open an SWF on Device Central CS5 with a specific mobile
%1 is the first parameter and is the mobile profile ID
%2 is the full path to the SWF file
open C:\Users\<you>\AppData\Local\Adobe\Adobe Device Central CS5\Devices\<your_device>_Main.xml to get the mobile profile ID
for example, the Nexus One id is 1494, retrieved from Google_Nexus_One_Main.xml :

<adp:deviceProfile xmlns:adp="http://ns.adobe.com/devicecentral/profile/" id="1494" modelVersion="3.0" ....>

Still on Flash builder, add an External tool with Run > External Tool > Open external tools Dialog...
Add a new program (DC for exemple) with these info
In Location, Browse workspace up to your debug.bat
=> this will result in something like ${workspace_loc:/<projectname>/debug.bat}
Define Working directory to ${workspace_loc:/<projectname>} if you load external assets
In Arguments, add the mobile ID (first arg) and the full path to the generated swf file (second arg)
=> this will result in something like 1494 ${workspace_loc:/<projectname>/<file>.swf}
Congratulations! You are now able to open the SWF on Device Central directly from Flash Builder!
(reminder : you'll need one external tool per Flash project since I didn't find a way to make it dynamic using variables)

The final tricky part
Import this Flash Builder project : DebugLauncher.zip
Build the project, which will create the needed files in bin-debug
On project properties, add a new Run/Debug > Web Application
Do not use the default value (bin-debug\DebugLauncher.html) but bin-debug\fake.html
fake.html is an empty HTML (ie w/o Flash) so if you try to debug DebugLauncher, Flash Builder will be in debug mode, waiting for a Flash with debug informations to be loaded.
(reminder : you'll only need one DebugLauncher, not one per Flash project)

Mix the 3 parts
Always open these 2 projects (DebugLauncher and <your fla project>)
When you want to debug, publish your flash (Alt+Shift+F12) -> this will generate a debug swf file
open DebugLauncher.as in editor (mandatory else it will try to debug your flash project file)
launch a debug session of DebugLauncher -> this will put Flash Builder on debug mode
close the browser this will open
Launch the external tool -> this will launch the swf file on Device Central
Close Device Central when finished (mandatory since Device Central finally crashes when you try to launch while it is alread launched !)

Final notes
The process is a hack, it's not that easy to handle and you need to go throught 3 steps to debug (against one : "debug") but it's, for me, easier and less buggy than the 'official' process
I tried to make a better external tool but I wasn't able to find a way to retrieve the full swf file from the current project.
External tool location and arguments can't use double quote, so I had to use a batch file....sorry for Mac users but I don't know how to do this on Mac (using a shell?)
EDIT : find a way on Actionscript project mode

Coming soon See also the Actionscript project way

26 July 2010

Flash game portals ready for Froyo ?

From Emanuele, an interesting review of the Flash game portal ready for Froyo.

I was so happy that I tried myself on the HTC Desire and, suddenly, the dream disappears : almost every game avaible on ArmorGames are old flash web games, not optimized for mobile (using cursor, small text, drag'n'drop! ....)

It's everything but not serious!
"He! look! We have a lot of games for mobile!...well...a lot of games which kinda work on mobile..."

Hopefully you'll find a lot more games in end september, thanks to the current contests...

How to use Flash Builder + Flash CS5 + Device Central CS5 ?

To code on Flash Builder, design your asset on CS5 and test on Device Central CS5, you need to follow these steps from DevNet

Just keep these in mind to make a DeviceCentral valid file
To create a new file, use File>New and select 'Adobe Device Central' template, then select your mobile targetted (Nexus One)
Be sure to check Debug>Debug animation>in Device Central (yes, you'll need to check it EVERYTIME you'll open the fla....)

The first time I tried, I was unable to make it works on my own computer :
Flash CS5 knows Flash Builder is available (since the dialog box to create the document class name has the Flash Builder option) but it is unable to open it.
It also tried with Flash Builder already opened without success.
I retried several times with success but I met a lot of the problems I list below....
This method makes it easier to create the fla + project + document class but, unfortunatly, it breaks something else :(

Problems you'll probably meet:
- If I follow these steps one by one, sometimes it works sometimes no. Why ? I'm pretty sure it's because FlashCS5<->FlashBuilder bridge is buggy as hell!
- the SWF is launched 2 times on DeviceCentral => close everything and retry
- FlashBuilder keeps coming on front while debugging => close everything and retry (sometimes only DeviceCentral is enougth)
- Flash Builder opens SWF on projector not Device Central => launch the debug at least one time from FlashCS5 and check Debug>Debug animation>in Device Central on Flash CS5 (it seems FlashCS5 doesn't know if a FP10.1 file is for mobile or web)
- Flash CS5 complains my Fla doesn't contain AS code => check fla document class
- Flash Builder keeps trying to 'Publish Flash professional file' on Progress window => Flash CS5 doesn't inform Flash Builder back (who say buggy?)
- When debugging using breakpoint, debug session occurs on Flash CS5 not Flash Builder => I didn't find a workaround on this one, hC)las :(
- Why not create the fla from Flash Builder ? => I would be very interested in finding how ?! Why Adobe doesn't let us create a fla with correct document class is a mystery for me...
- DeviceCentral crashes often when I launch debugging => yeah...I know :(
- if you don't follow this method and try create the project yourself, you'll need to add link to the classes yourself

Personnaly, I was REALLY waiting for this feature....but I don't see any difference with the several hacks available for Flash CS4 (using JSFL or Ant).
Even worst! you can't adjust it for your own needs!

24 July 2010

When your Android phone will support Flash 10.1?

From Computerworld, something like an up-to-date list of the future update of each Android phone to Froyo.

This is linked to my previous post about contests : there is actually NO release date of Flash 10.1 (via Froyo) for each Android phone.
This point another problem about Android : Google lets phone manufacter (even HTC!) make their own OS, or at leat GUI, BASED on Android.
It means everytime Google launches a new version of Android, these manufacters must patch their own version....which mean times and money.
After the screen fragmentation which came with Android 2.0, we now have the OS fragmentation...very bad!
The solution will be a classic Androis OS for every phone (no HTC sense nor Motorola Sensor) but, in that case, what will make the (marketing) difference between a Sony and a HTC ? What will make you buy a Motorola over the latest Samsung ?
Design, power, memory, dedicated Android apps,... ?
I doubt it will be enought for marketing...(only Apple could succeed to sell a phone only using its design)

I personnaly bought a HTC Desire over the Google Nexus One because of HTC Sense (UI is VERY important for my wife)....it seems developer should ALWAYS buy one Google phone to be up to date...
So sad I don't live in USA to get free Nexus One at some Adobe event :(

22 July 2010

Optimizing Flash 10.1 swf

From Thibault, an eseminar recording about optimizing Flash for FlashPlayer 10.1 (memory, weight...)
A must seen if you want to produce/convert optimized Flash game

Contests to move Flash web game to mobile

I think you already knew, but there are actually 3 contests supported by Adobe.

It seems Adobe is ready to spend some money to answer to Steve Jobs :
"There are more games and entertainment titles available for iPhone, iPod and iPad than for any other platform in the world"

"Flash was designed for PCs using mice, not for touch screens using fingers"

I was pretty busy fighting with Flex4 and LCDS these months, so I'm more than happy to spend some times on Mobile games!

2 things to keep in mind :
1- It's for Flash Player 10.1 and, right now, there isn't a lot of devices updated to Android Froyo yet (apart Google Nexus One) so it will be hard to test on real device. On Kongregate, you could even increase your chance to win if you release an AIR version...using the private beta one available (read 'not public released yet'
I don't know why Adobe doesn't wait 2 or 3 months more to launch these contests...the egg or chicken dilemna ?
2- It's AS3 (at last!) and, right now, Flash builder 4 is the best tool to code on AS3...but, unfortunatly, the so waited "Flash Builder integration" in CS5 is very hard to use (it's more a hack than a feature!)

18 July 2010

Pro Android Flash Games books

It seems a book related to AIR games on Android is coming soon.
Pro Android Flash Games: Developing Flash Game Apps for Android-based Smartphones and Tablets

Author : Scott Janousek, Jobe Makar
Release date : December 2010

More related to RIA (apps), another book will be released one month before
Pro Android Flash: Building Rich Internet Flash and JavaFX Apps for Android Smartphones and Tablets

Author : Stephen Chin, Oswald Campesato, Dean Iverson
Release date : November 2010

01 May 2010

HTC Desire incomplete UAProf ?

Since I finally won't buy an iPhone for my wife, I'll buy her the HTC Desire.
Everywhere you'll see it's Flash Lite 4 enabled (even Mark said so), but I was unable to confirm this using its official technical details nor its uaprofile.
WURFL to the rescue ? ...nothing on the FLite part :(

It will be again hard to detect Android Flash Lite 4 enabled phones it seems ...

Forum Nokia Online Flash Lite Packager quick review

From Alessandro, the Forum Nokia Online Flash Lite Packager is back.
It's not exactly the same (you can't package to NFL nor choose the S60 version) but you can download the generated source and choose you own UID.
I got a 404 Error (doh!) trying to generate a test sis but I was able to download the source.
I find one MAIN problem :

I already fight with this problem so, for now, I'll still use my own packager.

Did Adobe miss something in 2007 ?

I first would like to be clear:
I know you can see my posts like rockets against Apple.
Yes, a lot of things make me upset against Apple.
Yes, iPhone has a very great UI, so much that I was about to buy an iPhone for my wife...but I canceled it yesterday (boycott mode on)
But NO, I'm not a PRO Adobe, I'm just trying to choose the best path, as a developper, I must follow in the coming months/years.

For what could be seen as my own moral, I can't follow Apple path, sorry.
But, at the same times, I'm really asking myself if Flash is the future.
If you read some of my other posts, you'll see how much I hate to fight with bugs on Flash Lite, how much I dislike to be unable to talk with the OS and how I'm afraid when Adobe drops the low phones market to focus on smartphones only. (And I won't talk about the heavy AIR for mobile).
I already said "flash on every screen" was a dream. It recently became "develop one, release to many" which is also a dream, from my point of view (close to Steve Jobs' point of view about optimized code I think).

And so I read this post on Wired : did Adobe really miss the iPhone train 3 years ago ?
Like every post on the web recently, it's not neutral since Corona competes with Flash. But it should be something I must be aware of.
If I focus on Flash technology, I must know if Adobe decisions are good or not.
It's not the first time someone critizes the Adobe strategy about mobiles.

I personnaly like Flash for its ability to make something great really fast.
But I personnaly think Android is the future. Flash will be soon on Android so we'll see how it works, even if I already started to develop on Java for Android.

So, finally, will Flash become a prototype tool ? If so, I really think Adobe should start to think about code export (Flash to Java, Flash to ObjC...) but I read a post on an Adobe blog (sorry, can't find the link) it isn't an option.

2 years ago, I was waiting for Adobe to make an useful Flash mobile solution. Flash Lite 3 was near to succeed...
I don't know what is Flash Lite 4 (apart to be AS3 based, at last) and I know Flash 10 won't be a solution for my main target : phones, not smartphones.
Perhaps Adobe is right : smartphones are the future. But, for now, I'm making money from Europe and India's gamers, on standard phones.

So, again, wait and see.

29 April 2010

Steve Jobs is still trying to kill Flash

On Apple website, Steve Jobs is still trying to kill Flash.
But, times after times, it becomes more and more stupid.

The first part of this hate-letter is the perfect introduction of what you'll read after : perfect non-sense! "Hey Adobe, we almost raised you so ... shut up and call me Dad/God!" ;)

We see here Steve Jobs has one and only enemy : Flash.
How can you honestly say Flash is closed and IPhone is open? Seriously...I still don't realize he actually said this !
I really like how it uses the delayed date of release of Flash 10.1 for mobile.
And for video, I can't read another word from him when I saw QuickTime.
But be cool, every website will soon reencode their videos to H264 since Steve Jobs asks it.
And it's not more honest to say actual web games won't work on touch screen....Of course, they won't work...they were MADE for mouse based play!
Let us me make games for touch based systems and you'll see....
(on this point, I'm actually testing a LOT of touch games and I could say a very few are really enjoyable...)

So, skip all these parts and jump directly to the 6th!
It's certainly the only interesting one (if you forget it's from Steve Jobs) because we can really gain something from it (the previous ones were only Adobe-Apple war rockets)
In fact, it's more than just Steve Jobs asking us if Flash (for any platform) is REALLY interesting....but at this question, I'll return "and what about Java ?"
Are you for middleware or not ?
Are you for develop one and release everywhere ?
Are you for optimized code or for 'work-everywhere' code ?

Look at video game which are developed to be able to release a PC, PS3 and X360 version from the (almost) same code...they are slow and far to be optimized...
It reminds me the time of MSDOS, with the 3DFX version of the game or the Gravis version....everything made in pure ASM.....

Interesting...really...I think everyone should think about it BEFORE to make a choice...
Else, you can skip this stupid letter and go back to what you LOVE to make what ever it is, Flash or IPhone games, I don't mind. Just take pleasure to make them.

18 April 2010

Flash Lite 4 AS3 reference

As stated in a comment on my previous post, the FL4 livedocs is available from 1 month now.
While testing Flash Builder 4 (I won't comment here about the good and bad thing of this product), I noticed you can filter the AS3 reference to one or more runtimes.
Flash Lite 4 is one of them !
Good thing if you dev in Flex but want to port it to FL4 (I know, it should be Slider's job).

So, we now have all the docs....We're now waiting for Slider and FL4 based phones (HTC Desire?)

02 March 2010

A frenchy in San Francisco

Sorry, I couldn't miss this one : the infamous Thibault Imbert will move to San Francisco to join the Flash Player product management team!

Congratulations and good luck to him

Flash Lite 4.0 ?

Last week, while I was downloading the HTC Desire alpha ROM, I read Mark post about it.
the HTC Desire ROM (shown below) is running a new alpha version of Flash Lite that supports AS3

Some days later, Alessandro shared this interesting post about the several versions of Flash available on Android.

It's now clear that a new Flash Lite is coming 'soon'.
What is it (apart to support AS3, alleluia) ? For which platform ? Available throught CS4 or CS5 ?
Like I reported previously, it's strange how Adobe isn't sharing the information on FLite 4.0...Perhaps to avoid the confusion with FP10.1 ?

I only hope one thing : to see FL4 (and FP10.1) working on Android emulator!
Actually, apart an old S60 SDK which let you play FL1.1, I never found an emulator (nokia, se, android,...) able to play FL files

and no, unfortunatly, the HTC Desire ROM doesn't work on Android emulator, since it's not for the right ARM processor :(

23 February 2010

Why the Nokia OTA isn't a great feature

I recently got a N97 at work.
I won't talk about how I was deceived by the S60 5th UI/UX (if it was mine, I'll be happy to change it for an Android or even an Iphone!) but about a feature I first thought was a great improvement : OTA firmware update

We know how much this feature is needed to solve the problem we, FLite developers, had with the buggy N95 and 5800XM.
"No problem, just update your firmware and it will rock"

Sure. But it isn't that simple, it's even IMPOSSIBLE for some people...like me :(

Currently, the N97 firmware available in France is the 21.0.045 (from http://www.nokia.fr/support/logiciels/mise-a-jour-de-lappareil)
I have the 11.0.021 so I should be able to update it to fix some of the issues I had (what is this pityful sensitivity ?! what is this pityful UX ?!)

Unforunatly, I tried OTA and the Nokia Updater without success
Oh, sorry, actually it updated something : all the games I moved on the "Games" menu cames back to the "Applications" menu...GRRRRRRRR!!
So, in fine, it didn't update. Why ? it seems it's because my phone is locked to SFR (Vodaphone) and the firmware too!
So unless SFR/Nokia released a SFR dedicated 21.xx firmware, I can't update...

I really hope I missing some point but, anyway, the real problem is : if I was unable to update my phone (for whatever the reason is), do you really think a 'common' user would get a better result ?
I doubt....and ever worst, he thinks he have the latest version !

So I have to admit I can't rely on the available firmware and tell 'update your phone to play my game' : I had to make my game works on ANY firmare version.

Some month ago, people talked about what is the better : FL update by firmware or by AMP. I'll really miss AMP !

Lesson learned.

Nokia API Bridge

Another thing I missed is the Nokia API bridge.

When I read the presentation of the technologie, 2 things came on my mind :
Capuchin and KuneriLite

KuneriLite adds functionnality throught plugins
Capuchin "enables developers to bridge the Java™ ME and Adobe® Flash Lite™"
Nokia API bridge "provides a plug-in mechanism that can be used to make features of Symbian and third-party native Symbian applications available to Java applications, web apps, and Adobe Flash Lite content"

You can't create your own plugin on KuneriLite
YOu can extend Capuchin throught the Service API
You can extend Nokia API bridge throught a Plugin API

KuneriLite supports any S60 phones (?)
Capuchin supports Java Platform JP-8.4 SE phones
Nokia API supports any S60 FP1+ phones (ie FL2 phones)...even SE, Samsung..?


Flash 10.1 for mobile

MWC ended and Mark Doherty made today a resume of all the great announcements made by Adobe (or others) regarding Flash on mobile....but no Flash Lite 4 ?! is it dead ?!

To that, I'll also add 2 posts from James Wards
The first one show an OPTIMIZED version of Tour de Flex for mobile
It's important to notice the "OPTIMIZED" word.
I read all over the web several comments like "ok, Flash10 and AIR are on mobile and so what ? do you REALLY think my web app will be useable on a small screen ?"
I personnaly think Adobe isn't clear enought on this point, it's more like if they say "your app will work AS IS on mobile", which is true...but which UX ?!
For ex, if you look at the video of Michael Chaize and Thibault Imbert , you'll notice how Michael got some problems to click some buttons.
He replied with a very interesting point : "the click area must be at least 34pixels radius"
Hopefully, as Alessandro pointed out some days ago, Adobe released a lot of documents on Mobile tips on the DevNet...which I didn't read yet

The second post is about performance : the "WOW!" effect on mobile !

15 February 2010

AIR on Android

See you in 2012 ;)

14 February 2010

WillNa SIS packer v1.1

2 small fixes :
- support network access (need manual edit)
- use src_prefix and not app_name for resource file name

With AIR2.0, perhaps I'll be able to make a more user-friendly version soon...

05 February 2010

BUG : onUnload not called on Wii Flash Lite connection

Step to reproduce this bug

I got it playing with the Wii, so it should be tested elsewhere too...

this.pressedDelegate = Delegate.create(this, buttonPressed);
Wii.getRemote(0).addEventListener("buttondown", this.pressedDelegate);
private function buttonPressed(event:Object):Void {

at this time, onUnload isn't called...very annoying since I usualy clean my listeners here !

To be more precise:

A SWF calls a function of my SWF via LocalConnection
this function callbacks the listener added
the listener calls gotoAndPlay

so it's perhaps because it's in the LocalConnection chain or because of Delegate ?

04 February 2010

Wii Flash Lite - quick debug

A small tip to help you debug your Flash Lite app/game :

getURL("javascript:alert('debug this!')");

It will open the Opera's alert dialog with any text you want

Android is slowy but surely coming after the iPhone

It's not an opinon, it's the number which said that

Of course, it's the based on the number of connections but, he!, it's what's we're looking for : connected people !

I still don't understand why Motorola's Droid is such a success...
perhaps because people liked the Razor ? and so Motorola ?

GetJar Number 2 behind Apple's AppStore

Like revealed in his today's interview, GetJar's Vice President Marketing thinks they'll hit 100 millions download per month soon.
Did I already say GetJar is THE place to release your apps/games ? ;)

He also talks about SE's Play Arena : free content are GetJar's !
I now understand why I got a lot of hits from SE mobile with Poulpytris.

Interesting, Spring (in USA) is also using GetJar since 2 weeks now.

I'm surprised with their recent contract with EA....
EA is a giant, if GetJar is full of EA's demos, it will be hard to find our place....
which is confirmed by "some of [EA] free trial games are in top 10 most downloaded apps"
Imagine GetJar full of Konami, Capcom, EA, Sega and others demos : they'll be no place for small games...
But, after the appstors, it's perhaps the beggining of a big move on the mobile market...It's also perhaps the reason why the price of games is on every company interview this month

03 February 2010

Wii Flash Lite - full screen size

While debugging my Poulpytris port (still in alpha stage), I found another strange thing.

Although screenResolutionX returns 640 and screenResolutionY returns 800, the fullscreen size is different.
Even worst,it could be different according user 'Toolbar Display' settings.

(toolbar option on a Wii...in french)

Here you have 3 choices
- Always display toolbar (default)
- Auto-Hide toolbar (show toolbar on rollover toolbar zone)
- Button toggle (show toolbar on demand with button1)

Using window.innerHeight & window.innerWidth, I found the final fullscreen value
- Always display toolbar = 800x508
- Auto-Hide toolbar = 800x608
- Button toggle = 800x608

So basically, to handle the 3 modes, you have to follow these steps
- create a 800x608 FLA
- design your UI with nothing 'important' on the last 100 pixels
- remove any margin with
<body style="top:0px;left:0px;margin:0px;">
- place on the first image the magic
- using wiicade, on initializeWiiCadeAPI, replace the Flash detection (assuming you have one and only SWF on screen) with
var tags = document.getElementsByTagName("object");
var objectFlash = tags[0];
objectFlash.height = window.innerHeight;

The Flash is so resized to 508 when needed.
Why not used a 800x608 on all cases ? to avoid the scrolling with B button on the first case!

Unfortunatly there is one 'feature' we can't handle on every settings : the scrolling.
I don't know why but, in this last version, Opera added a very annoying feature, activated by default: horizontal margins

I really don't understand the meaning of this, perhaps for some kind of TV screen, but anyway, with this option, Opera keeps a 10 (20?) pixels margin before and after the HTML document.

This extra zone is inactive, input isn't handled there.
So very annoying and, I repeat, ACTIVATED BY DEFAULT.
Plus, you can't detect it, to show an alert or similar.
Since you can't intercept B button, you can't desactive scroll and you stuck with this, unless the player desactivated the option...which means almost never!

If someone find a hack for this (or a way to detect the option), I'm very interested in!

Oh, I also found a bug on Opera :
if you select Auto Hide toolbar, it automatically zooms to 120%
also annoying since I hook the zoom button : no way to zoom back to 100%

31 January 2010

Adfonic ready to go again !

2 weeks ago I published Poulpytris' results.
I told I got some problems with Adfonic latency.

As usual, Adfonic's team was quick to contact me.
They had "5 times more traffic in the fourth quarter of 2009 than the third!"
Good news!
Unfortunatly, they had to install new servers to handle this...but no fast enought for some publishers...like me !

It's now fixed and the reply time is very fast...so fast that it is now the fastest of the 4 networks I'm using!

See you in July for the 6 months result analytics ;)

The 'new' GetJar

It took me some times, but now, here it is : my opinion of the new GetJar website.
It's a very hard one but I think there are some majors problems existing that GetJar must work on!
In October'09, GetJar switched from a very simple website to an App Store, following the move.

This change was good...and bad for developpers

The good :
- Flash Lite category is no longer existing, we are now mixed within the other categories. (for me, it's a good change!)
- Android support. Unlike the Apple's AppStore, Google isn't the only one allowed to distribute APK file
- It's easier to navigate (with some major limits, see below) and isn't 'for geek only'. (the previous layout missed some Wahoo! effect)

The bad :
- If you don't use the menu on the top, you can't access more content (only the top10 of each category and the sponsored apps)
- The description layout used is so hard to use (since the CSS doesn't work the same way on IE/FFox/Safari...) that you finally use raw text or a single picture....and so you're not indexed by Google or others search engine. It's very surprising from GetJar since they made a webinar to explain how to attract more download making a richest description.
- The search isn't working : try to search for Poulpy...Poulpytris won't load!
- The category filter isn't working : if you're on "Puzzle & Strategy" for example, you can't filter for the newest on THIS category, only on "Games".
- The category filter is very limited : only 'Popular' (wich doesn't mean downloads number! but something similar to the "Best games"), 'Newest' (but unuseful for the previous reason) and 'Supported'....not way to filter by 'Rate'. I would love to see an advanced search to find the game from the latest month with a 4+ rate!
- If you're not on the "Best games" (the new "recommanded by getjar" filter I assume), you download rate will drop fast! Two reasons : you had to pass 3 pages to access to the "Browse for more games" button and for the 2 previous reasons. The side efffect is that if you are on the "Best games" your download rate is awesome! I was lucky enought to be on the 2nd page and I earn in 1 week what I earnt in one month!

The mobile part also changed...and there is nothing good !
- Search doesn't work better
- Mobile auto detects doesn't work : I sometimes opens the PC version while using Opera Mini or it doesn't recognize my Nokia 5310. In that case, you could only choose your brand model (and for Nokia, you only had access to J2ME file!)
- You didn't figure the menu is on the top (since it's white on black)
- same filters (but working!) when you successfully find how to acces the categories!
- to make it short, if you don't know what (the app name) you are looking for, it will take you ages to find it

So the new GetJar AppSite is surely a good news but I see it like an 'unfinished' product...you could even find some 'beta.www.getjar.com' links ;)
Until GetJar is only looking for a way to make money with the top10 and Sponsored apps, I hope they'll improve it soon because GetJar is still THE site to upload your apps/games!

note : I'm talking about the public area, not the developper area which improved also ...but I didn't use it enought to write a post yet

iPad : the revolution..but not the one we were waiting for!

Last week, Steve Jobs made another of these geek presentation, wearing jeans and basket.
Until you lost your internet connection, you know what I'm talking about : the "so waited" iPad.

now, this is the kind of reaction you have all over the web

I won't talk you much about the lacking Flash support because, this times, it's not the main problem.
If you read my post about the lastest Ads mobile networks bought by Google, Apple and Opera, you knew what I'm afraid of...and Apple made a new move on this step.

After Microsoft which tried and failed, Apple is actually trying to make an AppleWeb...
Like they're doing with their AppStore when they control what you are allowed to install, they are trying to control what you are allowed to see.
No USB to transfert data, DRM everywhere, no plugin to see what you want (PDF?), video and music by iTunes again...

So the revolution is here...Apple made a public presentation of a system to control the information. It really fears me!
I'm not alone and even if it's from an Adobe employee, I'm totally agree with him.
I'm not for the OpenSource everywhere but we can't let ONE actor decides on what is good for us.

I'm trying to think "he! it will be a failure, it's so dumbass" but when I see the success of the iPod and iPhone 1 & 2, I'm not sure...
When I saw how 'professional' journalists claims how much the iPhone is a revolution, forgetting all what had been done by Nokia, I'm not sure...
When I saw how iPhone maniacs are...maniacs, I'm not sure...
When I saw how some of these 'extremists' iPhone maniacs are able to say "great! they are cleaning the web of the flash ads! HTML5 powa!!!", I'm not sure... (see Lee's blog for this, it seems they are all there!)

My only hope is that people were waiting for a real revolution, the next step of the netbook and so won't see a reason to buy a 'big' iTouch....

To everyone looking for a "good" tablet, browse Scott's blog...a lot of useful (and not locked) systems exist like the litl

24 January 2010

2009 mobile gamers data

Today's Gamers released free graphs on consumer data.
The interesting thing is they made special graph for mobile gamers.
Visit their website to find more data on your countries (USA & europe)

20 January 2010

Opera bought an Ads network...too

Today, Opera announced they bought AdMarvel for at least 8M$

After Google with AdMob and Apple with Quattro Pro, it's the 3rd 'browser maker' which acquire a mobile ads network.

Now, think a little :
you BUY an Android's phone, an IPhone or any other phones (which support Opera) to see ads and so they earn money...
or, if you prefer, they SELL their products to EARN revenue from their ads...
you pay to help them earn more and more...funny now ?

It's like if Ford was selling a car which needs a special gazoline...made by Ford

17 January 2010

Poulpytris results after 1 month

Poulpytris was released one month ago so, it's time for some analytics !

The main difference with Poulpy's Game is the ads feature : Poulpytis shows up to 4 ads on a 'sponsored by' screen at startup.

Poulpytris is hosted on Playyoo, GetJar, Voeveo, Mobango, Mobile9 & Phoload

In one month, because (?) hosted in more sites than Poulpy's Game, it definitly beat Poulpy's Game result

Playyoo : 324 (web) & 88 (premium)
GetJar : 5796 (swf), 3954 (sis) & 1430 (cab)
Voeveo : ?
Mobango : 14488 (swf, sis & cab)
Mobile 9 : 11386 (sis 3rd), 18033 (sis 5th) & 7948 (cab)
Phoload : 22 (sis)

so, in 1 month, Poulpytris was downloaded 63469 times !!!
For info, GetJar was about to be a failure...until it became one of 'Best Puzzle game'
I assume it's because of the old GetJar rank or I'm again recommanded by GetJar ?
GetJar changed a lot of things these last 4 months, for good and bad...but I'll post about this later.

Phone models
Playyoo : ?
GetJar : 5130 (10% of download!), 3110, E71 & still the 6300...N95 & 5800XM close the top 10
Voeveo : ? (N95 ?)
Mobango : ?
Mobile 9 : mainly 5th ed (5800XM)
Phoload : mainly 5800XM

So classics on Asia and Touch/smartphones on Europe ?

Playyoo : Italy ;)
GetJar : Indonesia & India are 40% of download !
others : Indonesia, India, US, UK ?

WillNa connections
1000 from PC
3600 from mobile
so 7.5% convertion rate, better than the 2% of Poulpy's Game
+ the daily users count is near 30 (0 before!)

About 12000 ads request and about 40% impressions
Revenue on Admob : 14$
Revenue on InMobi : 9$
Revenue on ZestAds : 1$
Revenue on WebMobLink : N/A => still waiting activation of my website (!)
Revenue on AdFonic : N/A => we'll try next month if their servers won some speed
EDIT: fixed, see this post

Of course, this is the result for Poulpytris, we can't assume it will be the same for any others app/games

12K ads from 60K downloads... it seems only 1/5 of the people go throught the 'Allow internet connection' screen...
and, shame on me, I forgot to activate unique visitors analysis so it's perhaps worst !

The VERY important thing to note is how many download you got from 'community' sites.
At first, I said "WOW!, GetJar is nothing compared to them" !
But, looking at ads impressions, I saw GetJar users are more allright with adware than community's users.
Community users are looking for totally free games/apps : an ads and they close the game/app!
and don't even think about selling them the full ads free version !

For this reason, the download rate from mobile9 is impressive but I doubt we won a lot of money with that.
It's very interesting because it means more downloads is not equal to more money.
If you have 100K downloads but 1K ads request, it's no use : you could win more with 20K download and 2K ads request !

So key is ...the target!
but I don't have a clue on this point since, apart for GetJar, others sites don't report by countries :(

The only way I see to make a deeper analysis of this point is to release a version for each host and to look at the results.
I'm pretty sure we'll see something like
Mobile9 => 30K download for 1K ads request
GetJar => 15K download for 4K ads request
For Mobango, I don't know...very interesting host anyway, I'll submit my others (past/future) games on it, for sure!

07 January 2010

Wii Flash Lite - trying to handle Wiimote(s)

After some basics testing, I jumped to a more exciting test : the Wiimote support!

Before the update, the Wiicade API was the lib to use.

(4 wiimotes on Wii Flash Player 2 years ago)

I so implemented it using the same example : unfortunatly it is no longer working!

Honestly, I was afraid of this since I saw the B button was no longer logged, even using the official Opera example : Browsing button.

So, what are the problems ?

  • B button isn't logged, for any of the wiimotes

  • the update of the remote data is no longer fast enought : you press several buttons, stop and see the buttons pressed after some delays.

  • Opera thinks your wiimote is disconnected on startup

  • angle and distance are totally wrong

so...bad news....:(
It's sad because, apart for the B buttons, everything is still working on the Browsing buttons example (in full javascript) so they didn't broke the initial JS API..

So, it's time for some R&D ;)

EDIT : in fact, LocalConnection calls are queued, it's why, if you move a lot your wii or press a lot of buttons, every lags...got to find how to optimize this

06 January 2010

Wii Flash Lite and Javascript

I made a quick test to enable exchange between Flash Lite & Javascript :

ExernalInterface still doesn't work

LocalConnection still works (hurra!!!)
For information, it was the way guy like Quasimondo & WiiCade team found to handle 4 Wiimotes with partial nunchuk suport on Flash Lite

See you soon for a test of WiiCade api...does it sill work too ?! I hope so!

05 January 2010

Move on CS4

I started year 2010 with a 'good' idea : since Adobe is already talking about CS5, I'll make the move to Adobe CS4!

I could only use one word after 2 weeks using it : SLOW

slow to install (3 hours!!)
slow to launch
slow to update
slow to compile
...and I don't know why ?! perhaps for this ugly new UI...

my...is it another of these software only made to force you to change your PC ?!
my notebook was on top 2 year ago, CS4 was released 1 year later...
It remembered me why I upgraded my pc every 6 months...because of games, not software !

Sorry, I had to post this ;)

ps: and happy mobile year !

Wii Flash Lite - basic input

If you're not using a third library (more on this soon), the input on Flash app/game played on Opera Wii version are very limited!

- The wiimote acts like a mouse (use a mouselistener!) where A button is the mouse button
- Input texts are handled : if you select one, the Wii opens its virtual keyboard on full screen
- No keydown except a very strange one : after a click on a the screen, if you press the A button with the curson OUTSIDE the screen, you receive a keydown where Key.getCode() returns 57433 and Key.getAscii() returns...57433 (ie 0xE059)! I don't know what it means, I found nothing on the web (bluetooth related?) but it perhaps could be used to know when you're out of the screen.

Wii Flash Lite - capabilities & fscommand

Today, I run some tests to find the capabilities and fscommand available on the latest Flash Lite player on the Wii.
Note, Device Central CS4 still includes the previous version, not the latest, updated on September'09

Here are the capabilities
audioMIMETypes = audio/mp3,
imageMIMETypes =
MIMETypes = audio/mp3,
videoMIMETypes =
avHardwareDisable = true
has4WayKeyAS = true
hasAccessibility = false
hasAudio = true
hasAudioEncoder = false
hasCMIDI = false
hasCompoundSound = true
hasDataLoading = true
hasEmail = false
hasEmbeddedVideo = true
hasMappableSoftKeys = false
hasMFI = false
hasMIDI = false
hasMMS = false
hasMouse = true
hasMP3 = true
hasPrinting = false
hasQWERTYKeyboard = true
hasScreenBroadcast = false
hasScreenPlayback = false
hasSharedObjects = true
hasSMAF = false
hasSMS = false
hasStreamingAudio = true
hasStreamingVideo = true
hasStylus = false
hasVideoEncoder = false
hasXMLSocket = true
isDebugger = false
language = fr
localFileReadDisable = true
os = undefined
screenOrientation = normal
screenResolutionX = 640
screenResolutionY = 800
softKeyCount = 0
version = AFL 9,1,122,0

Some interesting things to note
os return nothing
imageMIMETypes & videotype return nothing while it should be able to read video (more test later) and has hasStreamingVideo to true
has4WayKeyAS return true while keydown aren't read by default, perhaps because of the virtual keyboard (hasQWERTYKeyboard is true)

Here come the fscommand2 available

fscommandname, return, optional var defined
FullScreen -1
SetQuality 0
SetInputTextType 0
SetSoftKeys -1
ResetSoftKeys -1
StartVibrate 0
StopVibrate 0

GetVolumeLevel -1
GetMaxVolumeLevel -1

GetDateDay 5
GetDateWeekday 2
GetDateMonth 1
GetDateYear 2010
GetLocaleShortDate 0 01/05/2010
GetLocaleLongDate 0 Tue, Jan 05, 2010
GetLocaleTime 0 23:30:23
GetTimeHours 23
GetTimeMinutes 30
GetTimeSeconds 23
GetTimeZoneOffset 0 0

GetBatteryLevel -1
GetMaxBatteryLevel -1
GetPowerSource -1
GetTotalPlayerMemory -1
GetFreePlayerMemory 40706
GetDevice -1 undefined
GetDeviceID -1 undefined
GetPlatform -1 undefined
GetLanguage 0 fr

GetSignalLevel -1
GetMaxSignalLevel -1
GetNetworkConnectStatus -1
GetNetworkRequestStatus -1
GetNetworkStatus -1
GetNetworkName -1 undefined

So, no information on system (memory, os, etc...)
Hard to detect you're on a Wii !

StartVibrate return 0 while I wonder what could vibrate on a wii (no, not the wiimote)
40Mo free memory (?!)