Camera motion tracking, or How to build a spy cam with Adobe Air

Consoles, Smartphones, Tablets. Motion tracking is everywhere. Here is a simple way to utilise camera motion tracking in your Flash Projects.




A quick rundown on how the motion tracking demo works.

1. Take pictures.

Use the Camera and Video Object to get a steady stream of images. Write each image into BitmapData Object 1.

2. Create a time-delayed copy of each picture.

One frame (or TimerEvent) later copy BitmapData Object 1 into a second BitmapData Object (BitmapData Object 2).

3. Compare the two images.

Use BlendMode.DIFFERENCE to merge the two images. The originated image displays the differing parts between image one and two. Copy it into BitmapData Object 3. If you use the BitmapData function “getColorBoundsRect” you can now return a Rectangle Object. Whenever the with or height of this Object is bigger than 0 motion occurred.

In the Demo, a ColorMatrixFilter and a BlurFilter help to get rid of unimportant motion in the image (slight color changes or background motion). You can use a Sprite container with two added Bitmaps to store the first two BitmapData Objects. This gives you the option to apply filters to the container without having to reapply them every frame.


The example can also be used to create a simple spy cam, using Adobe Air to write BitmapData Object 3 to the File System. This application is also included in the download below.


You can download both motion detection demos, including their source files, from the following URL:

download – motion detector demos


Open source games

I decided to release some of my games as free open source downloads, using the MIT license.
The following URL provides you with three games: “Meteornaut”, “Crash Lines” and “Decypher Me”.

download –

While “Meteornaut” and “Crash Lines” are fairly complete games, “Decypher Me” is more of a proof of concept, with one level and no title screen or menus.

A few words about each game:

Meteornaut is a variant of the classic Asteroids game. It differentiates itself by implementing mouse based controls and a combo system.

To publish the game, use the Flex 4.1 compiler (try FDT, Flash Develop or Flash Builder) using Flash Player 10. The Main Class is: “src/de/davidochmann/games/meteornaut/”.

Crash Lines:
Crash Lines is two player Tron Lightcycle Game. Race against a friend to see who can stay alive the longest.
crash lines

Use the “source/crashlines.fla” to compile the game.

Decypher Me:
Decipher cryptic Texts with “Decypher Me”. The game gives you hints to where a certain letter is used within the text. After that it’s up to your combination abilities to solve the riddle.
crash lines

Use the “source/DecypherMe.fla” to compile the game.

METEORNAUT – A game development diary

Follow me in the creation of my latest game METEORNAUT, a simple variant of the all time classic Asteroids.

This post documents the development milestones of the game, beginning with the first beta to the release of version 1.0.

Play the current version:

The current milestones:

v0.01 –

Version 0.01 is an early mock-up to test the core framework, performance and animation. The game freezes as soon as a meteor hits the ship and as for now the level has no clear end.

v0.10 –

The second version deviates a little from the asteroids concept. I implemented a new gamplay mechanic that rewarded players for destroying meteors of the same size (circled) by multiplying the score (pending score x destroyed meteors of the same size within two seconds).

v0.12 –

This version has a new combo mechanic. The size of the meteors is now irrelevant for increasing the multiplier. Gaining a 10x and 20x combo will give you a power up (two, than three missles per shot).

Also new in this version:

Locked Levels, reduced user interface, new animations.

v0.13 –

More of a re refinement than anything else this version features, a new name, new graphics, new levels, a title screen, screen transitions, button animations and a few gameplay tweaks.

Powerups are now given after multiplier 10 and 100 instead of 10 and 20.
The ship is no longer able to fly through one end of a level to end up on the opposite side.

v0.14 –

Version 0.14 adds a stats screen to the game that displays your current level-completion time, the highest level combo and your high score. It also fixes a bug that used to show a wrong max-score in certain levels (e.g. 15).

I also updated the graphics a little, by overhauling the title screen and improving buttons and the background (with dirt :D).

After version 0.14 I released the game on and
You can check it out by clicking one of the the following URLs: