I am in the conceptual phases of creating a combat game. I have experience making combat games, but I would like for this project to be the most organized and as modular as it can be.
I currently format player data like this:
PlayerController - Class which stores player account data like Lives, Alignment, Money, Last Positions etc. (Not many methods here)
CharacterController - Another class which is used for both NPCS and Players, stores equipment data, state data, stats etc. This is apart of the PlayerController for Players, and standalone for Humanoid NPCS. (Holds a bunch of methods like :Stun, :Ragdoll etc)
Heres where I would like some advice,
I am thinking of making more controllers which inherit from the Character Controller, ex: MovementController, ActionController, CombatController
These controllers would hold methods which are pretty self-explanatory. However, these methods would usually just reference to a different module. Ex: CombatController:HeavyAttack() → DirectoryModule (To find a specific weapon module for instance) → That Weapon Module → Heavy Attack. So I am wondering if these extra controllers are redundant, if I should keep them, or if I should approach this differently.
Not sure if this post makes sense, if you’d like to see some code or need further explanation let me know.