I think these elements are absolutely essential to have a fun and engaging game: story, choice, freedom to fail, challenge and feedback. Without these, I believe, a course game will fall short of expectations. There are many dynamics and mechanics that can be used to improve your game (see Manrique’s 35 gamification mechanics, for some examples). These 5 are the ones I personally feel are essential; the ones without which any course-game will be impoverished and much more difficult to build engagingly.
A storyline or narrative structure within which you set your classroom game. The story helps create a separate space (a magic circle), within which the rules are allowed to be different and the regular behaviors of school can be altered or broken. It also becomes a reward in itself, as you reveal it bit by bit throughout the game. It provides the context within which players make their choices. It’s possible to have a moderately successful game design without story, but a really engaging course-long game is easier to build with a story.
Allowing players choices gives them autonomy, one of the key elements leading to intrinsic motivation. The more choice you can give them, the better. I try to build my games so players have a wide variety of options for each step in the process; most steps are required, but how each step is fulfilled allows the player lots of choice. [This takes time, so I build a few at first, then regularly return to earlier steps and add in additional options to increase the choices available.]
Freedom to fail
There must be plenty of opportunity to fail, especially during the early stages, without any penalty (other than having to try again). One of the ways we learn is to try different things/ways/approaches. So make sure trying is encourage by making it easy to try repeatedly. Encourage players by praising effort rather than praising results.
Make it hard to win! Sure, make the early stages easy to accomplish. Ease players into the game so they’re hooked and want to move on/move up. But make the middle get harder and make the last stages really hard. The more work we put into something, the more we value the result and the stronger our feeling of fiero when we finally accomplish it. (Be sure to implement the Freedom to Fail alongside this – if it’s hard and there are serious consequences to failure, it’ll cause some to give up.)
Build a feedback system into your game with as short a lag as possible. If you can build in automatic, immediate feedback, that is ideal. But it’s not always possible, so plan ahead and build in as short a turn-around as possible. The faster the feedback is, the easier it is for players to see the consequences of their choices and actions, and thus the more motivated they’ll be to adjust what they’re doing and try again.