Archive for the ‘Flash’ Category

IPhone Apps from Flash – Adobe MAX

Monday, October 5th, 2009

So, for Flash developers and designers, the big news from the Adobe MAX keynote speech was that you can now produce iPhone applications from Flash CS5. This has been on a lot of people’s wish lists for a few years and if the twitter showing is anything to go by it gets a lot of people excited.

Now, I might be the only Flash developer who doesn’t own either an iPhone or iPod Touch, but is this a big deal? A lot of developers are already making iPhone apps, either with Unity iPhone or objective-c. Although the iPhone market may be a profitable one it is also saturated and a million more Flash developers joining in isn’t going to make that any better.

Also, this isn’t Flash in the iPhone browser, which I think would have improved the iPhone and Flash, this just allows another way of making iPhone applications. There’s already Mono, Unity and objective-c, so Flash is going to open this platform up to some more Flash people and maybe help Adobe leak some of its market but I wonder if this might be another example of feature bloat from Adobe. I’d prefer to see this sort of thing as a plugin or separate app in the Adobe CS5 package not as part of the Flash IDE.

Flash on the Beach – in review

Sunday, September 27th, 2009

I’ve had a pretty busy week with the Flash on the Beach conference taking up Monday to Wednesday, then leaving drinks for the Technical Lead in my department and finally my girlfriend’s birthday lunch (which involved a fair bit of wine and ended up at a friend’s 30th birthday house party).

Flash on the Beach was, yet again, a most enjoyable event. The three days of networking with fellow Flash designers and developers and learning some new tips, tricks and techniques from the gurus who frequent these events left me with some ideas and directions that I’d very much like to pursue.

Of real note, for me, were sessions by Joa Ebert, Mario Klingemann and Ralph Hauwert. I picked up some good tips elsewhere but felt I already knew a lot of what I was hearing, whereas these three individuals continue to broaden the horizon of what flash is capable of.

Joa Ebert’s session was the first time I’ve seen a standing ovation at one of these events and the guy stands out as a true master of what he is doing. He knows flash and its compiler inside-out and has used that knowledge and a great deal of research into optimisation techniques to create TAAS a program that streamlines and optimises the bytecode of a flash movie. This allows use of the Alchemy memory codes that improve the speed of some operations in flash. These have only been available via Alchemy and Haxe up until now. Joa was getting some significant speed improvements thanks to the project but other features include automatic UML generation and compiling Java or C# in to flash. Check out Joa’s blog for more on his fantastic work.

Mario Klingemann gave a typical session proving that math experimentation and play can yield great results for experimental generative art work. It’s good stuff and he explains it well. Also, he doesn’t seem to fall into the sub-philosophical or spiritualist nonsense that surrounds a lot of art.

Ralph Hauwert gave a very interesting session on the state of 3D and real time graphics in Flash. With Joa’s TAAS and the improvements in speed brought about by the native 3D apis in Flash, examples from Ralph and the Away 3D team are starting to look half way decent. The triangle culling is much better, shading is becoming a realistic possibility and the number of polygons is reaching above a few thousand. Flash isn’t at the Unity3D standard and won’t get there until hardware rendering is supported but you can do more than in the past.

The other big news from Ralph was his departure from the Papervision team, this seems a big blow for that project and leaves open several questions as to what will happen to Papervision3D X.

Those sessions left me impressed as to the progress Flash and its community is making. Lets hope the upcoming Adobe MAX conference brings even more exciting news about the platform we work on and build for.

Flash on the Beach 2009

Saturday, September 5th, 2009

It’s almost that time of year again, when a large contingency of the Flash designer and developer community descend on Brighton for three or four days of learning, networking and a bit of a jolly at Flash on the Beach (20th-23rd September).

This is the fourth installment of the conference and it will be my third visit. The first time I went, I was an isolated flash developer and still fairly wet behind the ears. The experience proved both inspiring and very educational. I’d like to think my skills as a developer have improved immensely since that time but I still look forward to learning from the masters of the medium.

I haven’t decided my exact schedule yet but here are a few of my must sees:

  • Keith Peters – Casual Game Architecture – his Actionscript Animation books have helped me out on more than one occasion and I find his sessions provide clear and straightforward explanations of fairly complicated subjects. Also great to get some further insight into casual games development.
  • Joa Ebert – Leaving the Sandbox – Joa is one of those rare flash developers who really understand compilers and bytecode and, from his recent blog entries, it seems he’s been working on some tools that could really help make actionscript code faster and better.
  • Mario Klingemann – Connecting the Dots – Mario never fails to astound with his brilliance at solving problems and the artistic output that he turns his skills toward. I always come away from his sessions with new ideas and a renewed enthusiasm.
  • Craig Swann – Choose Your Own Adventure – I saw Craig’s session at the first Flash on the Beach and it opened my mind to the possibilities of combining Flash, and the kind of visual output it is capable of, with physical world input via cameras, microphones and electronic detectors (a task made easier by the Arduino kit).
  • Seb Lee Delisle – Work/Play – I’ve enjoyed several of his past sessions and really like some of the work coming out of Plugin Media (see, for example, Big and Small) so look forward to what should be an entertaining session about putting fun and play back into the digital.

I’ll post my impressions of how the event went sometime after September 23rd.

Checkmate challenge on wonderfl

Friday, July 10th, 2009

A colleague of mine (Swingpants) pointed me to the Checkmate challenge on wonderfl and I had a quick play. It’s a competition where you clone a basic starter code and come up with something of your own.

