I think this could be adapted somewhat. Get rid of .up etc altogether, and make movement dependant on *doing something*.
It will open the door for so many more movement patterns and new behaviours, and become more true-to-life.
For example, firing a shot would send you in the opposite direction (newton's laws), moving a tie would drag through the "water", propelling you forward. Perhaps there could even be a new variable for growing little hairs to manipulate.
This shouldn't be too difficult code, although it would probably require some modifications of DB's physics.