Class Name Prefix Restriction and Hungarian Notation

Error: Invalid class name 'game_character'. The class name must have an appropriate prefix added (A for Actors, U for other classes).

Why is this enforced? As someone who prefer snake_case over camelCase and PascalCase, I’d really appreciate it if the developers could remove this restriction. Also what’s up with the Hungarian notation like bReplicates, FMatrix, FName, or TTuple?

Encoding the type of a function into the name (so-called Hungarian notation) is brain damaged - the compiler knows the types anyway and can check those, and it only confuses the programmer. No wonder MicroSoft makes buggy programs. --Linux kernel coding style

bump

That is simply the style that Epic has decided on for their Coding Standard - they use b for Booleans, F for Structs, A for Actors, U for UObjects, and T for Templates.

If you want to change the enforcement, you’d have to alter the UHT and pray nothing else breaks but I’d advise against that.

In short, their engine their rules.