Using static members vs normal ones for exp,lvl, health ect..

Hey there, I started working on a RPG-ish level up system, currently its just in papers and head. I have been wondering what would be the best choice using static variables or normal variables ?

I would be using the same script on player all time and I think static ones will be easier to deal with in multiple scenes and easier to save ? I am still not quite sure, I’d like someone’s intel on this.
Also any other precautions need to take when dealing with something like this.
Thanks :3

Here are some properties of static variables:

  • They are independent of any instance of the class (ie. they exist even if you haven’t made any object of that class)
  • They are shared between all the instances (so if you have more than one character, they would all share the value of those static variables)
  • If you make them public static they are accessible anywhere in code at any time, so anything can mess with them.

So as much as they save you accessing the instance and writing proper access functions to preserve encapsulation, they are usually a disaster waiting to happen. It’s much better to write clean and safe code.

Here are some more reasons why you shouldn’t just use them all over the place