I’m still looking for a decent idea to run with but I’d just like to say I’m very impressed with the wonderfl site.

I’ve known about it for a while but this is the first time I’ve sat down and actually put some code into it. The compiler seems to respond well and the list of libraries available is good and expanding fast. It seems to be a really good tool for spiking new code ideas. The attributes that make it good for spiking are:

  • online – so collaboration is easier
  • auto compiles every time code is changed
  • auto saves
  • allows you to fork and browse a lot of public code (including some from bonafide flash experts like Quasimondo)

So, if you haven’t had a look already I recommend a visit to wonderfl.

Flash and the art of optimization

Friday, May 22nd, 2009

I expect every flash developer reaches a point where they’re ambitions bump up against the limitations of what the flash player can actually do. With every new version of flash the ceiling may get a little higher but it doesn’t take long for the community to start banging their heads again.

Some of the most interesting flash work out there has to be by those developers who can push the platform that little bit further; thankfully a lot of them are willing to share their techniques.

In this article, I thought I’d pull together some of the advice on optimisation I’ve picked up from blogs, conferences, comments and books.

My earliest exposure to data structures and optimisation came from Polygonal labs. The blog is immensely informative. Here are some of the best articles for understanding optimisation:

Data structures and motor2 are both really good libraries and worth checking out, too.

Joa Ebert has an actionscript wiki with lots of useful optimisation techniques.

Nicolas Cannasse is the brilliant mind behind MTASC and Haxe and his blog is great for tips on how the flash virtual machines work, what actionscript gets turned into and indeed on optimising that code. His blog is worth keeping an eye on for articles such as:

Haxe is also worth a look, as it gives you access to the op codes that Alchemy uses for performance gains and has some really nice features.

Mario Klingemann is a great source of ideas when it comes to boosting performance and applies them to some really interesting flash output. I found this article on optimising a seam carving technique very useful as are his conference presentations – slides from past events.

Ryan Christensen at Drawlogic does a good job of explaining number weirdness in flash and also has a recent list of optimisation links.

Optimisation will make your code close to unreadable. Do not optimise prematurely. The job is probably best done by a compiler or a pre/post-processor. Unfortunately, the flash compiler does very little to optimise code. Haxe can do this job and as3c is another option.

Thanks go to those developers who came up with these techniques. I’m sure there’s more to add and I will probably come back to this subject in a later post but, in the meantime, are there any tips that you’d like to share? If the answer is yes then please leave a comment.

Initial impressions of Box2D and motor2

Sunday, May 17th, 2009

Over the last two weeks, I’ve been using the actionscript3 port of Box2D in a Flash platform game. It was the first time I’d done any proper work using Box2D and I wasn’t wholly enthused by the experience.

I’m sure it is a good physics engine for C++ developers but it has been ported very directly and I think could do with rewriting to fit with the actionscript language. It doesn’t feel like you’re learning an API, more like you’re venturing into another language, a task not helped by some lacklustre documentation and a need for good examples. No doubt, some optimisation could also improve matters.

Having said that, the engine is obviously powerful and provided many more features and physical simulations than I could possibly need in a simple game.

It was only after I’d got a fair way into the project that I had a look at another port of Box2D, this time from polygonal labs. I’ve been impressed with a lot of their articles, demos and the data structures class library, so I thought I’d investigate the motor2 physics engine a little further.

I have to admit I’ve only just scratched the surface of what both of these physics engines are capable of and my intentions are to carry on playing around and experimenting with both to see what I can get out of them.

In the meantime, here are some quick examples (with source code) to compare the two libraries:

Motor2 version (requires flash player 10):

Download the source code.

Box2D version:

Download the source code.

In both cases, I have made a very simple weighing scale from a revolute joint and a rigid box. I’ve then added another 98 boxes (49 either side) that fall on to the scale.

The motor2 engine has been updated to use the Vector functionality included with flash player 10 and makes use of the neat optimisation techniques you’d expect from Polygonal labs. Comparing the two on my PC (Dual Core 2.13GHz, 1Gb RAM with Windows XP and running the Firefox 3 browser), the motor 2 demo seems to run at a steady 45 to 50 fps where as the box2d version runs between 25 and 40 fps.

The motor 2 API has also had some minor tweaks to fit a little snugger with actionscript 3. I feel this makes it a little easier for a developer who works predominantly in Flash to start using the library.

While these are some initial impressions I have from looking at the two class libraries, I hope to put motor 2 to further use and will post some more demos here, in the near future.

Just what the web needs…

Saturday, May 9th, 2009

… another blog. Another tech blog at that. There really aren’t enough of them.

Anyway. I started this blog to track the beginnings of my journey into Unity3D development. For my own reference but also to help those who might be starting on a similar journey.

I am a web developer with a fairly broad range of skills but, for the past two years, I’ve tried to focus my attentions on Flash and developing for that platform. That was until recently, when I became interested in Unity3D. It was receiving rave reviews from some quarters and I liked the idea of producing high quality 3D games that were available from the web. I tried the trial version, liked the IDE, saw some great examples and so I moved on to the Indie version. Now, thoughts of how I can afford the step up to the Pro version are circulating through my mind.

As I start developing games in Unity, I thought it might help others starting out on the same path to hear about my experiences. I also intend to add some code and game examples as I progress.

I won’t focus on Unity3D solely. So any useful Flash, Javascript, PHP or Ruby knowledge that I develop will also appear on this blog.