Aug 17 2010

Victorian BMX

Thomas Viktil

Cool game and a really beautiful style. The detail in the menu design, the background music (which shifts between victorian classical music and rock’n roll). I applaud!

Play Victorian BMX at AdultSwim.


Aug 12 2010

Icarus Proudbottom

Thomas Viktil

Instant love!

If you are to download a game today it should be this. Icarus Proudbottom at Something Awful Game Development Challenge and a couple of videos at IndieGames. The game was made by the two fellows from the band 1-2-3 Blast On!. The game is totally free! And it’s for both Windows and OS X! Download the game from the Something Awful Game Development Challenge website.


Aug 6 2010

StarCraft 2 : Mod restrictions

Thomas Viktil

Ars Technica posted a comment on Activision Blizzards restrictions on mod creation (StarCraft 2: help us mourn the death of content freedom). The essence is that such restrictions will harm us as players.

I disagree. By letting Activision Blizzard moderate the mods being submitted by the players, we will end up with a catalogue of the best mods. And that makes us talk even better about the game to our friends that have not tried the game. We will also enjoy the game because we can rest assure that the mods we download are most likely worth downloading. Once we realise that most of the mods are crap we will most likely stop downloading (or purchasing for that sake).

It’s just like Apple’s AppStore (all though there is some crap on AppStore, but that’s my opinion). Take a look at Android’s application store. It’s full of crap because nobody moderates the content. It gives a bad impression of the platform.

Go Blizzard!


Aug 4 2010

Prevent iPhoto or Aperture from opening when you connect your iPhone

Thomas Viktil

This tip will only work on OS X.

Sam wrote a post at 37signals’ blog about the same thing (Tip: Prevent iPhoto from opening when you plug in your iPhone), but it didn’t quite apply to my situation. Sam’s tip will work fine if you have your camera nearby -which I don’t. Besides, I have a couple of cameras so I would anyway have to make changes to the script in order to make it work. A more simpler way to make this work is to approach it from a different angle.

I am going to present to you a script that only requires that you know the name of your iPhone. If you have already read Sam’s article you can skip to step 2 of this article to get the script.

1. Get the name of your iPhone

An easy way is to connect your iPhone, open iTunes (if it doesn’t automatically) and look at the list to the left. There it is!

2. Write the script

Open up up AppleScript Editor (on Snow Leopard, it’s inside the Applications > Utilities folder) and copy/paste this code:

on device_is_connected("iPhone name")
end device_is_connected

Change “iPhone name” to the name of your iPhone (I wrote “mandarinPhone”). As you can see, all it does is check if your phone is connected. Besides that, nothing.

3. Make the application

Save your script as an Application by clicking File > Save as …, and under File Format choose Application. I like to store applications like this under the Utilities folder. These are applications that I don’t ever have to run manually, so to prevent my root Applications folder from being cluttered with all kinds of stuff I don’t use I put it in the Utilities foldes. For this application I named it “iPhoneConnected”.

4. Open Image Capture

You’ll find it inside the Applications folder. Benjamin refers to the Image Capture application preferences as being a menu item. I suspect he was using an older version at the time he wrote the article. On Snow Leopard you do like this: If your iPhone is not already selected, select it by clicking on it. If the preferences don’t show up at the bottom of the list, click the button at the bottom. It will open up a preferences pane for the iPhone. Where it says “Connecting this iPhone opens:” click the drop down list and find your newly created application.

That’s it! Reconnect your iPhone and watch it do nothing. Lovely isn’t it? It sure is!

UPDATE: Benjamin Ragheb didn’t write the post at 37signals’ blog, but Sam did. Be sure to check out Benjamin’s comment below. He made a script which fetches the name of your iPhone for you -so you don’t have to. Nifty!


Mar 21 2010

AS3 snippet #4: Returning Booleans

Thomas Viktil

When returning a Boolean you can do the validation inside the return statement. Usually I would do something like this:

function doTest():Boolean
{
    var returnValue:Boolean = false;
    if (someValue > otherValue) { returnValue = true; }
    return returnValue;
}

Instead, you could shorten it down to only one line of code like this:

function doTest():Boolean
{
    return (someValue > otherValue);
}

doTest will return true if someValue is greater than otherValue. Pretty neat huh?


Nov 28 2009

Garbage collecting in AIR

Thomas Viktil

At a recent project I had to make a video loop indefinitely and most importanly: seemless. I tried all kinds of different methods, including using FLV, F4V, M4V, FLVplayback component, the Video class, embedded video and a few other. The only solution that worked was (in my opinion) the most outdated one.

I setup a new SWF file in Flash Professional and imported the video to stage. I chose to create keyframes for each frame of the video, set the JPG compression rate to 100 and then exported the video as a SWF. This was the only method I could find that would make the video loop seamlessly. It solved one problem but introduced another.

As the application ran I monitored the memory usage and soon discovered that the application ate up more and more memory for each time the video looped. To solve this problem I forced the garbage collector to run each time the video completed a loop. This kept the memory usage stable and the application has now been running for about a month.

This is how you run the garbage collector:

System.gc()

Jul 14 2009

