This GameDev.net article might help.