Creating A Cognitive Agent In A Virtual World: Planning, Navigation, And Natural Language Generation