Adds global variables, json parsing, and ground-work for character builder/loader

For short term and small projects, yes It does make sense. But it increase the complexity for new joiners. Let me try to explain with one more example.

class Ability {
public:
move();
}
Class Player: public Ability, public Physics {
public:
void show();
}

I am junior programmer, and I see somewhere,

Player player;
player.move();
and move function has a bug, where should I look now? Ability, Physics, or Player.

But if we used,

player.physics_move();

So, you can easily findout, where it points to?

Now, What do you think?