Setting Up Metasequoia Plugin SDK

I’m currently making a 3D Flash game using Away3D. For 3D modeling and animation, I use Metasequoia with additional plugin called Keynote. They’re really great tools although at the beginning I had problem with the workflow.

My workflow was like:

  1. Create 3D model and animation using Metaseq and Keynote
  2. Save manually every animation frame as MQO file
  3. I create my own tool using Adobe AIR. This tool loads all MQO files and combine them into a XML file
  4. Away3D (Flash) loads MQO and XML file and convert them into vertex animation

The process #2 and #3 were very time consuming. So I decided to learn Blender. I was hoping I could export the animation into MD2 file directly from Blender file (shorter workflow).

It wasn’t the right decision for me. Learning Blender was so hard and frustating. Strangely, it’s not my first time learning Blender. I already did this several times and always forget everything once my project was done. This time, I tried the new Blender 2.5 beta, which they say, have better and intuitive UI.

There were a lot of hair pulling moments, problems with the UI, always fail to setup rigging for animation, confusing documentation, and there was no working MD2 exporter.

I know Blender is a good tool, in fact that there’s a lot of games and movies done using Blender, but this tool is just not for me.

So I switched back to Metaseq and dare myself to create Metaseq plugin. Yes, you can create your own Metaseq plugin. You can download Metaseq Plugin SDK for free and use Visual C++ to create the DLL files.

Milk Carton Boy, using Metasequoia and Keynote

The instruction was in Japanese and still using Visual Studio 2002 or 2008. Luckily, I managed to make it work using Visual Studio 2010 Express Edition on my Windows 7. Here’s what I did (can’t remember precisely.. sorry):

  • Install Visual Studio 2010 Express Edition C++
  • Install the latest Windows SDK, Windows SDK 7 & .Net Framework 4, version 7.1
  • Install the latest WTL library. I use the latest one, WTL81_9127. Extract them manually.
  • Download the latest Metaseq SDK ( mqsdk249c.zip) and extract the file.
  • Import MQSDK workspace file as VS2010 Solution file
  • Add WTL location to C++ include directory
  • Try to compile one of the project.
  • Copy the dll from release folder to metaseq plugin folder and test it

In the end, I managed make a simple plugin 🙂 It reads Keynote animation data and export them into my custom XML data. I had fun and realized that it’s been 2 years since the last time I am using C++.

Note: Only the non-shareware version of Metasequoia can use plugin. The shareware one does not. But it’s quite affordable, only $45. I could imagine if you use Blender, you could spend that much money for books and tutorial DVDs.

Note #2: You can download the source code of my exporter plugin here: http://abiyasa.com/lab/away3d/mqoplugins/mqoPlugins.zip (around 54K). I use Keynote API (included if you download Keynote plugin) and use the example (ExportXS) as the basic for my plugins. Feel free to ask me if things are not clear 😉

Milk Carton Boy for Android

Two months ago, I released Milk Carton Boy Shake Well for Flash mobile. I developed it using FlashDevelop, Away3D, and Flex SDK 4.1 and didn’t use any mobile specific APIs (gesture, touch, or accelerometer). Basically I just adjust the screen size for 400×678 and the game works really well on Android Browser with Flash Player.

Now I have my Samsung Galaxy S, it’s much easier to test the game. It is quite easy to convert an existed FlashDevelop’s Flash project to Android AIR project. So I immediately convert the game to Adobe AIR app and tested on my Android.

Milk Carton Boy installed on Android

Milk Carton Boy installed on Android

Here are some interesting things that I found during the testing:

Milk Carton Boy for Adobe AIR performs (a little bit) slower compare to Flash Player! This is quite surprising since I expect that it could run faster, well at least runs at the same speed 😐 I’m using Adobe AIR 2.5.1.1774 and my Flash Player version is 10.1.92.8

I really need to implement a button to quit the game. I never see any Flash game with a quit button. That’s because we don’t need it 😀

When the user closes the browser or browses to other page, our Flash game will be gone automatically. However, Adobe AIR app, just like other Android app, will be moved to memory if the user press HOME button or BACK button. It will stay in the memory until the OS kills it (when it needs more memory). That’s why if you don’t explicitly quit your app, it will stay (or even keeps on playing) on background.

