Well, basically there are two choices: implement the complexity in the kernel on the player itself, or in userland on a less-restricted external platform (eg. JEmplode).

I vote for keeping the player's end of the deal simple, and therefore small (saving precious memory), and doing it on the external platform.

Cheers