Designing Serious Games for Education: From Pedagogical Principles to Game Mechanisms