Building an Educational Adventure Game: Theory, Design, and Lessons