The real naming fail is calling the class “GameManager”, still my number one pet peeve. With a class name as vague as that you would have to add tons of information into the variable name. (Also the class name begs for unorganized code. I mean name one function or variable that you could not justify putting into the “GameManager” class. After all if it’s managing the game it could justifiably perform any process in the game and access any state in it.)
Once you put the first bool into a class with a name like AccessibilitySettings, calling it something like HighContrast is completely sufficient.
We’ve all been guilty of these mistakes, naming stuff is hard, structuring your project is hard, learning the grains of a language takes time. But comments like these are golden nugets, some might read this and think “oh yeah, this makes sense” and rethink their whole methodology of naming and structure. You might have pushed someone reading your comment, to think more about these things.
Unity actually gives any class with the name GameManager a special gear icon. You cant just forgo the cool gear icon!
(Its not too terrible from an organizational standpoint because most of the scripts are attached to game objects. MonoBehavior is a component of GameObject. For instance, you’d never have player movement in the GameManager class, you would put it in the component class attached to the player character GameObject.)
you’d never have player movement in the GameManager class
You want to bet? (Source: I teach game programming on a college level.)
But yeah, your comment about the gear icon is sadly more true than people may realize. Game developers do questionable things. => Engine developers cater to people. => Students argue that if something is supported it can’t be that bad. Sometimes it feels like fighting windmills.
At my first job I was working on an MMO and we had a DatabaseManager class with 10k+ lines of code. Less than the first 200 lines actually used any of the members of that class.
I’m already annoyed by the end of public static final string that the variable name doesn’t even bother me in these sorts of langauages. All things should be public, static, & final, by default so they aren’t necessary to write. You should only have to write what unsafeties you are opting into.
When the variable name is the description that should be in the comments.
Idea: Comments that automattically populate the end of any line a given variable is invoked on, including spelling out formulas from that line. ie: float y=mx+b // (cartesian y value)=(slope)(cartesian x value)+(cartisian y-intercept)
“Duplicated” coments not actually in the file, but specified witt the creation of such variables and spread around by the code editor /IDE.
Then, you could take those comments, and have the compiler use them to ensure you’re using the right variable in the right place. Oh wait, we just invented a type system.
Hot take, but the main problem with this is that you have to type variables or use them in larger expressions. Otherwise I like it.
These would make a great mouseover text. I don’t know if there’s any standard way to support that. Actually, how come coding in non-plaintext formats never took off?
I need like a tutorial on IDEs, because clearly I’m using them wrong. Or I tend to work on things that are poorly documented and just haven’t been able to take advantage, I guess that’s possible.