Help Designing good OOP UML for first-person perspective

Hey anyone reading,

First thanks for reading and potentially helping, I appreciate it. Second, the actual meat of the issue, I’m familiar with how Unity handles GameObjects/Actors functionality and I’m struggling with how UE4 differentiates since it still utilizes components stored within GameObjects/Actors. Keep in mind this will not be a multiplayer game, strictly first-person perspective, single player.

I would like to design everything to be as decoupled as possible, to try to create re-usable or extendable code bases and take advantage of good OOP.

  1. With the different Pawns would I want to create a PC class that inherits from a base pawn and then a Base NPC class that inherits from a base pawn.
  2. Create an AIController and PlayerController to be added as components respectively.
  3. Create an inheriting movement components for flying and land based pawns to be added as components.
  4. etc.

I’m still fairly new to wrapping my head around UE4 and how to properly structure OOP in UE4 C++. If you need more info please let me know. Thanks in advance!