"3labs" Posts

Announcing Ninjatude

This morning I would like to announce publicly that we’re currently developing a new cross-platform, cross-device game code named: Ninjatude. Ninjatude is being built on top of the latest Adobe Flash / Adobe AIR platform.

In a place known as The Forest (at least by the locals), there exists a clan of Ninja Squirrels who fight to keep the peace. Filled with the power of their greatest treasure, the mystic Golden Acorn, they root out evil and defend the creatures of the trees. Of course, since no good deeds go unpunished, the Ninja find their great treasure stolen away in the night. Deprived of their strength and ability, the Squirrels have sent out their best lone warrior to retrieve the Acorn.

We’re working with a stellar team of Game Designers, Artists and Developers coming to us from Digipen.

We need your help

I’d like to introduce you to our main character… who has yet to be named. So we need your help. Put your suggestions for names in the comments below. Here is some more concept art to get you thinking.

More information will be coming soon. So be sure to keep checking back here.


360|Flex Denver 2011 Videos on ZaaTV

:: UPDATE :: – We have begun posting 360|Flex Videos on ZaaTV, check them out.

As many of you know, ZaaLabs was in charge of the recording 360|Flex Denver. The conference was fantastic, one of the best I’ve been to.

Since the conference I’ve been getting questions non-stop about the availability of the videos. So here’s the deal.

We’re currently in the process of importing the videos… which let me tell you is a task :)

Once we finish importing we’re going to edit a few videos to release right away on ZaaTV, free for everyone (I’ll update these with links as the become available):

After we get these first few videos online, there are a few options for the rest of the sessions.

I was at 360|Flex Denver

If you attended 360|Flex in Denver, you will be able to download the videos for free as soon as they are available (be aware it will take a couple of months).

I wasn’t there, but I want the videos now.

Well then you are in luck, if you didn’t attend 360|Flex but you would like to get the videos sooner rather than later, you can buy them from the 360|Flex website as soon as they are available.

I wasn’t there, and I’m not interested in purchasing the videos.

That’s okay too! Going forward, we will release one session per week free on ZaaTV. We will have polls for you guys to vote for which session you want to see next.

Any questions, let us know!


Tip of the Day – Populate Version Number from an AIR Descriptor File in ANT

So I’ve seen this question pop up a few times.

Can I grab a version number from the app-descriptor via ant and add that to the AIR filename? Anyone know?

This is a pretty straight forward thing to do using Ant-Contrib tasks, that are publicly available.

You can download the example files –> here.

Let’s take a quick look at the ANT script.

<project name="PopulateVersion" default="populateVersion" basedir=".">
  <taskdef resource="net/sf/antcontrib/antcontrib.properties">
          <pathelement location="./ant-contrib.jar"/>
  <property name="app.descriptor" value="air-app.xml" />
  <target name="populateVersion">
    <echo message="Parsing application.version from ${app.descriptor}"/>
    <xmlproperty file="${app.descriptor}" prefix="airApp.appdescriptor"/>
    <propertycopy property="versionNumber" 
                  override="true" />
    <echo message="Parsed application version: ${versionNumber}"/>  
    <propertyregex property="fileVersionNumber"
                  casesensitive="false" />
    <echo>Version Number: ${versionNumber}</echo>                    
    <echo>File Version Number: ${fileVersionNumber}</echo>

As you can see it’s very straight forward to parse the version number out of the Application Descriptor. The only other thing we do is us RegEx to change the periods in the version number to underscores to make for more friendly file names.

Using the same concept it is very easy to also populate a Version file that gets compiled into your application which can include build numbers, or other interesting things… but we’ll save that for another day.

ZaaImbue, A dead-simple injection system for Flash

Yesterday in the PushButton Engine IRC channel, we were discussing our need for metadata based injection for the next version of PushButton Engine.

While developing Eden, we encountered a similar problem and ended up writing our own injection system. We’re fond of it, and wanted to use it in PBE… so we open sourced it. Take it, use it, modify it… we’re releasing it under the MIT License.

Check out the source over on GitHub.

Make sure you add this to your compiler arguments:


Here’s a basic example of using ZaaImbue:
[gist id=871172 file=ImbueExample.as]

Some people have asked us why we called it “Imbue”… frankly… we didn’t want to call it Injection, so we looked up synonyms on the interwebs and imbue was one of them.

We all played a lot of Diablo 2, and had fond memories of Charsi imbuing our gear with magical properties… and that’s where imbue came from.