As a bonus, here’s what I did to convert my FlashDevelop project for Flash to FlashDevelop for Android 😉

  • Copy your FlashDevelop project to another file name, like myGameAndroid. You can have two project files on the same project folder
  • Now open you project file on any text editor (Don’t double click it). Modify the following properties:
    • Pre-Build command
      <preBuildCommand>taskkill /f /fi "IMAGENAME eq adl.exe"</preBuildCommand></pre>
    • Build Option. Inside the <build>, change the <option additional=”” /> to <option additional=”+configname=air” />
    • Other project options
      <!-- Other project options -->
      <options>
         <option showHiddenPaths="False" />
         <option testMovie="Custom" />
         <option testMovieCommand="$(FlexSDK)binadl.exe;application.xml bin" />
      </options>
  • Make sure that you have installed Adobe AIR SDK 2.5 on top of your Flex SDK, creates the application.xml, and the certificate file. See my previous post about creating Adobe AIR app for Android
  • Delete any files on obj folder before opening the project file

Enjoy!

My New Phone Samsung Galaxy S

Last Tuesday, I just bought my new mobile phone: Samsung Galaxy S. My old Nokia N80 was broken, the numpad is not working anymore.

Actually, it was hard a choice between iPhone4 and Samsung Galaxy S. Between iOS and Android.

iPhone 4 looks and feels really great. Eventhough I am a Flash developer, I think iOS is a great platform to develop. The App store is really a good channel for indie game developers. There are many good games on App Stores which make more people buying iPhone/iPod. The more people have it, the higher chance soneone will bought your game.

However, I don’t have a Mac computer. To develop a game for iPhone, you need a Mac computer.

On the other hand, Android supports Flash. I can use Flash to develop game for Android web browser, and also create Android App using Adobe AIR. And on the last 1 month, I’ve been working on Android projects on iconmobile, so buying Android is more benefecial for me right now.

That’s how I end up with Android, and Samsung Galaxy S is the best Android phone currently available 🙂

I believe I will have both iPhone and Android later, but right now, I’m buying Android first.

Just after I got my Android, I just check how my Milk Carton Boy performs on real device

Milk Carton Boy on Samsung Galaxy S

Milk Carton Boy on Samsung Galaxy S

I also convert Milk Carton Boy to Android App using Adobe AIR. It’s not that hard to setup Adobe Air for Android using Flash Develop.

Stay tune, I will create share some development tips for Android using Flash 😉

Milk Carton Boy behind the scene 1: 3D character

One big feature of my latest game Milk Carton Boy Shake Well mobile, is the 3D character.

Yes, the character, Milk Carton Boy, is 3D. On the main menu screen, you can see the character rotating slowly. You can rotate the character left or right by dragging the touch screen. And don’t you know that you can customize your Milk Carton Boy?

Milk Carton Boy set 1

From the main screen, tap the Milk Carton Boy to go to the customization screen. You can change the face, body, arm, and the leg skins/colors. Or just click the random button 😉 The more you play it, the more skins will be unlocked.

Milk Carton Boy set 2

Milk Carton Boy set 2

Milk Carton Boy has 9 body textures, 9 for arm,  9 for leg, and 17 face textures. So in total, there are 9x9x9x17 = 12393 combinations of Milk Carton Boy!! 😯

Milk Carton Boy set 3

Milk Carton Boy set 3

Milk Carton Boy set 4

Milk Carton Boy set 4

The character was modeled using Metasequoia and the animation was done using its plugins called Keynote. All textures were done using Flash CS3

Other related posts about Milk Carton Boy (updated 1st October 2010):

  1. Milk Carton Boy Concept character
  2. Milk carton Boy Shake Well mobile v1.0 has been released!!
  3. Behind the scene part 1: 3D character

Milk Carton Boy:Shake Well v1.0

Hurraay for version 1.0! Nothing can beat the joy of shipping your own product!! 😀

I have released my game as a submission for Flash game competition for Kongregate and Mochi.  Here is the screenshot of the main screen:

Milk Carton Boy: Shake Well

Milk Carton Boy: Shake Well

You can try the game by clicking the image above, but the game was made for mobile phone (Android 2.2). It was designed to be played using touch screen on mobile, but you can also play it using mouse on desktop although it can be quite challenging 😉

So what this game is all about?

How well can you shake? Experience a 3D mobile game, using touch screen to move and shake Milk Carton Boy! Get more points and customize your own 3D Milk Carton Boy!
That’s the description in the marketing way 😉
The game is featuring Milk Carton Boy, a 3D milk carton character. You can control the character using tap or swipe. Jump and do acrobatic movement to shake the milk. The more you shake, the more point you get. Use the point to unlock skins to customize the character.
Just try the game, and if you have Android 2.2 phone, try it also on your phone 🙂
Stay tune since I am going to post the development process of this game…

Other related posts about Milk Carton Boy (updated 1st October 2010):

  1. Milk Carton Boy Concept character
  2. Milk carton Boy Shake Well mobile v1.0 has been released!!
  3. Behind the scene part 1: 3D character
Bonus: Milk Carton Boy has been published at Mochi Game and Kongregate mobile 😉