Skinning IK with modo

Thomas Viktil

Having fiddled around with modo 401 and all its new features, I soon came to experiment with the animation features, including the new IK system. It works like a charm and when you’re used to working with modo, it just feels natural. It was very easy to rig a mechanical object that didn’t need to rely on deformations of the mesh to look convincing. But when working with organic shapes, the IK system got a bit trickier, that was until I figured out how to skin the IK.

My example doesn’t give you a perfect character rig, but it shows the basic principle. To make the mesh deform properly, you should look into using morph maps. I haven’t done so yet, but will most likely do it sometime soon.

I stumbled across a discussion on the Luxology forum (Bone deformations in Modo 302) that gave me a clue of how to do it. At first, I tried different ways of parenting the locators, deformers, channel linking and so on. But nothing seemed to do the trick. That was until I read a comment by Michael Blackbourn.

You dynamic parent the weightmap locators to a control structure.

After bending my mind around that rather minimalistic and somewhat cryptic comment, I suddenly realized what Michael was talking about. And it’s bloody simple!

Here’s how I did it:

  1. Setup a chain of 3 locators, and apply IK to them.
  2. Build a mesh with enough polygons to deform properly.
  3. Setup 3 weight maps: one for each of the joints of the IK chain.
  4. Add weight map deformers for each of the weight maps.
    And now comes the trick:
  5. Hit the Compensation button (found under the Animation tab) to prevent the mesh from relocating.
  6. Dynamically parent each of the weight map deformers to each of the locators of the IK chain.

That’s it!

Remember When dynamically linking an object to another you need to first select the child, and then the soon to be parent item.

I have made a short screen recording just to show how easy it is. Skinning IK in modo (About 20 Mb QuickTime) The example I show in the screen recording is not beautiful, but it shows the basic principle.

Happy animating!


Jun 10 2009

Alfonso Bialetti in 3D – sketching

Thomas Viktil

As I was minding someone else’s business I felt the urge for a cup of coffee. Allthough I like regular coffee, I do prefere a nice cup of espresso. When I was in Berlin for the last Pictoplasma conference, I invested in a truly nice piece of a coffee making machinery – The Bialetti Grillo. Together with a Bialetti Creamer, you can reach a state of well being close to nirvana.

Anyway, I’ve always liked the Bialetti logo. The cute, but proud, little italian man. As I was waiting for the coffee to finish, I looked at the little man and realized it shouldn’t be difficult to make him in 3D. Not the smartest thought to get when you are trying to do some work, but it did appear anyway.

Trying to find the Bialetti logo in a resolution good enough to be used as a backdrop for the 3D model, I stumbled across a website where I learned this:

Between 1957 and 1977, Carosello [the Carousel] was a 10-minute spot of advertising broadcast every night on Italian national television immediately after the evening news. More like a variety show than hard-sell publicity, it was so popular that it became normal practice in Italian households that dopo Carosello, tutti a nanna (‘all the kids to bed after Carosello’). A familiar cartoon figure on Carosello was the ‘little man with a moustache’, who had his finger raised high in the air while his mouth formed the letters of the alphabet. He was a caricature of Alfonso Bialetti (1888-1970), founder of Bialetti Industrie S.p.A., the Italian cookware giant, and the inventor of the Moka Express coffee pot.

You can read the rest of the story at theflorentine.net.

I’m not the fastest modeller, but I wasn’t aiming for stress either, so I spent about 2 hours on the sketch. Still not finished though -Alfonso is missing his jacket and vest- but that’ll come sometime. With this sketch I wanted to catch the overall scale and feel of Alfonso. Later, I’ll use it as a template for a high resolution model.

Alfonso Bialetti - sketch 01


May 25 2009

iPhone dev: Remove the glossy effect from the application icon

Thomas Viktil

As you probably know, the iPhone adds a nice glossy effect to your application’s icon. It sure does look good, but sometimes it just doesn’t suit your icon. It can be prevented by editing the Info.plist file. It’s easy! Follow me.

iphone_app_01

Click on one of the lines to make the little plus icon appear. Click the plus icon to add a new line.

iphone_app_02

Give it a key name of UIPrerenderedIcon.

iphone_app_03

The value is by default set to String, but we need to change it to Boolean. Right-click the newly created line, choose Value Type > Boolean.

iphone_app_04

The value has now magically transformed into a check box.

iphone_app_05

Click it!

And you’re done. It’s as easy as that.


May 2 2009

AS3 Snippet #3: Remove all childs

Thomas Viktil

I code snippet I tend to use quite often. And one that I tend to forget how I wrote the last time i used it.

while (this.numChildren > 0)
{
    removeChild(this.getChildAt(0));
}

Update:

And when you want to remove a child as a part of an event handler, do this:

event.target.parent.removeChild(event.target);

Let’s say you want to delete the button you just clicked. The button dispatches an event, and this line of code goes in the event handler. event.target is the button (or what ever object you clicked). It does look at bit strange, because you have to tell the button that it’s parent should delete the button. The button can’t delete itself.

Note:

If you’re working with Flex, use this.removeAllChildren(); Thank you Bjørnar :-)