Tags – player.

Moderatrix: Fast User Interface Widgets Without Flex.

In this series of articles I’d like to invite you to meet the library I’ve been working on during last few years: Moderatrix (with a small help from other support libraries).

It started long before I joined Falanxia, but Moderatrix made a good leap lately: it was heavily used in our recently launched Bzoonk Bar game.

So what’s going on here? Basically all you need to see is in the video screencast below – all the effects, animation and so on (it was used in other projects as well, but let’s stick with Bzoonk Bar). There’s a lot more under the hood I’d like to talk about.

You may ask why I didn’t use Flex (or any other user interface library). But first you need to know the requirements I needed to meet.

Everything started when I was in Cyprus for my one year trip to Sideshow. I just moved from AS2 to AS3 and I really needed a strong library to allow me fast prototyping, while not using Flash (you may know Flash IDE is nearly unusable on OSX).

I got to create a feature-packed video player for Involver, and there was a huge list of requirements I had to satisfy:

  • fast and easy GUI skinning and rendering,
  • skins should be built and used without rebuilding of the player core SWF file,
  • so the premium clients could build their own skins – without Flash, just using regular graphics app and a text editor,
  • color theming of the existing skins for regular users and not-so-premium clients,
  • advanced 3D animation.

The list was somewhat longer, you can check it out on my Involver portfolio page, but I think it’s now clear the requirements were pretty tough.

Actually it was even a bit worse: there were some other challenges I also needed to solve: data and processor consumption should be minimal.

So now you know why Flex was not an option for me:

  • Flex apps are usually pretty large (and the Involver player had to be compact; it has to load fast, start fast and act fast),
  • they are usually a bit sluggish, honestly,
  • it’s not really easy to deploy pixel-perfect graphics in Flex (I got a feeling this could be a reason for a flame war),
  • it’s not really easy to add animation, Flex components are too slow to animate smoothly,
  • in 2007 it was difficult to skin a Flex component, and if you needed a runtime skin, you needed Flash or Flex to build one,
  • no 3D possible – we needed to animate UI containers in 3D and it’s really not possible in Flex even now, few years later – Flex simply doesn’t think you’d ever need to put a subcontainer in a parent container (which may be rotated), but puts it on the stage again

I tried a few user interface libraries available at the time, but nothing was really useful for my scenario. So I decided to build my very own system. It started as a part of my vancura-as3-libs package, but when I started to work at Falanxia, I refactored the libraries into Falanxia suitable ones. And now the libraries are open again – so you can use it right now.

This series will show you how to use them. If you’re interested, please be sure to follow me on Twitter, so you know when a new article is out.

Involver Media Player
The request sent from Sideshow and Involver was clear: to prepare the most advanced video player today. With plugin support, skinning, color theming (to fit any client color combination), advanced error recovery and other bleeding edge features.
Myousica Multitrack Editor
For this project I prepared online multitrack audio editor, video and audio player and other solutions.
Young & Rubicam Prague
Young & Rubicam Prague site created together with Flier Creation. I've prepared whole client side, client-server bridge, tweaked media recompression settings and helped to design parts of UI and UX.