Write a Game Engine? - WHY and HOW.