Every game has a database of possible skills. The database can be edited on the fly. Skills have: - Name: eg, “handgun accuracy” - Point cost: how many skill points do you need to increment this skill. Note that the game can bypass the point system by procedurally incrementing the player’s skill. - Maximum skill level: how high can this skill be incremented. Again, the game can bypass this by procedurally incrementing the player’s skill. - A graphical icon representing the skill. - Prerequisites list: other skills you have to have before incrementing this skill. The skill tree isn’t hardwired into code. Instead, there’s an in-game skill tree editor which you can use when you’re in god mode. We should also provide facilities so that two different games can easily share a skill tree. The engine should provide a built-in character progression screen, so that the player can spend skill points to advance along the skill tree. When a player comes into a game, he brings his skills with him. There are two preliminary checks: first, that he hasn’t spent too many skill points. Second, every skill he has is checked against the skill tree. If he has acquired a skill in violation of the prerequisites, then that skill is “greyed out” until he buys the prerequisites.