This is quite a complete game example.