We recently discovered far and away the best debug / profile tool for Flash devs, "TheMiner". It's just a pity we found it so late into Outposts development, but it still helped us remove various mouse listeners that I'd missed ( I'm really badly anal about killing those, and I was shocked how many I'd actually missed ). It's now an essential part of our toolkit, and I was lucky enough to ask the author, Jean-Philippe Auclair, some questions about it.
Hi Jean-Philippe, can you give us a quick run down on your history with Flash.
I started coding as3 about 4 years ago. Before that I was a C++ Software Engineer on a Nintendo DS 2D/3D game engine.
When I think about this, it seams like it all started last week.
During the last 4 years, Flash changed so much that it's really hard to follow the pace, even for a guy who follow a LOT of RSS feed and twitter.
So I started Flash 4 years ago as an AI developper, leading a game project at Frima Studio in partnership with a local university.
Then I became Lead Software Architect on Frima studio MMO game engine, doing supervision of npth frontend and backend architecture.
During this time I also started a technical blog about Flash for hardcore developer.
By always trying to push the bundaries of flash, I found out a lot of trick to optimize flash content and get the most out of it.
Because of this, I have been selected to participate to molehill pre-release program very early.
At this point, frima studio decided to invest a lot in this new promizing technologie and I have been working on Molehill for almost 18 months now.
We were choosen and featured by Adobe at Max 2010 with ZombieTycoon in flash Molehill, and MAX 2011 with Neema Project.
Using this new knowlegde, I gived multiple session for frima about Flash3D at Flash Gamming summit 2010, MAX 11, GDC Online 2011 and Dig 2011.
I think every game dev plans to do something like this, but no one ever gets round to it. How did you find the motivation to actually pursue it ?
Well.. It all started with a blog article I made: http://jpauclair.net/mm-cfg-secrets/
In this post, I'm talking about a lot of undocumented features of flash using the mm.cfg file.
One of the feature is "PreloadSWF". A nice way to launch a flash application before the main SWF is being executed.
So I started exploring this, and after a few articles, it became clear that "something" could be done with this.
I opened a google code repository, and it became FlashPreloadProfiler. A tool that can be use to track some data exposed by flash.
After a months of part-time developement, there was already tons of cool features, and special algorithm to get the most of the exposed protocols, and even more!
Being able to dig deep inside flash, and make it easy for people to use it with this software and my blog was what kept me going.
Recently, I decided to start making something more serious out of this, without changing the way I feel about it.
This is when FlashPreloadProfiler died, and TheMiner was born. A complete solution with a lot of features added, with proper website, bugbase, forums, etc.
There are lots of cool things in there, was there anything which you thought "This will never work" and then surprised yourself ?
Many of the features are not "out of the box". I had to spend a LOT of time to finaly come up with solutions.
Getting the Stack of some listeners. Merging the instanciation of object with function call traces. Having urls of some loaders. etc.
Any major technical hurdles you found, and how did you get around them ?
It's hard for me to say "it can't work"... there is always a way..
While doing this profiler, some of the things I tried never got an answer.
So even today, it's really hard to say if I should continue to look for something, or I should find something else to look at!
What future plans have you got for TheMiner ( That you can tell us about ) ?
I keep a list of what will be added next, what features should be re-worked, etc.
The problem is, each time I check one of the Item of that list, 2 or 3 items have been added to it, so the list is expanding!
We also have a bugbase to support people working with it.
And finaly, TheMiner will soon have a new brother. But I won't say to much about this for now!
What's the response been to it so far ?
It just started, but it goes better that I was expecting it.
I was thinking "something like this take time to get known". But because FlashPreloadProfiler was there for some time now, and hardcore developer generally hang around my blog, the wave was big enought to get known pretty fast.
The free non-commercial version has already been downloaded multiple hundred times.
And since there was already thousands of developpers using FlashPreloadProfiler, the Pro version of TheMiner became a necessity for a lot of people using it for commercial project. So it's going pretty well also.
The community also responded very well by doing translation in multiple languages.
Right now, TheMiner is available in English, Spanish, French, Dutch, Russian, Hindi, Chinese (traditional and simplified) and Turc
FlashPreloadProfiler has been a great adventure over the last two years.
TheMiner is just the beginning of something even greater.
I'd really like to thanks everybody that followed me during this time, and those who helped make what it became. Thank you.
I am now an official Miner
And I'd really like to thank Jean-Philippe for his time, and I honestly can't recommend theMiner enough, it's one of the few tools we can recommend without a moments hesitation. The free version isn't crippled in anyway, you've literally got nothing to lose by trying it.