Let’s suppose you have a project X and Y and after a while these project will be merged together. Every project has a generic Button Actor class for some reason.
In general this would be AButton but you can’t create it because Button.cpp/Button.h files already exist in UMG.
How would you name your class in that case?
AButtonX, XAButton or something else?
Using underscore is unnatural: AButton_X, X_AButton.
Project name between Unreal prefix and class name would be confusional: AXButton
Always gone with a similar route to UT and UDK: <Class Prefix><Project Initials><Class Name>.
e.g. Ground Branch: AGBCharacter, AGBPlayerController, AGBGameMode
With Blueprints derived from those classes, since we decided to use the content directory structure suggested in Allar’s guide, all Ground Branch related content going under /Content/GroundBranch. As such, most blueprint classes omit the project initials:
e.g. BP_Character, BP_PlayerController, BP_TerroristHunt
Though I’m considering giving game modes a _GameMode suffix so they fit in with they’re related game states etc.