As I answer questions in the forum it has become apparent to me that having a place where students could return to, to refresh on certain programming concepts, would be a valuable asset to the game.
For instance: as the player advances through the game they are given more and more complex concepts for programming. Are they really mastering these skills or have they forgotten something that was taught before? A reference is always a valuable tool for programmers. I am sure many of us have our coveted websites that we go to when we have to remember how “exactly” to do something we haven’t done in a while. Why not create a similar concept at CodeCombat?
Here is the idea that I propose:
Create an Adventurers Guild that would open up programming concepts to the player as they progress in the game. When the student learns strings, then there would be a “strings” area of the guild open to them. This would provide a sandbox environment and instructions about the singular concept with in depth explanations. Showing the concept at the advanced level as the student should understand it.
This would act rather like a reference. In the game it can be taxing to memorize the different levels that teach you each concept. If the student didn’t take good notes then their ability to trace back to the right level to relearn the concept could be time consuming. The guild would list out what programming concepts that they should have a mastery of at this point in the game (based on levels completed), And perhaps include the entire listing of skills to master, as is done with “achievements” but with a focus only on programming concepts.
Example: the player has learned strings, variables, and functions but not objects and the Math library.
This could be an incentive to continue learning and advancing in the game as their “Guild Standing” would improve as they progress. Maybe such titles as “Master of Functions”, or “Dominator of Strings” could be used to describe the current rank in the guild. The idea again would be that you would go “back to the guild” to further practice your skills, since every good warrior will spend hours practicing their skills.
The guild might also be a good place to introduce the idea of creating your own code library and creating test cases to test individual code segments?