Archive for the ‘3D’ Category

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 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.

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.