Tuesday, July 27, 2010

Live Performance on the iPad.

One app stands out, and it is called ThumbJam. I've been playing with this all night. It is very, very good. I own a Korg Kaossilator Pro and a Korg KP3 (touch music devices), and they could learn a whole lot from this $9 app.

Monday, July 26, 2010

Shader Tips.

I've been working on a high end shader over the last few days. this particular shader needed a diffuse map, a normal map, a specular map (color and alpha mask), a cube map, and a fallback texture. The cube map provided reflections which were mapped over the normals (from the normal map) of the model. Here are some random things I've learnt.

1. Add ambient light, don't multiply.

2. To mix colours, multiply them together, then multiply by 2 to retain the same brightness.

3. Use the Unity3D macros in UnityCG.cginc, they make life much easier.

Wednesday, July 21, 2010


define: sabbatical

An extended period of leave, often one year long, taken by an employee in order to carry out projects not otherwise associated with the employee's job.

I think it is time for me to have one of those...

Saturday, July 17, 2010

Head Explosion Moment

Every now and then, I see something so cool that my head explodes. It happened this morning while watching this video.

Beast Light mapping in Unity3D.


I'd better start cleaning up now.

Star Hammer Tactics

My friend Paul (from Black Lab Games) released Star Hammer Tactics on PSN this week.

I bought a second hand PSP just so I could play this game! :-)

It plays _very_ well on the small screen, it seems to fit the PSP controls perfectly. Awesome work Paul!

Thursday, July 15, 2010

Emergency Apple Press Conference

Apple are having an emergency press conference tommorow, and it is all about the iPhone.

Kevin Turner, from Microsoft, thinks that the "iPhone4 is Apple's Vista." Errr right... Except that the iPhone4 problem can be fixed with a case for the phone, and doesn't punish the user with bondage, discipline and an ugly abomination for an interface for half a decade.

Wednesday, July 14, 2010


This is performed by my erstwhile colleague and fellow Indie Dev, Brad Power. Nice One Brad.

Update: The above video was taken down by the RocketHands guys, at the request of the double rainbow guy. They have no legal obligation to do so, they're just playing nice. Megh to the Rainbow Guy, your 15 minutes are all but over.

Tuesday, July 13, 2010

Neat .Net Stuff

This snippet shows two cool things. The Threadpool which can be used for arbitrary tasks, and an anonymous method, which allows the programmer to define throwaway, single use methods.

using System.Threading;
ThreadPool.QueueUserWorkItem(new WaitCallback(delegate(Object state) {
//This block will run in a separate thread!
//And not block your main program. W00t!

Monday, July 12, 2010

Generic Ring Buffer in C#

This data structure is helpful when creating lock-free algorithms. I'm not sure if the exceptions used are appropriate. Any suggestions?

public class RingQueue<T>
private int size;
private int read = 0;
private int write = 0;
private int count = 0;
private T[] objects;

public RingQueue (int size)
this.size = size;
objects = new T[size + 1];

public bool Empty {
get { return (read == write) && (count == 0); }

public bool Full {
get { return (read == write) && (count > 0); }

public void Write (T item)
if (Full)
throw new IndexOutOfRangeException ("Queue Full!");
objects[write] = item;
write = (write + 1) % size;

public T Read ()
if (Empty)
throw new IndexOutOfRangeException ("Queue Empty!");
T item = objects[read];
read = (read + 1) % size;
return item;

Monday, July 05, 2010

GameJam Perth 2010 - Part II

If you're interested in attending GameJam Perth 2010, Part II, or you want to keep in touch with GameJam events, please sign up here.

HTC Legend - Review

The Good.
- Nice Body
- Nice Camera

The Bad.
- The Interface is bad. The keyboard is cluttered, with redundant glyphs cluttering each key.
- 6 hardware buttons which don't work as you expect.
- Multiple ways to scroll the screen, which work differently in each app. You can use the trackball, or the touch screen. Or accidentally both at once.

The Really Bad.
- The browser threw a javascript error on the google home page.
- The browser does a lousy job of rendering. Some web pages flicked between line wrap and no line wrap, making scrolling and viewing difficult, if not impossible.
- Despite the browser working, and obviously having a working data link, the maps application refused to work, complaining that it needed a data link.
- The Google Mail sync also refused to work, complaining that it needed a data link.
- In fact, the only internet enabled app that worked was the browser.

Overall, HTC Legend + Android == Fail.

Popular Posts