Collaboroate

Introducing Collaborate

Collaborate is the latest OS X software from TheSpicyChicken. This real-time collaborative document editor lets you share and edit documents with your friends over any Jabber server. Just sign in with your Google Talk or Jabber username and start editing.

Mophilia Contest

We are giving away free download coupons over at Mophilia.com for our two new apps PopBalloons and Guppy.

Visit Mophilia now to sign up!

-Spicy

Tags: , ,

Filed under:General

PopBalloons and making Demonstration Videos

Background

While learning how to use the microphone on the iPhone to record I thought a quick and fun iPhone Game which leverages the microphone on the phone.

There’s lots of apps out there that take advantage of the accelerometers, but not too many that use the microphone as a control device.  In PopBalloons you control a laser that floats around the screen (using the accelerometers, of course :) , but to fire the laser you need to make a sound.  A snap, a click, sing a song, whatever.  The intensity of the laser is directly proportional to the intensity of the sound that the iPhone hears.  You can even slightly tap the microphone with your finger, if you really need to be quiet.

As an added bonus, I cartooned up some LOL cats, and instead of popping balloons with your sound-laser, you can pop LOL-CATS!  I know, it’s brilliant. More information on PopBalloons, and all of my future mobile phone apps can be found at the website of my new company, Mophilia, Inc.

Demonstration Videos

The real point to this post is to demonstrate how to make a crude demonstration video of a live-action game.  My first thought was to take screenshots using the screen shot function and then string them into a video.

CGImageRef screen = UIGetScreenImage();
UIImage *viewImage = [UIImage imageWithCGImage:screen];
CGImageRelease(screen);

However, the process of getting the screen shot and saving it takes way to long and eats up too much memory to be run at full speed. So it occurred to me, that since the game is being triggered by timers which are on the order of 30fps then I could slow the game down and take screenshots between the frames. For example, if I slowed the entire gameplay down to 10fps then I could take screenshots at that rate and not run into memory issues. So in my PopBalloons_Prefix.pch file I have this:

// This is the master Timer update frequency. Normal speed is 30.
#define PopBalloonsMasterFrequency 10

All of the rest of the frequencies are based on this one. So if I have a timer that normally runs at 20fps I would simply redefine the frequency like this:

// Nomal update frequency is 20 Hz
#define kUpdateFrequency ((2./3.)*PopBalloonsMasterFrequency)

Now I can arbitrarily slow down my entire game so that I can do CPU and memory taxing procedures. In case you are interested I save the images to file using:

NSData *imgData = UIImagePNGRepresentation(viewImage);
if (![imgData writeToFile:filePath atomically:NO]) {
NSLog(@”Failed to write the image data to file.”);
}

Where filePath is an NSString object that contains the full path to the destination file and viewImage is a UIImage object from the code above.

Encoding the PNG files into a Video

Now that I have a whole bunch of images I need to encode them into a movie. I use mencoder to do this. Mencoder comes with MPlayer which can be installed using Darwin Ports.

#port install MPlayer

Note you need to have /opt/local/bin set in your PATH file.

I wanted the video to include an image of the phone, so it the game looks like it is being played. To do so I just used Grab to take a screenshot of the simulator and saved that file as PhoneImage.png in the same directory as my screenshot files. Now I can use some a handy python script to combine the images and generate what will be the frame for my video.

import os
from PIL import Image

phone_image_name = ‘PhoneImage.png’
file_names = [f for f in os.listdir('.') if not os.isdir(f) and not f.split('_')[-1] == ‘done.png’ and not f.split(‘.’)[-1] == ‘py’ and not f in [phone_image_name] and not f[0] == ‘.’]

for file_name in file_names:
phone_image = Image.open(phone_image_name)
im = Image.open(file_name)
phone_image.paste(im, (63,160))
phone_image.save(file_name.split(‘.’)[0] + ‘_done.png’)

After the images are converted I just delete all the old files and then string them together to make a video using mencoder:

mencoder “mf://*.png” -mf type=png:w=320:h=480:fps=28 -ovc lavc -lavcopts vcodec=mpeg4 -oac copy -o foo.avi

The product of this is the following video:

As you can see it’s far from perfect. It’s a little shaky and you can see the flicker of the text prompt in the Text Field, but as a first pass it will do.

-Spicy

Tags: , , ,

Filed under:Development

In the works.

The reason I haven’t posted in a while is that there are BIG things in the pipeline, that I am dying to tell you about…just not yet.

Stay tuned!

Tags:

Filed under:Development, General

The Pulse v1.1 Released

I have received some really good feedback about my first ‘official’ iphone application, The Pulse.  Users have really liked the app, but it seem to lack some basic features.  In version 1.1 the ability to pause the onslaught of incoming news articles as well as in-app web viewing has been added.

Most importantly, here are some screenshots:

img_0028 img_0031

You can download the app from:

http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=301786228&mt=8

Tags: , ,

Filed under:Development

My best integral

I was just doing some statistics homework and happen to produce what I think is the best integral sign I have ever made, freehand.  Please enjoy.

img_0033

Filed under:General

Google

iaccidentallygoogle

Tags: , ,

Filed under:General

First “official” iPhone App

Hi all,

As I mentioned earlier, my first official iPhone application has come out.  It’s called The Pulse and is great for killing some extra time.  Keep an eye on the latest from your favorite news sites.  You can download it for free here:

http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=301786228&mt=8

If you like it and would like to see more features shoot me an email.  If there is interest I’ll expand on the app.

Best,
Spicy

Tags: , ,

Filed under:Development

Inauguration

With the inauguration of our new president right around the corner, it is fun to look back and speculate on inaugurations past. This short re-history of such an event is a delightful and quick read:

http://glowesbox.blogspot.com/2009/01/think-not-what-you-can-do-for.html

Tags:

Filed under:General

Happy New Year

With the new year and some much need down time to work on some side projects, I have some fun news.

First, I am close to releasing an Alpha version of my newest iPhone application.  The details about the app are very hush hush, but it’s really cool and should be lots of fun to use.  I do need some Alpha Testers, however, and if you have an iPhone and a desire to test barely funtioning-cutting edge software, please email me at thespicychicken@gmail.com.

Seconds, I wanted to let all of you know that work on Customize will continue.  I have found some much needed time to get the website server back up and running as well as fixing the app for 2.2.  Stay tuned for more news on that.

Happy new year! -Spicy

Tags: ,

Filed under:Development

fwitter… a facebook app for your tweets

Yesterday I wanted to have my latest tweet be set as my Facebook status message.  It seems to me that this is very useful.  However, the app that does this isn’t working.  So I wrote my own.

If you want to use it, sign up for it here:

http://apps.facebook.com/fwitter/

-Spicy

Filed under:Development