A well-designed and engaging e-learning game will challenge the user, track his or her progress, and reward his or her performance appropriately. To do this, a series of classes will be required that will separate what we are tracking with the way in which we interact with it.
We will develop a system to implement a generic object that the user can interact with and collect. We will also develop another system that lets us build an abstract learning objective for the user to accomplish. We will then develop a system to collect objects into an inventory that can be used by the player. Lastly, we will develop software that tracks the user's progress towards these objectives and rewards him or her appropriately for success.
In this chapter, we will cover the following topics: