We address software engineering issues related to modeling game-based learning systems to support the kind of independent learning that takes place outside the classroom. After evaluating existing game-based learning (GBL) frameworks and identifying GBL characteristics, we elaborate and express formally a set of functional requirements that capture the many dimensions of GBL systems. From these requirements, we propose a GBL system structure that consists of an instructional subsystem, a control subsystem,, and a game subsystem. We use this model as a foundation to develop a fully operational GBL prototype intended for children to learn about the concepts in many microworlds. The game has a knowledge acquisition phase and a challenge phase. In the learning phase, the learner interacts with various objects and learn about their characteristics. In the challenge phase, the player is presented with several challenges related to objects he/she met. This phase is used implicitly to assess the impact of the first phase on the learner. The positive results of an experiment to assess the impact of this game on concept acquisition are discussed.