First off I would like to thank Blender and UPBGE developers for blender game engine, it rocks.
Most out of the box are confused how to start with the bge, the reason is the engine is 'a blank canvas' without any forced design philosophies other than you must use logic bricks or python.
Beyond the game logic contained within the BGE module, there is also Mathutils and even BPY that can be exploited.
in mathutils we have access to things like Vectors, matrix, euler rots,with many inherited commands that come along with them like lerp etc, but we also have neat tools like KDTree, bvhtree, Noise utilities etc.
Along with these 'extensions' of the engine, one can also extend the source code using the python extension utilities located in -upbge wiki Python-Proxy to include other GPL / or compatible libs into UPBGE
also to develop the game engine it's best to stop by freenode / irc / #upbgecoders.
with these extensions it's easy to break any bottlenecks we face and create a game engine that is in essence, a canvas for us to use to make any game. upbge grows each week at github.