This script was writen to use 'KEYBOARD AND MOUSE BINDINGS v2.0' by Cotax, and may not work without it. Create an empty with an always sensor connected to a python controller set to Module:keybindings.get_keybindings. All other steps are detailed in the readme, as it is a bit much to put here. Any surface you want to be able to move on must be an actor. The onground sensor will not detect it otherwise and you will be stuck in place.
I like it!
I wonder how to set it in my blend old stone city, see link. Any tutorial?
https://www.blendswap.com/blends/view/91953